12018-12-31  Max Filippov  <jcmvbkbc@gmail.com>
2
3	PR target/86814
4	* config/xtensa/xtensa.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
5	Define to speculation_safe_value_not_needed.
6
72018-12-31  Martin Liska  <mliska@suse.cz>
8
9	* predict.c (set_even_probabilities): Include also
10	unlikely_count in calculation.
11	(combine_predictions_for_bb): Consider also HOT and
12	COLD labels predictions.
13	* predict.def (PRED_HOT_LABEL): Move it just after
14	__builtin_expect_with_probability predictor.
15	(PRED_COLD_LABEL): Likewise.
16
172018-12-30  Jan Hubicka  <hubicka@ucw.cz>
18
19	* x86-tune.def: Enable inter_unit_moves_to_vec for generic.
20
212018-12-30  Martin Sebor  <msebor@redhat.com>
22	    Jeff Law  <law@redhat.com>
23
24	* gimple-fold.c (get_range_strlen): Minor logic cleanup.  Add comments
25	on code's intent.
26
27	* gimple-fold.c (strlen_range_kind): New enum.
28	(get_range_strlen): Update signature to use strlen_range_kind
29	instead of type+fuzzy.
30	(get_range_strlen_tree): Update signature to use
31	strlen_range_kind instead of type+fuzzy.  Pass rkind down to
32	get_range_strlen.  Check the rkind enum value instead of
33	type+fuzzy.
34	(get_range_strlen): Similarly.
35	(get_maxval_strlen): Update signature to make NONSTR argument have
36	a default value and make static.  Add asserts to ensure sanity of
37	arguments.  Update calls to get_range_strlen.
38	(gimple_fold_builtin_strcpy): Update calls to get_maxval_strlen.
39	(gimple_fold_builtin_strcat, gimple_fold_builtin_fputs): Similarly.
40	(gimple_fold_builtin_memory_chk): Similarly.
41	(gimple_fold_builtin_stxcpy_chk): Similarly.
42	(gimple_fold_builtin_snprintf_chk): Similarly.
43	(gimple_fold_builtin_sprintf, gimple_fold_builtin_snprintf): Similarly.
44	* gimple-fold.h (get_maxval_strlen): Delete prototype.
45
462018-12-29  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
47
48	* config/msp430/msp430.c (msp430_attr): Warn when the critical and
49	interrupt function attributes are used together.
50	* gcc/doc/extend.texi: Update documentation on the critical attribute.
51
522018-12-29  John David Anglin  <danglin@gcc.gnu.org>
53
54	* config.gcc (hppa*64*-*-linux*): Add pa/t-pa to tmake_file.  Define
55	d_target_objs.
56	(hppa*-*-openbsd*): Likewise.
57	(hppa[12]*-*-hpux10*): Likewise.
58	(hppa*64*-*-hpux11*): Likewise.
59	(hppa[12]*-*-hpux11*): Likewise.
60
612018-12-29  Jakub Jelinek  <jakub@redhat.com>
62
63	PR ipa/88586
64	* omp-low.c (lower_omp_task_reductions): Set DECL_CONTEXT on field
65	and ifield.  Update TYPE_ALIGN from alignment of field, ifield or
66	bfield.
67
682018-12-28  Uros Bizjak  <ubizjak@gmail.com>
69
70	* config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
71	sil, dil, bpl and spl aliases.
72
732018-12-28  Martin Sebor  <msebor@redhat.com>
74
75	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Avoid
76	undesirable warning.
77
782018-12-28  Thomas Schwinge  <thomas@codesourcery.com>
79
80	* omp-expand.c (expand_omp_target): Restructure OpenACC vs. OpenMP
81	code paths.  Update for libgomp OpenACC entry points change.
82
832018-12-28  Thomas Schwinge  <thomas@codesourcery.com>
84	    Julian Brown  <julian@codesourcery.com>
85
86	* gimplify.c (gimplify_scan_omp_clauses): Fix known_eq typo/bug.
87
882018-12-27  Jan Hubicka  <hubicka@ucw.cz>
89
90	* ipa-devirt.c (polymorphic_call_target_d): Add n_odr_types.
91	(polymorphic_call_target_hasher::hash): Hash it.
92	(polymorphic_call_target_hasher::equal): Compare it.
93	(possible_polymorphic_call_targets): Set it.
94	* tree.c (free_lang_data): Rebuild type inheritance graph even on
95	non-LTO path.
96
972018-12-27  Martin Liska  <mliska@suse.cz>
98
99	PR gcov-profile/88225
100	* gcov.c(source_info::get_functions_at_location):
101	Use newly added line_to_function_map.
102	(source_info::add_function): New.
103	(output_json_intermediate_file): Use a pointer return
104	type for get_functions_at_location.
105	(process_all_functions): Use add_function instead
106	of direct push to a s->functions container.
107	(release_structures): Release ident_to_fn.
108	(read_graph_file): Register function into ident_to_fn.
109	(read_count_file): Use the map.
110	(output_lines): Handle pointer return type of
111	get_functions_at_location.
112
1132018-12-27  Martin Liska  <mliska@suse.cz>
114
115	* builtins.c (expand_movstr): Compare with RETURN_BEGIN.
116	* expr.c (move_by_pieces): Likewise.
117	(store_by_pieces): Likewise.
118	(store_expr): Fix GNU coding style.
119
1202018-12-26  Andrew Pinski  <apinski@marvell.com>
121
122	* config/aarch64/aarch64-cores.def (octeontx): New.
123	(octeontx81): Likewise.
124	(octeontx83): Likewise.
125	* config/aarch64/aarch64-tune.md: Regenerate.
126	* doc/invoke.texi (AArch64 Options) [mtune]: Add octeontx, octeontx81
127	and octeontx83.
128
1292018-12-24  Martin Sebor  <msebor@redhat.com>
130
131	* gimple-fold.c (get_range_strlen_tree): Factored out of
132	get_range_strlen.  Minor comment updates/additions.  Assert
133	argument is not a simple SSA_NAME.
134	(get_range_strlen): Call get_range_strlen_tree as appropriate.
135	Minor comment updates/additions.
136
1372018-12-24  Jan Hubicka  <hubicka@ucw.cz>
138
139	* ipa-devirt.c (dump_targets): Cap number of targets printed.
140	(dump_possible_polymorphic_call_targets): Add verbose parameter.
141	(ipa_devirt): Use it.
142	* ipa-utils.h (dump_possible_polymorphic_call_targets): Add verbose
143	parametrs.
144
1452018-12-24  Jan Hubicka  <hubicka@ucw.cz>
146
147	PR lto/88140
148	* tree.c (fld_simplified_type): Temporarily disable array
149	simplification.
150
1512018-12-24  Jan Hubicka  <hubicka@ucw.cz>
152
153	* lto-symtab.c (lto_symtab_merge_decls_2): Do not report ODR violations
154	for method whose basetype was already reported.
155	* ipa-devirt.c (odr_type_violation_reported_p): New.
156	* ipa-utils.h (odr_type_violation_reported_p): Declare.
157
1582018-12-24  Iain Sandoe  <iain@sandoe.co.uk>
159
160	* configure.ac (dwarf2_debug_line): Check for the debug_line
161	section using otool when there’s no objdump available.
162	* configure: Regenerate.
163
1642018-12-24  Jan Hubicka  <hubicka@ucw.cz>
165
166	* ipa-utils.c (ipa_merge_profiles): Fix updating of fnsummary;
167	also handle rescaling of mismatched profiles.
168	* ipa-fnsummary.c (analyze_function): Handle speculative edges.
169
1702018-12-23  Martin Sebor  <msebor@redhat.com>
171	    Jeff Law  <law@redhat.com>
172
173	* builtins.h (c_strlen_data): Add new fields and comments.
174	* builtins.c (unterminated_array): Change field reference from
175	"len" to "minlen" in c_strlen_data instance.
176	* gimple-fold.c (get_range_strlen): Likewise.
177	* gimple-ssa-sprintf.c (get_string_length): Likewise.
178
179	* builtins.c (unterminated_array): Rename "data" to "lendata".  Fix
180	a few comments.
181	(expand_builtin_strnlen, expand_builtin_stpcpy_1): Likewise.
182	(fold_builtin_strlen): Likewise.
183	* gimple-fold.c (get_range_strlen): Likewise.  Also rename a couple
184	instances of "type" to "optype" and "arg" to "fld".
185
186	* builtins.c (unterminated_array): Use empty brace initialization
187	for c_strlen_data.
188	(c_strlen, expand_builtin_strnlen): Likewise.
189	(expand_builtin_stpcpy_1, fold_builtin_strlen): Likewise.
190	* gimple-fold.c (get_range_strlen): Likewise.
191	(gimple_fold_builtin_stpcpy): Likewise.
192	* gimple-ssa-sprintf.c (get_string_length): Likewise.
193
1942018-12-23  Alan Modra  <amodra@gmail.com>
195
196	PR 88346
197	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Correct %e message.  Handle
198	-mcpu=rs64, not -mcpu=rs64a.  Handle -mcpu=powerpc64 and -mcpu=titan.
199	* config/rs6000/driver-rs6000.c (asm_names): Similarly.
200	* config/rs6000/aix71.h (ASM_CPU_SPEC): Delete %e message.  Handle
201	-mcpu=rs64, not -mcpu=rs64a.
202	* config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise.
203
2042018-12-23  Iain Sandoe  <iain@sandoe.co.uk>
205
206	* lto-wrapper.c (tool_cleanup): Don’t report ficticious temp files.
207	(debug_objcopy): Improve temp filenames.  Append the early
208	debug objects to the outfiles.  Remove the phase prelinking the
209	early debug. Emit the early debug filenames for ld.
210
2112018-12-23  Iain Sandoe  <iain@sandoe.co.uk>
212
213	* config/i386/darwin.h (TARGET_ASM_OUTPUT_IDENT): New.
214
2152018-12-23  Iain Sandoe  <iain@sandoe.co.uk>
216
217	* collect2.c (maybe_run_lto_and_relink): Don’t say we have a temp file
218	unless we actually did some LTO.
219	(has_lto_section, is_lto_object_file): New.
220	(maybe_lto_object_file): Remove.
221	(scan_prog_file): Use is_lto_object_file() instead of scanning the
222	output of nm.
223
2242018-12-23  Iain Sandoe  <iain@sandoe.co.uk>
225
226	* collect2.c (main): Parse the output file early so we can make nicer
227	temp names.  Respond to “-save-temps” in the GCC OPTIONS.
228	(maybe_unlink): Don’t print “[Leaving…”] for files we never created
229	and don’t exist.
230
2312018-12-23  Iain Sandoe  <iain@sandoe.co.uk>
232
233	* collect2.c (main): Combine flags from both the command line and
234	COLLECT_GCC_OPTIONS to determine the set in force
235
2362018-12-21  Jan Hubicka  <hubicka@ucw.cz>
237
238	* ipa-utils.c (ipa_merge_profiles): Recompute summaries.
239
2402018-12-21  Jakub Jelinek  <jakub@redhat.com>
241
242	PR middle-end/85594
243	PR middle-end/88553
244	* omp-expand.c (extract_omp_for_update_vars): Regimplify the condition
245	if needed.
246	(expand_omp_for_generic): Don't clobber t temporary for ordered loops.
247
2482018-12-15  Jan Hubicka  <hubicka@ucw.cz>
249
250	PR ipa/88561
251	* ipa-polymorphic-call.c
252	(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Handle
253	arguments of thunks correctly.
254	(ipa_polymorphic_call_context::get_dynamic_context): Be ready for
255	NULL instance pinter.
256	* lto-cgraph.c (lto_output_node): Always stream thunk info.
257
2582018-12-21  Andreas Krebbel  <krebbel@linux.ibm.com>
259
260	* config/s390/vector.md ("floatv2div2df2", "floatunsv2div2df2")
261	("fix_truncv2dfv2di2", "fixuns_truncv2dfv2di2"): New pattern
262	definitions.
263
2642018-12-21  Eric Botcazou  <ebotcazou@adacore.com>
265
266	PR rtl-optimization/87727
267	* combine.c (cant_combine_insn_p): On a LEAF_REGISTERS target, combine
268	again moves from leaf hard registers.
269
270	* final.c (final_scan_insn_1) <NOTE_INSN_INLINE_ENTRY>: Minor tweak.
271
2722018-12-21  Jakub Jelinek  <jakub@redhat.com>
273
274	PR target/88522
275	* config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask,
276	*avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask,
277	*avx512pf_scatterpf<mode>df_mask): Use %X5 instead of %5 for
278	-masm=intel.
279	(gatherq_mode): Remove mode iterator.
280	(*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2): Use X instead
281	of <xtg_mode>.
282	(*avx512f_gatherdi<mode>): Use X instead of <gatherq_mode>.
283	(*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>,
284	*avx512f_scatterdi<mode>): Use %X5 for -masm=intel.
285
286	PR rtl-optimization/88563
287	* expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Swap innermode
288	and mode arguments to convert_modes.  Likewise swap mode and word_mode
289	arguments.  Handle both arguments with VOIDmode before convert_modes
290	of one of them.  Formatting fixes.
291
2922018-12-21  Uros Bizjak  <ubizjak@gmail.com>
293
294	PR target/88556
295	* internal-fn.def (COSH): New.
296	(SINH): Ditto.
297	(TANH): Ditto.
298	* optabs.def (cosh_optab): New.
299	(sinh_optab): Ditto.
300	(tanh_optab): Ditto.
301	* config/i386/i386-protos.h (ix86_emit_i387_sinh): New prototype.
302	(ix86_emit_i387_cosh): Ditto.
303	(ix86_emit_i387_tanh): Ditto.
304	* config/i386/i386.c (ix86_emit_i387_sinh): New function.
305	(ix86_emit_i387_cosh): Ditto.
306	(ix86_emit_i387_tanh): Ditto.
307	* config/i386/i386.md (sinhxf2): New expander.
308	(sinh<mode>2):	Ditto.
309	(coshxf2): Ditto.
310	(cosh<mode>2): Ditto.
311	(tanhxf2): Ditto.
312	(tanh<mode>2): Ditto.
313
3142018-12-21  Jakub Jelinek  <jakub@redhat.com>
315
316	PR target/88547
317	* config/i386/i386.c (ix86_expand_int_sse_cmp): Optimize
318	x > y ? 0 : -1 into min (x, y) == x ? -1 : 0.
319
3202018-12-21  Jan Beulich  <jbeulich@suse.com>
321
322	* config/i386/sse.md (vaesdec_<mode>, vaesdeclast_<mode>): Allow
323	memory input.
324
3252018-12-21  Alexandre Oliva <oliva@adacore.com>
326
327	* config.gcc (tmake_file): Add name to tmake_file for
328	each @name in --with-multilib-list on arm-*-* targets.
329	* doc/install.texi (with-multilib-list): Document it.
330
3312018-12-21  Jakub Jelinek  <jakub@redhat.com>
332
333	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use
334	DR_TARGET_ALIGNMENT on dr_info rather than dr.  Spelling fixes.
335
3362018-12-20  Joern Rennecke  <joern.rennecke@riscy-ip.com>
337
338	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Don't do
339	versioning for data accesses with misaligned step.
340
3412018-12-20  H.J. Lu  <hongjiu.lu@intel.com>
342
343	PR c/51628
344	* doc/invoke.texi: Document -Wno-address-of-packed-member.
345
3462018-12-20  Vladimir Makarov  <vmakarov@redhat.com>
347
348	PR target/88457
349	* ira-color.c (fast_allocation): Choose the best cost hard reg.
350
3512018-12-20  Richard Sandiford  <richard.sandiford@arm.com>
352
353	* config/aarch64/iterators.md (SVE_INT_UNARY, fp_int_op): Add abs.
354	(SVE_FP_UNARY): Sort.
355
3562018-12-20  Richard Sandiford  <richard.sandiford@arm.com>
357
358	* config/aarch64/aarch64-sve.md (*cond_<optab><mode>_4): Use
359	sve_fmla_op rather than sve_fmad_op for the movprfx alternative.
360
3612018-12-20  Martin Jambor  <mjambor@suse.cz>
362
363	PR ipa/88214
364	* tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Assert that
365	ptr is a pointer.
366
3672018-12-20  Richard Biener  <rguenther@suse.de>
368
369	PR tree-optimization/84362
370	* tree-ssa-loop-im.c: Include alias.h, builtins.h and tree-dfa.h.
371	(struct im_mem_ref): add ref_canonical flag.
372	(struct mem_ref_hasher): Use ao_ref as compare_type.
373	(mem_ref_hasher::equal): Adjust and add variant comparing ao_ref
374	parts.
375	(mem_ref_alloc): Take ao_ref parameter, initialize ref_canonical
376	member.
377	(gather_mem_refs_stmt): Set up ao_ref early and do the lookup
378	using it.  If we have non-equal refs canonicalize the one
379	in the hashtable used for insertion.
380	(tree_ssa_lim_initialize): Adjust.
381
3822018-12-20  Jakub Jelinek  <jakub@redhat.com>
383
384	PR target/88547
385	* config/i386/i386.c (ix86_expand_sse_movcc): For maskcmp, try to
386	emit vpmovm2? instruction perhaps after knot?.  Reorganize code
387	so that it doesn't have to test !maskcmp in almost every conditional.
388
3892018-12-20  Alan Modra  <amodra@gmail.com>
390
391	* config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Define.
392
3932018-12-19  Andreas Tobler  <andreast@gcc.gnu.org>
394
395	* config.gcc: Enable TARGET_DEFAULT_ASYNC_UNWIND_TABLES on
396	aarch64*-*-freebsd*
397
3982018-12-19  Uros Bizjak  <ubizjak@gmail.com>
399
400	* config/i386/i386.md (SWI1248_AVX512BWDQ_64): Rename from
401	SWI1248_AVX512BWDQ2_64.  Unconditionally enable HImode.
402	(*cmp<mode>_ccz_1): Emit kortest instead of ktest insn.
403	Use SWI1248_AVX512BWDQ_64 mode iterator and enable only for
404	TARGET_AVX512F.
405
4062018-12-19  Thomas Preud'homme  <thomas.preudhomme@linaro.org>
407
408	* config/arm/elf.h: Update comment about condition that need to
409	match with libgcc/config/arm/lib1funcs.S to also include
410	libgcc/config/arm/t-arm.
411	* doc/sourcebuild.texi (output-exists, output-exists-not): Rename
412	subsubsection these directives are in to "Check for output files".
413	Move scan-symbol to that section and add to it new scan-symbol-not
414	directive.
415
4162018-12-19  Tom de Vries  <tdevries@suse.de>
417
418	* config/nvptx/nvptx.c (PTX_CTA_SIZE): Define.
419
4202018-12-19  Tom de Vries  <tdevries@suse.de>
421
422	* omp-offload.c (oacc_fn_attrib_level): Remove static.
423	* omp-offload.h (oacc_fn_attrib_level): Declare.
424
4252018-12-19  Tom de Vries  <tdevries@suse.de>
426
427	* omp-offload.c (oacc_get_default_dim): New function.
428	* omp-offload.h (oacc_get_default_dim): Declare.
429
4302018-12-19  David Malcolm  <dmalcolm@redhat.com>
431
432	PR c++/87504
433	* gcc-rich-location.c
434	(maybe_range_label_for_tree_type_mismatch::get_text): Move here from
435	c/c-typeck.c.
436	(binary_op_rich_location::binary_op_rich_location): New ctor.
437	(binary_op_rich_location::use_operator_loc_p): New function.
438	* gcc-rich-location.h
439	(class maybe_range_label_for_tree_type_mismatch)): Move here from
440	c/c-typeck.c.
441	(struct op_location_t): New forward decl.
442	(class binary_op_rich_location): New class.
443	* tree.h (struct op_location_t): New struct.
444
4452018-12-19  David Malcolm  <dmalcolm@redhat.com>
446
447	PR c++/43064
448	PR c++/43486
449	* convert.c: Include "selftest.h".
450	(preserve_any_location_wrapper): New function.
451	(convert_to_pointer_maybe_fold): Update to handle location
452	wrappers.
453	(convert_to_real_maybe_fold): Likewise.
454	(convert_to_integer_1): Strip expr when using TREE_OVERFLOW.
455	Handle location wrappers when checking for INTEGER_CST.
456	(convert_to_integer_maybe_fold): Update to handle location
457	wrappers.
458	(convert_to_complex_maybe_fold): Likewise.
459	(selftest::test_convert_to_integer_maybe_fold): New functions.
460	(selftest::convert_c_tests): New function.
461	* convert.h (preserve_any_location_wrapper): New decl.
462	* fold-const.c (size_binop_loc): Strip location wrappers when
463	using TREE_OVERFLOW.
464	(operand_equal_p): Strip any location wrappers.
465	(integer_valued_real_p): Strip any location wrapper.
466	* selftest-run-tests.c (selftest::run_tests): Call
467	selftest::convert_c_tests.
468	* selftest.h (selftest::convert_c_tests): New decl.
469	* tree.c (build_complex): Assert that REAL and IMAG are constants.
470	(integer_zerop): Look through location wrappers.
471	(integer_onep): Likewise.
472	(integer_each_onep): Likewise.
473	(integer_all_onesp): Likewise.
474	(integer_minus_onep): Likewise.
475	(integer_pow2p): Likewise.
476	(integer_nonzerop): Likewise.
477	(integer_truep): Likewise.
478	(fixed_zerop): Likewise.
479	(real_zerop): Likewise.
480	(real_onep): Likewise.
481	(real_minus_onep): Likewise.
482	(tree_int_cst_equal): Likewise.
483	(simple_cst_equal): Treat location wrappers with non-equal source
484	locations as being unequal.
485	(uniform_integer_cst_p): Look through location wrappers.
486	(maybe_wrap_with_location): Don't create wrappers if any
487	auto_suppress_location_wrappers are active.
488	(suppress_location_wrappers): New variable.
489	(selftest::test_predicates): New test.
490	(selftest::tree_c_tests): Call it.
491	* tree.h (CONSTANT_CLASS_OR_WRAPPER_P): New macro.
492	(suppress_location_wrappers): New decl.
493	(class auto_suppress_location_wrappers): New class.
494
4952018-12-19  Paul A. Clarke  <pc@us.ibm.com>
496
497	* config/rs6000/tmmintrin.h (_mm_hadds_epi16): Vector lanes swapped.
498	(_mm_hsub_epi32): Likewise.
499	(_mm_shuffle_epi8): Fix reversed interpretation of parameters.
500	(_mm_shuffle_pi8): Likewise.
501	(_mm_addubs_pi16): Likewise.
502
5032018-12-19  Thomas Preud'homme  <thomas.preudhomme@linaro.org>
504
505	* config/arm/arm.h (TARGET_HARD_FLOAT): Restrict to TARGET_32BIT
506	targets.
507	* config/arm/arm.c (output_return_instruction): Only check
508	TARGET_HARD_FLOAT to decide whether FP instructions are available.
509
5102018-12-19  Tom de Vries  <tom@codesourcery.com>
511
512	* doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization
513	dump files): Add offload-rtl.
514
5152018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
516
517	PR target/88213
518	* config/rs6000/vsx.md (*vsx_extract_<P:mode>_<VSX_D:mode>_load):
519	Require TARGET_POWERPC64.
520
5212018-12-19  Richard Biener  <rguenther@suse.de>
522
523	PR tree-optimization/88533
524	Revert
525	2018-04-30  Richard Biener  <rguenther@suse.de>
526
527	PR tree-optimization/28364
528	PR tree-optimization/85275
529	* tree-ssa-loop-ch.c (ch_base::copy_headers): Stop after
530	copying first exit test.
531
532	* tree-ssa-loop-ch.c: Include tree-phinodes.h and
533	ssa-iterators.h.
534	(should_duplicate_loop_header_p): Track whether stmt compute
535	loop invariants or values based on IVs.  Apart from the
536	original loop header only duplicate blocks with exit tests
537	that are based on IVs or invariants.
538
5392018-12-19  Tom de Vries  <tdevries@suse.de>
540
541	* config/nvptx/nvptx.c (nvptx_gen_shared_bcast, shared_prop_gen)
542	(nvptx_goacc_expand_accel_var): Use MAX and ROUND_UP.
543	(nvptx_assemble_value, nvptx_output_skip): Use MIN.
544	(nvptx_shared_propagate, nvptx_single, nvptx_expand_shared_addr): Use
545	MAX.
546
5472018-12-19  Tom de Vries  <tdevries@suse.de>
548
549	* config/nvptx/nvptx.c (nvptx_gen_wcast): Rename as
550	nvptx_gen_warp_bcast.
551	(nvptx_gen_wcast): Rename to nvptx_gen_shared_bcast, add bool
552	vector argument, and update call to nvptx_gen_shared_bcast.
553	(propagator_fn): Add bool argument.
554	(nvptx_propagate): New bool argument, pass bool argument to fn.
555	(vprop_gen): Rename to warp_prop_gen, update call to
556	nvptx_gen_warp_bcast.
557	(nvptx_vpropagate): Rename to nvptx_warp_propagate, update call to
558	nvptx_propagate.
559	(wprop_gen): Rename to shared_prop_gen, update call to
560	nvptx_gen_shared_bcast.
561	(nvptx_wpropagate): Rename to nvptx_shared_propagate, update call
562	to nvptx_propagate.
563	(nvptx_wsync): Rename to nvptx_cta_sync.
564	(nvptx_single): Update calls to nvptx_gen_warp_bcast,
565	nvptx_gen_shared_bcast and nvptx_cta_sync.
566	(nvptx_process_pars): Likewise.
567	(write_worker_buffer): Rename as write_shared_buffer.
568	(nvptx_file_end): Update calls to write_shared_buffer.
569	(nvptx_expand_worker_addr): Rename as nvptx_expand_shared_addr.
570	(nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
571	(nvptx_get_worker_red_addr): Rename as nvptx_get_shared_red_addr.
572	(nvptx_goacc_reduction_setup): Update call to
573	nvptx_get_shared_red_addr.
574	(nvptx_goacc_reduction_fini): Likewise.
575	(nvptx_goacc_reduction_teardown): Likewise.
576
5772018-12-19  Tom de Vries  <tdevries@suse.de>
578
579	* config/nvptx/nvptx.c (worker_bcast_size): Rename as
580	oacc_bcast_size.
581	(worker_bcast_align): Rename as oacc_bcast_align.
582	(worker_bcast_sym): Rename as oacc_bcast_sym.
583	(nvptx_option_override): Update usage of oacc_bcast_*.
584	(struct wcast_data_t): Rename as broadcast_data_t.
585	(nvptx_gen_wcast): Update type of data argument and usage of
586	oacc_bcast_align.
587	(wprop_gen): Update type of data_ and usage of oacc_bcast_align.
588	(nvptx_wpropagate): Update type of data and usage of
589	oacc_bcast_{sym,size}.
590	(nvptx_single): Update type of data and usage of oacc_bcast_size.
591	(nvptx_file_end): Update usage of oacc_bcast_{sym,align,size}.
592
5932018-12-19  Tom de Vries  <tdevries@suse.de>
594
595	* config/nvptx/nvptx.md (nvptx_barsync): Add and handle operand.
596	* config/nvptx/nvptx.c (nvptx_wsync): Update call to gen_nvptx_barsync.
597
5982018-12-19  Tom de Vries  <tdevries@suse.de>
599
600	* config/nvptx/nvptx.c (nvptx_single): Always pass false to
601	nvptx_wsync.
602	(nvptx_process_pars): Likewise.
603
6042018-12-19  Tom de Vries  <tdevries@suse.de>
605
606	* config/nvptx/nvptx.c (nvptx_previous_fndecl): Declare.
607	(nvptx_set_current_function): New function.
608	(TARGET_SET_CURRENT_FUNCTION): Define.
609
6102018-12-19  Shaokun Zhang  <zhangshaokun@hisilicon.com>
611
612	* config/aarch64/aarch64-cores.def (tsv110): Fix architecture.  This
613	part is really Armv8.2 with some permitted Armv8.4 extensions.
614
6152018-12-19  Jakub Jelinek  <jakub@redhat.com>
616
617	PR target/88541
618	* config/i386/vpclmulqdqintrin.h (_mm256_clmulepi64_epi128): Enable
619	for -mavx -mvpclmulqdq rather than just for -mavx512vl -mvpclmulqdq.
620
6212018-12-19  Alexandre Oliva  <aoliva@redhat.com>
622
623	PR testsuite/86153
624	PR middle-end/83239
625	* vr-values.c
626	(vr_values::vrp_evaluate_conditional_warnv_with_ops): Extend
627	simplification of overflow tests to cover cases in which we
628	can determine the result of the comparison.
629
6302018-12-19  Bin Cheng  <bin.cheng@linux.alibaba.com>
631
632	* auto-profile.c (afdo_indirect_call): Skip generating histogram
633	value if we can't find cgraph_node for then indirected callee.  Save
634	profile_id of the cgraph_node in histogram value's first counter.
635	* value-prof.c (gimple_value_profile_transformations): Don't skip
636	for flag_auto_profile.
637
6382018-12-18  Vladimir Makarov  <vmakarov@redhat.com>
639
640	PR rtl-optimization/87759
641	* lra-assigns.c (lra_split_hard_reg_for): Recalculate
642	non_reload_pseudos.
643
6442018-12-18  Jakub Jelinek  <jakub@redhat.com>
645
646	PR target/88464
647	* config/i386/i386-builtin-types.def
648	(VOID_FTYPE_PDOUBLE_QI_V8SI_V4DF_INT,
649	VOID_FTYPE_PFLOAT_QI_V4DI_V8SF_INT,
650	VOID_FTYPE_PLONGLONG_QI_V8SI_V4DI_INT,
651	VOID_FTYPE_PINT_QI_V4DI_V8SI_INT,
652	VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT,
653	VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT,
654	VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT,
655	VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): New builtin types.
656	* config/i386/i386.c (enum ix86_builtins): Add
657	IX86_BUILTIN_SCATTERALTSIV4DF, IX86_BUILTIN_SCATTERALTDIV8SF,
658	IX86_BUILTIN_SCATTERALTSIV4DI, IX86_BUILTIN_SCATTERALTDIV8SI,
659	IX86_BUILTIN_SCATTERALTSIV2DF, IX86_BUILTIN_SCATTERALTDIV4SF,
660	IX86_BUILTIN_SCATTERALTSIV2DI and IX86_BUILTIN_SCATTERALTDIV4SI.
661	(ix86_init_mmx_sse_builtins): Fix up names of IX86_BUILTIN_GATHERALT*,
662	IX86_BUILTIN_GATHER3ALT* and IX86_BUILTIN_SCATTERALT* builtins to
663	match the IX86_BUILTIN codes.  Build 	IX86_BUILTIN_SCATTERALTSIV4DF,
664	IX86_BUILTIN_SCATTERALTDIV8SF, IX86_BUILTIN_SCATTERALTSIV4DI,
665	IX86_BUILTIN_SCATTERALTDIV8SI, IX86_BUILTIN_SCATTERALTSIV2DF,
666	IX86_BUILTIN_SCATTERALTDIV4SF, IX86_BUILTIN_SCATTERALTSIV2DI and
667	IX86_BUILTIN_SCATTERALTDIV4SI decls.
668	(ix86_vectorize_builtin_scatter): Expand those new builtins.
669
6702018-12-18  Bill Schmidt  <wschmidt@linux.ibm.com>
671
672	* doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
673	Describe when a typedef name can be used as the type specifier for
674	a vector type, and when it cannot.
675
6762018-12-18  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
677
678	* config/msp430/msp430.h: Define TARGET_VTABLE_ENTRY_ALIGN.
679
6802018-12-18  Jakub Jelinek  <jakub@redhat.com>
681
682	PR target/88513
683	PR target/88514
684	* optabs.def (vec_pack_sbool_trunc_optab, vec_unpacks_sbool_hi_optab,
685	vec_unpacks_sbool_lo_optab): New optabs.
686	* optabs.c (expand_widen_pattern_expr): Use vec_unpacks_sbool_*_optab
687	and pass additional argument if both input and target have the same
688	scalar mode of VECTOR_BOOLEAN_TYPE_P vectors.
689	* expr.c (expand_expr_real_2) <case VEC_PACK_TRUNC_EXPR>: Handle
690	VECTOR_BOOLEAN_TYPE_P pack where result has the same scalar mode
691	as the operands using vec_pack_sbool_trunc_optab.
692	* tree-vect-stmts.c (supportable_widening_operation): Use
693	vec_unpacks_sbool_{lo,hi}_optab for VECTOR_BOOLEAN_TYPE_P conversions
694	where both wider_vectype and vectype have the same scalar mode.
695	(supportable_narrowing_operation): Similarly use
696	vec_pack_sbool_trunc_optab if narrow_vectype and vectype have the same
697	scalar mode.
698	* config/i386/i386.c (ix86_get_builtin)
699	<case IX86_BUILTIN_GATHER3ALTDIV8SF>: Check for VECTOR_MODE_P
700	rather than non-VOIDmode.
701	* config/i386/sse.md (vec_pack_trunc_qi, vec_pack_trunc_<mode>):
702	Remove useless ()s around "register_operand", formatting fixes.
703	(vec_pack_sbool_trunc_qi, vec_unpacks_sbool_lo_qi,
704	vec_unpacks_sbool_hi_qi): New expanders.
705	* doc/md.texi (vec_pack_sbool_trunc_M, vec_unpacks_sbool_hi_M,
706	vec_unpacks_sbool_lo_M): Document.
707
7082018-12-18  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
709
710	* combine.c (update_rsp_from_reg_equal): Only look for the nonzero bits
711	of src in nonzero_bits_mode if the mode of src is MODE_INT and
712	HWI_COMPUTABLE.
713	(reg_nonzero_bits_for_combine): Add clarification to comment.
714
7152018-12-18  Wei Xiao  <wei3.xiao@intel.com>
716
717	* config/i386/driver-i386.c (host_detect_local_cpu): Detect cascadelake.
718	* config/i386/i386.c (fold_builtin_cpu): Handle cascadelake.
719	* doc/extend.texi: Add cascadelake.
7202018-12-17  Peter Bergner  <bergner@linux.ibm.com>
721
722	PR target/87870
723	* config/rs6000/vsx.md (nW): New mode iterator.
724	(vsx_mov<mode>_64bit): Use it.  Remove redundant GPR 0/-1 alternative.
725	Update length attribute for (<??r>, <nW>)  alternative.
726	(vsx_mov<mode>_32bit): Likewise.
727
7282018-12-17  Tom de Vries  <tdevries@suse.de>
729
730	* config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH,
731	PTX_DEFAULT_RUNTIME_DIM): Move to the top of the file.
732
7332018-12-17  Tom de Vries  <tdevries@suse.de>
734
735	* config/nvptx/nvptx.c (PTX_WARP_SIZE): Define.
736	(nvptx_simt_vf): Return PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
737
7382018-12-17  Tom de Vries  <tdevries@suse.de>
739
740	* config/nvptx/nvptx.c (nvptx_single): Fix whitespace.
741	(nvptx_neuter_pars): Likewise.
742
7432018-12-17  Tom de Vries  <tdevries@suse.de>
744
745	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Work around Fortran
746	bug PR72741 by overriding dims parameter for routines.
747
7482018-12-17  Tom de Vries  <tdevries@suse.de>
749
750	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Rewrite using
751	predicate vars.
752
7532018-12-17  Steve Ellcey  <sellcey@cavium.com>
754
755	* config/aarch64/aarch64-protos.h (aarch64_use_simple_return_insn_p):
756	New prototype.
757	(aarch64_epilogue_uses): Ditto.
758	* config/aarch64/aarch64.c (aarch64_attribute_table): New array.
759	(aarch64_simd_decl_p): New function.
760	(aarch64_reg_save_mode): New function.
761	(aarch64_function_ok_for_sibcall): Check for simd calls.
762	(aarch64_layout_frame): Check for simd function.
763	(aarch64_gen_storewb_pair): Handle E_TFmode.
764	(aarch64_push_regs): Use aarch64_reg_save_mode to get mode.
765	(aarch64_gen_loadwb_pair): Handle E_TFmode.
766	(aarch64_pop_regs): Use aarch64_reg_save_mode to get mode.
767	(aarch64_gen_store_pair): Handle E_TFmode.
768	(aarch64_gen_load_pair): Ditto.
769	(aarch64_save_callee_saves): Handle different mode sizes.
770	(aarch64_restore_callee_saves): Ditto.
771	(aarch64_components_for_bb): Check for simd function.
772	(aarch64_epilogue_uses): New function.
773	(aarch64_process_components): Check for simd function.
774	(aarch64_expand_prologue): Ditto.
775	(aarch64_expand_epilogue): Ditto.
776	(aarch64_expand_call): Ditto.
777	(aarch64_use_simple_return_insn_p): New function.
778	(TARGET_ATTRIBUTE_TABLE): New define.
779	* config/aarch64/aarch64.h (EPILOGUE_USES): Redefine.
780	(FP_SIMD_SAVED_REGNUM_P): New macro.
781	* config/aarch64/aarch64.md (simple_return): New define_expand.
782	(load_pair_dw_tftf): New instruction.
783	(store_pair_dw_tftf): Ditto.
784	(loadwb_pair<TX:mode>_<P:mode>): Ditto.
785	(storewb_pair<TX:mode>_<P:mode>): Ditto.
786
7872018-12-17  Uros Bizjak  <ubizjak@gmail.com>
788
789	PR target/88502
790	* internal-fn.def (ACOSH): New.
791	(ASINH): Ditto.
792	(ATANH): Ditto.
793	* optabs.def (acosh_optab): New.
794	(asinh_optab): Ditto.
795	(atanh_optab): Ditto.
796	* config/i386/i386-protos.h (ix86_emit_i387_asinh): New prototype.
797	(ix86_emit_i387_acosh): Ditto.
798	(ix86_emit_i387_atanh): Ditto.
799	* config/i386/i386.c (ix86_emit_i387_asinh): New function.
800	(ix86_emit_i387_acosh): Ditto.
801	(ix86_emit_i387_atanh): Ditto.
802	* config/i386/i386.md (asinhxf2): New expander.
803	(asinh<mode>2):	Ditto.
804	(acoshxf2): Ditto.
805	(acosh<mode>2): Ditto.
806	(atanhxf2): Ditto.
807	(atanh<mode>2): Ditto.
808
8092018-12-17  David Edelsohn  <dje.gcc@gmail.com>
810
811	* config.gcc (powerpc-ibm-aix6.*): Delete extra_headers.
812	(powerpc-ibm-aix7.1.*): Same.
813	(powerpc-ibm-aix[789].*): Same.
814
8152018-12-17  H.J. Lu  <hongjiu.lu@intel.com>
816
817	PR debug/79342
818	* dwarf2out.c (find_AT_string_in_table): Add insert argument
819	defaulting to INSERT and replace INSERT.
820	(find_AT_string): Likewise.
821	(output_macinfo_op): Pass NO_INSERT to find_AT_string.
822
8232018-12-15  Jan Hubicka  <hubicka@ucw.cz>
824
825	* coverage.c (struct conts_entry): Add n_counts.
826	(remap_counts_file): Record number of ocunts.
827	(get_coverage_counts): Verify that counts match.
828	* coverage.h (get_coverage_counts): Update prototype.
829	* profile.c (get_exec_counts. compute_value_histograms): Add
830	n_counts parametrs.
831
8322018-12-17  Senthil Kumar Selvaraj  <senthilkumar.selvaraj@microchip.com>
833
834	PR rtl-optimization/88253
835	* combine.c (combine_simplify_rtx): Test for side-effects before
836	substituting by zero.
837
8382018-12-17  Richard Sandiford  <richard.sandiford@arm.com>
839
840	* doc/invoke.texi (-fversion-loops-for-strides): Document
841	(loop-versioning-group-size, loop-versioning-max-inner-insns)
842	(loop-versioning-max-outer-insns): Document new --params.
843	* Makefile.in (OBJS): Add gimple-loop-versioning.o.
844	* common.opt (fversion-loops-for-strides): New option.
845	* opts.c (default_options_table): Enable fversion-loops-for-strides
846	at -O3.
847	* params.def (PARAM_LOOP_VERSIONING_GROUP_SIZE)
848	(PARAM_LOOP_VERSIONING_MAX_INNER_INSNS)
849	(PARAM_LOOP_VERSIONING_MAX_OUTER_INSNS): New parameters.
850	* passes.def: Add pass_loop_versioning.
851	* timevar.def (TV_LOOP_VERSIONING): New time variable.
852	* tree-ssa-propagate.h
853	(substitute_and_fold_engine::substitute_and_fold): Add an optional
854	block parameter.
855	* tree-ssa-propagate.c
856	(substitute_and_fold_engine::substitute_and_fold): Likewise.
857	When passed, only walk blocks dominated by that block.
858	* tree-vrp.h (range_includes_p): Declare.
859	(range_includes_zero_p): Turn into an inline wrapper around
860	range_includes_p.
861	* tree-vrp.c (range_includes_p): New function, generalizing...
862	(range_includes_zero_p): ...this.
863	* tree-pass.h (make_pass_loop_versioning): Declare.
864	* gimple-loop-versioning.cc: New file.
865
8662018-12-15  Jan Hubicka  <hubicka@ucw.cz>
867
868	* ipa-fnsummary.c (remap_edge_change_prob): Do not ICE when changes
869	are not streamed in.
870
8712018-12-15  H.J. Lu  <hongjiu.lu@intel.com>
872
873	PR target/88483
874	* config/i386/i386.c (ix86_finalize_stack_frame_flags): Revert
875	reversion 267133.
876
8772018-12-15  Jan Hubicka  <hubicka@ucw.cz>
878
879	* ipa-fnsummary.c (analyze_function_body): Do not loeak conds and
880	size_time_table.
881	(ipa_fn_summary_generate): Add prevails parameter; do not allocate
882	data when symbol is not prevailing.
883	(inline_read_section): Likewise.
884
8852018-12-15  Jan Hubicka  <hubicka@ucw.cz>
886
887	* cgraph.h (cgraph_node): Add predicate prevailing_p.
888	(cgraph_edge): Add predicate possible_call_in_translation_unit_p.
889	* ipa-prop.c (ipa_write_jump_function): Optimize streaming of ADDR_EXPR.
890	(ipa_read_jump_function): Add prevails parameter; optimize streaming.
891	(ipa_read_edge_info): Break out from ...
892	(ipa_read_node_info): ... here; optimize streaming.
893	* cgraph.c (cgraph_edge::possibly_call_in_translation_unit_p): New
894	predicate.
895
8962018-12-15  Jan Hubicka  <hubicka@ucw.cz>
897
898	* ipa-utils.c (ipa_merge_profiles): Do no merging when source function
899	has zero count.
900
9012018-12-15  Jakub Jelinek  <jakub@redhat.com>
902
903	PR tree-optimization/88464
904	PR target/88498
905	* tree-vect-stmts.c (vect_build_gather_load_calls): For NARROWING
906	and mask with integral masktype, don't try to permute mask vectors,
907	instead emit VEC_UNPACK_{LO,HI}_EXPR.  Fix up NOP_EXPR operand.
908	(vectorizable_store): Handle masked scatters with decl and integral
909	mask type.
910	(permute_vec_elements): Allow scalar_dest to be NULL.
911	* config/i386/i386.c (ix86_get_builtin)
912	<case IX86_BUILTIN_GATHER3ALTDIV16SF>: Use lowpart_subreg for masks.
913	<case IX86_BUILTIN_GATHER3ALTDIV8SF>: Don't assume mask and src have
914	to be the same.
915
9162018-12-15  Jan Hubicka  <hubicka@ucw.cz>
917
918	* ipa.c (cgraph_build_static_cdtor_1): Add OPTIMIZATION and TARGET
919	parameters.
920	(cgraph_build_static_cdtor): Update.
921	(build_cdtor): Use OPTIMIZATION and TARGET of the first real cdtor
922	callsed.
923
9242018-12-15  Alan Modra  <amodra@gmail.com>
925
926	* config/rs6000/rs6000.c (generate_set_vrsave, rs6000_emit_savres_rtx),
927	(rs6000_emit_prologue, rs6000_call_aix, rs6000_call_sysv),
928	(rs6000_call_darwin_1): Use gen_hard_reg_clobber.
929
9302018-12-15  Jakub Jelinek  <jakub@redhat.com>
931
932	PR target/88489
933	* config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
934	(avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
935	instead of UNSPEC_FIXUPIMM.
936
937	PR rtl-optimization/88478
938	* cselib.c (cselib_record_sets): Move sets[i].src_elt tests
939	after REG_P (dest) test.
940
9412018-12-14  Martin Sebor  <msebor@redhat.com>
942
943	PR tree-optimization/88372
944	* calls.c (maybe_warn_alloc_args_overflow): Handle function pointers.
945	* tree-object-size.c (alloc_object_size): Same.  Simplify.
946	* doc/extend.texi (Object Size Checking): Update.
947	(Other Builtins): Add __builtin_object_size.
948	(Common Type Attributes): Add alloc_size.
949	(Common Variable Attributes): Ditto.
950
9512018-12-14  Martin Sebor  <msebor@redhat.com>
952
953	PR rtl-optimization/87096
954	* gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Avoid
955	folding calls whose bound may exceed INT_MAX.  Diagnose bound ranges
956	that exceed the limit.
957
9582018-12-14  Martin Sebor  <msebor@redhat.com>
959
960	PR web/79738
961	* doc/extend.texi (attribute const, pure): Clarify.
962
9632018-12-14  H.J. Lu  <hongjiu.lu@intel.com>
964
965	* config/i386/i386.c (rest_of_insert_endbranch): Insert ENDBR
966	at the function entry only when -mmanual-endbr isn't used or
967	there is cf_check function attribute.
968	(ix86_attribute_table): Add cf_check.
969	* config/i386/i386.opt: Add -mmanual-endbr.
970	* doc/extend.texi: Document cf_check attribute.
971	* doc/invoke.texi: Document -mmanual-endbr.
972
9732018-12-14  Thomas Schwinge  <thomas@codesourcery.com>
974	    Cesar Philippidis  <cesar@codesourcery.com>
975
976	* omp-offload.c (inform_oacc_loop): New function.
977	(execute_oacc_device_lower): Use it to display loop parallelism.
978
9792018-12-14  Jakub Jelinek  <jakub@redhat.com>
980
981	PR c++/82294
982	PR c++/87436
983	* expr.h (categorize_ctor_elements): Add p_unique_nz_elts argument.
984	* expr.c (categorize_ctor_elements_1): Likewise.  Compute it like
985	p_nz_elts, except don't multiply it by mult.  Adjust recursive call.
986	Fix up COMPLEX_CST handling.
987	(categorize_ctor_elements): Add p_unique_nz_elts argument, initialize
988	it and pass it through to categorize_ctor_elements_1.
989	(mostly_zeros_p, all_zeros_p): Adjust categorize_ctor_elements callers.
990	* gimplify.c (gimplify_init_constructor): Likewise.  Don't force
991	ctor into readonly data section if num_unique_nonzero_elements is
992	smaller or equal to 1/8 of num_nonzero_elements and size is >= 64
993	bytes.
994
9952018-12-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
996
997	* config/arm/arm.md (arm_movdi): Split if -mslow-flash-data and
998	source is a constant that would be loaded by literal pool.
999	(movsf expander): Generate a no_literal_pool_sf_immediate insn if
1000	-mslow-flash-data is present, targeting hardfloat ABI and source is a
1001	float constant that cannot be loaded via vmov.
1002	(movdf expander): Likewise but generate a no_literal_pool_df_immediate
1003	insn.
1004	(arm_movsf_soft_insn): Split if -mslow-flash-data and source is a
1005	float constant that would be loaded by literal pool.
1006	(softfloat constant movsf splitter): Splitter for the above case.
1007	(movdf_soft_insn): Split if -mslow-flash-data and source is a float
1008	constant that would be loaded by literal pool.
1009	(softfloat constant movdf splitter): Splitter for the above case.
1010	* config/arm/constraints.md (Pz): Document existing constraint.
1011	(Ha): Define constraint.
1012	(Tu): Likewise.
1013	* config/arm/predicates.md (hard_sf_operand): New predicate.
1014	(hard_df_operand): Likewise.
1015	* config/arm/thumb2.md (thumb2_movsi_insn): Split if
1016	-mslow-flash-data and constant would be loaded by literal pool.
1017	* constant/arm/vfp.md (thumb2_movsi_vfp): Likewise and disable constant
1018	load in VFP register.
1019	(movdi_vfp): Likewise.
1020	(thumb2_movsf_vfp): Use hard_sf_operand as predicate for source to
1021	prevent match for a constant load if -mslow-flash-data and constant
1022	cannot be loaded via vmov.  Adapt constraint accordingly by
1023	using Ha instead of E for generic floating-point constant load.
1024	(thumb2_movdf_vfp): Likewise using hard_df_operand predicate instead.
1025	(no_literal_pool_df_immediate): Add a clobber to use as the
1026	intermediate general purpose register and also enable it after reload
1027	but disable it constant is a valid FP constant.  Add constraints and
1028	generate a DI intermediate load rather than 2 SI loads.
1029	(no_literal_pool_sf_immediate): Add a clobber to use as the
1030	intermediate general purpose register and also enable it after
1031	reload.
1032
10332018-12-14  Uros Bizjak  <ubizjak@gmail.com>
1034
1035	PR target/88474
1036	* internal-fn.def (HYPOT): New.
1037	* optabs.def (hypot_optab): New.
1038	* config/i386/i386.md (hypot<mode>3): New expander.
1039
10402018-12-14  Jeff Law  <law@redhat.com>
1041
1042	* target.def (post_cfi_startproc): Fix text.
1043
10442018-12-14  Sam Tebbs  <sam.tebbs@arm.com>
1045
1046	* doc/tm.texi (TARGET_ASM_POST_CFI_STARTPROC): Define.
1047	* doc/tm.texi.in (TARGET_ASM_POST_CFI_STARTPROC): Define.
1048	* dwarf2out.c (dwarf2out_do_cfi_startproc): Trigger the hook.
1049	* hooks.c (hook_void_FILEptr_tree): Define.
1050	* hooks.h (hook_void_FILEptr_tree): Define.
1051	* target.def (post_cfi_startproc): Define.
1052
10532018-12-14  Tom de Vries  <tdevries@suse.de>
1054
1055	* lto-cgraph.c (verify_node_partition): New function.
1056	(input_overwrite_node, input_varpool_node): Use verify_node_partition.
1057
10582018-12-14  H.J. Lu  <hongjiu.lu@intel.com>
1059
1060	PR target/88483
1061	* config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
1062	use get_frame_size ().
1063
10642018-12-14  Andrew Stubbs  <ams@codesourcery.com>
1065
1066	* gcc/lra-int.h (lra_register_new_scratch_op): Add third parameter.
1067	* gcc/lra-remat.c (update_scratch_ops): Pass icode to
1068	lra_register_new_scratch_op.
1069	* gcc/lra.c (struct sloc): Add icode field.
1070	(lra_register_new_scratch_op): Add icode parameter.
1071	Use icode to skip insns that have changed beyond recognition.
1072
10732018-12-14  Eric Botcazou  <ebotcazou@adacore.com>
1074
1075	* dwarf2out.c (analyze_discr_in_predicate): Simplify.
1076	(analyze_variants_discr): Deal with naked boolean discriminants.
1077
10782018-12-14  Claudiu Zissulescu  <claziss@synopsys.com>
1079
1080	* config/arc/arc.c (arc_restore_callee_milli) Don't clobber off
1081	variable.
1082
10832018-12-14  Claudiu Zissulescu  <claziss@synopsys.com>
1084
1085	* config/arc/arc.h (reg_class): Add SIBCALL_REGS.
1086
10872018-12-14  Richard Biener  <rguenther@suse.de>
1088
1089	* gimple-ssa-split-paths.c (is_feasible_trace): Remove
1090	duplicated code block.
1091
10922018-12-14  Alan Modra  <amodra@gmail.com>
1093
1094	PR rtl-optimization/88311
1095	* config/rs6000/rs6000.c (rs6000_call_sysv): Do not mask cookie.
1096	(rs6000_sibcall_sysv): Likewise.
1097
10982018-12-14  Segher Boessenkool  <segher@kernel.crashing.org>
1099
1100	PR rtl-optimization/88001
1101	* function.c (match_asm_constraints_1): Don't invalidly share RTL.
1102
11032018-12-14  Bin Cheng  <bin.cheng@linux.alibaba.com>
1104
1105	* auto-profile.c (afdo_annotate_cfg): Call update_max_bb_count even
1106	if autofdo counts are all zeros.
1107
11082018-12-14  Bin Cheng  <bin.cheng@linux.alibaba.com>
1109
1110	* auto-profile.c (afdo_indirect_call): Skip generating histogram
1111	value for internal call.
1112
11132018-12-14  Bin Cheng  <bin.cheng@linux.alibaba.com>
1114
1115	* auto-profile.c (AFDO_EINFO): New macro.
1116	(class edge_info): New class.
1117	(is_edge_annotated, set_edge_annotated): Delete.
1118	(afdo_propagate_edge, afdo_propagate_circuit, afdo_propagate): Remove
1119	parameter.  Adjust edge count computation and annotation using class
1120	edge_info.
1121	(afdo_calculate_branch_prob, afdo_annotate_cfg): Likewise.
1122
11232018-12-13  Michael Ploujnikov  <michael.ploujnikov@oracle.com>
1124
1125	* ipa-cp.c (print_all_lattices): Skip cp clones.
1126
1127	* ipa-cp.c: Fix various comment typos.
1128
11292018-12-13  Jakub Jelinek  <jakub@redhat.com>
1130
1131	PR tree-optimization/88444
1132	* tree-inline.c (fold_marked_statements): Iterate up to
1133	last_basic_block_for_fn rather than n_basic_blocks_for_fn.
1134
1135	PR rtl-optimization/88470
1136	* cfgcleanup.c (outgoing_edges_match): If the function is
1137	shrink-wrapped and bb1 ends with a JUMP_INSN with a single fake
1138	edge to EXIT, return false.
1139
11402018-12-13  Martin Sebor  <msebor@redhat.com>
1141
1142	* doc/extend.texi: Consistently use @code for const and volatile
1143	qualifiers, the true and false constants, and asm statements.
1144
11452018-12-13  Vladimir Makarov  <vmakarov@redhat.com>
1146
1147	PR rtl-optimization/88414
1148	* lra-int.h (lra_asm_error_p): New.
1149	* lra-assigns.c (lra_assign): Check lra_asm_error_p for checking
1150	call crossed pseudo assignment correctness.
1151	(lra_split_hard_reg_for): Set up lra_asm_error_p.
1152	* lra-constraints.c (curr_insn_transform): Ditto.
1153	* lra.c (lra_asm_error_p): New.
1154	(lra): Reset lra_asm_error_p.
1155
11562018-12-13  Jakub Jelinek  <jakub@redhat.com>
1157
1158	PR rtl-optimization/88416
1159	* valtrack.c (cleanup_auto_inc_dec): Handle pre/post-inc/dec/modify
1160	even if !AUTO_INC_DEC.
1161
11622018-12-13  David Edelsohn  <dje.gcc@gmail.com>
1163
1164	* config/rs6000/rs6000.c (rs6000_function_arg): Ensure type is
1165	non-NULL.
1166	(rs6000_arg_partial_bytes): Same.
1167
11682018-12-13  Jason Merrill  <jason@redhat.com>
1169
1170	* gdbinit.in (pp): New macro.
1171	(pbb): Remove.
1172
11732018-12-13  Jakub Jelinek  <jakub@redhat.com>
1174
1175	PR tree-optimization/88464
1176	* tree-vect-stmts.c (vect_build_gather_load_calls): Handle INTEGER_TYPE
1177	masktype if mask is non-NULL.
1178	(vectorizable_load): Don't reject masked gather loads if masktype
1179	in the decl is INTEGER_TYPE.
1180
11812018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
1182
1183	* config/s390/s390-builtins.def (s390_vec_double_s64): Map to
1184	s390_vec_double_s64 instead of s390_vcdgb.
1185	(s390_vec_double_u64): Map to s390_vec_double_u64 instead of
1186	s390_vcdlgb.
1187
11882018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
1189
1190	* config/s390/vx-builtins.md ("vec_ctd_s64", "vec_ctd_u64")
1191	("vec_ctsl", "vec_ctul"): Replace 0 with VEC_NOINEXACT.
1192	("vec_double_s64", "vec_double_u64"): Replace 4 with VEC_INEXACT.
1193
11942018-12-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1195
1196	* doc/invoke.texi (-msve-vector-bits): Clarify -msve-vector-bits=128
1197	behavior.
1198
11992018-12-13  Wei Xiao  <wei3.xiao@intel.com>
1200
1201	* common/config/i386/i386-common.c (processor_names): Add cascadelake.
1202	(processor_alias_table): Add cascadelake.
1203	* config.gcc: Add -march=cascadelake.
1204	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
1205	cascadelake.
1206	* config/i386/i386.c (Add m_CASCADELAKE): New.
1207	(processor_cost_table): Add cascadelake.
1208	(get_builtin_code_for_version): Handle cascadelake.
1209	* config/i386/i386.h (TARGET_CASCADELAKE, PROCESSOR_CASCADELAKE): New.
1210	(PTA_CASCADELAKE): Ditto.
1211	* doc/invoke.texi: Add -march=cascadelake.
1212
12132018-12-13  Jakub Jelinek  <jakub@redhat.com>
1214
1215	PR target/88465
1216	* config/i386/i386.md (*movdi_internal, *movsi_internal,
1217	*movhi_internal, *movqi_internal): Add alternative(s) to load
1218	0 or -1 into k registers using kxor or kxnoq instructions.
1219
1220	PR target/88461
1221	* config/i386/sse.md (VI1248_AVX512VLBW, AVX512ZEXTMASK): New
1222	mode iterators.
1223	(<avx512>_testm<mode>3<mask_scalar_merge_name>,
1224	<avx512>_testnm<mode>3<mask_scalar_merge_name>): Merge patterns
1225	with VI12_AVX512VL and VI48_AVX512VL iterators into ones with
1226	VI1248_AVX512VLBW iterator.
1227	(*<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
1228	*<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
1229	*<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
1230	*<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask): New
1231	define_insns.
1232
1233	PR target/88461
1234	* config/i386/i386.md (*zero_extendsidi2, zero_extend<mode>di2,
1235	*zero_extend<mode>si2, *zero_extendqihi2): Add =*k, *km alternatives.
1236
12372018-12-12  Tom de Vries  <tdevries@suse.de>
1238	    Jakub Jelinek  <jakub@redhat.com>
1239
1240	* omp-builtins.def (BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_START,
1241	BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_START,
1242	BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_START,
1243	BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_START,
1244	BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME,
1245	BUILT_IN_GOMP_PARALLEL_LOOP_MAYBE_NONMONOTONIC_RUNTIME): Fix up
1246	function types - remove one argument.
1247
12482018-12-12  Martin Sebor  <msebor@redhat.com>
1249
1250	* doc/extend.texi (attribute copy): Fix typos.
1251
12522018-12-12  Martin Sebor  <msebor@redhat.com>
1253
1254	* doc/extend.texi (Function Attributes): Clarify C++ aspects.
1255	(Variable Attributes): Same.
1256	(Type Attributes): Same.
1257
12582018-12-12  Olivier Hainque  <hainque@adacore.com>
1259
1260	* config/aarch64/aarch64.c (aarch64_override_options): Once arch,
1261	cpu and tune were validated, insert SUBTARGET_OVERRIDE_OPTIONS if
1262	defined.
1263
12642018-12-12  Olivier Hainque  <hainque@adacore.com>
1265
1266	* config/aarch64/aarch64.c (PROBE_STACK_FIRST_REG) : Redefine as
1267	R9_REGNUM instead of 9.
1268	(PROBE_STACK_SECOND_REG): Redefine as R10_REGNUM instead of 10.
1269
12702018-12-12  Eric Botcazou  <ebotcazou@adacore.com>
1271
1272	PR target/86806
1273	* config/sparc/sparc.md (unspecv): Add UNSPECV_SPECULATION_BARRIER.
1274	(speculation_barrier): New instruction for V9.
1275
12762018-12-12  Segher Boessenkool  <segher@kernel.crashing.org>
1277	    Iain Sandoe  <iain@sandoe.co.uk>
1278
1279	PR target/88343
1280	* config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg
1281	unless it has been used.
1282	(first_reg_to_save): Remove dead code.
1283
12842018-12-12  Iain Sandoe  <iain@sandoe.co.uk>
1285
1286	* config/rs6000/rs6000-protos.h (rs6000_call_darwin): New.
1287	(rs6000_sibcall_darwin): New. (macho_call_template): Remove.
1288	* config/rs6000/rs6000.c (get_prev_label): Forward declaration.
1289	(rs6000_call_template_1): Handle Darwin.
1290	(macho_call_template): Remove.
1291	(rs6000_call_sysv): Remove handling for Darwin.
1292	(rs6000_call_darwin_1, rs6000_call_darwin): New
1293	(rs6000_sibcall_darwin): New.
1294	* config/rs6000/rs6000.md (define_expand “call”): Handle Darwin
1295	with its own expander. (define_expand “call_value”): Likewise.
1296	(define_expand “sibcall”): Likewise.
1297	(define_expand “sibcall_value”): Likewise.
1298	(call_nonlocal_sysv): Remove Darwin special-casing.
1299	(call_value_nonlocal_sysv): Likewise.
1300
13012018-12-12  Iain Sandoe  <iain@sandoe.co.uk>
1302
1303	* config/rs6000/darwin.md (call_indirect_nonlocal_darwin64): Remove.
1304	(call_nonlocal_darwin64): Remove.
1305	(call_value_indirect_nonlocal_darwin64): Remove.
1306	(call_value_nonlocal_darwin64): Remove.
1307	* config/rs6000/rs6000.c (rs6000_call_template_1): Handle Darwin with
1308	the same asm output as AIX/ELFv2.  (rs6000_call_sysv): Preserve the
1309	CALL_LONG flag when needed for Darwin.
1310	* config/rs6000/rs6000.md (define expand “call”): Expand Darwin as
1311	per sysv.
1312	(define_expand “call_value”): Likewise.
1313	(define_expand “sibcall”): Likewise.
1314	(define_expand “sibcall_value”): Likewise.
1315	(call_indirect_nonlocal_sysv): Mark the clobber mode P.
1316	(call_nonlocal_sysv): Likewise.
1317	(call_nonlocal_sysv_secure): Likewise.
1318	(call_value_indirect_nonlocal_sysv): Likewise.
1319	(call_value_nonlocal_sysv): Likewise.
1320	(call_value_nonlocal_sysv_secure): Likewise.
1321	(call_local64): Mark the clobber DI.
1322	(call_value_local64): Likewise.
1323
13242018-12-11  Jakub Jelinek  <jakub@redhat.com>
1325
1326	PR tree-optimization/88444
1327	* tree-vrp.c (register_edge_assert_for_2): Only register assertions
1328	for conversions if rhs1 is a SSA_NAME.
1329
13302018-12-11  Dimitar Dimitrov  <dimitar@dinux.eu>
1331
1332	* cfgexpand.c (asm_clobber_reg_is_valid): Also produce
1333	error when stack pointer is clobbered.
1334	(expand_asm_stmt): Refactor clobber check in separate function.
1335
13362018-12-11  Eric Botcazou  <ebotcazou@adacore.com>
1337
1338	* config/rs6000/vxworks.h (RS6000_STARTING_FRAME_OFFSET): Define,
1339	accounting for STACK_BOUNDARY 128.
1340	(STACK_DYNAMIC_OFFSET): Likewise.
1341
13422018-12-11  Jakub Jelinek  <jakub@redhat.com>
1343
1344	PR target/88425
1345	* config/i386/i386.md (*x86_mov<SWI48:mode>cc_0_m1_neg_leu<SWI:mode>):
1346	New define_insn_and_split.
1347
13482018-12-11  Richard Biener  <rguenther@suse.de>
1349
1350	PR middle-end/88448
1351	PR middle-end/88415
1352	* gimple.c (gimple_assign_set_rhs_with_ops): Revert previous
1353	change.
1354	* tree-complex.c (update_complex_assignment): Properly transfer
1355	or clean EH info around gimple_assign_set_rhs_with_ops.
1356
13572018-12-11  Richard Earnshaw  <rearnsha@arm.com>
1358
1359	PR target/87369
1360	* config/aarch64/iterators.md (sizem1): Add sizes for SFmode and DFmode.
1361	(Vbtype): Add SFmode mapping.
1362	* config/aarch64/aarch64.md (copysigndf3, copysignsf3): Delete.
1363	(copysign<GPF:mode>3): New expand pattern.
1364	(copysign<GPF:mode>3_insn): New insn pattern.
1365
13662018-12-11  Richard Biener  <rguenther@suse.de>
1367
1368	* ccmp.c (ccmp_candidate_p): Use GIMPLE API properly.
1369
13702018-12-11  Jakub Jelinek  <jakub@redhat.com>
1371
1372	PR lto/86004
1373	* doc/sourcebuild.texi (lto_incremental): Document new effective
1374	target.
1375
13762018-12-11  Segher Boessenkool  <segher@kernel.crashing.org>
1377
1378	PR target/88145
1379	* config/rs6000/rs6000.c (rs6000_expand_zeroop_builtin): Use
1380	rs6000_isa_flags instead of rs6000_isa_flags_explicit to decide
1381	whether soft float is enabled.
1382	(rs6000_expand_mtfsb_builtin): Ditto.
1383	(rs6000_expand_set_fpscr_rn_builtin): Ditto.
1384	(rs6000_expand_set_fpscr_drn_builtin): Ditto.
1385
13862018-12-10  Jeff Law  <law@redhat.com>
1387
1388	PR tree-optimization/80520
1389	* gimple-ssa-split-paths.c (is_feasible_trace): Recognize half
1390	diamonds that are likely if convertable.
1391
13922018-12-10  Martin Sebor  <msebor@redhat.com>
1393
1394	PR tree-optimization/86196
1395	* gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use
1396	base size only of arrays.
1397
13982018-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
1399
1400	* config.gcc (Obsolete configurations): Delete powerpc*-*-*spe*.
1401	(Unsupported targets): Add powerpc*-*-*spe*.
1402	(powerpc*-*-*spe*): Delete.
1403	(powerpc-*-eabispe*): Delete.
1404	(powerpc-*-rtems*spe*): Delete.
1405	(powerpc*-*-linux*spe*): Delete.
1406	(powerpc*-*-linux*): Do not handle the linux*spe* targets.
1407	(powerpc-wrs-vxworks*spe): Delete.
1408	(with_cpu setting code): Delete powerpc*-*-*spe* handling.
1409	* config.host (target powerpc*-*-*spe*): Delete.
1410	* doc/invoke.texi (PowerPC SPE Options): Delete.
1411	(PowerPC SPE Options): Delete.
1412	* config/powerpcspe: Delete.
1413
14142018-12-10  Uros Bizjak  <ubizjak@gmail.com>
1415
1416	PR target/88418
1417	* config/i386/i386.c (ix86_expand_sse_cmp): For vector modes,
1418	check operand 1 with vector_operand predicate.
1419	(ix86_expand_sse_movcc): For vector modes, check op_true with
1420	vector_operand, not nonimmediate_operand.
1421
14222018-12-10  Richard Biener  <rguenther@suse.de>
1423
1424	* tree-affine.c (tree_to_aff_combination): Remove unreachable
1425	MEM_REF case.
1426	(aff_combination_expand): Cache on SSA names, not possibly
1427	on conversion trees.  Avoid expanding cases we do not handle.
1428
14292018-12-10  Richard Biener  <rguenther@suse.de>
1430
1431	PR tree-optimization/88427
1432	* vr-values.c (vr_values::extract_range_from_phi_node):
1433	Handle symbolic ranges conservatively when trying to drop
1434	to Inf +- 1.
1435
14362018-12-10  Martin Jambor  <mjambor@suse.cz>
1437
1438	PR ipa/88214
1439	* ipa-prop.c (determine_locally_known_aggregate_parts): Make sure
1440	we check pointers against pointers.
1441
14422018-12-10  Richard Biener  <rguenther@suse.de>
1443
1444	PR middle-end/88415
1445	* gimple.c (gimple_assign_set_rhs_with_ops): Transfer EH
1446	info to a newly allocated stmt.
1447
14482018-12-10  Jerome Lambourg  <lambourg@adacore.com>
1449
1450	* config/vxworksae.h (TARGET_VXWORKS_HAVE_CTORS_DTORS): Define.
1451
14522018-12-10  Fredrik Nyström  <fredrik@lysator.liu.se>
1453
1454	PR bootstrap/65725
1455	* config/sol2.h: Only use libgcc-unwind.map if
1456	ENABLE_SHARED_LIBGCC.
1457
14582018-12-10  Bin Cheng  <bin.cheng@linux.alibaba.com>
1459
1460	* auto-profile.c (afdo_calculate_branch_prob): Convert profile_count
1461	to afdo precision quality.
1462	(afdo_callsite_hot_enough_for_early_inline): Likewise.
1463	(afdo_annotate_cfg): Set profile_count for exit basic block.
1464
14652018-12-10  Bin Cheng  <bin.cheng@linux.alibaba.com>
1466
1467	* auto-profile.c (string_table::get_index_by_decl)
1468	(function_instance::get_function_instance_by_decl): Avoid infinite
1469	recursion by using DECL_FROM_INLINE.
1470
14712018-12-09  John David Anglin  <danglin@gcc.gnu.org>
1472
1473	* config.gcc (hppa*-*-linux*): Add pa/t-pa to tmake_file.  Define
1474	d_target_objs.
1475	* config/pa/pa-protos.h (pa_d_target_versions): New prototype.
1476	* config/pa/pa.h (TARGET_D_CPU_VERSIONS): Define.
1477	* config/pa/pa-d.c: New file.
1478	* config/pa/t-pa: New file.
1479
14802018-12-08  Bin Cheng  <bin.cheng@linux.alibaba.com>
1481
1482	* ipa-cp.c (update_profiling_info): Call adjust_for_ipa_scaling for
1483	zero profile count.
1484
14852018-12-08  Jakub Jelinek  <jakub@redhat.com>
1486
1487	PR fortran/88304
1488	* tree-nested.c (convert_local_reference_stmt): Handle clobbers where
1489	lhs is not a decl normally, don't call use_pointer_in_frame on that
1490	lhs.
1491
14922018-12-08  Eric Botcazou  <ebotcazou@adacore.com>
1493
1494	PR rtl-optimization/88390
1495	* dwarf2cfi.c (struct dw_cfi_row): Add window_save field.
1496	(cfi_row_equal_p): Compare it.
1497	(dwarf2out_frame_debug_cfa_window_save): Add FAKE parameter.
1498	If FAKE is false, set window_save of the current row.
1499	(dwarf2out_frame_debug) <REG_CFA_TOGGLE_RA_MANGLE>: Call above
1500	function with FAKE parameter set to true.
1501	<REG_CFA_WINDOW_SAVE>: Likewise but with FAKE parameter set to false.
1502	(change_cfi_row): Emit a DW_CFA_GNU_window_save if necessary.
1503
15042018-12-07  Peter Bergner  <bergner@linux.ibm.com>
1505
1506	PR target/87496
1507	* config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
1508	-mabi=ieeelongdouble and -mabi=ibmlongdouble without -mlong-double-128.
1509	Do not error for -mabi=ibmlongdouble and no ISA 2.06 support.
1510	* doc/invoke.texi: Document -mabi=ibmlongdouble and -mabi=ieeelongdouble
1511	require -mlong-double-128.
1512
15132018-12-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1514
1515	* config/aarch64/aarch64.c (aarch64_tuning_override_functions): Add
1516	sve_width entry.
1517	(aarch64_parse_sve_width_string): Define.
1518
15192018-12-07  Jeff Law  <law@redhat.com>
1520
1521	PR middle-end/87813
1522	* gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Add
1523	m_update_global_ranges member.  Add corresponding argument to ctor.
1524	* gimple-ssa-evrp-analyze.c
1525	(evrp_range_analyzer::evrp_range_analyzer): Add new argument and
1526	initialize m_update_global_ranges.
1527	(evrp_range_analyzer::set_ssa_range_info): Assert that we are
1528	updating global ranges.
1529	(evrp_range_analyzer::record_ranges_from_incoming_edge): Only
1530	update global ranges if explicitly requested.
1531	(evrp_range_analyzer::record_ranges_from_phis): Similarly.
1532	(evrp_range_analyzer::record_ranges_from_stmt): Similarly.
1533	* gimple-ssa-evrp.c (evrp_dom_walker): Pass new argument to
1534	evrp_range_analyzer ctor.
1535	* gimple-ssa-sprintf.c (sprintf_dom_walker): Similarly.
1536	* tree-ssa-dom.c (dom_opt_dom_walker): Similarly.
1537
15382018-12-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1539
1540	* config/aarch64/aarch64-opts.h (aarch64_sve_vector_bits_enum):
1541	Add SVE_NOT_IMPLEMENTED value.
1542	* config/aarch64/aarch64-protos.h (struct tune_params): Add sve_width
1543	field.
1544	* config/aarch64/aarch64.c (generic_tunings,cortexa35_tunings,
1545	cortexa53_tunings, cortexa57_tunings, cortexa72_tunings,
1546	cortexa73_tunings, exynosm1_tunings, thunderx_tunings,
1547	thunderx_tunings, tsv110_tunings, xgene1_tunings, qdf24xx_tunings,
1548	saphira_tunings, thunderx2t99_tunings, emag_tunings):
1549	Specify sve_width.
1550	(aarch64_estimated_poly_value): Define.
1551	(TARGET_ESTIMATED_POLY_VALUE): Define.
1552
15532018-12-07  Paul A. Clarke  <pc@us.ibm.com>
1554
1555	PR target/88408
1556	* config/rs6000/mmintrin.h (_mm_packs_pu16): Correctly use "__vector".
1557
15582018-12-07  Vladimir Makarov  <vmakarov@redhat.com>
1559
1560	PR rtl-optimization/88349
1561	* ira-costs.c (record_operand_costs): Check bigger reg class on
1562	NO_REGS.
1563
15642018-12-07  Richard Sandiford  <richard.sandiford@arm.com>
1565
1566	* config/aarch64/aarch64-sve.md (*mul<mode>3, *v<optab><mode>3):
1567	Split the patterns after reload if we don't need the predicate
1568	operand.
1569	(*post_ra_mul<mode>3, *post_ra_v<optab><mode>3): New patterns.
1570
15712018-12-07  Richard Sandiford  <richard.sandiford@arm.com>
1572
1573	* config/aarch64/iterators.md (SVE_UNPRED_FP_BINARY): New code
1574	iterator.
1575	(sve_fp_op): Handle minus and mult.
1576	* config/aarch64/aarch64-sve.md (*add<mode>3, *sub<mode>3)
1577	(*mul<mode>3): Split the patterns after reload if we don't
1578	need the predicate operand.
1579	(*post_ra_<sve_fp_op><mode>3): New pattern.
1580
15812018-12-07  Bin Cheng  <bin.cheng@linux.alibaba.com>
1582
1583	* profile-count.h (profile_count::oeprator>=): Fix typo by inverting
1584	return condition when *this is precise zero.
1585
15862018-12-07  Jakub Jelinek  <jakub@redhat.com>
1587
1588	PR target/85593
1589	* final.c (rest_of_handle_final): Don't call collect_fn_hard_reg_usage
1590	for functions with naked attribute.
1591
1592	PR c/88367
1593	* tree-vrp.c (extract_range_from_binary_expr): For POINTER_PLUS_EXPR
1594	with -fno-delete-null-pointer-checks, set_nonnull only if the pointer
1595	is non-NULL and offset is known to have most significant bit clear.
1596	* vr-values.c (vr_values::vrp_stmt_computes_nonzero): For ADDR_EXPR
1597	of MEM_EXPR, return true if the MEM_EXPR has non-zero offset with
1598	most significant bit clear.  If offset does have most significant bit
1599	set and -fno-delete-null-pointer-checks, don't return true even if
1600	the base pointer is non-NULL.
1601
16022018-12-06  Alexandre Oliva  <aoliva@redhat.com>
1603
1604	* cselib.c (cselib_record_sets): Skip strict low part sets
1605	with NULL src_elt.
1606
16072018-12-06  Paul A. Clarke  <pc@us.ibm.com>
1608
1609	PR target/88316
1610	* config/rs6000/smmintrin.h: New file.
1611	* config.gcc: Add smmintrin.h to extra_headers for powerpc*-*-*.
1612
16132018-12-06  Paul A. Clarke  <pc@us.ibm.com>
1614
1615	PR target/88316
1616	* config/rs6000/mmintrin.h (_mm_unpackhi_pi8): Fix for big-endian.
1617	(_mm_unpacklo_pi8): Likewise.
1618	(_mm_mulhi_pi16): Likewise.
1619	(_mm_packs_pi16): Fix for big-endian. Use preferred API.
1620	(_mm_packs_pi32): Likewise.
1621	(_mm_packs_pu16): Likewise.
1622	* config/rs6000/xmmintrin.h (_mm_cvtss_si32): Fix for big-endian.
1623	(_mm_cvtss_si64): Likewise.
1624	(_mm_cvtpi32x2_ps): Likewise.
1625	(_mm_shuffle_ps): Likewise.
1626	(_mm_movemask_pi8): Likewise.
1627	(_mm_mulhi_pu16): Likewise.
1628	(_mm_sad_pu8): Likewise.
1629	(_mm_sad_pu8): Likewise.
1630	(_mm_cvtpu16_ps): Fix for big-endian. Use preferred API.
1631	(_mm_cvtpu8_ps): Likewise.
1632	(_mm_movemask_ps): Better #else case for big-endian (no functional
1633	change).
1634	(_mm_shuffle_pi16): Likewise.
1635	* config/rs6000/emmintrin.h (_mm_movemask_pd): Fix for big-endian.
1636	Better #else case for big-endian (no functional change).
1637	(_mm_movemask_epi8): Likewise.
1638	(_mm_shufflehi_epi16): Likewise.
1639	(_mm_shufflelo_epi16): Likewise.
1640	(_mm_shuffle_epi32): Likewise.
1641	(_mm_mul_epu32): Fix for big-endian.
1642	(_mm_bsrli_si128): Likewise.
1643	(_mm_cvtps_pd): Better #else case for big endian.
1644	(_mm_mulhi_epi16): Likewise.
1645	(_mm_mul_epu32): Likewise.
1646	(_mm_slli_si128): Likewise.
1647	(_mm_sll_epi16): Likewise.
1648	(_mm_sll_epi32): Likewise.
1649	(_mm_sra_epi16): Likewise.
1650	(_mm_sra_epi32): Likewise.
1651	(_mm_srl_epi16): Likewise.
1652	(_mm_srl_epi32): Likewise.
1653	(_mm_mulhi_epu16): Likewise.
1654	(_mm_sad_epu8): Likewise.
1655	* config/rs6000/pmmintrin.h (_mm_hadd_ps): Fix for big-endian.
1656	(_mm_sub_ps): Likewise.
1657	* config/rs6000/mmintrin.h (_mm_cmpeq_pi8): Fix for 32-bit mode.
1658	* gcc/config/rs6000/tmmintrin.h (_mm_alignr_epi8): Use ENDIAN
1659	macros consistently (no functional changes).
1660	(_mm_alignr_pi8): Likewise.
1661
16622018-12-06  Iain Sandoe  <iain@sandoe.co.uk>
1663
1664	PR c++/87380
1665	* config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC) Remove, use the
1666	default.
1667	* config/rs6000/darwin7.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New.
1668
16692018-12-06  Vladimir Makarov  <vmakarov@redhat.com>
1670
1671	PR target/88282
1672	* ira.c (ira_init_register_move_cost): Use info from
1673	hard_regno_mode_ok instead of contains_reg_of_mode.
1674	* ira-costs.c (contains_reg_of_mode): Don't use cost from bigger
1675	hard register class for some fixed hard registers.
1676
16772018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
1678
1679	* doc/extend.texi (Using Assembly Language with C): Document asm inline.
1680	(Size of an asm): Fix typo.  Document asm inline.
1681	* gimple-pretty-print.c (dump_gimple_asm): Handle asm inline.
1682	* gimple.h (enum gf_mask): Add GF_ASM_INLINE.
1683	(gimple_asm_set_volatile): Fix typo.
1684	(gimple_asm_inline_p): New.
1685	(gimple_asm_set_inline): New.
1686	* gimplify.c (gimplify_asm_expr): Propagate the asm inline flag from
1687	tree to gimple.
1688	* ipa-icf-gimple.c (func_checker::compare_gimple_asm): Compare the
1689	gimple_asm_inline_p flag, too.
1690	* tree-core.h (tree_base): Document that protected_flag is ASM_INLINE_P
1691	in an ASM_EXPR.
1692	* tree-inline.c (estimate_num_insns): If gimple_asm_inline_p return
1693	a minimum size for an asm.
1694	* tree.h (ASM_INLINE_P): New.
1695
16962018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
1697
1698	PR inline-asm/55681
1699	* doc/extend.texi (Basic Asm): Update grammar.
1700	(Extended Asm): Update grammar.
1701
17022018-12-06  Iain Sandoe  <iain@sandoe.co.uk>
1703
1704	PR target/78444
1705	* config/i386/darwin.h (STACK_BOUNDARY): Remove macro.
1706	* config/i386/i386.c (ix86_compute_frame_layout): Ensure at least 128b
1707	stack alignment in non-leaf functions.
1708
17092018-12-06  Jakub Jelinek  <jakub@redhat.com>
1710
1711	PR target/87598
1712	* config/aarch64/aarch64.c (aarch64_print_address_internal): Don't
1713	call output_operand_lossage on VOIDmode CONST_INTs.  After
1714	output_operand_lossage do return false.
1715
17162018-12-06  Richard Biener  <rguenther@suse.de>
1717
1718	* df-problems.c (df_rd_local_compute): Use bitmap_release.
1719	(df_live_free): Likewise.
1720	(df_md_local_compute): Likewise.
1721	(df_md_free): Release df_md_scratch bitmap.
1722	* loop-invariant.c (calculate_loop_reg_pressure): Use
1723	bitmap_release.
1724	* sched-deps.c (true_dependency_cache, output_dependency_cache,
1725	anti_dependency_cache, control_dependency_cache,
1726	spec_dependency_cache): Use bitmap instead of bitmap_head *.
1727	* sched-ebb.c (schedule_ebbs_init): Initialize non-GTY
1728	dont_calc_deps as bitmap allocated from obstack not GC.
1729	(schedule_ebbs_finish): Use bitmap_release.
1730	* sched-rgn.c (schedule_insns): Initialize non-GTY
1731	not_in_df as bitmap allocated from obstack not GC.
1732	Use bitmap_release.
1733	* sel-sched.c (_forced_ebb_heads): Remove premature optimization.
1734	(sel_region_init): Allocate forced_ebb_heads.
1735	(sel_region_finish): Free forced_ebb_heads.
1736
17372018-12-06  Richard Biener  <rguenther@suse.de>
1738
1739	* bitmap.c (bitmap_head::crashme): Define.
1740	* bitmap.h (bitmap_head): Add constexpr default constructor
1741	poisoning the obstack member.
1742	(bitmap_head::crashme): Declare.
1743	(bitmap_release): New function clearing a bitmap and poisoning
1744	the obstack member.
1745	* gengtype.c (main): Make it recognize CONSTEXPR.
1746	* lra-constraints.c (lra_inheritance): Use bitmap_release
1747	instead of bitmap_clear.
1748	* ira.c (ira): Work around class-memaccess warning.
1749	* regrename.c (create_new_chain): Likewise.
1750
17512018-12-06  Jakub Jelinek  <jakub@redhat.com>
1752
1753	PR tree-optimization/85726
1754	* generic-match-head.c (optimize_successive_divisions_p): New function.
1755	* gimple-match-head.c (optimize_successive_divisions_p): Likewise.
1756	* match.pd: Don't combine successive divisions if they aren't exact
1757	and optimize_successive_divisions_p is false.
1758
1759	PR fortran/88304
1760	* tree-nested.c (convert_nonlocal_reference_stmt): Remove clobbers
1761	for non-local automatic decls.
1762
17632018-12-05  David Edelsohn  <dje.gcc@gmail.com>
1764
1765	* config/rs6000/aix72.h (ASM_DEFAULT_SPEC): Match Power7 processor
1766	default.
1767
17682018-12-05  Uros Bizjak  <ubizjak@gmail.com>
1769
1770	* dwarf2out.c (field_byte_offset): Remove
1771	#ifdef PCC_BITFIELD_TYPE_MATTERS check.
1772
17732018-12-05  Richard Biener  <rguenther@suse.de>
1774	    Martin Sebor  <msebor@redhat.com>
1775
1776	PR c/87028
1777	* calls.c (get_attr_nonstring_decl): Avoid setting *REF to
1778	SSA_NAME_VAR.
1779	* gcc/gimple-low.c (lower_stmt): Fold builtin calls here.
1780	* gimplify (maybe_fold_stmt): Avoid folding builtin calls.
1781
17822018-12-05  Iain Sandoe  <iain@sandoe.co.uk>
1783
1784	* configure.ac (gcc_cv_otool): Set.
1785	* configure: Regenerate.
1786
17872018-12-05  Uros Bizjak  <ubizjak@gmail.com>
1788
1789	* config/i386/cygming.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
1790	(GROUP_BITFIELDS_BY_ALIGN): Ditto.
1791
17922018-12-05  Richard Sandiford  <richard.sandiford@arm.com>
1793
1794	PR tree-optimization/88064
1795	* tree-vect-patterns.c (vect_convert_input): Convert the result of
1796	an existing cast if it has the right width but the wrong sign.
1797	Do not test the signedness of the required result when
1798	considering whether to split an existing cast; instead split to
1799	a type with the same signedness as the source of the cast, then
1800	convert it to the opposite signedness where necessary.
1801	(vect_recog_over_widening_pattern): Handle sign changes between
1802	the final PLUS_EXPR and the RSHIFT_EXPR.
1803	(vect_recog_average_pattern): Use an unsigned operation when
1804	truncating an addition, subtraction or multiplication.  Cast the
1805	result back to the "real" signedness before promoting.
1806
18072018-12-05  Richard Biener  <rguenther@suse.de>
1808
1809	PR tree-optimization/86637
1810	* tree-vectorizer.c (pass_slp_vectorize::execute): Reset
1811	vect_location at the end.
1812
18132018-12-05  Jakub Jelinek  <jakub@redhat.com>
1814
1815	PR tree-optimization/87360
1816	* gimple-loop-jam.c (tree_loop_unroll_and_jam): On failure to analyze
1817	data dependencies, don't return false, just continue.  Formatting
1818	fixes.
1819	(merge_loop_tree, bb_prevents_fusion_p, unroll_jam_possible_p,
1820	fuse_loops): Formatting fixes.
1821
1822	PR sanitizer/88333
1823	* cfgexpand.c (expand_stack_vars): If asan_vec is empty, start with
1824	aligning frame offset to ASAN_RED_ZONE_SIZE bytes.
1825
18262018-12-05  Xianmiao Qu  <xianmiao_qu@c-sky.com>
1827
1828	* config.gcc (csky-*-linux-gnu*): Force .init_array support.
1829
18302018-12-05  Segher Boessenkool  <segher@kernel.crashing.org>
1831
1832	* config/rs6000/rs6000.c (rs6000_function_arg): Only do the special
1833	aggregate handling on actual AIX, not on somewhat similar systems.
1834	(rs6000_arg_partial_bytes): Ditto.
1835
18362018-12-04  Vladimir Makarov  <vmakarov@redhat.com>
1837
1838	PR rtl-optimization/88317
1839	* lra-constraints.c (split_reg): Don't set up check_only_regs if
1840	we are outside the inheritance pass.
1841
18422018-12-04  Jan Hubicka  <hubicka@ucw.cz>
1843
1844	* ipa-prop.c (jump_function_useful_p): New.
1845	(ipa_read_node_info): Do not allocated useless jump functions.
1846
18472018-12-04  David Malcolm  <dmalcolm@redhat.com>
1848
1849	PR c/82967
1850	* spellcheck.c (selftest::test_suggestions): Add another assertion.
1851
18522018-12-04  Martin Sebor  <msebor@redhat.com>
1853
1854	* doc/extend.texi (__builtin_has_attribute): Fix typo.
1855
18562018-12-04  Jakub Jelinek  <jakub@redhat.com>
1857
1858	PR target/88188
1859	* config/rs6000/rs6000.c (ccr_bit): Return -1 instead of assertion
1860	failures.
1861	(print_operand): Use REG_P instead of GET_CODE == REG.
1862	<case 'D'>: Also check CR_REGNO_P (REGNO (x)).
1863	<case 't'>: Likewise.  Remove GET_MODE check.
1864	* config/rs6000/rs6000.md (scc patterns): Assert ccr_bit didn't
1865	return -1.
1866
18672018-12-04  Martin Sebor  <msebor@redhat.com>
1868
1869	* doc/extend.texi (attribute aligned): Expand.
1870
18712018-12-04  David Edelsohn  <dje.gcc@gmail.com>
1872
1873	PR target/61976
1874	* config/rs6000/rs6000.c (rs6000_function_arg): Don't pass aggregates
1875	in FPRs on AIX.
1876	(rs6000_arg_partial_bytes): Same.
1877
18782018-12-04  Vladimir Makarov  <vmakarov@redhat.com>
1879
1880	PR target/88282
1881	* ira-costs.c (exec): Try bigger class to use smaller register
1882	move cost.
1883
18842018-12-04  Michael Ploujnikov  <michael.ploujnikov@oracle.com>
1885
1886	PR ipa/88297
1887	* ipa-cp.c (create_specialized_node): Track clone counters by
1888	node assembler names.
1889	(ipcp_driver): Change type of clone_num_suffixes key to const char*.
1890
18912018-12-04  Richard Biener  <rguenther@suse.de>
1892
1893	* tree-vect-loop.c (vect_transform_loop): Fix epilogue iterations
1894	for epilogue vectorization.
1895
18962018-12-04  Richard Biener  <rguenther@suse.de>
1897
1898	PR tree-optimization/88301
1899	* tree-vrp.c (register_edge_assert_for_2): Fix sign-conversion
1900	issues in last commit.
1901
19022018-12-04  Richard Biener  <rguenther@suse.de>
1903
1904	PR tree-optimization/88315
1905	* tree-vect-loop.c (get_initial_defs_for_reduction): Simplify
1906	and fix initialization vector for SAD and DOT_PROD SLP reductions.
1907
19082018-12-03  Sandra Loosemore  <sandra@codesourcery.com>
1909
1910	PR c/59039
1911	* doc/extend.texi (Nonlocal gotos): New section.
1912
19132018-12-03  Uros Bizjak  <ubizjak@gmail.com>
1914
1915	* config/i386/sse.md (vec_concatv2df): Change (v,xm,C)
1916	alternative to (v,vm,c).
1917
19182018-12-03  Segher Boessenkool  <segher@kernel.crashing.org>
1919
1920	* gcc/config.gcc (Unsupported targets): Add powerpc*-*-linux*paired*.
1921	(powerpc*-*-linux*): Don't handle it here.
1922
19232018-12-03  Jeff Law  <law@redhat.com>
1924
1925	* config/h8300/h8300.md (<code>qi3_1): Add gcc_unreachable to keep
1926	warnings quiet.
1927
1928	* config/h8300/h8300.md (low byte masking peepholes): Only accept
1929	nonimmediate_operand for the to-be-masked operand.
1930
19312018-12-03  Richard Biener  <rguenther@suse.de>
1932
1933	* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only
1934	allow expected function-pointer cast re-instantiation.
1935
19362018-12-03  Ilya Leoshkevich  <iii@linux.ibm.com>
1937
1938	* common/config/s390/s390-common.c (s390_option_init_struct):
1939	Use section anchors by default.
1940	* config/s390/s390.c (s390_check_symref_alignment): Handle
1941	anchors.
1942	(TARGET_MAX_ANCHOR_OFFSET): Use short displacement.
1943	* output.h (assemble_align): Pass `align' as unsigned int, so
1944	that the value 0x80000000, which corresponds to `aligned(1 <<
1945	28)', would pass the `align > BITS_PER_UNIT' check.
1946	* varasm.c (assemble_align): Likewise.
1947
19482018-12-03  Julian Brown  <julian@codesourcery.com>
1949
1950	* tree-pretty-print.c (dump_omp_clause): Make default case
1951	gcc_unreachable.
1952
19532018-12-03  Richard Biener  <rguenther@suse.de>
1954
1955	PR tree-optimization/88301
1956	* tree-vrp.c (register_edge_assert_for_2): Handle conversions
1957	that do not change the value by registering the same assert
1958	for the operand.
1959
19602018-12-03  Richard Biener  <rguenther@suse.de>
1961
1962	* tree-vect-loop.c (vect_transform_loop): Properly compute
1963	upper bound for the epilogue when doing epilogue vectorization.
1964
19652018-12-03  Ilya Leoshkevich  <iii@linux.ibm.com>
1966
1967	PR target/80080
1968	* cfgcleanup.c (class pass_postreload_jump): New pass.
1969	(pass_postreload_jump::execute): Likewise.
1970	(make_pass_postreload_jump): Likewise.
1971	* passes.def: Add pass_postreload_jump before
1972	pass_postreload_cse.
1973	* tree-pass.h (make_pass_postreload_jump): New pass.
1974
19752018-12-02  Uros Bizjak  <ubizjak@gmail.com>
1976
1977	* config/i386/i386.c (inline_memory_move_cost): Correctly
1978	compute number of TFmode GPR moves.
1979
19802018-12-02  Jakub Jelinek  <jakub@redhat.com>
1981
1982	PR target/88278
1983	* config/i386/sse.md (*vec_concatv4sf_0, *vec_concatv4si_0): New insns.
1984
19852018-12-02  Jeff Law  <law@redhat.com>
1986
1987	* config/h8300/h8300.md (call, call_value): Drop mode from
1988	operand containing number of bytes pushed.
1989	(call_insn, call_value_insn): Use mode iterator for number
1990	of bytes pushed operand.  Make pattern name vary appropriately.
1991
19922018-12-02  Jan Hubicka  <jh@suse.cz>
1993
1994	* bb-reorer.c (find_rarely_executed_basic_blocks_and_crossin_edges):
1995	trust precise profiles.
1996
19972018-12-02  Jakub Jelinek  <jakub@redhat.com>
1998
1999	* tree-nested.c (convert_nonlocal_omp_clauses,
2000	convert_local_omp_clauses): Handle OMP_CLAUSE_IN_REDUCTION,
2001	OMP_CLAUSE_TASK_REDUCTION and OMP_CLAUSE__SIMT_ clauses.
2002	(convert_nonlocal_reference_stmt, convert_local_reference_stmt):
2003	Convert clauses for GIMPLE_OMP_TASKGROUP.
2004
2005	* omp-low.c (check_omp_nesting_restrictions): Allow cancel or
2006	cancellation point with taskgroup clause inside of taskloop.  Consider
2007	a taskloop construct without nogroup clause as implicit taskgroup for
2008	diagnostics if cancel/cancellation point with taskgroup clause is
2009	closely nested inside of taskgroup region.
2010
2011	PR sanitizer/88291
2012	* asan.c (asan_clear_shadow): Move assert that len is multiple of 4
2013	to the start of the function.
2014	(asan_emit_stack_protection): When emitting clearing sequence for
2015	epilogue, align offset down to ASAN_RED_ZONE_SIZE granularity,
2016	add last_size_aligned which is last_size padded to multiples of
2017	ASAN_RED_ZONE_SIZE and emit asan_clear_shadow always on 4 byte
2018	boundaries.
2019
20202018-12-01  Jakub Jelinek  <jakub@redhat.com>
2021
2022	PR sanitizer/88289
2023	* asan.c (asan_redzone_buffer::flush_redzone_payload): Fix up
2024	an off-by-one for BYTES_BIG_ENDIAN.
2025
2026	PR target/54589
2027	* combine.c (find_split_point): For invalid memory address
2028	nonobj + obj + const, if reg + obj + const is valid addressing
2029	mode, split at nonobj.  Use if rather than else if for the
2030	fallback.  Comment fixes.
2031
20322018-11-30  Indu Bhagat  <indu.bhagat@oracle.com>
2033
2034	* coverage.c (get_coverage_counts): Use from_function_decl for precise
2035	function location.
2036	* profile-count.c (profile_count::dump): Add handling for precise
2037	profile quality.
2038	* profile.c (compute_branch_probabilities): Rely on exec_counts instead
2039	of profile_info to set profile_status of function.
2040	(branch_prob): Do not set profile_status of function based on
2041	profile_info. Done above based on exec_counts.
2042
20432018-11-30  Jakub Jelinek  <jakub@redhat.com>
2044
2045	PR tree-optimization/88274
2046	* tree-ssa-reassoc.c (optimize_range_tests_xor,
2047	optimize_range_tests_diff): If type has smaller precision than
2048	corresponding mode or if it has non-standard min/max, compute
2049	everything in a standard type for the precision.
2050
2051	PR testsuite/85368
2052	* params.def (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT): New param.
2053	* tree-ssa-ifcombine.c (ifcombine_ifandif): If
2054	--param logical-op-non-short-circuit is present, override
2055	LOGICAL_OP_NON_SHORT_CIRCUIT value from the param.
2056	* fold-const.c (fold_range_test, fold_truth_andor): Likewise.
2057
20582018-11-30  Jeff Law  <law@redhat.com>
2059
2060	* optabs.c (expand_binop): Use "machine_mode" rather than
2061	"enum machine mode" in most recent change.
2062
20632018-11-30  Wilco Dijkstra  <wdijkstr@arm.com>
2064
2065	PR middle-end/64242
2066	* builtins.c (expand_builtin_longjmp): Use a temporary when restoring
2067	the frame pointer.
2068	(expand_builtin_nonlocal_goto): Likewise.
2069
20702018-11-30  David Malcolm  <dmalcolm@redhat.com>
2071
2072	* diagnostic-core.h (emit_diagnostic): New decl.
2073	* diagnostic.c (emit_diagnostic): New overload, taking a
2074	rich_location *.
2075
20762018-11-30  David Malcolm  <dmalcolm@redhat.com>
2077
2078	* pretty-print.c (class selftest::test_pretty_printer): New
2079	subclass of pretty_printer.
2080	(selftest::test_prefixes_and_wrapping): New test.
2081	(selftest::pretty_print_c_tests): Call it.
2082
20832018-11-30  Michael Ploujnikov  <michael.ploujnikov@oracle.com>
2084
2085	Minimize clone counter memory usage in create_virtual_clone.
2086	* cgraph.h (clone_function_name): Add a variant that takes a
2087	tree decl.
2088	* cgraph.h (cgraph_node::create_virtual_clone): Add a new
2089	argument: num_suffix.
2090	* cgraphclones.c (cgraph_node::create_virtual_clone): Pass
2091	num_suffix to clone_function_name.
2092	(clone_function_name): Add a variant that takes a tree decl.
2093	* ipa-cp.c (create_specialized_node): Keep track of clone
2094	counters in clone_num_suffixes hash map.
2095	(ipcp_driver): Free the counter hash map.
2096	* ipa-hsa.c (process_hsa_functions): Creates at most one hsa
2097	clone per function.
2098
20992018-11-30  Michael Ploujnikov  <michael.ploujnikov@oracle.com>
2100	Make function assembly more independent.
2101
2102	This is achieved by having clone_function_name assign unique clone
2103	numbers for each function independently.
2104
2105	* cgraphclones.c: Replaced clone_fn_id_num with clone_fn_ids;
2106	hash map.
2107	(clone_function_name_numbered): Use clone_fn_ids.
2108
21092018-11-30  Vladimir Makarov  <vmakarov@redhat.com>
2110
2111	PR rtl-optimization/88179
2112	* lra-constraints.c (address_eliminator::address_eliminator):
2113	Don't eleminate regs in illegitimate address.
2114
21152018-11-30  David Malcolm  <dmalcolm@redhat.com>
2116
2117	PR preprocessor/88257
2118	* input.c (get_substring_ranges_for_loc): Fix indentation.
2119	Bulletproof against getting a different files back from
2120	linemap_resolve_location and expand_location_to_spelling_point.
2121
21222018-11-30  Alexander Monakov  <amonakov@ispras.ru>
2123
2124	PR gcov-profile/88279
2125	* tree-profile.c (init_ic_make_global_vars): Call
2126	decl_default_tls_model for variable and not it's type.
2127
21282018-11-30  Sam Tebbs  <sam.tebbs@arm.com>
2129
2130	* config/arm/arm.h (TARGET_DOTPROD): Add TARGET_VFP5 constraint.
2131
21322018-11-30  Martin Liska  <mliska@suse.cz>
2133
2134	PR sanitizer/81715
2135	* asan.c (asan_shadow_cst): Remove, partially transform
2136	into flush_redzone_payload.
2137	(RZ_BUFFER_SIZE): New.
2138	(struct asan_redzone_buffer): New.
2139	(asan_redzone_buffer::emit_redzone_byte): Likewise.
2140	(asan_redzone_buffer::flush_redzone_payload): Likewise.
2141	(asan_redzone_buffer::flush_if_full): Likewise.
2142	(asan_emit_stack_protection): Use asan_redzone_buffer class
2143	that is responsible for proper aligned stores and flushing
2144	of shadow memory payload.
2145	* asan.h (ASAN_MIN_RED_ZONE_SIZE): New.
2146	(asan_var_and_redzone_size): Likewise.
2147	* cfgexpand.c (expand_stack_vars): Use smaller alignment
2148	(ASAN_MIN_RED_ZONE_SIZE) in order to make shadow memory
2149	for automatic variables more compact.
2150
21512018-11-30  Alan Modra  <amodra@gmail.com>
2152
2153	* config/rs6000/predicates.md (easy_fp_constant): Avoid long
2154	dependent insn sequences.
2155	* config/rs6000/rs6000.c (num_insns_constant): Support long
2156	double constants.
2157	* config/rs6000/rs6000.md (mov<mode>_softfloat <FMOVE128>): Adjust
2158	length attribute.
2159
21602018-11-30  Alan Modra  <amodra@gmail.com>
2161
2162	* config/rs6000/rs6000.c (num_insns_constant_gpr): Renamed from
2163	num_insns_constant_wide.  Make static.  Revise comment.
2164	(num_insns_constant_multi): New function.
2165	(num_insns_constant): Formatting.  Correct CONST_WIDE_INT
2166	calculation.  Simplify and extract code common to both
2167	CONST_INT and CONST_DOUBLE.  Add gcc_unreachable for unhandled
2168	const_double modes.
2169	* config/rs6000/rs6000-protos.h (num_insns_const_wide): Delete.
2170
21712018-11-30  Richard Biener  <rguenther@suse.de>
2172
2173	PR tree-optimization/88274
2174	* tree-vrp.c (ranges_from_anti_range): Fix handling of
2175	TYPE_MIN/MAX_VALUE.
2176
21772018-11-29  Andi Kleen  <ak@linux.intel.com>
2178
2179	* config/i386/i386.c (current_fentry_section): Add.
2180	(x86_function_profiler): Handle fentry section.
2181	(ix86_attribute_table): Add fentry section.
2182	* config/i386/i386.opt: Add -mfentry-section.
2183	* doc/extend.texi: Document fentry_section attribute.
2184	* doc/invoke.texi: Document -mfentry-section.
2185
21862018-11-29  Andi Kleen  <ak@linux.intel.com>
2187
2188	* config/i386/i386.c (x86_print_call_or_nop): Handle nop name.
2189	(current_fentry_name): Add.
2190	(x86_function_profiler): Handle fentry_name attribute.
2191	(ix86_handle_fentry_name): Add.
2192	(ix86_attribute_table): Add fentry_name.
2193	* config/i386/i386.opt: Add -mfentry-name
2194	* doc/extend.texi: Document fentry_name.
2195	* doc/invoke.texi: Document minstrument-return.
2196
21972018-11-29  Andi Kleen  <ak@linux.intel.com>
2198
2199	* config/i386/i386-opts.h (enum instrument_return): Add.
2200	* config/i386/i386.c (output_return_instrumentation): Add.
2201	(ix86_output_function_return): Call output_return_instrumentation.
2202	(ix86_output_call_insn): Call output_return_instrumentation.
2203	* config/i386/i386.opt: Add -minstrument-return=.
2204	* doc/invoke.texi (-minstrument-return): Document.
2205
22062018-11-29  Eric Botcazou  <ebotcazou@adacore.com>
2207
2208	PR target/87807
2209	* config/sparc/sparc-modes.def: Minor tweak.
2210	* config/sparc/sparc.c: Minor reordering.
2211	(sparc_pass_by_reference): Move around.
2212	(traverse_record_type): Change offset from HOST_WIDE_INT to int.
2213	(classify_registers): Likewise for bitpos.
2214	(function_arg_slotno): Remove dead test and tweak comments.
2215	<MODE_RANDOM>: Remove useless assertion and test whether the
2216	parameter is named in order to pass it in FP registers.  Return
2217	the regno for floating-point vector types.
2218	(compute_int_layout): Change bitpos from HOST_WIDE_INT to int.
2219	(compute_fp_layout): Likewise.
2220	(count_registers): Likewise.
2221	(assign_int_registers): Likewise.
2222	(assign_fp_registers): Likewise.
2223	(assign_registers): Likewise.
2224	(function_arg_record_value): Change size from HOST_WIDE_INT to int
2225	and use CEIL_NWORDS to compute the number of registers.
2226	(function_arg_union_value): Minor tweaks.
2227	(function_arg_vector_value): Add slotno and named parameters, use
2228	CEIL_NWORDS to compute the number of registers.
2229	(sparc_function_arg_1): Rework handling of vector types.  Change
2230	size from HOST_WIDE_INT to int.
2231	(sparc_arg_partial_bytes): Rework handling of 32-bit ABI and deal
2232	with vector types for the 64-bt ABI.
2233	(sparc_function_arg_advance): Likewise.
2234	(sparc_return_in_memory): Add reference to -fpcc-struct-return.
2235	(sparc_struct_value_rtx): Return NULL_RTX instead of 0.
2236	(sparc_function_value_1): Rework handling of vector types.  Change
2237	size from HOST_WIDE_INT to int.
2238
22392018-11-29  Jakub Jelinek  <jakub@redhat.com>
2240
2241	PR target/88152
2242	* config/i386/sse.md (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_lt,
2243	*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_lt,
2244	*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_shift,
2245	*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_shift,
2246	*<sse2_avx2>_pmovmskb_lt, *<sse2_avx2>_pmovmskb_zext_lt): New
2247	define_insn_and_split patterns.
2248
2249	PR target/54700
2250	* config/i386/sse.md
2251	(*<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>_lt,
2252	*<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_ltint,
2253	*<sse4_1_avx2>_pblendvb_lt): Change define_insn into
2254	define_insn_and_split.
2255
22562018-11-29  Peter Bergner  <bergner@linux.ibm.com>
2257
2258	PR target/87496
2259	* config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
2260	-mabi=ieeelongdouble without both -mpopcntd and -mvsx.
2261
22622018-11-29  Uros Bizjak  <ubizjak@gmail.com>
2263
2264	* config/i386/i386.c (inline_memory_move_cost):
2265	Check "in" for 2 in MMX_CLASS_P case.
2266	* config/i386/mmx.md (*mov<mode>_internal): Correct
2267	TARGET_INTER_UNIT_MOVES_FROM_VEC and TARGET_INTER_UNIT_MOVES_TO_VEC
2268	alternatives in preferred_for_speed attribute calculation.
2269
22702018-11-29  Martin Sebor  <msebor@redhat.com>
2271
2272	PR c/88172
2273	PR testsuite/88208
2274	* doc/extend.texi (attribute constructor): Clarify.
2275
22762018-11-29  Martin Liska  <mliska@suse.cz>
2277
2278	PR middle-end/88246
2279	* builtins.c (expand_movstr): Fix thinko introduced
2280	when switching to the new enum.
2281
22822018-11-29  qing zhao  <qing.zhao@oracle.com>
2283
2284	* cif-code.def (EXTERN_LIVE_ONLY_STATIC): New CIF code.
2285	* common.opt: Add -flive-patching flag.
2286	* doc/invoke.texi: Document -flive-patching.
2287	* flag-types.h (enum live_patching_level): New enum.
2288	* ipa-inline.c (can_inline_edge_p): Disable external functions from
2289	inlining when flag_live_patching is LIVE_PATCHING_INLINE_ONLY_STATIC.
2290	* opts.c (control_options_for_live_patching): New function.
2291	(finish_options): Make flag_live_patching incompatible with flag_lto.
2292	Control IPA optimizations based on different levels of
2293	flag_live_patching.
2294
22952018-11-29  Giuliano Belinassi  <giuliano.belinassi@usp.br>
2296
2297	* match.pd (sinh (atanh (x))): New simplification rules.
2298	(cosh (atanh (x))): Likewise.
2299
23002018-11-29  Jakub Jelinek  <jakub@redhat.com>
2301
2302	PR target/54700
2303	* config/i386/sse.md (ssebytemode): Add V16SI, V8SI and V4SI entries.
2304	(ssefltmodesuffix, ssefltvecmode): New define_mode_attrs.
2305	(*<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>_lt,
2306	*<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_ltint,
2307	*<sse4_1_avx2>_pblendvb_lt): New define_insns.
2308
2309	PR target/88152
2310	* tree.h (build_uniform_cst, uniform_integer_cst_p): Declare.
2311	* tree.c (build_uniform_cst, uniform_integer_cst_p): New functions.
2312	* match.pd (define_predicates): Add uniform_integer_cst_p.
2313	(cmp @0 INTEGER_CST@1, cmp (convert?@2 @0) INTEGER_CST@1): Adjust
2314	so that it works also for vector comparisons with uniform constants
2315	with INTEGER_CST element.
2316
2317	PR target/88234
2318	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): For
2319	vec_add and vec_sub builtins, perform PLUS_EXPR or MINUS_EXPR
2320	in unsigned_type_for instead of vector integral type where overflow
2321	doesn't wrap.
2322
23232018-11-29  Michael Ploujnikov  <michael.ploujnikov@oracle.com>
2324
2325	There can be at most one .resolver clone per function
2326	* config/rs6000/rs6000.c (make_resolver_func): Generate
2327	resolver symbol with clone_function_name instead of
2328	clone_function_name_numbered.
2329
23302018-11-29  Richard Biener  <rguenther@suse.de>
2331
2332	PR tree-optimization/88243
2333	* tree-vect-patterns.c (vect_mark_pattern_stmts): Set the def
2334	type of all pattern-sequence stmts to vect_internal_def.
2335
23362018-11-29  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2337
2338	PR target/88224
2339	* config/arm/arm-cpus.in (armv7-r): Add FP16conv configurations.
2340	(cortex-r7, cortex-r8): Update default and add new configuration.
2341	* doc/invoke.texi (armv7-r): Add two new vfp options.
2342	(nofp.dp): Add cortex-r7 and cortex-r8 to the list of targets that
2343	support this option.
2344
23452018-11-29  Alan Modra  <amodra@gmail.com>
2346
2347	* config/rs6000/rs6000.c (rs6000_emit_move): Disable long
2348	double split for targets other than Darwin.
2349
23502018-11-29  Alan Modra  <amodra@gmail.com>
2351
2352	* config/rs6000/rs6000.md (movdi_internal64): Correct lengths.
2353
23542018-11-29  Alan Modra  <amodra@gmail.com>
2355
2356	* config/rs6000/predicates.md (easy_fp_constant): Remove code
2357	dealing with integers in const_double.  Assert on unexpected
2358	modes.  Delete superfluous ABI_V4 test.
2359	* config/rs6000/rs6000.c (rs6000_emit_move): Comment fixes.
2360	Don't call easy_fp_constant for Pmode.
2361	(rs6000_hash_constant): Remove code dealing with integers in
2362	const_double.
2363	(rs6000_legitimate_constant_p): Likewise.
2364	(output_toc): Formatting, use CONST_DOUBLE_P.
2365
23662018-11-29  Alan Modra  <amodra@gmail.com>
2367
2368	* config/rs6000/constraints.md (G, H): Comment on purpose of
2369	constraint.  Correct mode comments and "G" mode test.
2370	* config/rs6000/rs6000.md (movdi_internal32): Remove "GH" from
2371	alternative handling "F".  Add length attr.  Formatting.
2372	(mov<mode>_softfloat <FMOVE128>): Delete "GH" from
2373	alternative, and move "F" to separate alternative.  Correct
2374	insn lengths.
2375
23762018-11-29  Alan Modra  <amodra@gmail.com>
2377
2378	* config/rs6000/predicates.md (easy_vector_constant): Don't call
2379	easy_fp_constant.
2380
23812018-11-29  Alan Modra  <amodra@gmail.com>
2382
2383	* config.in (HAVE_AS_PLTSEQ): Add.
2384	* config/rs6000/predicates.md (indirect_call_operand): New.
2385	* config/rs6000/rs6000-protos.h (rs6000_pltseq_template),
2386	(rs6000_sibcall_sysv): Declare.
2387	* config/rs6000/rs6000.c (init_cumulative_args): Set cookie
2388	CALL_LONG for -fno-plt.
2389	(print_operand <T, z, 0>): Handle UNSPEC_PLTSEQ.
2390	(rs6000_indirect_call_template_1): Emit .reloc directives for
2391	UNSPEC_PLTSEQ calls.
2392	(rs6000_pltseq_template): New function.
2393	(rs6000_longcall_ref): Add arg parameter.  Use PLT16 insns if
2394	relocs supported by assembler.  Move SYMBOL_REF test to callers.
2395	(rs6000_call_aix): Adjust rs6000_longcall_ref call.  Package
2396	insns in UNSPEC_PLTSEQ, preserving original func_desc.
2397	(rs6000_call_sysv): Likewise.
2398	(rs6000_sibcall_sysv): New function.
2399	* config/rs6000/rs6000.h (HAVE_AS_PLTSEQ): Provide default.
2400	* config/rs6000/rs6000.md (UNSPEC_PLTSEQ, UNSPEC_PLT16_HA,
2401	UNSPEC_PLT16_LO): New.
2402	(pltseq_tocsave, pltseq_plt16_ha, pltseq_plt16_lo, pltseq_mtctr): New.
2403	(call_indirect_nonlocal_sysv): Don't differentiate zero from non-zero
2404	cookie in constraints.  Test explicitly for flags in length attr.
2405	Handle unspec operand 1.
2406	(call_value_indirect_nonlocal_sysv): Likewise.
2407	(call_indirect_aix, call_value_indirect_aix): Handle unspec operand 1.
2408	(call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
2409	(sibcall, sibcall_value): Use rs6000_sibcall_sysv.
2410	(sibcall_indirect_nonlocal_sysv): New pattern.
2411	(sibcall_value_indirect_nonlocal_sysv): Likewise.
2412	(sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Remove indirect
2413	call alternatives.
2414	* configure.ac: Check for gas plt sequence marker support.
2415	* configure: Regenerate.
2416
24172018-11-29  Alan Modra  <amodra@gmail.com>
2418
2419	* config/rs6000/predicates.md (unspec_tls): New.
2420	* config/rs6000/rs6000-protos.h (rs6000_call_template),
2421	(rs6000_sibcall_template): Update prototype.
2422	(rs6000_longcall_ref): Delete.
2423	(rs6000_call_sysv): Declare.
2424	* config/rs6000/rs6000.c (edit_tls_call_insn): New function.
2425	(global_tlsarg): New variable.
2426	(rs6000_legitimize_tls_address): Rewrite __tls_get_addr call
2427	handling.
2428	(print_operand): Extract UNSPEC_TLSGD address operand.
2429	(rs6000_call_template, rs6000_sibcall_template): Remove arg
2430	parameter, extract from second call operand instead.
2431	(rs6000_longcall_ref): Make static, localize vars.
2432	(rs6000_call_aix): Rename parameter to reflect new usage.  Take
2433	tlsarg from global_tlsarg.  Don't create unused rtl or nop insns.
2434	(rs6000_sibcall_aix): Rename parameter to reflect new usage.  Take
2435	tlsarg from global_tlsarg.
2436	(rs6000_call_sysv): New function.
2437	* config/rs6000/rs6000.md: Adjust rs6000_call_template and
2438	rs6000_sibcall_template throughout.
2439	(tls_gd_aix, tls_gd_sysv, tls_gd_call_aix, tls_gd_call_sysv): Delete.
2440	(tls_ld_aix, tls_ld_sysv, tls_ld_call_aix, tls_ld_call_sysv): Delete.
2441	(tls_gdld_nomark): New insn.
2442	(tls_gd): Swap operand order.  Simplify mode selection.
2443	(tls_gd_high, tls_gd_low): Swap operand order.
2444	(tls_ld): Remove const_int 0 vector element from UNSPEC_TLSLD.
2445	Simplify mode selection.
2446	(tls_ld_high, tls_ld_low): Similarly adjust UNSPEC_TLSLD.
2447	(call, call_value): Don't assert for second call operand.
2448	Use rs6000_call_sysv.
2449
24502018-11-29  Alan Modra  <amodra@gmail.com>
2451
2452	* config/rs6000/darwin.md (call_indirect_nonlocal_darwin64),
2453	(call_nonlocal_darwin64, call_value_indirect_nonlocal_darwin64),
2454	(call_value_nonlocal_darwin64): Remove constraints from second call
2455	arg, the rounded_stack_size_rtx arg.
2456	* config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv, tls_gd_call_aix),
2457	(tls_gd_call_sysv, tls_ld_aix, tls_ld_sysv, tls_ld_call_aix),
2458	(tls_ld_call_sysv, call_local32, call_local64, call_value_local32),
2459	(call_value_local64, call_indirect_nonlocal_sysv),
2460	(call_nonlocal_sysv, call_nonlocal_sysv_secure),
2461	(call_value_indirect_nonlocal_sysv, call_value_nonlocal_sysv),
2462	(call_value_nonlocal_sysv_secure, call_local_aix),
2463	(call_value_local_aix, call_nonlocal_aix, call_value_nonlocal_aix),
2464	(call_indirect_aix, call_value_indirect_aix, call_indirect_elfv2),
2465	(call_value_indirect_elfv2, sibcall_local32, sibcall_local64),
2466	(sibcall_value_local32, sibcall_value_local64, sibcall_aix),
2467	(sibcall_value_aix): Likewise.
2468
24692018-11-29  Alan Modra  <amodra@gmail.com>
2470
2471	* config/rs6000/rs6000.md (TLSmode): Delete mode iterator.  Replace
2472	with P throughout except for call mems which should use SI.
2473	(tls_abi_suffix, tls_sysv_suffix, tls_insn_suffix): Delete mode
2474	attributes.  Replace with bits, mode and ptrload respectively.
2475
24762018-11-29  Alan Modra  <amodra@gmail.com>
2477
2478	* config/rs6000/rs6000-protos.h (rs6000_indirect_call_template),
2479	(rs6000_indirect_sibcall_template): Declare.
2480	* config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
2481	(rs6000_indirect_call_template, rs6000_indirect_sibcall_template):
2482	New functions.
2483	* config/rs6000/rs6000.md (call_indirect_nonlocal_sysv),
2484	(call_value_indirect_nonlocal_sysv, sibcall_nonlocal_sysv),
2485	(call_indirect_aix, call_value_indirect_aix): Use
2486	rs6000_indirect_call_template and rs6000_indirect_sibcall_template.
2487	call_indirect_elfv2, call_value_indirect_elfv2): Likewise, and
2488	handle both speculation and non-speculation cases.
2489	(call_indirect_aix_nospec, call_value_indirect_aix_nospec): Delete.
2490	(call_indirect_elfv2_nospec, call_value_indirect_elfv2_nospec): Delete.
2491
24922018-11-29  Alan Modra  <amodra@gmail.com>
2493
2494	* config/rs6000/rs6000-protos.h (rs6000_call_template): Declare.
2495	(rs6000_sibcall_template): Declare.
2496	(macho_call_template): Rename from output_call.
2497	* config/rs6000/rs6000.c (rs6000_call_template_1): New function.
2498	(rs6000_call_template, rs6000_sibcall_template): Likewise.
2499	(macho_call_template): Rename from output_call.
2500	* config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv),
2501	(tls_gd_call_aix, tls_gd_call_sysv, tls_ld_aix, tls_ld_sysv),
2502	(tls_ld_call_aix, tls_ld_call_sysv, call_nonlocal_sysv),
2503	(call_nonlocal_sysv_secure, call_value_nonlocal_sysv),
2504	(call_value_nonlocal_sysv_secure, call_nonlocal_aix),
2505	(call_value_nonlocal_aix): Use rs6000_call_template and update
2506	occurrences of output_call to macho_call_template.
2507	(sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv, sibcall_aix),
2508	(sibcall_value_aix): Use rs6000_sibcall_template.
2509
25102018-11-28  Aaron Sawdey  <acsawdey@linux.ibm.com>
2511
2512	* config/rs6000/rs6000-string.c (expand_block_clear): Change how
2513	we determine if unaligned vsx is ok.
2514
25152018-11-28  Jan Hubicka  <jh@suse.cz>
2516
2517	* predict.c (determine_unlikely_bbs): Forward declare; also determine
2518	edges that are always known to be taken because it is only likely
2519	edge out of given BB.
2520	(tree_estimate_probability): Call before profile guessing to get bit
2521	of extra precision.
2522
25232018-11-28  Jan Hubicka  <jh@suse.cz>
2524
2525	* tree-ssa-ifcombine.c (update_profile_after_ifcombine): Handle
2526	profile_probability::always better.
2527
25282018-11-28  Jan Hubicka  <jh@suse.cz>
2529
2530	* profile-count.h (profile_count::split): Give better result when
2531	splitting profile_probability::always.
2532
25332018-11-28  Vladimir Makarov  <vmakarov@redhat.com>
2534
2535	PR target/88207
2536	* ira-costs.c (scan_one_insn): Process subregs when updating costs
2537	for pseudos and allocnos from insn.
2538
25392018-11-28  David Edelsohn  <dje.gcc@gmail.com>
2540
2541	* config/rs6000/aix72.h: Update to match aix71.h changes.
2542
25432018-11-28  Jeff Law  <law@redhat.com>
2544
2545	* config/h8300/constraints.md: Add "C" constraint for call insns.
2546	* config/h8300/h8300.md (call, call_value): Turn into a define_expand
2547	and define_insn pair.  Move invalid call targets into a register in
2548	the expander and fix constraints in the matching pattern.
2549	* config/h8300/predicates.md (call_expander_operand): Renamed from
2550	call_insn_operand.  Reject things we shouldn't be trying to handle.
2551	(call_insn_operand): New predicate for use by the call/call_value
2552	insns.
2553	(small_call_insn_operand): Update appropriately.
2554
25552018-11-28  Sam Tebbs  <sam.tebbs@arm.com>
2556
2557	* config/aarch64/aarch64.c (aarch64_process_target_attr): Replace
2558	calls to strtok with strtok_r.
2559
25602018-11-28  Richard Biener  <rguenther@suse.de>
2561
2562	PR tree-optimization/88223
2563	* tree-ssa-sccvn.c (vn_reference_lookup_3): When skipping
2564	over a stored-same value may-alias store make sure to consider
2565	partial overlaps which are valid when TBAA reasonings do not
2566	apply and byte-granular overlaps are possible at all.
2567
25682018-11-28  Richard Biener  <rguenther@suse.de>
2569
2570	PR tree-optimization/88217
2571	* vr-values.c (vr_values::extract_range_from_phi_node): Make
2572	sure to handle results > +INF and < -INF correctly when
2573	trying to drop down to +INF - 1 or -INF + 1.
2574
25752018-11-28  Alan Modra  <amodra@gmail.com>
2576
2577	* xcoffout.c (do_block): Signed/unsigned warning fix.
2578
25792018-11-28  Richard Biener  <rguenther@suse.de>
2580
2581	PR tree-optimization/79351
2582	* tree-ssa-sccvn.c (vn_reference_lookup_3): For assignments from
2583	empty CONSTRUCTORs ensure the store is at a constant position.
2584
25852018-11-28  Richard Biener  <rguenther@suse.de>
2586
2587	PR tree-optimization/88229
2588	* tree-ssa.c (non_rewritable_mem_ref_base): Check DECL_SIZE_UNIT
2589	is an INTEGER_CST before accessing it so.
2590
25912018-11-28  Sam Tebbs  <sam.tebbs@arm.com>
2592
2593	* doc/invoke.texi (-mtune=): Remove obsolete CPU names.
2594
25952018-11-28  Jakub Jelinek  <jakub@redhat.com>
2596
2597	PR target/88189
2598	* config/i386/i386.c (ix86_expand_sse_movcc): Handle DFmode and
2599	SFmode using sse4_1_blendvs[sd] with TARGET_SSE4_1.  Formatting fixes.
2600	* config/i386/sse.md (sse4_1_blendv<ssemodesuffix>): New pattern.
2601
26022018-11-27  Martin Liska  <mliska@suse.cz>
2603
2604	* gcov.c (generate_results): Append current_working_directory
2605	only when exists.
2606
26072018-11-27  Mike Gulick  <mgulick@mathworks.com>
2608
2609	PR preprocessor/83173
2610	* input.c (dump_location_info): Dump reason and included_from
2611	fields from line_map_ordinary struct.  Fix indentation when
2612	location > 5 digits.
2613	* diagnostic-show-locus.c (num_digits, num_digits): Move to
2614	diagnostic.c to allow it to be utilized by input.c.
2615	* diagnostic.c (num_digits, selftest::test_num_digits): Moved
2616	here.
2617	(selftest::diagnostic_c_tests): Run selftest::test_num_digits.
2618	* diagnostic.h (num_digits): Add extern definition.
2619
26202018-11-27  Fredrik Noring  <noring@nocrew.org>
2621
2622	* config/mips/mips.c (mips_reorg_process_insns)
2623	(mips_option_override): Handle `-mfix-r5900'.
2624	* config/mips/mips.h (ASM_SPEC): Add `mfix-r5900' and
2625	`mno-fix-r5900'.
2626	* config/mips/mips.opt (mfix-r5900): New option.
2627	* doc/invoke.texi: Document the `r5900' processor name, and
2628	`-mfix-r5900' and `-mno-fix-r5900' options.
2629
26302018-11-27  Jakub Jelinek  <jakub@redhat.com>
2631
2632	PR target/88188
2633	* config/rs6000/rs6000.c (print_operand) <case 'D'>: Use
2634	output_operand_lossage instead of gcc_assert.
2635	<case 't'>: Likewise.
2636	<case 'z'>: Likewise.
2637	<case 'V'>: Use output_operand_lossage instead of gcc_unreachable.
2638
26392018-11-27  Jeff Law  <law@redhat.com>
2640
2641	* config/riscv/riscv (riscv_block_mvoe_straight): Use RETURN_BEGIN
2642	in call to move_by_pieces.
2643
2644	* config/sh/sh-mem.c (expand_block_move): Use RETURN_BEGIN in call
2645	to move_by_pieces.
2646
2647	* config/lm32/lm32.c (lm32_block_move_inline): Use RETURN_BEGIN in
2648	call to move_by_pieces.
2649
2650	* config/mips/mips.c (mips_block_move_straight): Use RETURN_BEGIN
2651	in call to move_by_pieces.
2652
2653	* config/microblaze/microblaze.c (microblaze_block_move_straight): Use
2654	RETURN_BEGIN in call to move_by_pieces.
2655	(microblaze_expand_block_move): Likewise.
2656
26572018-11-27  Tamar Christina  <tamar.christina@arm.com>
2658
2659	* doc/md.texi (xorsign): Document it.
2660
26612018-11-27  Martin Liska  <mliska@suse.cz>
2662
2663	* config/gnu-user.h (TARGET_F951_OPTIONS): New.
2664	* gcc.c (find_fortran_preinclude_file): New function
2665	to handle Fortran pre-include.
2666
26672018-11-27  Martin Liska  <mliska@suse.cz>
2668
2669	* asan.c (asan_emit_stack_protection): Use new enum values
2670	instead of int constants.
2671	* builtins.c (expand_builtin_memory_copy_args): Replace int
2672	type with memop_ret enum type.
2673	(expand_builtin_mempcpy_args): Likewise.
2674	(expand_builtin_memcpy): Use new enum values
2675	instead of int constants. Likewise.
2676	(expand_builtin_mempcpy): Likewise.
2677	(expand_movstr): Likewise.
2678	(expand_builtin_strcpy_args): Likewise.
2679	(expand_builtin_stpcpy_1): Likewise.
2680	(expand_builtin_strncpy): Likewise.
2681	(expand_builtin_memset_args): Likewise.
2682	* expr.c (move_by_pieces_d::finish_endp): Rename to ...
2683	(move_by_pieces_d::finish_retmode): ... this.
2684	(move_by_pieces): Change last argument type to memop_ret.
2685	(store_by_pieces): Use new enum values
2686	instead of int constants.
2687	(emit_block_move_hints): Likewise.
2688	(emit_push_insn): Likewise.
2689	(store_expr): Likewise.
2690	* expr.h (store_by_pieces): Change int to newly added enum
2691	type.
2692	* rtl.h (enum memop_ret): Define.
2693	(move_by_pieces): Use the enum type.
2694
26952018-11-27  Alan Modra  <amodra@gmail.com>
2696
2697	* config/rs6000/aix71.h (ASM_SPEC): Don't select default -maix64
2698	cpu here.
2699	(ASM_CPU_SPEC): Do so here.  Rewrite using if .. else if .. specs
2700	form.  Error on missing -mcpu case.
2701	* config/rs6000/driver-rs6000.c (asm_names <_AIX>): Update NULL case.
2702	(asm_names <!_AIX>): Add missing cpus.  Update NULL case.  Apply
2703	PR63177 fix for -mcpu=power8 and -mcpu=powerpc64le.
2704	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Rewrite using if ..
2705	else if .. specs form.  Error on missing -mcpu case.  Don't output
2706	duplicate -maltivec.  Apply PR63177 fix for -mcpu=powerpc64le.
2707
27082018-11-26  David Malcolm  <dmalcolm@redhat.com>
2709
2710	* dump-context.h (dump_context::dump_loc): Convert 1st param from
2711	dump_flags_t to const dump_metadata_t &.  Convert 2nd param from
2712	const dump_location_t & to const dump_user_location_t &.
2713	(dump_context::dump_loc_immediate): Convert 2nd param from
2714	const dump_location_t & to const dump_user_location_t &.
2715	(dump_context::dump_gimple_stmt): Convert 1st param from
2716	dump_flags_t to const dump_metadata_t &.
2717	(dump_context::void dump_gimple_stmt_loc): Likewise; convert
2718	2nd param from const dump_location_t & to
2719	const dump_user_location_t &.
2720	(dump_context::dump_gimple_expr): Convert 1st param from
2721	dump_flags_t to const dump_metadata_t &.
2722	(dump_context::dump_gimple_expr_loc): Likewise; convert
2723	2nd param from const dump_location_t & to
2724	const dump_user_location_t &.
2725	(dump_context::dump_generic_expr): Convert 1st param from
2726	dump_flags_t to const dump_metadata_t &.
2727	(dump_context::dump_generic_expr_loc): Likewise; convert
2728	2nd param from const dump_location_t & to
2729	const dump_user_location_t &.
2730	(dump_context::dump_printf_va): Convert 1st param from
2731	dump_flags_t to const dump_metadata_t &.
2732	(dump_context::dump_printf_loc_va): Likewise; convert
2733	2nd param from const dump_location_t & to
2734	const dump_user_location_t &.
2735	(dump_context::dump_dec): Convert 1st param from
2736	dump_flags_t to const dump_metadata_t &.
2737	(dump_context::dump_symtab_node): Likewise.
2738	(dump_context::begin_scope): Split out 2nd param into
2739	user and impl locations.
2740	(dump_context::ensure_pending_optinfo): Add metadata param.
2741	(dump_context::begin_next_optinfo): Replace dump_location_t param
2742	with metadata and user location.
2743	* dumpfile.c (dump_context::dump_loc): Convert 1st param from
2744	dump_flags_t to const dump_metadata_t &.  Convert 2nd param from
2745	const dump_location_t & to const dump_user_location_t &.
2746	(dump_context::dump_loc_immediate): Convert 2nd param from
2747	const dump_location_t & to const dump_user_location_t &.
2748	(dump_context::dump_gimple_stmt): Convert 1st param from
2749	dump_flags_t to const dump_metadata_t &.
2750	(dump_context::void dump_gimple_stmt_loc): Likewise; convert
2751	2nd param from const dump_location_t & to
2752	const dump_user_location_t &.
2753	(dump_context::dump_gimple_expr): Convert 1st param from
2754	dump_flags_t to const dump_metadata_t &.
2755	(dump_context::dump_gimple_expr_loc): Likewise; convert
2756	2nd param from const dump_location_t & to
2757	const dump_user_location_t &.
2758	(dump_context::dump_generic_expr): Convert 1st param from
2759	dump_flags_t to const dump_metadata_t &.
2760	(dump_context::dump_generic_expr_loc): Likewise; convert
2761	2nd param from const dump_location_t & to
2762	const dump_user_location_t &.
2763	(dump_context::dump_printf_va): Convert 1st param from
2764	dump_flags_t to const dump_metadata_t &.
2765	(dump_context::dump_printf_loc_va): Likewise; convert
2766	2nd param from const dump_location_t & to
2767	const dump_user_location_t &.
2768	(dump_context::dump_dec): Convert 1st param from
2769	dump_flags_t to const dump_metadata_t &.
2770	(dump_context::dump_symtab_node): Likewise.
2771	(dump_context::begin_scope): Split out 2nd param into
2772	user and impl locations.
2773	(dump_context::ensure_pending_optinfo): Add metadata param.
2774	(dump_context::begin_next_optinfo): Replace dump_location_t param
2775	with metadata and user location.
2776	(dump_gimple_stmt): Convert 1st param from dump_flags_t to
2777	const dump_metadata_t &.
2778	(dump_gimple_stmt_loc): Likewise; convert 2nd param from
2779	const dump_location_t & to const dump_user_location_t &.
2780	(dump_gimple_expr): Convert 1st param from dump_flags_t to
2781	const dump_metadata_t &.
2782	(dump_gimple_expr_loc): Likewise; convert 2nd param from
2783	const dump_location_t & to const dump_user_location_t &.
2784	(dump_generic_expr): Convert 1st param from dump_flags_t to
2785	const dump_metadata_t &.
2786	(dump_generic_expr_loc): Likewise; convert 2nd param from
2787	const dump_location_t & to const dump_user_location_t &.
2788	(dump_printf): Convert 1st param from dump_flags_t to
2789	const dump_metadata_t &.
2790	(dump_printf_loc): Likewise; convert 2nd param from
2791	const dump_location_t & to const dump_user_location_t &.
2792	(dump_dec): Convert 1st param from dump_flags_t to
2793	const dump_metadata_t &.
2794	(dump_symtab_node): Likewise.
2795	(dump_begin_scope): Split out 2nd param into user and impl
2796	locations.
2797	(selftest::assert_impl_location_eq): New function.
2798	(ASSERT_IMPL_LOCATION_EQ): New macro.
2799	(selftest::test_impl_location): Update to use
2800	ASSERT_IMPL_LOCATION_EQ.
2801	(selftest::test_capture_of_dump_calls): Convert "loc" to
2802	dump_user_location_t.  Add ASSERT_IMPL_LOCATION_EQ throughout,
2803	verifying line numbers of dump emissions.
2804	* dumpfile.h (class dump_metadata_t): New class.
2805	(dump_printf): Convert 1st param from dump_flags_t to
2806	const dump_metadata_t &.
2807	(dump_printf_loc): Likewise; convert 2nd param from
2808	const dump_location_t & to const dump_user_location_t &.
2809	(dump_generic_expr_loc): Likewise.
2810	(dump_generic_expr): Convert 1st param from dump_flags_t to
2811	const dump_metadata_t &.
2812	(dump_gimple_stmt_loc): Likewise; convert 2nd param from
2813	const dump_location_t & to const dump_user_location_t &.
2814	(dump_gimple_stmt): Convert 1st param from dump_flags_t to
2815	const dump_metadata_t &.
2816	(dump_gimple_expr_loc): Likewise; convert 2nd param from
2817	const dump_location_t & to const dump_user_location_t &.
2818	(dump_gimple_expr): Convert 1st param from dump_flags_t to
2819	const dump_metadata_t &.
2820	(dump_symtab_node): Likewise.
2821	(dump_dec): Likewise.
2822	(dump_begin_scope): Split out 2nd param into user and impl
2823	locations.
2824	(auto_dump_scope::auto_dump_scope): Split "loc" param into a user
2825	location and impl_location, and capture the impl_location.
2826	(AUTO_DUMP_SCOPE): Rename param from LOC to USER_LOC.
2827	* loop-unroll.c (report_unroll): Update for changes to
2828	dump_printf_loc and dump_printf.
2829	* opt-problem.cc (opt_problem::opt_problem): Update for change to
2830	dump_loc.
2831	* optinfo-emit-json.cc
2832	(selftest::test_building_json_from_dump_calls): Convert "loc" from
2833	dump_location_t to dump_user_location_t.
2834	* optinfo.cc (optinfo::emit_for_opt_problem): Update for change in
2835	dump_loc_immediate.
2836	* profile.c (compute_branch_probabilities): Update for change to
2837	dump_printf_loc.
2838	* selftest.h (ASSERT_STR_CONTAINS_AT): New macro.
2839	* tree-vect-slp.c (vect_print_slp_tree): Update for change to
2840	dump_printf_loc.
2841
28422018-11-27  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
2843
2844	* doc/sourcebuild.texi: Document check_effective_target_int_eq_float
2845	and check_effective_target_ptr_eq_long.
2846
28472018-11-27  Alan Modra  <amodra@gmail.com>
2848
2849	* config.gcc (powerpc*-*-freebsd*, powerpc-*-netbsd*),
2850	(powerpc-*-eabisimaltivec*, powerpc-*-eabisim*, powerpc-*-elf*),
2851	(powerpc-*-eabialtivec*, powerpc-*-eabi*, powerpc-*-rtems*),
2852	(powerpc-wrs-vxworks*, powerpc-*-lynxos*, powerpcle-*-elf*),
2853	(powerpcle-*-eabisim*, powerpcle-*-eabi*): Add gnu-user.h to tm_file.
2854	* config/rs6000/freebsd.h (CPLUSPLUS_CPP_SPEC),
2855	(LINK_GCC_C_SEQUENCE_SPEC): Undef.
2856	(ASM_APP_ON, ASM_APP_OFF): Don't define.
2857	* config/rs6000/freebsd64.h (ASM_APP_ON, ASM_APP_OFF): Don't define.
2858	* config/rs6000/lynx.h (ASM_APP_ON, ASM_APP_OFF): Don't define.
2859	* config/rs6000/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
2860	* config/rs6000/netbsd.h (CPLUSPLUS_CPP_SPEC),
2861	(LINK_GCC_C_SEQUENCE_SPEC): Undef.
2862	* config/rs6000/rtems.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
2863	* config/rs6000/sysv4.h (GNU_USER_TARGET_CRTI): Redefine.
2864	(GNU_USER_TARGET_CRTN): Redefine.
2865	(CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC.
2866	(LIB_LINUX_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
2867	(CRTOFFLOADBEGIN, CRTOFFLOADEND): Don't define.
2868	(STARTFILE_LINUX_SPEC): Define as GNU_USER_TARGET_STARTFILE_SPEC.
2869	(ENDFILE_LINUX_SPEC): Define as GNU_USER_TARGET_ENDFILE_SPEC.
2870	(UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER): Don't define.
2871	(LINK_EH_SPEC): Don't define.
2872
28732018-11-26  Martin Sebor  <msebor@redhat.com>
2874
2875	PR 87756
2876	* expr.c (string_constant): Handle top-level decls of all character
2877	types and subobjects of narrow character type.
2878
28792018-11-27  Alan Modra  <amodra@gmail.com>
2880
2881	* config.gcc (powerpc*-*-linux*): Add linux.h to tm_file.
2882	* config/rs6000/linux.h (TARGET_OS_CPP_BUILTINS): Use
2883	GNU_USER_TARGET_OS_CPP_BUILTINS.
2884	(RS6000_ABI_NAME): Define.
2885	* config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Use
2886	GNU_USER_TARGET_OS_CPP_BUILTINS.
2887	(MUSL_DYNAMIC_LINKER32): Undef before defining.
2888	(UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64): Don't define.
2889	(CHOOSE_DYNAMIC_LINKER): Don't define.
2890	(GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Don't define.
2891	* config/rs6000/sysv4.h (MUSL_DYNAMIC_LINKER): Undef before defining.
2892	(CHOOSE_DYNAMIC_LINKER, GNU_USER_DYNAMIC_LINKER): Only define when
2893	not already defined.
2894	(CPP_OS_LINUX_SPEC): Remove defines and asserts handled by
2895	TARGET_OS_CPP_BUILTINS.
2896
28972018-11-26  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
2898
2899	* doc/sourcebuild.texi: Document check_effective_target_newlib_nano_io.
2900
29012018-11-26  Jakub Jelinek  <jakub@redhat.com>
2902
2903	PR target/88195
2904	* config/i386/i386.c (def_builtin2): If tcode == VOID_FTYPE_UINT64
2905	and !TARGET_64BIT, return NULL_TREE.
2906
2907	PR c++/86900
2908	* dwarf2out.c (secname_for_decl): For functions with
2909	DECL_SECTION_NAME if in_cold_section_p, try to return
2910	current_function_section's name if it is a named section.
2911
29122018-11-26  Maya Rashish  <coypu@sdf.org>
2913
2914	PR target/58397
2915	* config.host (*-*-netbsd*): Use x-netbsd and host-netbsd.o.
2916	* config/x-netbsd: New file.
2917	* config/host-netbsd: New file.
2918
29192018-11-26  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
2920
2921	* doc/sourcebuild.texi: Document check_effective_target_size20plus.
2922	Clarify documentation for check_effective_target_size32plus.
2923
29242018-11-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
2925
2926	* config/rs6000/rs6000-string.c (expand_cmp_vec_sequence): Rename
2927	and modify expand_strncmp_vec_sequence.
2928	(emit_final_compare_vec): Rename and modify emit_final_str_compare_vec.
2929	(generate_6432_conversion): New function.
2930	(expand_block_compare): Add support for vsx.
2931	(expand_block_compare_gpr): New function.
2932	* config/rs6000/rs6000.opt (rs6000_block_compare_inline_limit): Increase
2933	default limit to 63 because of more compact vsx code.
2934
29352018-11-26  Uros Bizjak  <ubizjak@gmail.com>
2936
2937	PR target/88178
2938	* config/i386/i386.c (dbx_register_map): Use IGNORED_DWARF_REGNUM
2939	for registers for which no debug information can be generated.
2940	Use INVALID_REGNUM for non-existent registers.
2941	(dbx64_register_map): Ditto.
2942	(svr4_dbx_register_map): Ditto.
2943
29442018-11-26  Sandra Loosemore  <sandra@codesourcery.com>
2945
2946	PR c/57182
2947	* doc/invoke.texi (Optimize Options): Document that
2948	-freorder-functions also uses "hot" and "cold" attributes.
2949
29502018-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2951
2952	* config/aarch64/aarch64.c (aarch64_mangle_type): Fix typo in comment.
2953
29542018-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2955
2956	* config/arm/types.md (mul64): Rename to...
2957	(widen_mul64): ... This.
2958	* config/arm/arm-generic.md: Rename mul64 to widen_mul64.
2959	* config/arm/cortex-a15.md: Likewise.
2960	* config/arm/cortex-a5.md: Likewise.
2961	* config/arm/cortex-a53.md: Likewise.
2962	* config/arm/cortex-a57.md: Likewise.
2963	* config/arm/cortex-a7.md: Likewise.
2964	* config/arm/cortex-m4.md: Likewise.
2965	* config/arm/exynos-m1.md: Likewise.
2966	* config/arm/marvell-pj4.md: Likewise.
2967	* config/arm/xgene1.md: Likewise.
2968
29692018-11-26  Richard Biener  <rguenther@suse.de>
2970
2971	PR tree-optimization/88182
2972	* tree-vect-loop.c (vectorizable_reduction): Pick up single
2973	correct reduc_def_info.
2974	* tree-vect-slp.c (vect_analyze_slp_instance): Set
2975	STMT_VINFO_REDUC_DEF of the first stmt.
2976
29772018-11-26  Andreas Krebbel  <krebbel@linux.ibm.com>
2978
2979	* doc/invoke.texi: Document z14/arch12 -march option.
2980
29812018-11-25  Sandra Loosemore  <sandra@codesourcery.com>
2982
2983	PR c/57166
2984	* doc/invoke.texi (Option Summary): Add -Wmissing-noreturn.
2985	(Warning Options): Likewise.
2986
29872018-11-25  Sandra Loosemore  <sandra@codesourcery.com>
2988
2989	PR web/79738
2990	* doc/extend.texi (Common Function Attributes): Clarify that
2991	functions with "const" attribute can read const global variables.
2992
29932018-11-26  Alan Modra  <amodra@gmail.com>
2994
2995	* config/rs6000/rs6000.h (OBJECT_PEF, TARGET_MACOS): Delete.
2996
29972018-11-25  Sandra Loosemore  <sandra@codesourcery.com>
2998
2999	PR other/54265
3000	* doc/extend.texi (Common Variable Attributes): Use preferred
3001	placement of type attributes in examples, plus whitespace fixes.
3002	(Type Attributes): Clarify why placement of attributes
3003	immediately after struct/union/enum keyword is preferred.
3004	(Common Type Attributes): Use preferred placement of type
3005	attributes in examples, plus more whitespace fixes.
3006
30072018-11-25  Paul Koning  <ni1d@arrl.net>
3008
3009	* config/pdp11/pdp11.h (TARGET_HAS_NO_HW_DIVIDE): Define.
3010
30112018-11-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3012
3013	* doc/sourcebuild.texi (Effective-Target Keywords, Environment
3014	attributes): Document d_runtime.
3015
30162018-11-25  Vladimir Makarov  <vmakarov@redhat.com>
3017
3018	PR bootstrap/88157
3019	* ira-costs.c (record_operand_costs): Initiate register move cost
3020	for mode.
3021
30222018-11-23  Jeff Law  <law@redhat.com>
3023
3024	PR rtl-optimization/87468
3025	* tree-ssa-threadupdate.c (create_block_for_threading): Clear
3026	EDGE_IGNORE on all outgoing edges of the duplicate block.
3027
30282018-11-23  Vladimir Makarov  <vmakarov@redhat.com>
3029
3030	PR bootstrap/88157
3031	* ira-costs.c (record_operand_costs): Use bigger hard reg class if
3032	its mode does not fit to the original class.
3033
30342018-11-23  Martin Sebor  <msebor@redhat.com>
3035
3036	PR tree-optimization/87756
3037	* expr.c (string_constant): Synthesize a string literal from
3038	the address of a constant character.
3039	* tree.c (build_string_literal): Add an argument.
3040	* tree.h (build_string_literal): Same.
3041
30422018-11-23  Christoph Muellner  <christoph.muellner@theobroma-systems.com>
3043
3044	* config/aarch64/aarch64-cores.def: Define emag.
3045	* config/aarch64/aarch64-tune.md: Regenerated with emag.
3046	* config/aarch64/aarch64.c (emag_tunings): New struct.
3047	* doc/invoke.texi: Document mtune value.
3048
30492018-11-23  Christoph Muellner  <christoph.muellner@theobroma-systems.com>
3050	    Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
3051
3052	* config/aarch64/aarch64.c (xgene1_tunings): Optimize Xgene1 tunings
3053	for GCC 9.
3054	* config/aarch64/aarch64.c (xgene1_tunings): Add Xgene1 specific
3055	prefetch tunings.
3056	* config/aarch64/aarch64.c (xgene1_addrcost_table): Correct the post-modify
3057	costs.
3058	* config/arm/aarch-cost-tables.h (xgene1_extra_costs): Update the cost table
3059	for XGene1.
3060
30612018-11-23  Richard Biener  <rguenther@suse.de>
3062
3063	PR tree-optimization/88149
3064	* tree-vect-slp.c (vect_slp_analyze_node_operations): Detect
3065	the case where there are two different def types for the
3066	same operand at different operand position in the same stmt.
3067
30682018-23-11  Mihail Ionescu  <mihail.ionescu@arm.com>
3069
3070	* config/arm/arm.c (arm_expand_compare_and_swap): Simplify and call
3071	gen_atomic_compare_swap_1.
3072	(arm_evpc_neon_vuzp): Likewise gen_neon_vuzp_internal.
3073	(arm_evpc_neon_vtrn): Likewise gen_neon_vtrn_internal.
3074	(arm_evpc_neon_vext): Likewise gen_neon_vext_internal.
3075	(arm_evpc_neon_vzip): Likewise gen_neon_vzip_internal.
3076	(arm_evpc_neon_vrev): Replace the function pointer and simplify the mode
3077	checks.
3078	* config/arm/arm.md (neon_vext<mode>),
3079	(neon_vrev64<mode>, neon_vrev32<mode>),
3080	(neon_vrev16<mode>, neon_vtrn<mode>_internal),
3081	(neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Add an '@'character
3082	before the pattern name.
3083	* config/arm/sync.md:
3084	(atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1),
3085	(atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise.
3086
30872018-11-23  Jakub Jelinek  <jakub@redhat.com>
3088
3089	PR tree-optimization/86614
3090	* gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Return early
3091	if TREE_NO_WARNING is set on ref.ref.
3092
30932018-11-22  Sandra Loosemore  <sandra@codesourcery.com>
3094	    Alan Coopersmith  <alan.coopersmith@oracle.com>
3095
3096	PR c/53608
3097	* doc/extend.texi (Designated Inits): Clarify handling of multiple
3098	initializers for unions.
3099
31002018-11-22  Jan Hubicka  <jh@suse.cz>
3101
3102	PR lto/88142
3103	* ipa-devirt.c (type_variants_equivalent_p): Drop warn and warned
3104	parameters; do not warn here.
3105	(odr_subtypes_equivalent_p): Likewise.
3106	(warn_odr): Fix typo.
3107	(warn_types_mismatch): Do not output confused warnings on integer types.
3108	(odr_types_equivalent_p): Update.
3109
31102018-11-22  Jakub Jelinek  <jakub@redhat.com>
3111
3112	* config/i386/i386.c (ix86_option_override_internal,
3113	ix86_can_inline_p, classify_argument, construct_container,
3114	ix86_expand_prologue, ix86_expand_split_stack_prologue,
3115	ix86_expand_carry_flag_compare, expand_set_or_movmem_via_loop,
3116	expand_setmem_epilogue_via_loop, promote_duplicated_reg,
3117	ix86_expand_set_or_movmem, ix86_init_builtins_va_builtins_abi):
3118	Formatting fixes.
3119
3120	* config/i386/i386.c (ix86_option_override_internal): For
3121	stack_protector_guard related options, use opts_set->x_ instead
3122	of global_options_set. and prefix options with opts->x_ .  Move
3123	defaults for offset and reg into else block.
3124
31252018-11-22  Uros Bizjak  <ubizjak@gmail.com>
3126
3127	* config/i386/i386.c (ix86_check_avx_upper_register):
3128	Return true for all SSE registers with mode bitsize > 128.
3129
31302018-11-22  Vladimir Makarov  <vmakarov@redhat.com>
3131
3132	PR rtl-optimization/87718
3133	* ira-costs.c: Remove trailing white-spaces.
3134	(record_operand_costs): Add a special treatment for moves
3135	involving a hard register.
3136
31372018-11-22  Uros Bizjak  <ubizjak@gmail.com>
3138
3139	* config/i386/i386.c (ix86_avx_emit_vzeroupper): Remove.
3140	(ix86_emit_mode_set) <case AVX_U128>: Emit vzeroupper here.
3141
31422018-11-22  Martin Liska  <mliska@suse.cz>
3143
3144	* common/config/i386/i386-common.c (processor_names): Add
3145	static assert and add missing "znver2".
3146	(ix86_get_valid_option_values): Add checking assert for null
3147	values and add "native" value if feasible.
3148	* config/i386/i386.h: Do not declare size of processor_names.
3149	* common/config/i386/i386-common.c:
3150	* config/i386/i386.c: Add static assert for size
3151	of processor_cost_table.
3152
31532018-11-22  Thomas Preud'homme  <thomas.preudhomme@linaro.org>
3154
3155	* target-insns.def (stack_protect_combined_set): Define new standard
3156	pattern name.
3157	(stack_protect_combined_test): Likewise.
3158	* cfgexpand.c (stack_protect_prologue): Try new
3159	stack_protect_combined_set pattern first.
3160	* function.c (stack_protect_epilogue): Try new
3161	stack_protect_combined_test pattern first.
3162	* config/arm/arm.c (require_pic_register): Add pic_reg and compute_now
3163	parameters to control which register to use as PIC register and force
3164	reloading PIC register respectively.  Insert in the stream of insns if
3165	possible.
3166	(legitimize_pic_address): Expose above new parameters in prototype and
3167	adapt recursive calls accordingly.  Use pic_reg if non null instead of
3168	cached one.
3169	(arm_load_pic_register): Add pic_reg parameter and use it if non null.
3170	(arm_legitimize_address): Adapt to new legitimize_pic_address
3171	prototype.
3172	(thumb_legitimize_address): Likewise.
3173	(arm_emit_call_insn): Adapt to require_pic_register prototype change.
3174	(arm_expand_prologue): Adapt to arm_load_pic_register prototype change.
3175	(thumb1_expand_prologue): Likewise.
3176	* config/arm/arm-protos.h (legitimize_pic_address): Adapt to prototype
3177	change.
3178	(arm_load_pic_register): Likewise.
3179	* config/arm/predicated.md (guard_addr_operand): New predicate.
3180	(guard_operand): New predicate.
3181	* config/arm/arm.md (movsi expander): Adapt to legitimize_pic_address
3182	prototype change.
3183	(builtin_setjmp_receiver expander): Adapt to thumb1_expand_prologue
3184	prototype change.
3185	(stack_protect_combined_set): New expander..
3186	(stack_protect_combined_set_insn): New insn_and_split pattern.
3187	(stack_protect_set_insn): New insn pattern.
3188	(stack_protect_combined_test): New expander.
3189	(stack_protect_combined_test_insn): New insn_and_split pattern.
3190	(arm_stack_protect_test_insn): New insn pattern.
3191	* config/arm/thumb1.md (thumb1_stack_protect_test_insn): New insn pattern.
3192	* config/arm/unspecs.md (UNSPEC_SP_SET): New unspec.
3193	(UNSPEC_SP_TEST): Likewise.
3194	* doc/md.texi (stack_protect_combined_set): Document new standard
3195	pattern name.
3196	(stack_protect_set): Clarify that the operand for guard's address is
3197	legal.
3198	(stack_protect_combined_test): Document new standard pattern name.
3199	(stack_protect_test): Clarify that the operand for guard's address is
3200	legal.
3201
32022018-11-22  Richard Biener  <rguenther@suse.de>
3203
3204	PR tree-optimization/88148
3205	* tree-ssa-loop-niter.c (simplify_replace_tree): Get optional
3206	valueization callback parameter and handle it.
3207	* tree-ssa-loop-niter.h (simplify_replace_tree): Export.
3208	* tree-ssa-sccvn.c (process_bb): Eliminate in loop niter trees.
3209
32102018-11-22  Richard Biener  <rguenther@suse.de>
3211
3212	PR lto/87229
3213	PR lto/88112
3214	* lto-streamer-out.c (lto_is_streamable): Allow CALL_EXPRs
3215	which can appear in size expressions.
3216	* tree-streamer-in.c (unpack_ts_base_value_fields): Stream
3217	CALL_EXPR_BY_DESCRIPTOR.
3218	(streamer_read_tree_bitfields): Stream CALL_EXPR_IFN.
3219	* tree-streamer-out.c (pack_ts_base_value_fields): Stream
3220	CALL_EXPR_BY_DESCRIPTOR.
3221	(streamer_write_tree_bitfields): Stream CALL_EXPR_IFN.
3222
3223	Revert
3224	PR lto/87229
3225	* tree.c (free_lang_data_in_one_sizepos): Free non-gimple-val
3226	sizepos values.
3227
32282018-11-22  Richard Biener  <rguenther@suse.de>
3229
3230	PR tree-optimization/88069
3231	* tree-ssa-sccvn.c (visit_phi): Tweak previous fix to not
3232	apply to default defs.
3233
32342018-11-22  Jakub Jelinek  <jakub@redhat.com>
3235
3236	PR target/85644
3237	PR target/86832
3238	* config/i386/i386.c (ix86_option_override_internal): Default
3239	ix86_stack_protector_guard to SSP_TLS only if TARGET_THREAD_SSP_OFFSET
3240	is defined.
3241	* config/i386/i386.md (stack_protect_set, stack_protect_set_<mode>,
3242	stack_protect_test, stack_protect_test_<mode>): Use empty condition
3243	instead of TARGET_SSP_TLS_GUARD.
3244
32452018-11-22  Martin Liska  <mliska@suse.cz>
3246
3247	PR sanitizer/88017
3248	* config/i386/i386.c (ix86_option_override_internal): Error
3249	about usage -mabi=ms and -fsanitize=thread.
3250
32512018-11-21  Uros Bizjak  <ubizjak@gmail.com>
3252
3253	Revert the revert:
3254	2013-10-26  Vladimir Makarov  <vmakarov@redhat.com>
3255
3256	Revert:
3257	2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>
3258
3259	* lra-spills.c (lra_final_code_change): Remove useless move insns.
3260
32612018-11-21  Uros Bizjak  <ubizjak@gmail.com>
3262
3263	PR middle-end/88129
3264	* function.c (expand_function_end): Do not emit extra blockage insn.
3265
32662018-11-21  Lokesh Janghel  <lokeshjanghel91@gmail.com>
3267
3268	PR target/85667
3269	* config/i386/i386.c (function_value_ms_64): Return AX_REG instead
3270	of FIRST_SSE_REG for 4 or 8 byte modes.
3271
32722018-11-21  Jan Hubicka  <jh@suse.cz>
3273
3274	PR lto/87957
3275	* tree.c (fld_decl_context): Break out from ...
3276	(free_lang_data_in_decl): ... here; free TREE_PUBLIC, TREE_PRIVATE
3277	DECL_ARTIFICIAL of TYPE_DECL; do not free TREE_TYPE of TYPE_DECL.
3278	(fld_incomplete_type_of): Build copy of TYP_DECL.
3279	* ipa-devirt.c (free_enum_values): Rename to ...
3280	(free_odr_warning_data): ... this one; free also duplicated TYPE_DECLs
3281	and TREE_TYPEs of TYPE_DECLs.
3282	(get_odr_type): Initialize odr_vtable_hash if needed.
3283
32842018-11-21  Alexandre Oliva  <oliva@adacore.com>
3285
3286	* final.c (compute_discriminator): Declare.  Renamed from...
3287	(maybe_set_discriminator): ... this.  Set and return a local.
3288	(override_discriminator): New.
3289	(final_scan_insn_1): Set it.
3290	(notice_source_line): Adjust.  Always set discriminator.
3291
32922018-11-21  Jakub Jelinek  <jakub@redhat.com>
3293
3294	PR target/87839
3295	* config/aarch64/atomics.md (@aarch64_compare_and_swap<mode>): Use
3296	rIJ constraint for aarch64_plus_operand rather than rn.
3297
32982018-11-21  Renlin Li  <renlin.li@arm.com>
3299
3300	PR middle-end/84877
3301	* explow.h (get_dynamic_stack_size): Declare it as external.
3302	* explow.c (record_new_stack_level): Remove function static attribute.
3303	* function.c (assign_stack_local_1): Dynamically align the stack slot
3304	addr for parameter copy on the stack.
3305
33062018-11-21  Richard Biener  <rguenther@suse.de>
3307
3308	PR bootstrap/88133
3309	* bitmap.c (bitmap_last_set_bit): Refactor to avoid warning.
3310	* Makefile.in (bitmap.o-warn): Remove again.
3311
33122018-11-20  Jeff Law  <law@redhat.com>
3313
3314	PR tree-optimization/88069
3315	* tree-ssa-dom.c (record_equivalences_from_phis): Propagate away
3316	degenerate virtual PHIs.
3317
33182018-11-21  H.J. Lu  <hongjiu.lu@intel.com>
3319
3320	PR target/87317
3321	* config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Replace
3322	nonimmediate_operand with register_operand.
3323	(avx2_<code>v8qiv8si2<mask_name>): Likewise.
3324	(sse4_1_<code>v4qiv4si2<mask_name>): Likewise.
3325	(sse4_1_<code>v4hiv4si2<mask_name>): Likewise.
3326	(sse4_1_<code>v2qiv2di2<mask_name>): Likewise.
3327	(avx512f_<code>v8qiv8di2<mask_name>): Likewise.
3328	(avx2_<code>v4qiv4di2<mask_name>): Likewise.
3329	(avx2_<code>v4hiv4di2<mask_name>): Likewise.
3330	(sse4_1_<code>v2hiv2di2<mask_name>): Likewise.
3331	(sse4_1_<code>v2siv2di2<mask_name>): Likewise.
3332	(*sse4_1_<code>v8qiv8hi2<mask_name>_1): New pattern.
3333	(*sse4_1_<code>v8qiv8hi2<mask_name>_2): Likewise.
3334	(*avx2_<code>v8qiv8si2<mask_name>_1): Likewise.
3335	(*avx2_<code>v8qiv8si2<mask_name>_2): Likewise.
3336	(*sse4_1_<code>v4qiv4si2<mask_name>_1): Likewise.
3337	(*sse4_1_<code>v4qiv4si2<mask_name>_2): Likewise.
3338	(*sse4_1_<code>v4hiv4si2<mask_name>_1): Likewise.
3339	(*sse4_1_<code>v4hiv4si2<mask_name>_2): Likewise.
3340	(*avx512f_<code>v8qiv8di2<mask_name>_1): Likewise.
3341	(*avx512f_<code>v8qiv8di2<mask_name>_2): Likewise.
3342	(*avx2_<code>v4qiv4di2<mask_name>_1): Likewise.
3343	(*avx2_<code>v4qiv4di2<mask_name>_2): Likewise.
3344	(*avx2_<code>v4hiv4di2<mask_name>_1): Likewise.
3345	(*avx2_<code>v4hiv4di2<mask_name>_2): Likewise.
3346	(*sse4_1_<code>v2hiv2di2<mask_name>_1): Likewise.
3347	(*sse4_1_<code>v2hiv2di2<mask_name>_2): Likewise.
3348	(*sse4_1_<code>v2siv2di2<mask_name>_1): Likewise.
3349	(*sse4_1_<code>v2siv2di2<mask_name>_2): Likewise.
3350
33512018-11-21  H.J. Lu  <hongjiu.lu@intel.com>
3352
3353	* read-rtl.c (apply_subst_iterator): Handle define_split and
3354	define_insn_and_split.
3355
33562018-11-21  Jakub Jelinek  <jakub@redhat.com>
3357
3358	PR rtl-optimization/87817
3359	* config/i386/i386.md (bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3,
3360	*bmi2_bzhi_<mode>3_1, *bmi2_bzhi_<mode>3_1_ccz): Use IF_THEN_ELSE
3361	in the pattern to avoid triggering UB when operands[2] is zero.
3362	(tbm_bextri_<mode>): New expander.  Renamed the old define_insn to ...
3363	(*tbm_bextri_<mode>): ... this.
3364
33652018-11-21  Tom de Vries  <tdevries@suse.de>
3366
3367	PR driver/79855
3368	* params.def (HOT_BB_COUNT_FRACTION): Terminate help message with
3369	period.
3370
33712018-11-21  Andreas Krebbel  <krebbel@linux.ibm.com>
3372
3373	* configure.ac: Add check for Binutils to determine whether vector
3374	load/store alignments hints are being supported.
3375	* config.in: Regenerate.
3376	* configure: Regenerate.
3377	* config/s390/s390.c (print_operand): Support new output
3378	modifier A.
3379	* config/s390/s390.md ("movti"): Append alignment hint output
3380	using the new output modifier 'A'.
3381	* config/s390/vector.md ("mov<mode>", "*vec_tf_to_v1tf")
3382	("*vec_ti_to_v1ti"): Likewise.
3383
33842018-11-20  Martin Sebor  <msebor@redhat.com>
3385
3386	* doc/extend.texi (Other Builtins): Add __builtin_has_attribute.
3387
33882018-11-20  Jan Hubicka  <hubicka@ucw.cz>
3389
3390	PR lto/84044
3391	* ipa-devirt.c (odr_types_equivalent_p): Use operand_equal_p to
3392	compare ENUM values.
3393
33942018-11-20  Jakub Jelinek  <jakub@redhat.com>
3395
3396	PR tree-optimization/87895
3397	* omp-simd-clone.c (ipa_simd_modify_function_body): When removing
3398	or replacing GIMPLE_RETURN, set EDGE_FALLTHRU on the edge to EXIT.
3399	(simd_clone_adjust): Don't set EDGE_FALLTHRU here. In a loop that
3400	redirects edges to EXIT to edges to incr_bb, iterate while EXIT
3401	has any preds and always use EDGE_PRED (, 0).
3402
34032018-11-20  Uros Bizjak  <ubizjak@gmail.com>
3404
3405	PR target/88070
3406	* mode-switching.c (create_pre_exit): After reload, always split the
3407	fallthrough edge to the exit block.
3408
34092018-11-20  Jan Hubicka  <hubicka@ucw.cz>
3410
3411	* ipa-devirt.c (add_type_duplicate): Do not ICE on incomplete enums.
3412	* tree.c (build_array_type_1): Forward declare.
3413	(fld_type_variant_equal_p): Add INNER_TYPE parameter.
3414	(fld_type_variant): Likewise.
3415	(fld_simplified_types): New hash.
3416	(fld_process_array_type): New function.
3417	(fld_incomplete_type_of): Handle array and enumeration types.
3418	(fld_simplified_type): Handle simplification of arrays.
3419	(free_lang_data): Allocate and free simplified types hash.
3420
34212018-11-20  Jan Hubicka  <hubicka@ucw.cz>
3422
3423	PR lto/87957
3424	* ipa-devirt.c (odr_subtypes_equivalent_p): Report ODR violation
3425	when sybtype already violates ODR.
3426	(get_odr_type): Do not ICE when insert is false and type duplicate
3427	is not registered yet.
3428	(register_odr_type): Be sure to register subtypes first.
3429
34302018-11-20  Andreas Krebbel  <krebbel@linux.ibm.com>
3431
3432	* config/s390/s390.md ("clztidi2"): Swap the RTX's written to the
3433	DImode parts of the target operand.
3434
34352018-11-20  Nathan Sidwell  <nathan@acm.org>
3436
3437	PR 87926
3438	* Makefile.in (bitmap.o-warn): Use -Wno-error=array-bounds.
3439
34402018-11-20  Jan Hubicka  <hubicka@ucw.cz>
3441
3442	PR lto/87997
3443	* tree.c (free_lang_data_in_cgraph): Add argument fld; break out
3444	type checking to...
3445	(free_lang_data) ... here; update call of free_lang_data_in_cgraph.
3446
34472018-11-20  Jan Hubicka  <hubicka@ucw.cz>
3448
3449	PR ipa/87706
3450	* ipa-fnsummary.c (pass_ipa_fnsummary): Do not remove functions
3451	* ipa.c (possible_inline_candidate_p): Break out from ..
3452	(process_references): ... here ; drop before_inlining_p;
3453	cleanup handling of alises.
3454	(walk_polymorphic_call_targets): Likewise.
3455	(symbol_table::remove_unreachable_nodes): Likewise.
3456	* passes.c (pass_data_ipa_remove_symbols): New structure.
3457	(pass_ipa_remove_symbols): New pass.
3458	(make_pass_ipa_remove_symbols): New function.
3459	* tree-pass.h (make_pass_ipa_remove_symbols): Declare.
3460	* passes.def (pass_ipa_remove_symbols): Schedule after early passes.
3461
34622018-11-20  Richard Biener  <rguenther@suse.de>
3463
3464	* tree-vect-stmts.c (vectorizable_condition): Do not get
3465	at else_clause vect def for EXTRACT_LAST_REDUCTION.  Remove
3466	pointless vect_is_simple_use calls.
3467
34682018-11-20  Richard Biener  <rguenther@suse.de>
3469
3470	PR tree-optimization/88074
3471	* tree-ssa-dom.c (pass_dominator::execute): Do not walk
3472	backedges.
3473
34742018-11-20  Richard Biener  <rguenther@suse.de>
3475
3476	PR tree-optimization/88069
3477	* tree-ssa-sccvn.c (visit_phi): Do not value-number to unvisited
3478	virtual PHI arguments.
3479
34802018-11-20  Ilya Leoshkevich  <iii@linux.ibm.com>
3481
3482	PR target/88083
3483	* config/s390/s390.md: Skip LT(G) peephole when literal pool is
3484	involved.
3485	* rtl.h (contains_constant_pool_address_p): New function.
3486	* rtlanal.c (contains_constant_pool_address_p): Likewise.
3487
34882018-11-20  Richard Biener  <rguenther@suse.de>
3489
3490	PR middle-end/83215
3491	* alias.c (component_uses_parent_alias_set_from): Remove
3492	alias-set zero and TYPE_TYPELESS_STORAGE case both already
3493	handled in other ways.
3494
34952018-11-20  Richard Biener  <rguenther@suse.de>
3496
3497	PR tree-optimization/88087
3498	* tree-ssa-pre.c (create_expression_by_pieces): Re-materialize
3499	call fntype.
3500	* tree-ssa-sccvn.c (copy_reference_ops_from_call): Remember
3501	call fntype.
3502
35032018-11-20  Richard Biener  <rguenther@suse.de>
3504
3505	PR middle-end/88089
3506	* tree-data-ref.c (lambda_matrix_right_hermite): Use abs_hwi.
3507
35082018-11-19  Jan Hubicka  <hubicka@ucw.cz>
3509
3510	PR lto/87957
3511	* ipa-devirt.c (free_enum_values): Do not ICE on ODR vilations.
3512
35132018-11-19  Sandra Loosemore  <sandra@codesourcery.com>
3514
3515	PR driver/50250
3516	* doc/invoke.texi (Link Options): Mention shared libraries
3517	in documentation for the -l option.  Simplify discussion and
3518	point to the system linker documentation for details.
3519
35202018-11-19  Peter Bergner  <bergner@linux.ibm.com>
3521
3522	PR rtl-optimization/88033
3523	* ira-lives.c (non_conflicting_reg_copy_p): Skip copies from a register
3524	to itself.  Use HARD_REGISTER_NUM_P.
3525
35262018-11-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3527
3528	* tree-vect-loop.c (vect_transform_loop): Disable further unrolling
3529	of the loop if vf is non-constant.
3530
35312018-11-19  David Malcolm  <dmalcolm@redhat.com>
3532
3533	PR tree-optimization/87025
3534	* dumpfile.c (dump_context::begin_scope): Call end_any_optinfo
3535	immediately after creating the scope optinfo.
3536	(selftest::test_pr87025): New function.
3537	(selftest::dumpfile_c_tests): Call it.
3538	* optinfo-emit-json.cc (optrecord_json_writer::pop_scope): Assert
3539	that we're not popping the top-level records array.
3540	* optinfo.cc (optinfo::handle_dump_file_kind): Assert that we're
3541	not changing the kind of a "scope" optinfo.
3542
35432018-11-19  David Malcolm  <dmalcolm@redhat.com>
3544
3545	PR tree-optimization/87025
3546	* dump-context.h: Include "optinfo.h".
3547	(class optrecord_json_writer): New forward decl.
3548	(dump_context::forcibly_enable_optinfo_p): Delete.
3549	(dump_context::optinfo_enabled_p): New member function.
3550	(dump_context::optimization_records_enabled_p): New member
3551	function.
3552	(dump_context::set_json_writer): New member function.
3553	(dump_context::emit_optinfo): New member function.
3554	(dump_context::m_forcibly_enable_optinfo): Delete.
3555	(dump_context::m_json_writer): New member data.
3556	* dumpfile.c (dump_context::set_json_writer): New member function.
3557	(dump_context::finish_any_json_writer): New member function.
3558	(dump_context::end_scope): Replace call to
3559	optimization_records_maybe_pop_dump_scope with call to
3560	m_json_writer->pop_scope.
3561	(dump_context::optinfo_enabled_p): New member function.
3562	(dump_context::end_any_optinfo): Replace call to optinfo::emit with call
3563	to dump_context::emit_optinfo.
3564	(dump_context::emit_optinfo): New member function.
3565	(temp_dump_context::temp_dump_context): Replace
3566	m_forcibly_enable_optinfo with call to set_json_writer.
3567	(temp_dump_context::~temp_dump_context): Clean up any json writer.
3568	* optinfo-emit-json.cc (class optrecord_json_writer): Move to
3569	optinfo-emit-json.h
3570	(the_json_writer): Delete.
3571	(optimization_records_start): Delete.
3572	(optimization_records_finish): Delete.
3573	(optimization_records_enabled_p): Delete, in favor of
3574	dump_context::optimization_records_enabled_p.
3575	(optimization_records_maybe_record_optinfo): Delete.
3576	(optimization_records_maybe_pop_dump_scope): Delete.
3577	* optinfo-emit-json.h: Include "json.h".  Delete forward
3578	decl of opt_pass.
3579	(optimization_records_start): Delete.
3580	(optimization_records_finish): Delete.
3581	(optimization_records_enabled_p): Delete.
3582	(optimization_records_maybe_record_optinfo): Delete.
3583	(optimization_records_maybe_pop_dump_scope): Delete.
3584	(class optrecord_json_writer): Move here from
3585	optinfo-emit-json.cc.
3586	* optinfo.cc (optinfo::emit_for_opt_problem): Replace call
3587	to optinfo::emit with call to dump_context::emit_optinfo.
3588	(optinfo::emit): Delete, in favor of dump_context::emit_optinfo.
3589	(optinfo_enabled_p): Delete, in favor of
3590	dump_context::optinfo_enabled_p.
3591	(optinfo_wants_inlining_info_p): Update for conversion o
3592	optimization_records_enabled_p to a member function of
3593	dump_context.
3594	* optinfo.h (optinfo_enabled_p): Delete, in favor of
3595	dump_context::optinfo_enabled_p.
3596	(optinfo::emit): Delete, in favor of dump_context::emit_optinfo.
3597	* toplev.c: Include "dump-context.h".
3598	(compile_file): Replace call to optimization_records_finish with
3599	dump_context::finish_any_json_writer.
3600	(do_compile): Replace call to optimization_records_start with
3601	conditionally creating a optrecord_json_writer for the
3602	dump_context.
3603
36042018-11-19  Jakub Jelinek  <jakub@redhat.com>
3605
3606	PR tree-optimization/88071
3607	* tree-vect-loop.c (vectorize_fold_left_reduction): Pass true instead
3608	of false as last argument to gsi_remove.
3609	* tree-vect-stmts.c (vect_finish_replace_stmt): Pass true instead of
3610	false as last argument to gsi_replace.
3611
3612	PR debug/87039
3613	* omp-expand.c: Don't include debug.h.
3614	(adjust_context_and_scope): Add REGION argument.  Find DECL_CONTEXT
3615	from innermost outer parallel, task, teams or target that has a
3616	child_fn set, or, if there is no such outer region, use
3617	current_function_decl.  Do the DECL_CONTEXT adjustment regardless of
3618	whether a suitable BLOCK is found or not.
3619	(expand_parallel_call, expand_teams_call): Don't call
3620	adjust_context_and_scope here.
3621	(grid_expand_target_grid_body): Revert 2017-01-25 changes.
3622	(expand_omp_taskreg, expand_omp_target): Likewise.  Call
3623	adjust_context_and_scope.
3624	* dwarf2out.c (dwarf2out_early_global_decl): For
3625	decl_function_context recurse instead of calling dwarf2out_decl.
3626
36272018-11-20  Eric Botcazou  <ebotcazou@adacore.com>
3628
3629	PR rtl-optimization/85925
3630	* rtl.h (word_register_operation_p): New predicate.
3631	* combine.c (record_dead_and_set_regs_1): Only apply specific handling
3632	for WORD_REGISTER_OPERATIONS targets to word_register_operation_p RTX.
3633	* rtlanal.c (nonzero_bits1): Likewise.  Adjust couple of comments.
3634	(num_sign_bit_copies1): Likewise.
3635
36362018-11-19  Richard Biener  <rguenther@suse.de>
3637
3638	PR lto/87229
3639	* tree.c (free_lang_data_in_one_sizepos): Free non-gimple-val
3640	sizepos values.
3641
36422018-11-19  Eric Botcazou  <ebotcazou@adacore.com>
3643
3644	* compare-elim.c (struct comparison): Add not_in_a field.
3645	(is_not): New static function.
3646	(strip_not): Likewise.
3647	(conforming_compare): Handle a NOT in the first operand.
3648	(can_eliminate_compare): Likewise.
3649	(find_comparison_dom_walker::before_dom_children): Likewise.
3650	(try_eliminate_compare): Likewise.
3651	* config/visium/visium.md (negsi2_insn_set_carry): Turn into...
3652	(neg<mode>2_insn_set_carry): ...this and add missing NEG operation.
3653
36542018-11-19  Jonathan Wakely  <jwakely@redhat.com>
3655
3656	* doc/extend.texi (Common Type Attributes): Fix typos.
3657
36582018-11-19  Martin Liska  <mliska@suse.cz>
3659
3660	PR gcov-profile/88045
3661	* coverage.c (coverage_begin_function): Add assert.
3662
36632018-11-18  Sandra Loosemore  <sandra@codesourcery.com>
3664
3665	PR other/40498
3666	* doc/extend.texi (Common Function Attributes): Document that
3667	no_instrument_function applies to -p and -pg, too.
3668	* doc/invoke.texi (Instrumentation Options): Add cross-references
3669	to docs for -p, -pg, and -finstrument-functions.
3670
36712018-11-18  Alan Modra  <amodra@gmail.com>
3672
3673	* config/gnu-user.h (GNU_USER_TARGET_CRTI): Define.
3674	(GNU_USER_TARGET_STARTFILE_SPEC): Use it here.
3675	(GNU_USER_TARGET_CRTN): Define.
3676	(GNU_USER_TARGET_ENDFILE_SPEC): Use it here.
3677	(GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC): Define.
3678
36792018-11-18  Alan Modra  <amodra@gmail.com>
3680
3681	* config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Delete
3682	!HAVE_LD_PIE variant.
3683	(GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
3684
36852018-11-17  Nick Clifton  <nickc@redhat.com>
3686	    Sandra Loosemore  <sandra@codesourcery.com>
3687
3688	PR driver/31357
3689	* doc/invoke.texi (Overall Options): Document that --help and
3690	--help=<value> options cannot be combined.
3691
36922018-11-17  Jim Wilson  <jimw@sifive.com>
3693
3694	* config/riscv/riscv.c (epilogue_cfa_sp_offset): New.
3695	(riscv_restore_reg): If restoring HARD_FRAME_POINTER_REGNUM, and
3696	epilogue_cfa_sp_offset set, then add REG_CFA_DEF_CFA regnote.
3697	(riscv_expand_epilogue): Initialize epilogue_cfa_sp_offset.  Set it
3698	to step2 if frame_pointer_needed and step1 is 0.
3699
37002018-11-17  Sandra Loosemore  <sandra@codesourcery.com>
3701
3702	PR c++/4225
3703	* doc/cpp.texi (System Headers): Add note about implicit
3704	extern "C" block on targets that define SYSTEM_IMPLICIT_EXTERN_C.
3705
37062018-11-17  Sandra Loosemore  <sandra@codesourcery.com>
3707
3708	PR c++/4025
3709	* doc/invoke.texi (C++ Dialect Options): Clarify usage of
3710	-fno-implicit-templates.
3711
37122018-11-17  Jakub Jelinek  <jakub@redhat.com>
3713
3714	PR tree-optimization/87546
3715	* tree-vect-patterns.c (vect_look_through_possible_promotion): Add
3716	min_precision variable, initially set it to orig_precision, only does
3717	something if op_type's precision is <= min_precision and update
3718	min_precision whenever calling set_op.
3719
37202018-11-16  Jan Hubicka  <hubicka@ucw.cz>
3721
3722	PR ipa/87957
3723	* ipa-devirt.c (warn_odr): Look for main variant to get TYPE_DECL.
3724
37252018-11-16  Sandra Loosemore  <sandra@codesourcery.com>
3726
3727	* doc/invoke.texi (Option Summary): Fix whitespace and line
3728	breaks in @gccoptlist environments.
3729	(Warning Options): Likewise.
3730	(Optimize Options): Likewise.
3731	(PowerPC SPE Options): Likewise.
3732	(RS/6000 and PowerPC Options): Likewise.
3733
37342018-11-16  Jeff Law  <law@redhat.com>
3735
3736	* config/mn10300/mn10300.md (adddi3_degenerate): Remove bogus
3737	gcc_assert.
3738
37392018-11-16  Sandra Loosemore  <sandra@codesourcery.com>
3740
3741	PR middle-end/23197
3742	* doc/invoke.texi (Optimize Options): Update options enabled by
3743	fprofile-generate, -fprofile-use, and -fauto-profile.
3744
37452018-11-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
3746
3747	PR target/87927
3748	* target-def.h: Initialize TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP.
3749	Add them to the TARGET_ASM_{,UN}ALIGNED_INT_OP structs.
3750	* target.def: Enumerate TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP in
3751	the byte_op hook.
3752	* target.h: Add psi, pdi, pti to struct asm_int_op definition.
3753	* targhooks.c (default_print_patchable_function_entry): Assert
3754	asm_int_op does not return a NULL string.
3755	* varasm.c (integer_asm_op): Return the op for a partial int type
3756	when the requested size does not correspond to an integer type.
3757	* config/msp430/msp430.c: Initialize TARGET_ASM_{,UN}ALIGNED_PSI_OP.
3758	* doc/tm.texi: Regenerate.
3759
37602018-11-12  Jason Merrill  <jason@redhat.com>
3761
3762	* gimplify.c (gimplify_case_label_expr): Handle hot/cold attributes.
3763
37642018-11-16  Michael Meissner  <meissner@linux.ibm.com>
3765
3766	* config/rs6000/constraints.md (wF constraint): Remove power9
3767	fusion documentation.  Just document wF's use for power8 fusion.
3768	* config/rs6000/predicates.md (p9_fusion_reg_operand): Delete.
3769	(fusion_gpr_addis): Delete power9 fusion support.  Change power8
3770	fusion support to require the upper 12 bits to be all 0's or all
3771	1's.
3772	(fusion_gpr_mem_load): Add comment.
3773	(fusion_addis_mem_combo_load): Remove power9 fusion support.
3774	(fusion_addis_mem_combo_store): Delete.
3775	(fusion_offsettable_mem_operand): Delete.
3776	* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Do not set
3777	power8 fusion here.
3778	(ISA_3_0_MASKS_SERVER): Delete power9 fusion.
3779	(POWERPC_MASKS): Delete power9 fusion.
3780	* config/rs6000/rs6000-protos.h (emit_fusion_load_store): Delete.
3781	(fusion_p9_p): Delete.
3782	(expand_fusion_p9_load): Delete.
3783	(expand_fusion_p9_store): Delete.
3784	(emit_fusion_p9_load): Delete.
3785	(emit_fusion_p9_store): Delete.
3786	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Delete power9
3787	fusion support.
3788	(rs6000_option_override_internal): Set power8 fusion based on
3789	whether we are tuning for power8.  Delete power9 fusion support.
3790	(rs6000_opt_masks): Delete -mpower9-fusion switch.
3791	(emit_fusion_load): Rename emit_fusion_load_store to
3792	emit_fusion_load, and drop fusion store support.  Update callers.
3793	(emit_fusion_load_store): Likewise.
3794	(emit_fusion_gpr_load): Likewise.
3795	(fusion_p9_p): Delete.
3796	(expand_fusion_p9_load): Delete.
3797	(expand_fusion_p9_store): Delete.
3798	(emit_fusion_p9_load): Delete.
3799	(emit_fusion_p9_store): Delete.
3800	* config/rs6000/rs6000.md (UNSPEC_FUSION_P9): Delete.
3801	(GPR_FUSION): Delete.
3802	(FPR_FUSION): Delete.
3803	(power9 fusion peephole2s): Delete.
3804	(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Delete.
3805	(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Delete.
3806	(fusion_vsx_<P:mode>_<FPR_FUSION:mode>_load): Delete.
3807	(fusion_vsx_<P:mode>_<FPR_FUSION:mode>_store): Delete.
3808	(fusion_p9_<mode>_constant): Delete.
3809	* config/rs6000/rs6000.opt (-mpower9-fusion): Delete undocumented
3810	power9 fusion switch.
3811	* doc/md.texi (PowerPC constraints): Update wF constraint
3812	documentation for power8 fusion only.
3813
38142018-11-16  Jakub Jelinek  <jakub@redhat.com>
3815
3816	PR rtl-optimization/87475
3817	* cfgrtl.c (patch_jump_insn): Allow redirection failure for
3818	CROSSING_JUMP_P insns.
3819	(cfg_layout_redirect_edge_and_branch): Don't ICE if ret is NULL.
3820
38212018-11-16  Uros Bizjak  <ubizjak@gmail.com>
3822
3823	PR target/88051
3824	* config/i386/i386.md (floatunsdidf2): Allow only 64bit AVX512F targets.
3825	* config/i386/sse.md (UNSPEC_MOVDI_TO_SSE): New UNSPEC.
3826	(movdi_to_sse): Rewrite using UNSPEC_MOVDI_TO_SSE unspec.
3827
38282018-11-16  Jakub Jelinek  <jakub@redhat.com>
3829
3830	PR middle-end/88032
3831	* optabs.c (expand_binop): For op0_mode use GET_MODE (op0), unless it
3832	is VOIDmode, in which case use int_mode.  Similarly for op1_mode.
3833
38342018-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3835
3836	* tree-switch-conversion.h (switch_decision_tree::emit_case_nodes): Add
3837	location_t parameter.
3838	(switch_decision_tree::emit_cmp_and_jump_insns): Likewise.
3839	(switch_decision_tree::do_jump_if_equal): Likewise.
3840	* tree-switch-conversion.c (switch_decision_tree::emit): Pass location
3841	of switch statement to emit_case_nodes.
3842	(switch_decision_tree::emit_cmp_and_jump_insns): Add LOC parameter and
3843	set it on the newly built GIMPLE comparison statement.
3844	(switch_decision_tree::do_jump_if_equal): Likewise.
3845	(switch_decision_tree::emit_case_nodes): Add LOC parameter and pass it
3846	in calls to do_jump_if_equal as well as recursive calls.
3847
38482018-11-16  Andi Kleen  <ak@linux.intel.com>
3849
3850	* config/i386/i386.md: Allow memory operands to ptwrite.
3851
38522018-11-16  Michael Matz  <matz@suse.de>
3853
3854	* system.h (PRsa): New macro.
3855	(SIZE_AMOUNT): Cast number to uint64_t.
3856	* alloc-pool.h (pool_usage::dump): Don't use %zu but PRsa.
3857	(pool_usage::dump_footer): Likewise and also use PRIu64.
3858	* bitmap.h (bitmap_usage::dump): Likewise.
3859	* ggc-common.c (ggc_usage::dump): Likewise.
3860	* ggc-page.c (ggc_print_statistics): Likewise.
3861	* input.c (dump_line_table_statistics): Likewise.
3862	* mem-stats.h (mem_usage::dump): Likewise.
3863	(mem_usage::dump_footer): Likewise.
3864	* rtl.c (dump_rtx_statistics): Likewise.
3865	* tree-cfg.c (dump_cfg_stats): Likewise.
3866	* tree-dfa.c (dump_dfa_stats): Likewise.
3867	* tree-phinodes.c (phinodes_print_statistics): Likewise.
3868	* tree-ssanames (ssanames_print_statistics): Likewise.
3869	* vec.c (vec_usage::dump): Likewise.
3870	(vec_usage::dump_footer): Likewise.
3871
38722018-11-16  Richard Biener  <rguenther@suse.de>
3873
3874	PR tree-optimization/88011
3875	* tree-vrp.c (extract_range_from_binary_expr): Fix error in
3876	replacing set_value_range_to_undefined and
3877	set_value_range_to_varying with method calls.
3878
38792018-11-16  Ilya Leoshkevich  <iii@linux.ibm.com>
3880
3881	* config/s390/s390.md
3882	(*r<noxa>sbg_<mode>_srl_bitmask): Do not delegate arithmetic to
3883	assembler.
3884	(*r<noxa>sbg_<mode>_sll): Likewise.
3885	(*r<noxa>sbg_<mode>_srl): Likewise.
3886	(*r<noxa>sbg_sidi_srl): New pattern.
3887
38882018-11-16  Jerome Lambourg  <lambourg@adacore.com>
3889
3890	* config/vxworks.h (TARGET_VXWORKS_HAVE_CTORS_DTORS): New macro.
3891	Default to TARGET_VXWORKS_RTP.
3892	(SUPPORTS_INIT_PRIORITY): Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead
3893	of TARGET_VXWORKS_RTP.
3894	* config/vxworks.c: Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead
3895	of TARGET_VXWORKS_RTP to set targetm.have_ctors_dtors.
3896
38972018-11-15  Sandra Loosemore  <sandra@codesourcery.com>
3898
3899	PR c++/25759
3900	* doc/extend.texi (Common Type Attributes): Make it explicit
3901	that attribute "packed" can apply to C++ classes.
3902
39032018-11-15  Martin Sebor  <msebor@redhat.com>
3904
3905	PR c++/87541
3906	PR c++/87542
3907	* tree.c (type_argument_type): New function.
3908	* tree.h (type_argument_type): Declare it.
3909	* gcc/doc/extend.texi (alloc_align): Update and clarify.
3910	(alloc_size, nonnull, sentinel): Same.
3911
39122018-11-15  Andrew Stubbs  <ams@codesourcery.com>
3913	    Kwok Cheung Yeung  <kcy@codesourcery.com>
3914
3915	* tree-vect-stmts.c (vectorizable_store): Don't ICE when
3916	int_mode_for_size fails.
3917	(vectorizable_load): Likewise.
3918
39192018-11-15  David Malcolm  <dmalcolm@redhat.com>
3920
3921	* doc/ux.texi (Group logically-related diagnostics): Move
3922	discussion of auto_diagnostic_group into this new subsection.
3923	Give an example of where this grouping is used.
3924
39252018-11-15  David Malcolm  <dmalcolm@redhat.com>
3926
3927	PR other/19165
3928	* Makefile.in (OBJS): Move json.o to...
3929	(OBJS-libcommon): ...here and add diagnostic-format-json.o.
3930	* common.opt (fdiagnostics-format=): New option.
3931	(diagnostics_output_format): New enum.
3932	* diagnostic-format-json.cc: New file.
3933	* diagnostic.c (default_diagnostic_final_cb): New function, taken
3934	from start of diagnostic_finish.
3935	(diagnostic_initialize): Initialize final_cb to
3936	default_diagnostic_final_cb.
3937	(diagnostic_finish): Move "being treated as errors" messages to
3938	default_diagnostic_final_cb.  Call any final_cb.
3939	(default_diagnostic_finalizer): Add diagnostic_t param.
3940	(diagnostic_report_diagnostic): Pass "orig_diag_kind" to
3941	diagnostic_finalizer callback.
3942	* diagnostic.h (enum diagnostics_output_format): New enum.
3943	(diagnostic_finalizer_fn): Reimplement, adding diagnostic_t param.
3944	(struct diagnostic_context): Add "final_cb".
3945	(default_diagnostic_finalizer): Add diagnostic_t param.
3946	(diagnostic_output_format_init): New decl.
3947	* doc/invoke.texi (-fdiagnostics-format): New option.
3948	* dwarf2out.c (gen_producer_string): Ignore
3949	OPT_fdiagnostics_format_.
3950	* gcc.c (driver_handle_option): Handle OPT_fdiagnostics_format_.
3951	* lto-wrapper.c (append_diag_options): Ignore it.
3952	* opts.c (common_handle_option): Handle it.
3953
39542018-11-15  David Malcolm  <dmalcolm@redhat.com>
3955
3956	PR tree-optimization/88015
3957	* graphite-isl-ast-to-gimple.c
3958	(translate_isl_ast_to_gimple::scop_to_isl_ast): Add missing check
3959	for dump_enabled_p.
3960	* graphite-sese-to-poly.c (build_poly_scop): Likewise.
3961
39622018-11-15  Richard Biener  <rguenther@suse.de>
3963
3964	PR middle-end/88029
3965	* gimple.c (gimple_call_flags): Union flags from decl, type
3966	and call fntype.
3967	* trans-mem.c (is_tm_pure_call): Simplify.
3968
39692018-11-15  Richard Biener  <rguenther@suse.de>
3970
3971	PR tree-optimization/88031
3972	* tree-vect-loop.c (vectorizable_reduction): Move check
3973	for multiple types earlier so we get the expected dump.
3974	Simplify calls to vectorizable_condition.
3975	* tree-vect-stmts.h (vectorizable_condition): Update prototype.
3976	* tree-vect-stmts.c (vectorizable_condition): Instead of
3977	reduc_def and reduc_index take just a flag.  Simplify
3978	code-generation now that we can rely on the defs being set up.
3979	(vectorizable_comparison): Remove unused argument.
3980
39812018-11-15  Richard Biener  <rguenther@suse.de>
3982
3983	PR tree-optimization/88030
3984	* tree-complex.c (need_eh_cleanup): New global.
3985	(update_complex_assignment): Mark blocks that need EH update.
3986	(expand_complex_comparison): Likewise.
3987	(tree_lower_complex): Allocate and deallocate need_eh_cleanup,
3988	perform EH cleanup and schedule CFG cleanup if that did anything.
3989
39902018-11-15  Jakub Jelinek  <jakub@redhat.com>
3991
3992	PR rtl-optimization/88018
3993	* cfgrtl.c (fixup_abnormal_edges): Guard moving insns to fallthru edge
3994	on the presence of fallthru edge, rather than if it is a USE or not.
3995
39962018-11-15  Richard Biener  <rguenther@suse.de>
3997
3998	PR middle-end/87917
3999	* tree-data-ref.c (analyze_miv_subscript): Guard calls to
4000	analyze_subscript_affine_affine properly.
4001
40022018-11-15  Xianmiao Qu  <xianmiao_qu@c-sky.com>
4003
4004	* config/csky/csky-linux-elf.h (LINUX_DYNAMIC_LINKER): Remove.
4005	(GLIBC_DYNAMIC_LINKER): Define.
4006	(LINUX_TARGET_LINK_SPEC): Update the dynamic linker's name.
4007
40082018-11-15  Bin Cheng  <bin.cheng@linux.alibaba.com>
4009
4010	PR tree-optimization/84648
4011	* tree-ssa-loop-niter.c (adjust_cond_for_loop_until_wrap): New.
4012	(number_of_iterations_cond): Adjust exit cond for loop-until-wrap case
4013	by calling adjust_cond_for_loop_until_wrap.
4014
40152018-11-15  Sandra Loosemore  <sandra@codesourcery.com>
4016
4017	PR other/56334
4018	* doc/extend.texi (Common Function Attributes): Clarify linker
4019	restrictions on "aligned" attribute.
4020	(Common Variable Attributes): Likewise.  Mention that linker
4021	restrictions don't apply to stack-allocated variables.
4022
40232018-11-15  Joern Rennecke  <joern.rennecke@riscy-ip.com>
4024
4025	* gensupport.c (add_predicate_code): Properly handle ZERO_EXTRACT
4026	as an lvalue.
4027
40282018-11-14  Sandra Loosemore  <sandra@codesourcery.com>
4029
4030	PR lto/55102
4031	PR lto/56700
4032	* doc/invoke.texi (Optimize Options): Remove bad example about
4033	interaction between -flto and -O.  Replace it with a note that
4034	you need to compile with -O and not just link.  Copy-edit -flto
4035	discussion to reduce verbiage and improve flow.
4036
40372018-11-14  Sandra Loosemore  <sandra@codesourcery.com>
4038
4039	PR middle-end/59658
4040	* doc/invoke.texi (Optimize Options): Clarify that -O0 and -Og
4041	also suppress many optimizations.  Alphabetize option lists for
4042	-O1, -O2, and -Os.  Add list of options disabled with -Og, and
4043	correct documentation for those options to say that.
4044	* opts.c (default_options_table): Sort table by level and option
4045	name, to make it easier to correlate to the manual.
4046
40472018-11-14  Uros Bizjak  <ubizjak@gmail.com>
4048
4049	* config/i386/i386.c (ix86_print_operand_address_as): Simplify
4050	printing of the names of segment registers.
4051
40522018-11-14  Nathan Sidwell  <nathan@acm.org>
4053
4054	PR debug/88006
4055	PR debug/87462
4056	* dwarf2out.c (dwarf2out_finish): Apply resolve_addr to comdat
4057	type list.
4058
40592018-11-14  David Malcolm  <dmalcolm@redhat.com>
4060
4061	* Makefile.in (CFLAGS-optinfo-emit-json.o): Add $(ZLIBINC).
4062
40632018-11-14  Jakub Jelinek  <jakub@redhat.com>
4064
4065	P1236R1 - Signed integers are two's complement
4066	* doc/invoke.texi (Wshift-overflow): Adjust documentation for c++2a.
4067
4068	PR bootstrap/86739
4069	* hash-map.h (hash_map::iterator::reference_pair): New class.
4070	(hash_map::iterator::operator*): Return it rather than std::pair.
4071
40722018-11-14  Jeff Law  <law@redhat.com>
4073
4074	* optabs.c (expand_binop): Pass INT_MODE to operand_subword_force
4075	iff the operand is a constant.
4076
40772018-11-14  Aldy Hernandez  <aldyh@redhat.com>
4078
4079	* gimple-ssa-evrp-analyze.c
4080	(evrp_range_analyzer::record_ranges_from_incoming_edge): Rename
4081	ignore_equivs_equal_p to equal_p.
4082	* ipa-cp.c (meet_with_1): Use equal_p instead of
4083	ignore_equivs_equal_p.
4084	* ipa-prop.c (ipa_vr_ggc_hash_traits::equal): Same.
4085	* tree-vrp.c (value_range::ignore_equivs_equal_p): Remove.
4086	(value_range::operator==): Remove.
4087	(value_range::operator!=): Remove.
4088	(vrp_prop::visit_stmt): Use equal_p.
4089	* tree-vrp.h (value_range): Remove operator==, operator!=,
4090	ignore_equivs_equal_p.
4091	* vr-values.c (update_value_range): Use equal_p.
4092
40932018-11-14  Michael Matz  <matz@suse.de>
4094
4095	PR middle-end/86575
4096	* gimplify.c (collect_fallthrough_labels): Add new argument,
4097	return location via that, don't modify statements.
4098	(warn_implicit_fallthrough_r): Adjust call, don't use
4099	statement location directly.
4100
41012018-11-14  Richard Biener  <rguenther@suse.de>
4102
4103	PR middle-end/87985
4104	* tree-data-ref.c (split_constant_offset): Add wrapper
4105	allocating a cache hash-map.
4106	(split_constant_offset_1): Cache results of expanding
4107	expressions from SSA def stmts.
4108
41092018-11-14  Richard Biener  <rguenther@suse.de>
4110
4111	PR middle-end/88021
4112	* tree-data-ref.c (lambda_matrix_row_add): Change const1 argument
4113	to lambda_int.
4114	(lambda_vector_mult_const): Likewise.
4115	(lambda_matrix_right_hermite): Use lambda_int temporaries.
4116
41172018-11-14  Wilco Dijkstra  <wdijkstr@arm.com>
4118	    Jackson Woodruff  <jackson.woodruff@arm.com>
4119
4120	PR 71026/tree-optimization
4121	* match.pd: Simplify floating point comparisons.
4122
41232018-11-14  Jakub Jelinek  <jakub@redhat.com>
4124
4125	PR rtl-optimization/87817
4126	* config/i386/i386.c (ix86_fold_builtin): For _bzhi_u{32,64} if
4127	last argument has low 8 bits clear, fold to 0.
4128
41292018-11-14  Iain Sandoe  <iain@sandoe.co.uk>
4130
4131	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Cast
4132	MAX_OFILE_ALIGNMENT as needed.
4133
41342018-11-14  Richard Biener  <rguenther@suse.de>
4135
4136	PR tree-optimization/88019
4137	* graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Rewrite
4138	COND_EXPR arguments to non-trapping overflow.
4139
41402018-11-14  Claudiu Zissulescu  <claziss@synopsys.com>
4141
4142	* config/arc/arc.h (reg_class): Reorder registers classes, remove
4143	unused register classes.
4144	(REG_CLASS_NAMES): Likewise.
4145	(REG_CLASS_CONTENTS): Likewise.
4146	(FIXED_REGISTERS): Make lp_count fixed.
4147	(BASE_REG_CLASS): Remove ACC16_BASE_REGS reference.
4148	(PROGRAM_COUNTER_REGNO): Remove.
4149	* config/arc/arc.c (arc_conditional_register_usage): Remove unused
4150	register classes, use constants for register numbers, remove
4151	reg_class_contents references.
4152	(arc_process_double_reg_moves): Add asserts.
4153	(arc_secondary_reload): Remove LPCOUNT_REG reference, use
4154	lra_in_progress predicate.
4155	(arc_init_reg_tables): Remove unused register classes.
4156	(arc_register_move_cost): Likewise.
4157	(arc_preferred_reload_class): Likewise.
4158	(hwloop_optimize): Update rtx patterns involving lp_count register.
4159	(arc_return_address_register): Rename ILINK1, INLINK2 regnums macros.
4160	* config/arc/constraints.md ("c"): Choose between GENERAL_REGS and
4161	CHEAP_CORE_REGS.  Former one will be used for LRA.
4162	("Rac"): Choose between GENERAL_REGS and ALL_CORE_REGS.  Former
4163	one will be used for LRA.
4164	("w"): Choose between GENERAL_REGS and WRITABLE_CORE_REGS.  Former
4165	one will be used for LRA.
4166	("W"): Choose between GENERAL_REGS and MPY_WRITABLE_CORE_REGS.
4167	Former one will be used for LRA.
4168	("f"): Delete constraint.
4169	("k"): Likewise.
4170	("e"): Likewise.
4171	("l"): Change it from register constraint to constraint.
4172	* config/arc/arc.md (movqi_insn): Remove unsed lp_count constraints.
4173	(movhi_insn): Likewise.
4174	(movsi_insn): Update pattern.
4175	(arc_lp): Likewise.
4176	(dbnz): Likewise.
4177	(stack_tie): Remove 'b' constraint letter.
4178	(R4_REG): Define.
4179	(R9_REG, R15_REG, R16_REG, R25_REG): Likewise.
4180	(R32_REG, R40_REG, R41_REG, R42_REG, R43_REG, R44_REG): Likewise.
4181	(R57_REG, R59_REG, PCL_REG): Likewise.
4182	(ILINK1_REGNUM): Renamed to ILINK1_REG.
4183	(ILINK2_REGNUM): Renamed to ILINK2_REG.
4184	(Rgp): Remove.
4185	(SP_REGS): Likewise.
4186	(Rcw): Remove unused reg classes.
4187	* config/arc/predicates.md (dest_reg_operand): Just default on
4188	register_operand predicate.
4189	(mpy_dest_reg_operand): Likewise.
4190	(move_dest_operand): Use macros instead of constants.
4191	* config/arc/arc.opt (mlra): Switch to lra as default.
4192
41932018-11-14  Richard Biener  <rguenther@suse.de>
4194
4195	PR tree-optimization/87974
4196	* tree-vect-loop.c (vectorizable_reduction): When computing
4197	the vectorized reduction PHI vector type ignore constant
4198	and external defs.
4199
42002018-11-14  Jakub Jelinek  <jakub@redhat.com>
4201
4202	PR tree-optimization/87977
4203	* tree-ssa-math-opts.c (optimize_recip_sqrt): Don't reuse division
4204	stmt, build a new one and replace the old one with it.  Formatting fix.
4205	Call release_ssa_name (x) if !has_other_use and !delete_div.
4206	(pass_cse_reciprocals::execute): Before calling optimize_recip_sqrt
4207	verify lhs of stmt is still def.
4208
42092018-11-13  Peter Bergner  <bergner@linux.ibm.com>
4210
4211	PR rtl-optimization/87507
4212	* lower-subreg.c (operand_for_swap_move_operator): New function.
4213	(simple_move): Strip simple operators.
4214	(find_pseudo_copy): Likewise.
4215	(resolve_operand_for_swap_move_operator): New function.
4216	(resolve_simple_move): Strip simple operators and swap operands.
4217
42182018-11-13  Jakub Jelinek  <jakub@redhat.com>
4219
4220	PR tree-optimization/87898
4221	* omp-simd-clone.c (ipa_simd_modify_stmt_ops): Formatting fix.
4222	(ipa_simd_modify_function_body): Remove debug stmts where the first
4223	argument was changed into a non-decl.
4224
42252018-11-13  Peter Bergner  <bergner@linux.ibm.com>
4226
4227	PR rtl-optimization/87899
4228	* lra-lives.c (start_living): Update white space in comment.
4229	(enum point_type): New.
4230	(sparseset_contains_pseudos_p): New function.
4231	(update_pseudo_point): Likewise.
4232	(make_hard_regno_live): Use HARD_REGISTER_NUM_P macro.
4233	(make_hard_regno_dead): Likewise.  Remove ignore_reg_for_conflicts
4234	handling.  Move early exit after adding conflicts.
4235	(mark_pseudo_live): Use HARD_REGISTER_NUM_P macro.  Add early exit
4236	if regno is already live.  Remove all handling of program points.
4237	(mark_pseudo_dead): Use HARD_REGISTER_NUM_P macro.  Add early exit
4238	after adding conflicts.  Remove all handling of program points and
4239	ignore_reg_for_conflicts.
4240	(mark_regno_live): Use HARD_REGISTER_NUM_P macro.  Remove return value
4241	and do not guard call to mark_pseudo_live.
4242	(mark_regno_dead): Use HARD_REGISTER_NUM_P macro.  Remove return value
4243	and do not guard call to mark_pseudo_dead.
4244	(check_pseudos_live_through_calls): Use HARD_REGISTER_NUM_P macro.
4245	(process_bb_lives): Use HARD_REGISTER_NUM_P and HARD_REGISTER_P macros.
4246	Use new function update_pseudo_point.  Handle register copies by
4247	removing the source register from the live set.  Handle INOUT operands.
4248	Update to the next program point using the unused_set, dead_set and
4249	start_dying sets.
4250	(lra_create_live_ranges_1): Use HARD_REGISTER_NUM_P macro.
4251
42522018-11-13  David Malcolm  <dmalcolm@redhat.com>
4253
4254	* builtins.c: Replace "source_location" with "location_t".
4255	* diagnostic-show-locus.c: Likewise.
4256	* diagnostic.c: Likewise.
4257	* dumpfile.c: Likewise.
4258	* gcc-rich-location.h: Likewise.
4259	* genmatch.c: Likewise.
4260	* gimple.h: Likewise.
4261	* gimplify.c: Likewise.
4262	* input.c: Likewise.
4263	* input.h: Likewise.  Eliminate the typedef.
4264	* omp-expand.c: Likewise.
4265	* selftest.h: Likewise.
4266	* substring-locations.h (get_source_location_for_substring):
4267	Rename to...
4268	(get_location_within_string): ...this.
4269	* tree-cfg.c: Replace "source_location" with "location_t".
4270	* tree-cfgcleanup.c: Likewise.
4271	* tree-diagnostic.c: Likewise.
4272	* tree-into-ssa.c: Likewise.
4273	* tree-outof-ssa.c: Likewise.
4274	* tree-parloops.c: Likewise.
4275	* tree-phinodes.c: Likewise.
4276	* tree-phinodes.h: Likewise.
4277	* tree-ssa-loop-ivopts.c: Likewise.
4278	* tree-ssa-loop-manip.c: Likewise.
4279	* tree-ssa-phiopt.c: Likewise.
4280	* tree-ssa-phiprop.c: Likewise.
4281	* tree-ssa-threadupdate.c: Likewise.
4282	* tree-ssa.c: Likewise.
4283	* tree-ssa.h: Likewise.
4284	* tree-vect-loop-manip.c: Likewise.
4285
42862018-11-13  Michael Ploujnikov  <michael.ploujnikov@oracle.com>
4287
4288	* doc/extend.texi: Fix typo in the weakref description.
4289
42902018-11-13  Richard Biener  <rguenther@suse.de>
4291
4292	PR tree-optimization/86991
4293	* tree-vect-loop.c (vect_is_slp_reduction): Delay reduction
4294	group building until we have successfully detected the SLP
4295	reduction.
4296	(vect_is_simple_reduction): Remove fixup code here.
4297
42982018-11-13  David Malcolm  <dmalcolm@redhat.com>
4299
4300	* dumpfile.c (VERIFY_DUMP_ENABLED_P): New macro.
4301	(dump_gimple_stmt): Use it.
4302	(dump_gimple_stmt_loc): Likewise.
4303	(dump_gimple_expr): Likewise.
4304	(dump_gimple_expr_loc): Likewise.
4305	(dump_generic_expr): Likewise.
4306	(dump_generic_expr_loc): Likewise.
4307	(dump_printf): Likewise.
4308	(dump_printf_loc): Likewise.
4309	(dump_dec): Likewise.
4310	(dump_dec): Likewise.
4311	(dump_hex): Likewise.
4312	(dump_symtab_node): Likewise.
4313	* gimple-loop-interchange.cc (tree_loop_interchange::interchange):
4314	Guard dump call with dump_enabled_p.
4315	* graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): Likewise.
4316	* graphite-optimize-isl.c (optimize_isl): Likewise.
4317	* graphite.c (graphite_transform_loops): Likewise.
4318	* tree-loop-distribution.c (pass_loop_distribution::execute): Likewise.
4319	* tree-parloops.c (parallelize_loops): Likewise.
4320	* tree-ssa-loop-niter.c (number_of_iterations_exit): Likewise.
4321	* tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise.
4322	(vect_prune_runtime_alias_test_list): Likewise.
4323	* tree-vect-loop.c (vect_update_vf_for_slp): Likewise.
4324	(vect_estimate_min_profitable_iters): Likewise.
4325	* tree-vect-slp.c (vect_record_max_nunits): Likewise.
4326	(vect_build_slp_tree_2): Likewise.
4327	(vect_supported_load_permutation_p): Likewise.
4328	(vect_slp_analyze_operations): Likewise.
4329	(vect_slp_analyze_bb_1): Likewise.
4330	(vect_slp_bb): Likewise.
4331	* tree-vect-stmts.c (vect_analyze_stmt): Likewise.
4332	* tree-vectorizer.c (try_vectorize_loop_1): Likewise.
4333	(pass_slp_vectorize::execute): Likewise.
4334	(increase_alignment): Likewise.
4335
43362018-11-13  David Malcolm  <dmalcolm@redhat.com>
4337
4338	PR ipa/87955
4339	* ipa-inline.c (report_inline_failed_reason): Guard calls to
4340	cl_target_option_print_diff and cl_optimization_print_diff with
4341	if (dump_file).
4342
43432018-11-13  David Malcolm  <dmalcolm@redhat.com>
4344
4345	* doc/invoke.texi (-fsave-optimization-record): Note that the
4346	output is compressed.
4347	* optinfo-emit-json.cc: Include <zlib.h>.
4348	(optrecord_json_writer::write): Compress the output.
4349
43502018-11-13  Aldy Hernandez  <aldyh@redhat.com>
4351
4352	* tree-vrp.c (value_range_base::dump): Dump type.
4353	Do not use INF nomenclature for 1-bit types.
4354	(dump_value_range): Group all variants to common dumping code.
4355	(debug): New overloaded functions for value_ranges.
4356	(value_range_base::dump): Remove no argument version.
4357	(value_range::dump): Same.
4358
43592018-11-13  Richard Biener  <rguenther@suse.de>
4360
4361	PR tree-optimization/87931
4362	* tree-vect-loop.c (vect_is_simple_reduction): Restrict
4363	nested cycles we support to latch computations vectorizable_reduction
4364	handles.
4365
43662018-11-13  Martin Liska  <mliska@suse.cz>
4367
4368	PR tree-optimization/87885
4369	* cfghooks.c (account_profile_record): Rename
4370	to ...
4371	(profile_record_check_consistency): ... this.
4372	Calculate missing num_mismatched_freq_in.
4373	(profile_record_account_profile): New function
4374	that calculates time and size of a function.
4375	* cfghooks.h (struct profile_record): Remove
4376	all tuples.
4377	(struct cfg_hooks): Remove after_pass flag.
4378	(account_profile_record): Rename to ...
4379	(profile_record_check_consistency): ... this.
4380	(profile_record_account_profile): New.
4381	* cfgrtl.c (rtl_account_profile_record): Remove
4382	after_pass flag.
4383	* passes.c (check_profile_consistency): Do only
4384	checking.
4385	(account_profile): Calculate size and time of
4386	function only.
4387	(pass_manager::dump_profile_report): Reformat
4388	output.
4389	(execute_one_ipa_transform_pass): Call
4390	consistency check before clean upand call account_profile
4391	after a clean up is done.
4392	(execute_one_pass): Call check_profile_consistency and
4393	account_profile instead of using after_pass flag..
4394	* tree-cfg.c (gimple_account_profile_record): Likewise.
4395
43962018-11-13  Martin Liska  <mliska@suse.cz>
4397
4398	PR sanitizer/87930
4399	* config/i386/i386.c (ix86_option_override_internal): Error
4400	about usage -mabi=ms and -fsanitize={,kernel-}address.
4401
44022018-11-13  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4403
4404	* config/aarch64/aarch64.c
4405	(aarch64_vectorize_preferred_vector_alignment): Change return type to
4406	poly_uint64.
4407	(aarch64_simd_vector_alignment_reachable): Adapt to preferred vector
4408	alignment being a poly int.
4409	* doc/tm.texi (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): Change
4410	return type to poly_uint64.
4411	* target.def (default_preferred_vector_alignment): Likewise.
4412	* targhooks.c (default_preferred_vector_alignment): Likewise.
4413	* targhooks.h (default_preferred_vector_alignment): Likewise.
4414	* tree-vect-data-refs.c (vect_calculate_target_alignment): Likewise.
4415	(vect_compute_data_ref_alignment): Adapt to vector alignment being a
4416	poly int.
4417	(vect_update_misalignment_for_peel): Likewise.
4418	(vect_enhance_data_refs_alignment): Likewise.
4419	(vect_find_same_alignment_drs): Likewise.
4420	(vect_duplicate_ssa_name_ptr_info): Likewise.
4421	(vect_setup_realignment): Likewise.
4422	(vect_can_force_dr_alignment_p): Change alignment parameter type to
4423	poly_uint64.
4424	* tree-vect-loop-manip.c (get_misalign_in_elems): Learn to construct a
4425	mask with a compile time variable vector alignment.
4426	(vect_gen_prolog_loop_niters): Adapt to vector alignment being a poly
4427	int.
4428	(vect_do_peeling): Exit early if vector alignment is not constant.
4429	* tree-vect-stmts.c (ensure_base_align): Adapt to vector alignment being
4430	a poly int.
4431	(vectorizable_store): Likewise.
4432	(vectorizable_load): Likweise.
4433	* tree-vectorizer.h (struct dr_vec_info): Make target_alignment field a
4434	poly_uint64.
4435	(vect_known_alignment_in_bytes): Adapt to vector alignment being a
4436	poly int.
4437	(vect_can_force_dr_alignment_p): Change alignment parameter type to
4438	poly_uint64.
4439
44402018-11-13  Richard Biener  <rguenther@suse.de>
4441
4442	PR tree-optimization/87962
4443	* tree-vect-loop.c (vect_is_simple_reduction): More reliably
4444	detect outer reduction for disqualifying in-loop uses.
4445
44462018-11-13  Richard Biener  <rguenther@suse.de>
4447
4448	PR tree-optimization/87967
4449	* tree-vect-loop.c (vect_transform_loop): Also copy PHIs
4450	for constants for the scalar loop.
4451
44522018-11-13  Alan Modra  <amodra@gmail.com>
4453
4454	* config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Exclude
4455	integer constants when -mcmodel=medium.
4456
44572018-11-13  Claudiu Zissulescu  <claziss@synopsys.com>
4458
4459	* config/arc/arc.h (FUNCTION_PROFILER): Redefine to empty.
4460	* config/arc/elf.h (PROFILE_HOOK): Define.
4461	* config/arc/linux.h (PROFILE_HOOK): Likewise.
4462
44632018-11-13  Claudiu Zissulescu  <claziss@synopsys.com>
4464
4465	* config/arc/arc.c (hwloop_optimize): Bailout when detecting a
4466	jump table data in the text section.
4467
44682018-11-13  Claudiu Zissulescu  <claziss@synopsys.com>
4469
4470	* config/arc/arc.c (arc_eh_return_address_location): Repurpose it
4471	to fit the eh_return pattern.
4472	* config/arc/arc.md (eh_return): Define.
4473	(VUNSPEC_ARC_EH_RETURN): Likewise.
4474	* config/arc/arc-protos.h (arc_eh_return_address_location): Match
4475	new implementation.
4476	* config/arc/arc.h (EH_RETURN_HANDLER_RTX): Remove it.
4477
4478
44792018-11-13  Claudiu Zissulescu  <claziss@synopsys.com>
4480
4481	* common/config/arc/arc-common.c (arc_option_optimization_table):
4482	Millicode optimization is default on for size optimizations.
4483	* config/arc/arc-protos.h (arc_check_multi): New function.
4484	* config/arc/arc.c (RTX_OK_FOR_OFFSET_P): Rearange.
4485	(ENTER_LEAVE_START_REG): Define.
4486	(ENTER_LEAVE_END_REG): Likewise.
4487	(arc_override_options): Disable millicode when long calls option
4488	is on.
4489	(arc_frame_info): Change it from int to bool.
4490	(arc_compute_frame_size): Clean up.
4491	(arc_save_restore): Remove.
4492	(frame_save_reg): New function.
4493	(frame_restore_reg): Likewise.
4494	(arc_enter_leave_p): Likewise.
4495	(arc_save_callee_saves): Likewise.
4496	(arc_restore_callee_saves): Likewise.
4497	(arc_save_callee_enter): Likewise.
4498	(arc_restore_callee_leave): Likewise.
4499	(arc_save_callee_milli): Likewise.
4500	(arc_restore_callee_milli): Likewise.
4501	(arc_expand_prologue): Reimplement to emit enter/leave
4502	instructions.
4503	(arc_expand_epilogue): Likewise.
4504	(arc_check_multi): New function.
4505	* config/arc/arc.md (push_multi_fp): New pattern.
4506	(push_multi_fp_blink): Likewise.
4507	(pop_multi_fp): Likewise.
4508	(pop_multi_fp_blink): Likewise.
4509	(pop_multi_fp_ret): Likewise.
4510	(pop_multi_fp_blink_ret): Likewise.
4511	* config/arc/arc.opt (mmillicode): Update option.
4512	(mcode-density-frame): New option.
4513	* config/arc/predicates.md (push_multi_operand): New predicate.
4514	(pop_multi_operand): Likewise.
4515	* doc/invoke.texi (ARC): Update ARC options information.
4516
4517
45182018-11-13  Claudiu Zissulescu  <claziss@synopsys.com>
4519
4520	* config/arc/arc-protos.h (gen_operands_ldd_std): Add.
4521	* config/arc/arc.c (operands_ok_ldd_std): New function.
4522	(mem_ok_for_ldd_std): Likewise.
4523	(gen_operands_ldd_std): Likewise.
4524	* config/arc/arc.md: Add peephole2 rules for std/ldd.
4525
45262018-11-13  Eric Botcazou  <ebotcazou@adacore.com>
4527
4528	* toplev.c (output_stack_usage): Turn test on flag_stack_usage into
4529	test on stack_usage_file.
4530	(lang_dependent_init): Do not open the .su file if generating LTO.
4531
45322018-11-13  Jakub Jelinek  <jakub@redhat.com>
4533
4534	PR rtl-optimization/87918
4535	* simplify-rtx.c (simplify_merge_mask): For COMPARISON_P, use
4536	simplify_gen_relational rather than simplify_gen_binary.
4537
45382018-11-13  Richard Biener  <rguenther@suse.de>
4539
4540	* tree-ssanames.h (set_range_info): Use value_range_base.
4541	(get_range_info): Likewise.
4542	* tree-ssanames.c (set_range_info): Likewise.
4543	(get_range_info): Likewise.
4544	* tree-vrp.c (value_range_base::union_helper): Split
4545	out common parts of value_range[_base]::union_.
4546	(value_range_base::union_): Update.
4547	(value_range::union_): Likewise.
4548	(determine_value_range_1): Use value_range_base.
4549	(determine_value_range): Likewise.
4550	* tree-vrp.h (value_range_base::union_helper): Move ...
4551	(value_range::union_helper): ... from here.
4552
45532018-11-13  Alan Modra  <amodra@gmail.com>
4554
4555	* config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Negate
4556	offset for PRE_DEC.
4557	(rs6000_secondary_reload_gpr): Don't call find_replacement.
4558
45592018-11-13  Sandra Loosemore  <sandra@codesourcery.com>
4560
4561	PR middle-end/59634
4562	* doc/invoke.texi (Optimize Options): Clarify that the
4563	l1-cache-line-size, l1-cache-size, and l2-cache-size parameters
4564	apply to data cache size.
4565
45662018-11-13  Alan Modra  <amodra@gmail.com>
4567
4568	* config/rs6000/predicates.md (logical_const_operand),
4569	(logical_operand): Correct comment.
4570	* config/rs6000/rs6000.c (rs6000_emit_prologue): Comment fix.
4571
45722018-11-13  Alan Modra  <amodra@gmail.com>
4573
4574	* config/rs6000/rs6000.md (addsi3_high): Prefix with '*'.
4575
45762018-11-13  Alan Modra  <amodra@gmail.com>
4577
4578	* gcc/doc/md.texi (Machine Constraints): Correct rs6000 h constraint
4579	description.
4580	* config/rs6000/rs6000.md (movsi_internal1): Delete MT%0 case
4581	covered by alternative.
4582	(movcc_internal1): Ignore h for register preference.
4583	(mov<mode>_hardfloat64): Likewise.
4584	(mov<mode>_softfloat): Ignore c, l, h for register preference.
4585
45862018-11-12  Sandra Loosemore  <sandra@codesourcery.com>
4587
4588	PR preprocessor/47823
4589	* doc/cpp.texi (Alternatives to Wrapper #ifndef): Move #pragma once
4590	documentation to...
4591	(Pragmas): ...here.
4592	* doc/extend.texi (Pragmas): Note additional pragmas documented
4593	in the CPP manual.
4594
45952018-11-13  Kugan Vivekanandarajah  <kuganv@linaro.org>
4596
4597	PR middle-end/86677
4598	PR middle-end/87528
4599	* tree-scalar-evolution.c (expression_expensive_p): Make
4600	BUILTIN POPCOUNT as expensive when backend does not define it.
4601
46022018-11-12  Fredrik Noring  <noring@nocrew.org>
4603
4604	* config.gcc: Update with-llsc defaults for MIPS r5900.
4605
46062018-11-12  Martin Liska  <mliska@suse.cz>
4607
4608	PR gcov-profile/87442
4609	* common.opt: Add -fprofile-filter-files and -fprofile-exclude-files
4610	options.
4611	* doc/invoke.texi: Document them.
4612	* tree-profile.c (parse_profile_filter): New.
4613	(parse_profile_file_filtering): Likewise.
4614	(release_profile_file_filtering): Likewise.
4615	(include_source_file_for_profile): Likewise.
4616	(tree_profiling): Filter source files based on the
4617	newly added options.
4618
46192018-11-12  Martin Liska  <mliska@suse.cz>
4620
4621	PR target/87903
4622	* doc/extend.texi: Add missing values for __builtin_cpu_is and
4623	__builtin_cpu_supports for x86 target.
4624
46252018-11-12  Sandra Loosemore  <sandra@codesourcery.com>
4626
4627	PR middle-end/21110
4628	* doc/rtl.texi (Constants): Clarify that mode of "high" doesn't
4629	have to be Pmode.
4630	(Arithmetic): Likewise for "lo_sum".
4631
46322018-11-12  Renlin Li  <renlin.li@arm.com>
4633
4634	PR target/87815
4635	* dse.c (get_stored_val): Add check for compile-time constantness
4636	of gap.
4637
46382018-11-12  Sudakshina Das  <sudi.das@arm.com>
4639
4640	* config/arm/arm-cpus.in (armv8_5, sb, predres): New features.
4641	(ARMv8_5a): New fgroup.
4642	(armv8.5-a): New arch.
4643	(armv8-a, armv8.1-a, armv8.2-a, armv8.3-a, armv8.4-a): New options
4644	sb and predres.
4645	* config/arm/arm-tables.opt: Regenerate.
4646	* config/arm/t-aprofile: Add matching rules for -march=armv8.5-a
4647	* config/arm/t-arm-elf (all_v8_archs): Add armv8.5-a.
4648	* config/arm/t-multilib (v8_5_a_simd_variants): New variable.
4649	Add matching rules for -march=armv8.5-a and extensions.
4650	* doc/invoke.texi (ARM options): Document -march=armv8.5-a.
4651	Add sb and predres to all armv8-a except armv8.5-a.
4652
46532018-11-12  Richard Biener  <rguenther@suse.de>
4654
4655	* tree-vrp.h (value_range[_base]::set): Make public.  Provide
4656	overload for single value.
4657	(value_range[_base]::set_nonnull): New.
4658	(value_range[_base]::set_null): Likewise.
4659	(value_range): Document bitmap copying behavior, mark
4660	copy constructor and assignment operator deleted.
4661	(value_range::move): New.
4662	(value_range::set_and_canonicalize): Default bitmap to zero.
4663	(set_value_range_to_nonnull): Remove.
4664	(set_value_range_to_null): Likewise.
4665	(set_value_range): Likewise.
4666	(set_value_range_to_value): Likewise.
4667	(extract_range_from_unary_expr): Work on value_range_base.
4668	(extract_range_from_binary_expr_1): Likewise.  Rename to...
4669	(extract_range_from_binary_expr): ... this.
4670	* tree-vrp.c (value_range::update): Clear equiv bitmap
4671	if required.
4672	(value_range::move): New, move equiv bitmap.
4673	(value_range_base::set_undefined): Avoid assignment.
4674	(value_range::set_undefined): Likewise.
4675	(value_range_base::set_varying): Likewise.
4676	(value_range::set_varying): Likewise.
4677	(set_value_range): Remove.
4678	(value_range_base::set): New overload for value.
4679	(value_range::set): Likewise.
4680	(set_value_range_to_nonnull): Remove.
4681	(value_range_base::set_nonnull): New.
4682	(value_range::set_nonnull): Likewise.
4683	(set_value_range_to_null): Remove.
4684	(value_range_base::set_null): New.
4685	(value_range::set_null): Likewise.
4686	(range_is_null): Work on value_range_base.
4687	(range_is_nonnull): Likewise.
4688	(ranges_from_anti_range): Likewise.
4689	(extract_range_into_wide_ints): Likewise.
4690	(extract_range_from_multiplicative_op): Likewise.
4691	(extract_range_from_binary_expr): Likewise.  Update for API changes.
4692	(extract_range_from_unary_expr): Likewise.  Remove OBJ_TYPE_REF
4693	handling.
4694	(value_range::intersect_helper): Avoid copy and assignment.
4695	(value_range::union_helper): Likewise.
4696	(determine_value_range_1): Adjust.
4697	* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
4698	Avoid assignment by using move.
4699	(evrp_range_analyzer::record_ranges_from_stmt): Avoid assignment.
4700	* tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
4701	Likewise.
4702	* tree-ssanames.c (get_range_info): Likewise.
4703	* vr-values.h (vr_values::get_vr_for_comparison): Adjust API.
4704	* vr-values.c (vr_values::get_value_range): Adjust.
4705	(vr_values::update_value_range): Likewise.
4706	(symbolic_range_based_on_p): Work on value_range_base.
4707	(vr_values::extract_range_from_binary_expr): Use value_range_base.
4708	(vr_values::extract_range_from_unary_expr): Likewise.
4709	(vr_values::extract_range_from_cond_expr): Avoid assignment.
4710	(vr_values::extract_range_from_comparison): Adjust.
4711	(vr_values::check_for_binary_op_overflow): Use value_range_base.
4712	(vr_values::extract_range_basic): Adjust.
4713	(vr_values::adjust_range_with_scev): Likewise.
4714	(vr_values::vrp_visit_assignment_or_call): Likewise.
4715	(vr_values::get_vr_for_comparison): Change API to avoid
4716	assignment and copy construction.
4717	(vr_values::compare_name_with_value): Adjust accordingly.
4718	(vr_values::compare_names): Likewise.
4719	(vr_values::extract_range_from_phi_node): Avoid assignment and
4720	bogus in-place modify of equiv bitmap.
4721	(vr_values::simplify_bit_ops_using_ranges): Use value_range_base.
4722	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Adjust
4723	for extract_range_from_unary_expr API change.
4724	* ipa-cp.c (ipa_vr_operation_and_type_effects): Likewise.
4725
47262018-11-12  Eric Botcazou  <ebotcazou@adacore.com>
4727
4728	* config/mcore/mcore.h (WORD_REGISTER_OPERATIONS): Remove duplicate.
4729
47302018-11-12  Richard Biener  <rguenther@suse.de>
4731
4732	* tree-vrp.h (value_range_base::symbolic_p,
4733	value_range_base::constant_p, value_range_base::zero_p,
4734	value_range_base::singleton_p): Move from value_range.
4735	(value_range::dump): Add.
4736	* gimple-ssa-evrp-analyze.c
4737	(evrp_range_analyzer::record_ranges_from_phis): Use set_varying.
4738	* ipa-cp.c (ipcp_vr_lattice::print): Use dump_value_range.
4739	* tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
4740	Use set_varying.
4741	* tree-vrp.c (value_range::symbolic_p): Move to value_range_base.
4742	(value_range::constant_p): Likewise.
4743	(value_range::singleton_p): Likewise.
4744	(value_range_base::dump): Add.
4745	(set_value_range_to_undefined): Remove.
4746	(set_value_range_to_varying): Likewise.
4747	(range_int_cst_p): Take value_range_base argument.
4748	(range_int_cst_singleton_p): Likewise.
4749	(value_range_constant_singleton): Likewise.
4750	(vrp_set_zero_nonzero_bits): Likewise.
4751	(extract_range_from_multiplicative_op): Use set_varying.
4752	(extract_range_from_binary_expr_1): Likewise. Use set_undefined.
4753	(extract_range_from_unary_expr): Likewise.
4754	(dump_value_range_base): Change to overload of dump_value_range.
4755	(vrp_prop::vrp_initialize): Use set_varying and set_undefined.
4756	(vrp_prop::visit_stmt): Likewise.
4757	(value_range::intersect_helper): Likewise.
4758	(value_range::union_helper): Likewise.
4759	(determine_value_range_1): Likewise.
4760
47612018-11-12  Richard Biener  <rguenther@suse.de>
4762
4763	* tree-vrp.c (set_value_range_to_nonnull): Clear equiv.
4764	(set_value_range_to_null): Likewise.
4765	* vr-values.c (vr_values::extract_range_from_comparison):
4766	Clear equiv for constant singleton ranges.
4767
47682018-11-12  Wei Xiao  <wei3.xiao@intel.com>
4769
4770	* config/i386/sse.md: Combine VFIXUPIMM* patterns
4771	(<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
4772	(<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
4773	(<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
4774	(avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
4775	(avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
4776	(avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
4777
47782018-11-11  Sandra Loosemore  <sandra@codesourcery.com>
4779
4780	PR c/69502
4781	* doc/extend.texi (Common Type Attributes): For the align type
4782	attribute, copy language about decreasing alignment from the
4783	corresponding variable attribute.
4784
47852018-11-11  Xianmiao Qu  <xianmiao_qu@c-sky.com>
4786
4787	* config/csky/csky.md (*fpuv2_nmulsf3_1, *fpuv2_nmuldf3_1): Handle
4788	-frounding-math.
4789
47902018-11-11  Sandra Loosemore  <sandra@codesourcery.com>
4791
4792	PR c++/43105
4793	* doc/invoke.texi (C++ Dialect Options): Add warning about mixing
4794	-frtti and -fno-rtti code.
4795
47962018-11-11  Sandra Loosemore  <sandra@codesourcery.com>
4797
4798	PR c/26366
4799	* doc/extend.texi (Other Builtins): Document probability associated
4800	with __builtin_expect.
4801
48022018-11-11  Uros Bizjak  <ubizjak@gmail.com>
4803
4804	PR target/87928
4805	* config/i386/i386.h (STACK_BOUNDARY): Use TARGET_64BIT_MS_ABI
4806	instead of (TARGET_64BIT && ix86_abi == MS_ABI).
4807	* config/i386/darwin.h (STACK_BOUNDARY): Ditto.
4808	* config/i386/cygming.h (STACK_BOUNDARY): Remove.
4809
48102018-11-11  Xianmiao Qu  <xianmiao_qu@c-sky.com>
4811
4812	* config/csky/csky-linux-elf.h (CC1_SPEC): Support -profile.
4813
48142018-11-11  Xianmiao Qu  <xianmiao_qu@c-sky.com>
4815
4816	* config/csky/csky.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
4817
48182018-11-11  Richard Biener  <rguenther@suse.de>
4819
4820	* tree-vrp.h (class value_range_base): New base class for
4821	value_range containing all but the m_equiv member.
4822	(dump_value_range_base): Add.
4823	(range_includes_zero_p): Work on value_range_base.
4824	* tree-vrp.c (value_range_base::set): Split out base handling
4825	from...
4826	(value_range::set): this.
4827	(value_range::set_equiv): New.
4828	(value_range_base::value_range_base): New constructors.
4829	(value_range_base::check): Split out base handling from...
4830	(value_range::check): this.
4831	(value_range::equal_p): Refactor in terms of
4832	ignore_equivs_equal_p which is now member of the base.
4833	(value_range_base::set_undefined): New.
4834	(value_range_base::set_varying): Likewise.
4835	(value_range_base::dump):Split out base handling from...
4836	(value_range::dump): this.
4837	(value_range_base::set_and_canonicalize): Split out base handling
4838	from...
4839	(value_range::set_and_canonicalize): this.
4840	(value_range_base::union_): New.
4841	* ipa-prop.h (struct ipa_jump_func): Use value_range_base *
4842	for m_vr.
4843	* ipa-cp.c (class ipcp_vr_lattice): Use value_range_base
4844	instead of value_range everywhere.
4845	(ipcp_vr_lattice::print): Use dump_value_range_base.
4846	(ipcp_vr_lattice::meet_with): Adjust.
4847	(ipcp_vr_lattice::meet_with_1): Likewise.
4848	(ipa_vr_operation_and_type_effects): Likewise.
4849	(propagate_vr_across_jump_function): Likewise.
4850	* ipa-prop.c (struct ipa_vr_ggc_hash_traits): Likewise.
4851	(ipa_get_value_range): Likewise.
4852	(ipa_set_jfunc_vr): Likewise.
4853	(ipa_compute_jump_functions_for_edge): Likewise.
4854
48552018-11-10  Sandra Loosemore  <sandra@codesourcery.com>
4856
4857	PR middle-end/65703
4858	* doc/invoke.texi (Optimize Options): Add @opindex entries
4859	for the positive forms of -fno-xxx and -mno-xxx options
4860	that were lacking them.
4861
48622018-11-10  Segher Boessenkool  <segher@kernel.crashing.org>
4863
4864	* combine.c (make_more_copies): Only make an intermediate copy if the
4865	dest of a move is a pseudo.
4866
48672018-11-09  Maya Rashish  <coypu@sdf.org>
4868
4869	PR target/87221
4870	* config/netbsd-elf.h (NETBSD_STARTFILE_SPEC): Use crtbeginS.o for PIE.
4871	(NETBSD_ENDFILE_SPEC): Use crtendS.o for PIE.
4872
48732018-11-09  Sandra Loosemore  <sandra@codesourcery.com>
4874
4875	PR driver/41179
4876	PR middle-end/65703
4877	* doc/invoke.texi (Optimize Options): Clarify default behavior
4878	for -fno-toplevel-reorder, -fno-defer-pop, and -fno-branch-count-reg.
4879
48802018-11-09  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4881
4882	PR tree-optimization/87940
4883	* expr.c (string_constant): Don't strip NOPS in subexpressions.
4884	Fold PLUS_EXPR correctly.
4885
48862018-11-09  Ilya Leoshkevich  <iii@linux.ibm.com>
4887
4888	PR target/87762
4889	* config/s390/s390.c (s390_safe_relative_long_p): New function.
4890	(annotate_constant_pool_refs): Skip insns which support
4891	relative addressing.
4892	(annotate_constant_pool_refs_1): New helper function.
4893	(find_constant_pool_ref): Skip insns which support relative
4894	addression.
4895	(find_constant_pool_ref_1): New helper function.
4896	(replace_constant_pool_ref): Skip insns which support
4897	relative addressing.
4898	(replace_constant_pool_ref_1): New helper function.
4899	(s390_mainpool_start): Adapt to the new signature.
4900	(s390_mainpool_finish): Likewise.
4901	(s390_chunkify_start): Likewise.
4902	(s390_chunkify_finish): Likewise.
4903	(pass_s390_early_mach::execute): Likewise.
4904	(s390_prologue_plus_offset): Likewise.
4905	(s390_emit_prologue): Likewise.
4906	(s390_emit_epilogue): Likewise.
4907
49082018-11-09  Jakub Jelinek  <jakub@redhat.com>
4909
4910	* gimplify.c (gimplify_scan_omp_clauses): Call sorry_at for valid
4911	but unsupported lastprivate with conditional modifier.
4912
49132018-11-09  Jeff Law  <law@redhat.com>
4914
4915	* config/mips/mips.c (mips_loongson_ext2_prefetch_cookie): Handle
4916	unused argument better.  Add gcc_unreachable to silence warning.
4917
49182018-11-09  Martin Sebor  <msebor@redhat.com>
4919
4920	PR middle-end/81824
4921	* attribs.c (has_attribute): New helper function.
4922	(decls_mismatched_attributes, maybe_diag_alias_attributes): Same.
4923	* attribs.h (decls_mismatched_attributes): Declare.
4924	* cgraphunit.c (handle_alias_pairs): Call maybe_diag_alias_attributes.
4925	(maybe_diag_incompatible_alias): Use OPT_Wattribute_alias_.
4926	* common.opt (-Wattribute-alias): Take an argument.
4927	(-Wno-attribute-alias): New option.
4928	* doc/extend.texi (Common Function Attributes): Document copy.
4929	(Common Variable Attributes): Same.
4930	* doc/invoke.texi (-Wmissing-attributes): Document enhancement.
4931	(-Wattribute-alias): Document new option argument.
4932
49332018-11-09  Richard Earnshaw  <rearnsha@arm.com>
4934
4935	* config/arm/parsecpu.awk (/alias/): Tighten invisible alias
4936	matching criteria.  Remove unused array initializer.
4937
49382018-11-09  Bill Schmidt  <wschmidt@linux.ibm.com>
4939	    Jinsong Ji  <jji@us.ibm.com>
4940
4941	* config/rs6000/xmmintrin.h (_mm_cvtss_si32): Fix incorrect
4942	constraints by introducing a new temporary.
4943	(_mm_cvtss_si64): Likewise.
4944
49452018-11-09  Martin Liska  <mliska@suse.cz>
4946
4947	* common.opt: Add -fipa-stack-alignment flag.
4948	* doc/invoke.texi: Document it.
4949	* final.c (rest_of_clean_state): Guard stack
4950	shrinking with flag.
4951
49522018-11-09  Martin Liska  <mliska@suse.cz>
4953
4954	* cgraph.h (ipa_discover_readonly_nonaddressable_vars): Rename
4955	to ...
4956	(ipa_discover_variable_flags): ... this.
4957	* common.opt: Come up with new flag -fipa-reference-addressable.
4958	* doc/invoke.texi: Document it.
4959	* ipa-reference.c (propagate): Call the renamed fn.
4960	* ipa-visibility.c (whole_program_function_and_variable_visibility):
4961	Likewise.
4962	* ipa.c (ipa_discover_readonly_nonaddressable_vars): Renamed to
4963	...
4964	(ipa_discover_variable_flags): ... this.  Discover
4965	non-addressable variables only with the newly added flag.
4966	* opts.c: Enable the newly added flag with -O1 and higher
4967	optimization level.
4968
49692018-11-09  David Malcolm  <dmalcolm@redhat.com>
4970
4971	* json.cc (selftest::test_writing_literals): Fix comment.
4972
49732018-11-09  Martin Liska  <mliska@suse.cz>
4974
4975	* config/aarch64/aarch64.c (aarch64_parse_arch): Do not copy
4976	string to a stack buffer.
4977	(aarch64_parse_cpu): Likewise.
4978	(aarch64_parse_tune): Likewise.
4979
49802018-11-09  Richard Biener  <rguenther@suse.de>
4981
4982	PR tree-optimization/87953
4983	* tree-vect-loop.c (vectorizable_reduction): For analysis
4984	always pass ops[0] to vectorizable_condition.
4985
49862018-11-09  Stafford Horne  <shorne@gmail.com>
4987	    Richard Henderson  <rth@twiddle.net>
4988	    Joel Sherrill  <joel@rtems.org>
4989
4990	* common/config/or1k/or1k-common.c: New file.
4991	* config/or1k/*: New.
4992	* config.gcc (or1k*-*-*): New.
4993	* configure.ac (or1k*-*-*): New test for openrisc tls.
4994	* configure: Regenerated.
4995	* doc/install.texi: Document OpenRISC triplets.
4996	* doc/invoke.texi: Document OpenRISC arguments.
4997	* doc/md.texi: Document OpenRISC.
4998
49992018-11-09  Richard Earnshaw  <rearnsha@arm.com>
5000
5001	* config/arm/arm-cpus.in (arm7tdmi): Add an alias for arm7tdmi-s.
5002	(arm7tdmi-s): Delete CPU.
5003	(arm710t): Add aliases for arm720t and arm740t.
5004	(arm720t, arm740t): Delete CPUs.
5005	(arm920t): Add aliases for arm920, arm922t and arm940t.
5006	(arm920, arm922t, arm940t): Delete CPUs.
5007	(arm10tdmi): Add alias for arm1020t.
5008	(arm1020t): Delete CPU.
5009	(arm9e): Add aliases for arm946e-s, arm966e-s and arm968e-s.
5010	(arm946e-s, arm966e-s, arm968e-s): Delete CPUs.
5011	(arm10e): Add aliases for arm1020e and arm1022e.
5012	(arm1020e, arm1022e): Delete CPU.
5013	* config/arm/arm.md (generic_sched): Remove entries that are now
5014	handled by aliases.
5015	(generic_vfp): Likewise.
5016	* config/arm/arm1020e.md: Simplify tuning selection based on alias
5017	changes.
5018	* config/arm/arm-tune.md: Regenerated.
5019	* config/arm/arm-tables.opt: Regenerated.
5020
50212018-11-09  Richard Biener  <rguenther@suse.de>
5022
5023	PR tree-optimization/87621
5024	* tree-vect-loop.c (vectorizable_reduction): Handle reduction
5025	op with only phi inputs.
5026	* tree-ssa-loop-ch.c: Include tree-ssa-sccvn.h.
5027	(ch_base::copy_headers): Run CSE on copied loop headers.
5028	(pass_ch_vect::process_loop_p): Simplify.
5029
50302018-11-09  Alexandre Oliva  <oliva@adacore.com>
5031
5032	* config/i386/mingw32.h (LINK_SPEC_LARGE_ADDR_AWARE): Adjust
5033	for non-w64 x86_64 biarch.
5034
50352018-11-09  Alexandre Oliva  <aoliva@redhat.com>
5036
5037	PR rtl-optimization/86438
5038	* compare-elim.c (try_eliminate_compare): Use SET_SRC instead
5039	of in_b for the compare if in_b is SET_DEST.
5040
5041	PR target/87793
5042	* config/i386/i386.c (ix86_const_not_ok_for_debug_p): Reject
5043	non-toplevel UNSPEC.
5044
50452018-11-08  Aldy Hernandez  <aldyh@redhat.com>
5046
5047	* tree-vrp.c (value_range::check): Do not access internals
5048	directly.
5049	(value_range::singleton_p): Same.
5050	(value_range::type): Same.
5051	(vrp_finalize): Use value_range API.
5052
50532018-11-08  Aldy Hernandez  <aldyh@redhat.com>
5054
5055	* tree-vrp.c (may_contain_p): Do not access m_min/m_max directly.
5056
50572018-11-08  Aldy Hernandez  <aldyh@redhat.com>
5058
5059	* vr-values.c (vr_values::get_value_range): Use value_range API
5060	instead of piecing together ranges.
5061	(vr_values::update_value_range): Same.
5062
50632018-11-08  Aldy Hernandez  <aldyh@redhat.com>
5064
5065	* gimple-fold.c (size_must_be_zero_p): Use value_range API instead
5066	of performing ad-hoc calculations.
5067	* tree-ssanames.c (set_range_info): New overloaded function
5068	accepting value_range &.
5069	(get_range_info): Same.
5070	* tree-ssanames.h (set_range_info_raw): Remove.
5071	(set_range_info): New prototype.
5072	(get_range_info): Same.
5073	* tree-vrp.h (value_range::null_p): Rename to zero_p.
5074	* tree-vrp.c (value_range::null_p): Same.
5075
50762018-11-09  Jan Hubicka  <jh@suse.cz>
5077
5078	* tree.c (fld_type_variant_equal_p): Test user align flag.
5079	(flt_type_variant): Copy user align flag.
5080	(fld_incomplete_type_of): Clear it.
5081
50822018-11-09  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5083
5084	* config/arm/neon.md (div<mode>3): New pattern.
5085
50862018-11-08  Andi Kleen  <ak@linux.intel.com>
5087
5088	* common/config/i386/i386-common.c (OPTION_MASK_ISA_PTWRITE_SET): New.
5089	(OPTION_MASK_ISA_PTWRITE_UNSET): New.
5090	(ix86_handle_option): Handle OPT_mptwrite.
5091	* config/i386/cpuid.h (bit_PTWRITE): Add.
5092	* config/i386/driver-i386.c (host_detect_local_cpu): Detect ptwrite.
5093	* config/i386/i386-builtin.def (BDESC): Add ptwrite32/64.
5094	* config/i386/i386-c.c (ix86_target_macros_internal): Define __PTWRITE__.
5095	* config/i386/i386.c (ix86_target_string): Handle ptwrite.
5096	(ix86_option_override_internal): Handle PTA_PTWRITE.
5097	(ix86_valid_target_attribute_inner_p): Define ptwrite.
5098	(def_builtin2): Force UINT64 to be 64bit only.
5099	* config/i386/i386.h (TARGET_PTWRITE): Add.
5100	(TARGET_PTWRITE_P): Add.
5101	(PTA_PTWRITE): Add.
5102	* config/i386/i386.md: Define ptwrite.
5103	* config/i386/i386.opt: Add -mptwrite.
5104	* config/i386/immintrin.h (_ptwrite64): Add.
5105	(_ptwrite32): Add
5106	* doc/extend.texi: Document __builtin_ia32_ptwrite*.
5107	* doc/invoke.texi: Document -mptwrite.
5108
51092018-11-08  Peter Bergner  <bergner@linux.ibm.com>
5110
5111	PR rtl-optimization/87600
5112	* cfgexpand.c (expand_asm_stmt): Catch illegal asm constraint usage.
5113	* lra-constraints.c (process_alt_operands): Skip illegal hard
5114	register usage.  Prefer reloading non hard register operands.
5115
51162018-11-08  Sandra Loosemore  <sandra@codesourcery.com>
5117
5118	PR other/36572
5119	* doc/invoke.texi (Optimize Options): Clarify default behavior
5120	for -fno-sched-interblock and -fno-sched-spec.
5121
51222018-11-08  Roman Geissler  <roman.geissler@amadeus.com>
5123
5124	* collect2.c (linker_select):  Add USE_LLD_LD.
5125	(ld_suffixes): Add ld.lld.
5126	(main): Handle -fuse-ld=lld.
5127	* common.opt (-fuse-ld=lld): New option.
5128	* doc/invoke.texi (-fuse-ld=lld): Document.
5129	* opts.c (common_handle_option): Handle OPT_fuse_ld_lld.
5130
51312018-11-08  Paul Koning  <ni1d@arrl.net>
5132
5133	* config/pdp11/constraints.md: Add "Z" series constraints for use
5134	with pre-dec and post-inc addressing.
5135	* config/pdp11/pdp11-protos.m (expand_block_move): Delete.
5136	(pdp11_expand_operands): Add int argument (word count).
5137	(pdp11_sp_frame_offset): Delete.
5138	(pdp11_cmp_length): New function.
5139	(pushpop_regeq): New function.
5140	* config/pdp11/pdp11.c (TARGET_STACK_PROTECT_RUNTIME_ENABLED_P):
5141	Add hook.
5142	(pdp11_expand_prologue, pdp11_expand_epilogue): Rewrite for new
5143	frame layout.
5144	(pdp11_initial_elimination_offset): Ditto.
5145	(pdp11_expand_operands): Add word count argument.  Bugfixes.
5146	(output_move_multiple): Change how pointer adjustment is done.
5147	(pdp11_gen_int_label): Correct format.
5148	(output_ascii): Ditto.
5149	(pdp11_asm_output_var): Add code for DEC assembler case.
5150	(pdp11_asm_print_operand): Bugfix for CONST_DOUBLE holding integer
5151	value.
5152	(legitimate_const_double_p): Ditto.
5153	(pdp11_register_move_cost): Adjust for new register classes.
5154	(pdp11_regno_reg_class): Ditto.
5155	(expand_block_move): Delete.
5156	(pushpop_regeq): New function.
5157	(pdp11_legitimate_address_p): Bugfix in check for constant
5158	offset.
5159	(pdp11_sp_frame_offset): Delete.
5160	(pdp11_reg_save_size): New helper function for new frame layout.
5161	(output_addr_const_pdp11): Remove CONST_DOUBLE case.
5162	(pdp11_expand_shift): Bugfix in check for constant shift count.
5163	(pdp11_shift_length): Ditto.
5164	(pdp11_assemble_shift): Copy input to pdp11_expand_operands.
5165	(pdp11_cmp_length): New function.
5166	* config/pdp11/pdp11.h (TARGET_CPU_CPP_BUILTINS): Add macros for
5167	some compile options.
5168	(FIXED_REGISTERS): Remove HARD_FRAME_POINTER_REGNUM.
5169	(CALL_USED_REGISTERS): Ditto.
5170	(ELIMINABLE_REGS): Ditto.
5171	(REGISTER_NAMES): Ditto.
5172	(reg_class): Add classes NOTR0_REG through NOTSP_REG for use by Z
5173	constraints.
5174	(REG_CLASS_NAMES): Ditto.
5175	(REG_CLASS_CONTENTS): Ditto.  Also remove
5176	HARD_FRAME_POINTER_REGNUM.
5177	(CPU_REG_CLASS): New macro.
5178	(CLASS_MAX_NREGS): Adjust for new register classes.
5179	(FUNCTION_PROFILER): Make no-op.
5180	(may_call_alloca): Remove unused declaration.
5181	(ASM_OUTPUT_ALIGN): Add workaround for PR87795.
5182	(ASM_OUTPUT_SKIP): Fix format.
5183	* config/pdp11/pdp11.md (unspecv): Add UNSPECV_MOVMEM.
5184	(HARD_FRAME_POINTER_REGNUM): Remove.
5185	(return): Delete.
5186	(*rts): Rename.  Remove epilogue related checks.
5187	(cmpsi, cmpdi): New insn.
5188	(cbranch<mode>4): Change to apply to SI and DI modes as well.
5189	(mov<mode>): Change constraints to enforce that push/pop
5190	destination cannot use the same register as source.
5191	(*mov<mode><cc_cc>): Ditto.
5192	(movmemhi, movmemhi1, movmemhi_nocc): Change to expand block move
5193	at assembly output rather than as RTL expander.
5194	(zero_extendqihi2): Bugfix in check for same registers.
5195	(adddi3_nocc): Bugfix in check for constant operand.
5196	(addsi3_nocc): Ditto.
5197	(subdi3_nocc): Ditto.
5198	(subsi3_nocc): Ditto.
5199	(negdi2_nocc): Copy input to pdp11_expand_operands.
5200	(negsi2_nocc): Ditto.
5201	(bswap2_nocc): Ditto.
5202	* config/pdp11/pdp11.opt (mlra): Fix documentation.
5203	* config/pdp11/t-pdp11: Use -Os.
5204
52052018-11-08  Richard Earnshaw  <rearnsha@arm.com>
5206
5207	* config/arm/parsecpu.awk (/alias/): New parsing rule.
5208	(/begin cpu/): Check that the cpu name hasn't been previously defined.
5209	(gen_comm_data): Print out CPU alias tables.
5210	(check_cpu): Match aliases when checking the CPU name.
5211	* config/arm/arm-protos.h (cpu_alias): New structure.
5212	(cpu_option): Add entry for aliases.
5213	* config/arm/arm-cpus.in (strongarm): Add aliases for strongarm110
5214	strongarm1100 and strongarm1110.
5215	(strongarm110, strongarm1100, strongarm1110): Delete CPU entries.
5216	(config/arm/arm-generic.md): Remove redundant references to
5217	strongarm110, strongarm1100 and strongarm1110.
5218	* common/config/arm/arm-common.c (arm_print_hint_for_cpu_option):
5219	Scan aliases for additional hints.
5220	(arm_parse_cpu_option_name): Also match a cpu name against the list
5221	of aliases.
5222	* config/arm/arm-tables.opt: Regenerated.
5223	* config/arm/arm-tune.md: Regenerated.
5224
52252018-11-08  Jakub Jelinek  <jakub@redhat.com>
5226
5227	* builtin-types.def (BT_FN_VOID_BOOL, BT_FN_VOID_SIZE_SIZE_PTR,
5228	BT_FN_UINT_UINT_PTR_PTR, BT_FN_UINT_OMPFN_PTR_UINT_UINT,
5229	BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR,
5230	BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR,
5231	BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR,
5232	BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR): New.
5233	* gengtype.c (open_base_files): Add omp-general.h.
5234	* gimple.c (gimple_build_omp_critical):
5235	(gimple_build_omp_taskgroup): Add CLAUSES argument.  Call
5236	gimple_omp_taskgroup_set_clauses.
5237	(gimple_build_omp_atomic_load): Add mo argument, call
5238	gimple_omp_atomic_set_memory_order.
5239	(gimple_build_omp_atomic_store): Likewise.
5240	(gimple_copy): Adjust handling of GIMPLE_OMP_TASKGROUP.
5241	* gimple.def (GIMPLE_OMP_TASKGROUP): Use GSS_OMP_SINGLE_LAYOUT
5242	instead of GSS_OMP.
5243	(GIMPLE_OMP_TEAMS): Use GSS_OMP_PARALLEL_LAYOUT instead
5244	of GSS_OMP_SINGLE_LAYOUT, adjust comments.
5245	* gimple.h (enum gf_mask): Add GF_OMP_TEAMS_HOST, GF_OMP_TASK_TASKWAIT
5246	and GF_OMP_ATOMIC_MEMORY_ORDER.  Remove GF_OMP_ATOMIC_SEQ_CST, use
5247	different value for GF_OMP_ATOMIC_NEED_VALUE.
5248	(struct gimple_statement_omp_taskreg): Add GIMPLE_OMP_TEAMS to
5249	comments.
5250	(struct gimple_statement_omp_single_layout): And remove here.
5251	(struct gomp_teams): Inherit from gimple_statement_omp_taskreg rather
5252	than gimple_statement_omp_single_layout.
5253	(is_a_helper <gimple_statement_omp_taskreg *>::test): Allow
5254	GIMPLE_OMP_TEAMS.
5255	(is_a_helper <const gimple_statement_omp_taskreg *>::test): Likewise.
5256	(gimple_omp_subcode): Formatting fix.
5257	(gimple_omp_teams_child_fn, gimple_omp_teams_child_fn_ptr,
5258	gimple_omp_teams_set_child_fn, gimple_omp_teams_data_arg,
5259	gimple_omp_teams_data_arg_ptr, gimple_omp_teams_set_data_arg,
5260	gimple_omp_teams_host, gimple_omp_teams_set_host,
5261	gimple_omp_task_taskwait_p, gimple_omp_task_set_taskwait_p,
5262	gimple_omp_taskgroup_clauses, gimple_omp_taskgroup_clauses_ptr,
5263	gimple_omp_taskgroup_set_clauses): New inline functions.
5264	(gimple_build_omp_atomic_load): Add enum omp_memory_order argument.
5265	(gimple_build_omp_atomic_store): Likewise.
5266	(gimple_omp_atomic_seq_cst_p): Remove.
5267	(gimple_omp_atomic_memory_order): New function.
5268	(gimple_omp_atomic_set_seq_cst): Remove.
5269	(gimple_omp_atomic_set_memory_order): New function.
5270	(gimple_build_omp_taskgroup): Add clauses argument.
5271	* gimple-pretty-print.c (dump_gimple_omp_taskgroup): New function.
5272	(dump_gimple_omp_task): Print taskwait with depend clauses.
5273	(dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Use
5274	dump_omp_atomic_memory_order.
5275	(pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP.
5276	* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALLOC_ONLY,
5277	GOVD_MAP_FROM_ONLY and GOVD_NONTEMPORAL.
5278	(enum omp_region_type): Reserve bits 1 and 2 for auxiliary flags,
5279	renumber values of most of ORT_* enumerators, add ORT_HOST_TEAMS,
5280	ORT_COMBINED_HOST_TEAMS, ORT_TASKGROUP, ORT_TASKLOOP and
5281	ORT_UNTIED_TASKLOOP enumerators.
5282	(enum gimplify_defaultmap_kind): New.
5283	(struct gimplify_omp_ctx): Remove target_map_scalars_firstprivate and
5284	target_map_pointers_as_0len_arrays members, add defaultmap.
5285	(new_omp_context): Initialize defaultmap member.
5286	(gimple_add_tmp_var): Handle ORT_TASKGROUP like ORT_WORKSHARE.
5287	(maybe_fold_stmt): Don't fold even in host teams regions.
5288	(omp_firstprivatize_variable): Handle ORT_TASKGROUP like
5289	ORT_WORKSHARE.  Test ctx->defaultmap[GDMK_SCALAR] instead of
5290	ctx->omp_firstprivatize_variable.
5291	(omp_add_variable): Don't add private/firstprivate for VLAs in
5292	ORT_TASKGROUP.
5293	(omp_default_clause): Print "taskloop" rather than "task" if
5294	ORT_*TASKLOOP.
5295	(omp_notice_variable): Handle ORT_TASKGROUP like ORT_WORKSHARE.
5296	Handle new defaultmap clause kinds.
5297	(omp_is_private): Handle ORT_TASKGROUP like ORT_WORKSHARE.  Allow simd
5298	iterator to be lastprivate or private.  Fix up diagnostics if linear
5299	is used on collapse>1 simd iterator.
5300	(omp_check_private): Handle ORT_TASKGROUP like ORT_WORKSHARE.
5301	(gimplify_omp_depend): New function.
5302	(gimplify_scan_omp_clauses): Add shared clause on parallel for
5303	combined parallel master taskloop{, simd} if taskloop has
5304	firstprivate, lastprivate or reduction clause.  Handle
5305	OMP_CLAUSE_REDUCTION_TASK diagnostics.  Adjust tests for
5306	ORT_COMBINED_TEAMS.  Gimplify depend clauses with iterators.  Handle
5307	cancel and simd OMP_CLAUSE_IF_MODIFIERs.  Handle
5308	OMP_CLAUSE_NONTEMPORAL.  Handle new defaultmap clause kinds.  Handle
5309	OMP_CLAUSE_{TASK,IN}_REDUCTION.  Diagnose invalid conditional
5310	lastprivate.
5311	(gimplify_adjust_omp_clauses_1): Ignore GOVD_NONTEMPORAL.  Handle
5312	GOVD_MAP_ALLOC_ONLY and GOVD_MAP_FROM_ONLY.
5313	(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_NONTEMPORAL.  Handle
5314	OMP_CLAUSE_{TASK,IN}_REDUCTION.
5315	(gimplify_omp_task): Handle taskwait with depend clauses.
5316	(gimplify_omp_for): Add shared clause on parallel for combined
5317	parallel master taskloop{, simd} if taskloop has firstprivate,
5318	lastprivate or reduction clause.  Use ORT_TASKLOOP or
5319	ORT_UNTIED_TASKLOOP instead of ORT_TASK or ORT_UNTIED_TASK.  Adjust
5320	tests for ORT_COMBINED_TEAMS.  Handle C++ range for loops with
5321	NULL TREE_PURPOSE in OMP_FOR_ORIG_DECLS.  Firstprivatize
5322	__for_end and __for_range temporaries on OMP_PARALLEL for
5323	distribute parallel for{, simd}.  Move OMP_CLAUSE_REDUCTION
5324	and OMP_CLAUSE_IN_REDUCTION from taskloop to the task construct
5325	sandwiched in between two taskloops.
5326	(computable_teams_clause): Test ctx->defaultmap[GDMK_SCALAR]
5327	instead of ctx->omp_firstprivatize_variable.
5328	(gimplify_omp_workshare): Set ort to ORT_HOST_TEAMS or
5329	ORT_COMBINED_HOST_TEAMS if not inside of target construct.  If
5330	host teams, use gimplify_and_return_first etc. for body like
5331	for target or target data constructs, and at the end call
5332	gimple_omp_teams_set_host on the GIMPLE_OMP_TEAMS object.
5333	(gimplify_omp_atomic): Use OMP_ATOMIC_MEMORY_ORDER instead
5334	of OMP_ATOMIC_SEQ_CST, pass it as new argument to
5335	gimple_build_omp_atomic_load and gimple_build_omp_atomic_store, remove
5336	gimple_omp_atomic_set_seq_cst calls.
5337	(gimplify_expr) <case OMP_TASKGROUP>: Move handling into a separate
5338	case, handle taskgroup clauses.
5339	* lto-streamer-out.c (hash_tree): Handle
5340	OMP_CLAUSE_{TASK,IN}_REDUCTION.
5341	* Makefile.in (GTFILES): Add omp-general.h.
5342	* omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND,
5343	BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_START,
5344	BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_START,
5345	BUILT_IN_GOMP_LOOP_START, BUILT_IN_GOMP_LOOP_ORDERED_START,
5346	BUILT_IN_GOMP_LOOP_DOACROSS_START,
5347	BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_NEXT,
5348	BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_NEXT,
5349	BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_START,
5350	BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_START,
5351	BUILT_IN_GOMP_LOOP_ULL_START, BUILT_IN_GOMP_LOOP_ULL_ORDERED_START,
5352	BUILT_IN_GOMP_LOOP_ULL_DOACROSS_START,
5353	BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_NEXT,
5354	BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_NEXT,
5355	BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME,
5356	BUILT_IN_GOMP_PARALLEL_LOOP_MAYBE_NONMONOTONIC_RUNTIME,
5357	BUILT_IN_GOMP_PARALLEL_REDUCTIONS, BUILT_IN_GOMP_SECTIONS2_START,
5358	BUILT_IN_GOMP_TEAMS_REG, BUILT_IN_GOMP_TASKGROUP_REDUCTION_REGISTER,
5359	BUILT_IN_GOMP_TASKGROUP_REDUCTION_UNREGISTER,
5360	BUILT_IN_GOMP_TASK_REDUCTION_REMAP,
5361	BUILT_IN_GOMP_WORKSHARE_TASK_REDUCTION_UNREGISTER): New builtins.
5362	* omp-expand.c (workshare_safe_to_combine_p): Return false for
5363	non-worksharing loops.
5364	(omp_adjust_chunk_size): Don't adjust anything if chunk_size is zero.
5365	(determine_parallel_type): Don't combine parallel with worksharing
5366	which has _reductemp_ clause.
5367	(expand_parallel_call): Emit the GOMP_*nonmonotonic_runtime* or
5368	GOMP_*maybe_nonmonotonic_runtime* builtins instead of GOMP_*runtime*
5369	if there is nonmonotonic modifier or if there is no modifier and no
5370	ordered clause.  For dynamic and guided schedule without monotonic
5371	and nonmonotonic modifier, default to nonmonotonic.
5372	(expand_omp_for): Likewise.  Adjust expand_omp_for_generic caller, use
5373	GOMP_loop{,_ull}{,_ordered,_doacross}_start builtins if there are
5374	task reductions.
5375	(expand_task_call): Add GOMP_TASK_FLAG_REDUCTION flag to flags if
5376	there are any reduction clauses.
5377	(expand_taskwait_call): New function.
5378	(expand_teams_call): New function.
5379	(expand_omp_taskreg): Allow GIMPLE_OMP_TEAMS and call
5380	expand_teams_call for it.  Formatting fix.  Handle taskwait with
5381	depend clauses.
5382	(expand_omp_for_generic): Add SCHED_ARG argument.  Handle expansion
5383	of worksharing loops with task reductions.
5384	(expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
5385	expansion of worksharing loops with task reductions.
5386	(expand_omp_sections): Handle expansion of sections with task
5387	reductions.
5388	(expand_omp_synch): For host teams call expand_omp_taskreg.
5389	(omp_memory_order_to_memmodel): New function.
5390	(expand_omp_atomic_load, expand_omp_atomic_store,
5391	expand_omp_atomic_fetch_op): Use it and gimple_omp_atomic_memory_order
5392	instead of gimple_omp_atomic_seq_cst_p.
5393	(build_omp_regions_1, omp_make_gimple_edges): Treat taskwait with
5394	depend clauses as a standalone directive.
5395	* omp-general.c (enum omp_requires): New variable.
5396	(omp_extract_for_data): Initialize have_reductemp member.  Allow
5397	NE_EXPR even in OpenMP loops, transform them into LT_EXPR or
5398	GT_EXPR loops depending on incr sign.  Formatting fixes.
5399	* omp-general.h (struct omp_for_data): Add have_reductemp member.
5400	(enum omp_requires): New enum.
5401	(omp_requires_mask): Declare.
5402	* omp-grid.c (grid_eliminate_combined_simd_part): Formatting fix.
5403	Fix comment typos.
5404	* omp-low.c (struct omp_context): Add task_reductions and
5405	task_reduction_map fields.
5406	(is_host_teams_ctx): New function.
5407	(is_taskreg_ctx): Return true also if is_host_teams_ctx.
5408	(use_pointer_for_field): Use is_global_var instead of
5409	TREE_STATIC || DECL_EXTERNAL, and apply only if not privatized
5410	in outer contexts.
5411	(build_outer_var_ref): Ignore taskgroup outer contexts.
5412	(delete_omp_context): Release task_reductions and task_reduction_map.
5413	(scan_sharing_clauses): Don't add any fields for reduction clause on
5414	taskloop.  Handle OMP_CLAUSE__REDUCTEMP_.  Handle
5415	OMP_CLAUSE_{IN,TASK}_REDUCTION and OMP_CLAUSE_REDUCTION with task
5416	modifier.  Don't ignore shared clauses in is_host_teams_ctx contexts.
5417	Handle OMP_CLAUSE_NONTEMPORAL.
5418	(add_taskreg_looptemp_clauses): Add OMP_CLAUSE__REDUCTEMP_ clause if
5419	needed.
5420	(scan_omp_parallel): Add _reductemp_ clause if there are any reduction
5421	clauses with task modifier.
5422	(scan_omp_task): Handle taskwait with depend clauses.
5423	(finish_taskreg_scan): Move field corresponding to _reductemp_ clause
5424	first.  Move also OMP_CLAUSE__REDUCTEMP_ clause in front if present.
5425	Handle GIMPLE_OMP_TEAMS like GIMPLE_OMP_PARALLEL.
5426	(scan_omp_for): Fix comment formatting.
5427	(scan_omp_teams): Handle host teams constructs.
5428	(check_omp_nesting_restrictions): Allow teams with no outer
5429	OpenMP context.  Adjust diagnostics for teams strictly nested into
5430	some explicit OpenMP construct other than target.  Allow OpenMP atomics
5431	inside of simd regions.
5432	(scan_omp_1_stmt): Call scan_sharing_clauses for taskgroups.
5433	(scan_omp_1_stmt) <case GIMPLE_OMP_TEAMS>: Temporarily bump
5434	taskreg_nesting_level while scanning host teams construct.
5435	(task_reduction_read): New function.
5436	(lower_rec_input_clauses): Handle OMP_CLAUSE_REDUCTION on taskloop
5437	construct.  Handle OMP_CLAUSE_IN_REDUCTION and OMP_CLAUSE__REDUCTEMP_
5438	clauses.  Handle OMP_CLAUSE_REDUCTION with task modifier.  Remove
5439	second argument create_tmp_var if it is NULL.  Don't ignore shared
5440	clauses in is_host_teams_ctx contexts.  Handle
5441	OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE on OMP_CLAUSE_FIRSTPRIVATE
5442	clauses.
5443	(lower_reduction_clauses): Ignore reduction clauses with task
5444	modifier.  Remove second argument create_tmp_var if it is NULL.
5445	Initialize OMP_ATOMIC_MEMORY_ORDER to relaxed.
5446	(lower_send_clauses): Ignore reduction clauses with task modifier.
5447	Handle OMP_CLAUSE__REDUCTEMP_.  Don't send anything for
5448	OMP_CLAUSE_REDUCTION on taskloop.  Handle OMP_CLAUSE_IN_REDUCTION.
5449	(maybe_add_implicit_barrier_cancel): Add OMP_RETURN argument, don't
5450	rely that it is the last stmt in body so far.  Ignore outer taskgroup
5451	contexts.
5452	(omp_task_reductions_find_first, omp_task_reduction_iterate,
5453	lower_omp_task_reductions): New functions.
5454	(lower_omp_sections): Handle reduction clauses with taskgroup
5455	modifiers.  Adjust maybe_add_implicit_barrier_cancel caller.
5456	(lower_omp_single): Adjust maybe_add_implicit_barrier_cancel caller.
5457	(lower_omp_for): Likewise.  Handle reduction clauses with taskgroup
5458	modifiers.
5459	(lower_omp_taskgroup): Handle taskgroup reductions.
5460	(create_task_copyfn): Copy over OMP_CLAUSE__REDUCTEMP_ pointer.
5461	Handle OMP_CLAUSE_IN_REDUCTION and OMP_CLAUSE_REDUCTION clauses.
5462	(lower_depend_clauses): If there are any
5463	OMP_CLAUSE_DEPEND_DEPOBJ or OMP_CLAUSE_DEPEND_MUTEXINOUTSET
5464	depend clauses, use a new array format.  If OMP_CLAUSE_DEPEND_LAST is
5465	seen, assume lowering is done already and return early.  Set kind
5466	on artificial depend clause to OMP_CLAUSE_DEPEND_LAST.
5467	(lower_omp_taskreg): Handle reduction clauses with task modifier on
5468	parallel construct.  Handle reduction clause on taskloop construct.
5469	Handle taskwait with depend clauses.
5470	(lower_omp_1): Use lower_omp_taskreg instead of lower_omp_teams
5471	for host teams constructs.
5472	* tree.c (omp_clause_num_ops): Add in_reduction, task_reduction,
5473	nontemporal and _reductemp_ clause entries.
5474	(omp_clause_code_name): Likewise.
5475	(walk_tree_1): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION,
5476	OMP_CLAUSE_NONTEMPORAL and OMP_CLAUSE__REDUCTEMP_.
5477	* tree-core.h (enum omp_clause_code): Add
5478	OMP_CLAUSE_{{IN,TASK}_REDUCTION,NONTEMPORAL,_REDUCTEMP_}.
5479	(enum omp_clause_defaultmap_kind, enum omp_memory_order): New.
5480	(struct tree_base): Add omp_atomic_memory_order field into union.
5481	Remove OMP_ATOMIC_SEQ_CST comment.
5482	(enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_MUTEXINOUTSET
5483	and OMP_CLAUSE_DEPEND_DEPOBJ.
5484	(struct tree_omp_clause): Add subcode.defaultmap_kind.
5485	* tree.def (OMP_TASKGROUP): Add another operand, move next to other
5486	OpenMP constructs with body and clauses operands.
5487	* tree.h (OMP_BODY): Use OMP_MASTER instead of OMP_TASKGROUP.
5488	(OMP_CLAUSES): Use OMP_TASKGROUP instead of OMP_SINGLE.
5489	(OMP_TASKGROUP_CLAUSES): Define.
5490	(OMP_CLAUSE_DECL): Use OMP_CLAUSE__REDUCTEMP_ instead of
5491	OMP_CLAUSE__LOOPTEMP_.
5492	(OMP_ATOMIC_SEQ_CST): Remove.
5493	(OMP_ATOMIC_MEMORY_ORDER, OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE,
5494	OMP_CLAUSE_LASTPRIVATE_CONDITIONAL): Define.
5495	(OMP_CLAUSE_REDUCTION_CODE, OMP_CLAUSE_REDUCTION_INIT,
5496	OMP_CLAUSE_REDUCTION_MERGE, OMP_CLAUSE_REDUCTION_PLACEHOLDER,
5497	OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
5498	OMP_CLAUSE_REDUCTION_OMP_ORIG_REF): Handle
5499	OMP_CLAUSE_{,IN_,TASK_}REDUCTION.
5500	(OMP_CLAUSE_REDUCTION_TASK, OMP_CLAUSE_REDUCTION_INSCAN,
5501	OMP_CLAUSE_DEFAULTMAP_KIND, OMP_CLAUSE_DEFAULTMAP_CATEGORY,
5502	OMP_CLAUSE_DEFAULTMAP_BEHAVIOR, OMP_CLAUSE_DEFAULTMAP_SET_KIND):
5503	Define.
5504	* tree-inline.c (remap_gimple_stmt): Remap taskgroup clauses.
5505	* tree-nested.c (convert_nonlocal_omp_clauses): Handle
5506	OMP_CLAUSE__REDUCTEMP_, OMP_CLAUSE_NONTEMPORAL.
5507	(convert_local_omp_clauses): Likewise.  Remove useless test.
5508	* tree-parloops.c (create_call_for_reduction_1): Pass
5509	OMP_MEMORY_ORDER_RELAXED as new argument to
5510	dump_gimple_omp_atomic_load and dump_gimple_omp_atomic_store.
5511	* tree-pretty-print.c (dump_omp_iterators): New function.
5512	(dump_omp_clause): Handle OMP_CLAUSE__REDUCTEMP_,
5513	OMP_CLAUSE_NONTEMPORAL, OMP_CLAUSE_{TASK,IN}_REDUCTION.  Print
5514	reduction modifiers.  Handle OMP_CLAUSE_DEPEND_DEPOBJ and
5515	OMP_CLAUSE_DEPEND_MUTEXINOUTSET.  Print iterators in depend clauses.
5516	Print __internal__ for OMP_CLAUSE_DEPEND_LAST.  Handle cancel and
5517	simd OMP_CLAUSE_IF_MODIFIERs.  Handle new kinds of
5518	OMP_CLAUSE_DEFAULTMAP. Print conditional: for
5519	OMP_CLAUSE_LASTPRIVATE_CONDITIONAL.
5520	(dump_omp_atomic_memory_order): New function.
5521	(dump_generic_node): Use it.  Print taskgroup clauses.  Print
5522	taskwait with depend clauses.
5523	* tree-pretty-print.h (dump_omp_atomic_memory_order): Declare.
5524	* tree-streamer-in.c (unpack_ts_omp_clause_value_fields):
5525	Handle OMP_CLAUSE_{TASK,IN}_REDUCTION.
5526	* tree-streamer-out.c (pack_ts_omp_clause_value_fields,
5527	write_ts_omp_clause_tree_pointers): Likewise.
5528
55292018-11-08  David Malcolm  <dmalcolm@redhat.com>
5530
5531	PR ipa/86395
5532	* doc/invoke.texi (-fdump-ipa-): Document the "-optimized",
5533	"-missed", "-note", and "-all" sub-options.
5534	* ipa-inline.c (caller_growth_limits): Port from fprintf to dump
5535	API.
5536	(can_early_inline_edge_p): Likewise.
5537	(want_early_inline_function_p): Likewise.
5538	(want_inline_self_recursive_call_p): Likewise.
5539	(recursive_inlining): Likewise.
5540	(inline_small_functions): Likewise.
5541	(flatten_function): Likewise.
5542	(ipa_inline): Likewise.
5543	(inline_always_inline_functions): Likewise.
5544	(early_inline_small_functions): Likewise.
5545	(early_inliner): Likewise.
5546	* tree-inline.c (expand_call_inline): Likewise.
5547
55482018-11-08  David Malcolm  <dmalcolm@redhat.com>
5549
5550	* pretty-print.c (pp_format): Handle %f.
5551	(selftest::test_pp_format): Add test of %f.
5552	* pretty-print.h (pp_double): New macro.
5553
55542018-11-08  David Malcolm  <dmalcolm@redhat.com>
5555
5556	* dump-context.h (ASSERT_IS_CGRAPH_NODE): New macro.
5557	* dumpfile.c (make_item_for_dump_cgraph_node): Move to before...
5558	(dump_pretty_printer::decode_format): Implement "%C" for
5559	cgraph_node *.
5560	(selftest::test_capture_of_dump_calls): Rename "where" to
5561	"stmt_loc".  Convert test_decl to a function decl and set its
5562	location.  Add a symbol_table_test RAII instance and a
5563	cgraph_node, using it to test "%C" and dump_symtab_node.
5564
55652018-11-08  Eric Botcazou  <ebotcazou@adacore.com>
5566
5567	PR middle-end/87916
5568	* cgraphclones.c (duplicate_thunk_for_node): Also set DECL_IGNORED_P.
5569
55702018-11-08  David Malcolm  <dmalcolm@redhat.com>
5571
5572	* cgraph.c: Include "selftest.h".
5573	(saved_symtab): New variable.
5574	(selftest::symbol_table_test::symbol_table_test): New ctor.
5575	(selftest::symbol_table_test::~symbol_table_test): New dtor.
5576	(selftest::test_symbol_table_test): New test.
5577	(selftest::cgraph_c_tests): New.
5578	* cgraph.h (saved_symtab): New decl.
5579	(selftest::symbol_table_test): New class.
5580	* selftest-run-tests.c (selftest::run_tests): Call
5581	selftest::cgraph_c_tests.
5582	* selftest.h (selftest::cgraph_c_tests): New decl.
5583
55842018-11-08  Richard Biener  <rguenther@suse.de>
5585
5586	* tree-data-ref.h (lambda_int): New typedef.
5587	(lambda_vector_gcd): Adjust.
5588	(lambda_vector_new): Likewise.
5589	(lambda_matrix_new): Likewise.
5590	* tree-data-ref.c  (print_lambda_vector): Adjust.
5591
55922018-11-08  Richard Biener  <rguenther@suse.de>
5593
5594	PR tree-optimization/87929
5595	* tree-complex.c (expand_complex_comparison): Clean EH.
5596
55972018-11-08  Martin Liska  <mliska@suse.cz>
5598
5599	* doc/extend.texi: Reword.
5600	* predict.c (expr_expected_value_1): Likewise.
5601
56022018-11-08  Richard Biener  <rguenther@suse.de>
5603
5604	PR tree-optimization/87913
5605	* tree-ssa-phiopt.c (minmax_replacement): Turn EQ/NE compares
5606	of extreme values to ordered comparisons.
5607
56082018-11-07  Sandra Loosemore  <sandra@codesourcery.com>
5609
5610	PR middle-end/42726
5611	* doc/invoke.texi (Code Gen Options): Clarify -fno-common behavior.
5612
56132018-11-07  Sandra Loosemore  <sandra@codesourcery.com>
5614
5615	* doc/invoke.texi: Remove leading dash from @opindex entries
5616	throughout the file.
5617
56182018-11-07  Sandra Loosemore  <sandra@codesourcery.com>
5619
5620	PR driver/80828
5621	* doc/invoke.texi (Option Summary): Add -e and --entry.
5622	(Link Options): Likewise.
5623
56242018-11-07  Nathan Sidwell  <nathan@acm.org>
5625
5626	PR 87926
5627	* Makefile.in (bitmap.o-warn): Add -Wno-error to unbreak
5628	--disable-checking bootstrap.
5629
56302018-11-07  Hafiz Abid Qadeer  <abidh@codesourcery.com>
5631
5632	* configure: Regenerated.
5633
56342018-11-07  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
5635
5636	PR c/87691
5637	* stor-layout.c (compute_record_mode): Set TYPE_MODE of UNION_TYPE
5638	to the mode of the widest field iff the widest field has mode class
5639	MODE_INT, or MODE_PARTIAL_INT and the union would be passed by
5640	reference.
5641
56422018-11-07  Nikolai Merinov  <n.merinov@inango-systems.com>
5643
5644	* common.opt: Add -Wattribute-warning.
5645	* doc/invoke.texi: Add documentation for -Wno-attribute-warning.
5646	* expr.c (expand_expr_real_1): Add new attribute to warning_at
5647	call to allow user configure behavior of "warning" attribute.
5648
56492018-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
5650
5651	* target.def: Put @: after every vs., e.g., and i.e. where it is
5652	followed by whitespace.
5653	* doc/extend.texi: Ditto.
5654	* doc/fragments.texi: Ditto.
5655	* doc/gimple.texi: Ditto.
5656	* doc/implement-c.texi: Ditto.
5657	* doc/install.texi: Ditto.
5658	* doc/invoke.texi: Ditto.
5659	* doc/md.texi: Ditto.
5660	* doc/plugins.texi: Ditto.
5661	* doc/rtl.texi: Ditto.
5662	* doc/sourcebuild.texi: Ditto.
5663	* doc/tm.texi.in: Ditto.
5664	* doc/ux.texi: Ditto.
5665	* doc/tm.texi: Regenerate.
5666
56672018-11-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5668
5669	* config/arm/arm-cpus.in (ares): New entry.
5670	* config/arm/arm-tables.opt: Regenerate.
5671	* config/arm/arm-tune.md: Likewise.
5672	* doc/invoke.texi (ARM Options): Document ares.
5673
56742018-11-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5675
5676	* config/aarch64/aarch64-cores.def (ares): Define.
5677	* config/aarch64/aarch64-tune.md: Regenerate.
5678	* doc/invoke.texi (AArch64 Options): Document ares value for mtune.
5679
56802018-11-07  Jan Hubicka  <jh@suse.cz>
5681
5682	* tree.c (fld_incomplete_type_of): Clear TREE_ADDRESSABLE.
5683	(free_lang_data_in_decl): Set TREE_ADDRESSABLE for public vars and
5684	functions; clear TYPE_DECL_SUPPRESS_DEBUG and DECL_MODE for
5685	TYPE_DECL.
5686
56872018-11-07  Richard Biener  <rguenther@suse.de>
5688
5689	PR tree-optimization/87914
5690	* tree-vect-loop.c (vect_is_simple_reduction): Improve detection
5691	of nested cycles.
5692	(vectorizable_reduction): Handle shifts and rotates by dispatching
5693	to vectorizable_shift.
5694	* tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Handle
5695	in-loop uses of vect_nested_cycle defs.  Merge cycle and internal
5696	def cases.
5697	(vectorizable_shift): Export and handle being called as
5698	vect_nested_cycle.
5699	(vect_analyze_stmt): Call vectorizable_shift after
5700	vectorizable_reduction.
5701	* tree-vectorizer.h (vectorizable_shift): Declare.
5702
57032018-11-07  Jan Hubicka  <jh@suse.cz>
5704
5705	* ipa-devirt.c (odr_types_equivalent_p): Expect constants
5706	than const decls in TREE_VALUE of enum.
5707	(dump_type_inheritance_graph): Improve duplicate dumping.
5708	(free_enum_values): New.
5709	(build_type_inheritance_graph): Use it.
5710	* tree.c (free_lang_data_in_type): Free TYPE_VALUES of enums
5711	which are not main variants or not ODR types.
5712	(verify_type_variant): Expect variants to have no TYPE_VALUES.
5713
57142018-11-07  Richard Biener  <rguenther@suse.de>
5715
5716	* ipa-inline.c (want_inline_small_function_p): Compute
5717	big_speedup_p lazily and last.
5718
57192018-11-07  Jan Hubicka  <jh@suse.cz>
5720
5721	* tree.c (fld_type_variant_equal_p): Skip TYPE_ALIGN check when
5722	building incomplete variant of complete type.
5723	(fld_type_variant): Do not copy TYPE_ALIGN when building incomplete
5724	variant of complete type.
5725
57262018-11-07  Chenghua Xu  <paul.hua.gm@gmail.com>
5727
5728	* config/mips/mips.c: Fix typo in documentation of
5729	mips_loongson_ext2_prefetch_cookie.
5730	(mips_option_override): fix brain twister logical.
5731	* config/mips/mips.h: Fix typo in documentation of
5732	ISA_HAS_CTZ_CTO and define pattern.
5733	* config/mips/mips.md (prefetch): Hoist EXT2 above
5734	the 2EF/EXT block.
5735	(prefetch_indexed): Hoist EXT2 above the EXT block.
5736
57372018-11-07  Jan Hubicka  <jh@suse.cz>
5738
5739	* tree.c (free_lang_data_in_type): Add fld parameter; simplify
5740	return and parameter types of function and method types.
5741	(free_lang_data_in_cgraph): Update.
5742
57432018-11-07  Martin Liska  <mliska@suse.cz>
5744
5745	PR rtl-optimization/87868
5746	* postreload-gcse.c (eliminate_partially_redundant_load): Set
5747	threshold to max_count if we would overflow.
5748	* profile-count.h: Make max_count a public constant.
5749
57502018-11-07  Martin Liska  <mliska@suse.cz>
5751
5752	* mem-stats.h: Fix GNU coding style.
5753
57542018-11-07  Chenghua Xu  <paul.hua.gm@gmail.com>
5755
5756	* config/mips/gs264e.md: New.
5757	* config/mips/mips-cpus.def: Define gs264e.
5758	* config/mips/mips-tables.opt: Regenerate.
5759	* config/mips/mips.c (mips_rtx_cost_data): Add DEFAULT_COSTS for
5760	gs264e.
5761	(mips_issue_rate): Add support for gs264e.
5762	(mips_multipass_dfa_lookahead): Likewise.
5763	* config/mips/mips.h: Define TARGET_GS264E and TUNE_GS264E.
5764	(MIPS_ISA_LEVEL_SPEC): Infer mips64r2 from gs264e.
5765	(MIPS_ASE_MSA_SPEC): New.
5766	(BASE_DRIVER_SELF_SPECS): march=gs264e implies -mmsa.
5767	(ISA_HAS_FUSED_MADD4): Enable for TARGET_GS264E.
5768	(ISA_HAS_UNFUSED_MADD4): Exclude TARGET_GS264E.
5769	* config/mips/mips.md: Include gs264e.md.
5770	(processor): Add gs264e.
5771	* config/mips/mips.opt (MSA): Use Mask instead of Var.
5772	* doc/invoke.texi: Add gs264e to supported architectures.
5773
57742018-11-07  Chenghua Xu  <paul.hua.gm@gmail.com>
5775
5776	* config/mips/gs464e.md: New.
5777	* config/mips/mips-cpus.def: Define gs464e.
5778	* config/mips/mips-tables.opt: Regenerate.
5779	* config/mips/mips.c (mips_rtx_cost_data): Add DEFAULT_COSTS for
5780	gs464e.
5781	(mips_issue_rate): Add support for gs464e.
5782	(mips_multipass_dfa_lookahead): Likewise.
5783	(mips_option_override): Enable MMI, EXT and EXT2 for gs464e.
5784	* config/mips/mips.h: Define TARGET_GS464E and TUNE_GS464E.
5785	(MIPS_ISA_LEVEL_SPEC): Infer mips64r2 from gs464e.
5786	(ISA_HAS_FUSED_MADD4): Enable for TARGET_GS464E.
5787	(ISA_HAS_UNFUSED_MADD4): Exclude TARGET_GS464E.
5788	* config/mips/mips.md: Include gs464e.md.
5789	(processor): Add gs464e.
5790	* doc/invoke.texi: Add gs464e to supported architectures.
5791
57922018-11-07  Chenghua Xu  <paul.hua.gm@gmail.com>
5793
5794	* config/mips/loongson3a.md: Rename to ...
5795	* config/mips/gs464.md: ... here.
5796	* config/mips/mips-cpus.def: Define gs464; Add loongson3a
5797	as an alias of gs464 processor.
5798	* config/mips/mips-tables.opt: Regenerate.
5799	* config/mips/mips.c (mips_issue_rate): Use PROCESSOR_GS464
5800	instead of PROCESSOR_LOONGSON_3A.
5801	(mips_multipass_dfa_lookahead): Use TUNE_GS464 instead of
5802	TUNE_LOONGSON_3A.
5803	(mips_option_override): Enable MMI and EXT for gs464.
5804	* config/mips/mips.h: Rename TARGET_LOONGSON_3A to TARGET_GS464;
5805	Rename TUNE_LOONGSON_3A to TUNE_GS464.
5806	(MIPS_ISA_LEVEL_SPEC): Infer mips64r2 from gs464.
5807	(ISA_HAS_ODD_SPREG, ISA_AVOID_DIV_HILO, ISA_HAS_FUSED_MADD4,
5808	ISA_HAS_UNFUSED_MADD4): Use TARGET_GS464 instead of
5809	TARGET_LOONGSON_3A.
5810	* config/mips/mips.md: Include gs464.md instead of loongson3a.md.
5811	(processor): Add gs464;
5812	* doc/invoke.texi: Add gs464 to supported architectures.
5813
58142018-11-07  Chenghua Xu  <paul.hua.gm@gmail.com>
5815
5816	* config/mips/mips-protos.h
5817	(mips_loongson_ext2_prefetch_cookie): New prototype.
5818	* config/mips/mips.c (mips_loongson_ext2_prefetch_cookie): New.
5819	(mips_option_override): Enable TARGET_LOONGSON_EXT when
5820	TARGET_LOONGSON_EXT2 is true.
5821	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
5822	__mips_loongson_ext2, __mips_loongson_ext_rev=2.
5823	(ISA_HAS_CTZ_CTO): New, true if TARGET_LOONGSON_EXT2.
5824	(ISA_HAS_PREFETCH): Include TARGET_LOONGSON_EXT and
5825	TARGET_LOONGSON_EXT2.
5826	(ASM_SPEC): Add mloongson-ext2 and mno-loongson-ext2.
5827	(define_insn "ctz<mode>2"): New insn pattern.
5828	(define_insn "prefetch"): Include TARGET_LOONGSON_EXT2.
5829	(define_insn "prefetch_indexed_<mode>"): Include
5830	TARGET_LOONGSON_EXT and TARGET_LOONGSON_EXT2.
5831	* config/mips/mips.opt (-mloongson-ext2): Add option.
5832	* gcc/doc/invoke.texi (-mloongson-ext2): Document.
5833
58342018-11-07  Chenghua Xu  <paul.hua.gm@gmail.com>
5835
5836	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add
5837	__mips_loongson_ext.
5838	(MIPS_ASE_LOONGSON_EXT_SPEC): New.
5839	(BASE_DRIVER_SELF_SPECS): march=loongson3a implies
5840	-mloongson-ext.
5841	(ASM_SPEC): Add mloongson-ext and mno-loongson-ext.
5842	* config/mips/mips.md (mul<mode>3, mul<mode>3_mul3_nohilo,
5843	<u>div<mode>3, <u>mod<mode>3, prefetch): Use TARGET_LOONGSON_EXT
5844	instead of TARGET_LOONGSON_3A.
5845	* config/mips/mips.opt (-mloongson-ext): Add option.
5846	* gcc/doc/invoke.texi (-mloongson-ext): Document.
5847
58482018-11-07  Chenghua Xu  <paul.hua.gm@gmail.com>
5849
5850	* config.gcc (extra_headers): Add loongson-mmiintrin.h.
5851	* config/mips/loongson.md: Move to ...
5852	* config/mips/loongson-mmi.md: here; Adjustment.
5853	* config/mips/loongson.h: Move to ...
5854	State as deprecated. Include loongson-mmiintrin.h for back
5855	compatibility and warning.
5856	* config/mips/loongson-mmiintrin.h: ... here.
5857	* config/mips/mips.c (mips_hard_regno_mode_ok_uncached,
5858	mips_vector_mode_supported_p, AVAIL_NON_MIPS16): Use
5859	TARGET_LOONGSON_MMI instead of TARGET_LOONGSON_VECTORS.
5860	(mips_option_override): Make sure MMI use hard float;
5861	(mips_shift_truncation_mask, mips_expand_vpc_loongson_even_odd,
5862	mips_expand_vpc_loongson_pshufh, mips_expand_vpc_loongson_bcast,
5863	mips_expand_vector_init): Use TARGET_LOONGSON_MMI instead of
5864	TARGET_LOONGSON_VECTORS.
5865	* gcc/config/mips/mips.h (TARGET_LOONGSON_VECTORS): Delete.
5866	(TARGET_CPU_CPP_BUILTINS): Add __mips_loongson_mmi.
5867	(MIPS_ASE_DSP_SPEC, MIPS_ASE_LOONGSON_MMI_SPEC): New.
5868	(BASE_DRIVER_SELF_SPECS): march=loongson2e/2f/3a implies
5869	-mloongson-mmi.
5870	(SHIFT_COUNT_TRUNCATED): Use TARGET_LOONGSON_MMI instead of
5871	TARGET_LOONGSON_VECTORS.
5872	* gcc/config/mips/mips.md (MOVE64, MOVE128): Use
5873	TARGET_LOONGSON_MMI instead of TARGET_LOONGSON_VECTORS.
5874	(Loongson MMI patterns): Include loongson-mmi.md instead of
5875	loongson.md.
5876	* gcc/config/mips/mips.opt (-mloongson-mmi): New option.
5877	* gcc/doc/invoke.texi (-mloongson-mmi): Document.
5878
58792018-11-07  Richard Biener  <rguenther@suse.de>
5880
5881	PR lto/87906
5882	* tree-streamer-in.c (lto_input_ts_block_tree_pointers): Fixup
5883	BLOCK_ABSTRACT_ORIGIN to be the ultimate origin.
5884
58852018-11-07  Alexandre Oliva  <aoliva@redhat.com>
5886
5887	PR rtl-optimization/87874
5888	* lra.c (lra_substitute_pseudo): Do not create a subreg for
5889	const wide ints.
5890
58912018-11-06  Aaron Sawdey  <acsawdey@linux.ibm.com>
5892
5893	* config/rs6000/rs6000.md (bswap<mode>2): Force address into register
5894	if not in indexed or indirect form.
5895	(bswap<mode>2_load): Change predicate to indexed_or_indirect_operand.
5896	(bswap<mode>2_store): Ditto.
5897
58982018-11-06  Richard Earnshaw  <rearnsha@arm.com>
5899
5900	* config/aarch64/aarch64.md (speculation_tracker): Set the mode for
5901	the UNSPEC.
5902
59032018-11-06  Richard Biener  <rguenther@suse.de>
5904
5905	PR tree-optimization/86850
5906	* vec.h (vec<T, va_heap, vl_ptr>::splice): Check src.length ()
5907	instead of src.m_vec.
5908
59092018-11-06  Jan Hubicka  <jh@suse.cz>
5910
5911	* tree.c (fld_simplified_type_name): Break out form ...
5912	(free_lang_data_in_type): ... here.
5913	(fld_type_variant_equal_p): Use it.
5914
59152018-11-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5916
5917	* config/default-d.c: Include memmodel.h.
5918
5919	* config/sol2-d.c: New file.
5920	* config/t-sol2 (sol2-d.o): New rule.
5921	* config.gcc <*-*-solaris2*>: Set d_target_objs,
5922	target_has_targetdm.
5923
59242018-11-06  Jan Hubicka  <jh@suse.cz>
5925
5926	* tree.c (fld_type_variant): Also copy alignment; be sure that
5927	new variant is equal.
5928
59292018-11-06  Ilya Leoshkevich  <iii@linux.ibm.com>
5930
5931	PR target/87762
5932	* config/s390/s390.md: Add relative_long attribute.
5933
59342018-11-06  Jan Hubicka  <jh@suse.cz>
5935
5936	* ipa-pure-const.c (check_decl): Do not test TYPE_NEEDS_CONSTRUCTING.
5937	* lto-streamer-out.c (hash_tree): Do not hash TYPE_NEEDS_CONSTRUCTING.
5938	* tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not
5939	stream TYPE_NEEDS_CONSTRUCTING.
5940	* tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
5941	* tree.c (free_lang_data_in_type): Clear TYPE_NEEDS_CONSTRUCTING.
5942
59432018-11-06  Richard Biener  <rguenther@suse.de>
5944
5945	* tree-vect-slp.c (vect_slp_bb): Move opening of vect_slp_analyze_bb
5946	dump-scope ...
5947	(vect_slp_analyze_bb_1): ... here to avoid hiding optimized locations.
5948
59492018-11-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
5950
5951	* gcc/config/msp430/msp430.h (REG_CLASS_CONTENTS): Add R0 to
5952	REG_CLASS_CONTENTS[GEN_REGS].
5953	(REGNO_REG_CLASS): Return NO_REGS for R2 and R3.
5954
59552018-11-06  Jan Hubicka  <jh@suse.cz>
5956
5957	 * tree.c (fld_simplified_type_of): Clear TYPELESS_STORAGE flag.
5958
59592018-11-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5960
5961	PR sanitizer/80953
5962	* config/sol2.h (ASAN_CC1_SPEC): Define.
5963	(LD_WHOLE_ARCHIVE_OPTION): Define.
5964	(LD_NO_WHOLE_ARCHIVE_OPTION): Define.
5965	(ASAN_REJECT_SPEC): Provide default.
5966	(LIBASAN_EARLY_SPEC): Define.
5967	(LIBTSAN_EARLY_SPEC): Define.
5968	(LIBLSAN_EARLY_SPEC): Define.
5969	* config/i386/sol2.h (CC1_SPEC): Redefine.
5970	(ASAN_REJECT_SPEC): Define.
5971
5972	* config/sparc/sparc.c (sparc_asan_shadow_offset): Declare.
5973	(TARGET_ASAN_SHADOW_OFFSET): Define.
5974	(sparc_asan_shadow_offset): New function.
5975	* config/sparc/sol2.h (CC1_SPEC): Append ASAN_CC1_SPEC.
5976	(ASAN_REJECT_SPEC): Define.
5977
59782018-11-06  Jan Hubicka  <jh@suse.cz>
5979
5980	* tree.c (fld_type_variant): Copy canonical type.
5981	(fld_incomplete_type_of): Check that canonical types looks sane;
5982	copy canonical type.
5983	(verify_type): Accept when incomplete type has complete canonical type.
5984
59852018-11-06  Jan Hubicka  <jh@suse.cz>
5986
5987	* tree.c (free_lang_data): Reset overwite_assembler_name,
5988	print_xnode, print_decl, print_type and print_identifier of
5989	langhooks.
5990
59912018-11-06  Richard Biener  <rguenther@suse.de>
5992
5993	PR tree-optimization/87889
5994	* tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
5995	Do nothing if old and new arg are the same
5996
59972018-11-06  Andreas Krebbel  <krebbel@linux.ibm.com>
5998
5999	PR target/87723
6000	* config/s390/s390.md ("*r<noxa>sbg_di_rotl"): Remove mode
6001	attributes for operands 3 and 4.
6002
60032018-11-06  Richard Biener  <rguenther@suse.de>
6004
6005	PR middle-end/18041
6006	* simplify-rtx.c (simplify_binary_operation_1): Add pattern
6007	matching bitfield insertion.
6008
60092018-11-06  Alexandre Oliva  <aoliva@redhat.com>
6010
6011	* auto-inc-dec.c: Include valtrack.h.  Improve comments.
6012	(reg_next_debug_use): New.
6013	(attempt_change): Propagate adjusted expression into affected
6014	debug insns.
6015	(merge_in_block): Track uses in debug insns.
6016	(pass_inc_dec::execute): Allocate and release
6017	reg_next_debug_use.
6018
60192018-11-06  Wei Xiao  <wei3.xiao@intel.com>
6020
6021	* config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
6022	(_mm512_fixupimm_round_pd): Update parameters and builtin.
6023	(_mm512_maskz_fixupimm_round_pd): Ditto.
6024	(_mm512_fixupimm_round_ps): Ditto.
6025	(_mm512_maskz_fixupimm_round_ps): Ditto.
6026	(_mm_fixupimm_round_sd): Ditto.
6027	(_mm_maskz_fixupimm_round_sd): Ditto.
6028	(_mm_fixupimm_round_ss): Ditto.
6029	(_mm_maskz_fixupimm_round_ss): Ditto.
6030	(_mm512_fixupimm_pd): Ditto.
6031	(_mm512_maskz_fixupimm_pd): Ditto.
6032	(_mm512_fixupimm_ps): Ditto.
6033	(_mm512_maskz_fixupimm_ps): Ditto.
6034	(_mm_fixupimm_sd): Ditto.
6035	(_mm_maskz_fixupimm_sd): Ditto.
6036	(_mm_fixupimm_ss): Ditto.
6037	(_mm_maskz_fixupimm_ss): Ditto.
6038	(_mm512_mask_fixupimm_round_pd): Update builtin.
6039	(_mm512_mask_fixupimm_round_ps): Ditto.
6040	(_mm_mask_fixupimm_round_sd): Ditto.
6041	(_mm_mask_fixupimm_round_ss): Ditto.
6042	(_mm512_mask_fixupimm_pd): Ditto.
6043	(_mm512_mask_fixupimm_ps): Ditto.
6044	(_mm_mask_fixupimm_sd): Ditto.
6045	(_mm_mask_fixupimm_ss): Ditto.
6046	* config/i386/avx512vlintrin.h:
6047	(_mm256_fixupimm_pd): Update parameters and builtin.
6048	(_mm256_maskz_fixupimm_pd): Ditto.
6049	(_mm256_fixupimm_ps): Ditto.
6050	(_mm256_maskz_fixupimm_ps): Ditto.
6051	(_mm_fixupimm_pd): Ditto.
6052	(_mm_maskz_fixupimm_pd): Ditto.
6053	(_mm_fixupimm_ps): Ditto.
6054	(_mm_maskz_fixupimm_ps): Ditto.
6055	(_mm256_mask_fixupimm_pd): Update builtin.
6056	(_mm256_mask_fixupimm_ps): Ditto.
6057	(_mm_mask_fixupimm_pd): Ditto.
6058	(_mm_mask_fixupimm_ps): Ditto.
6059	* config/i386/i386-builtin-types.def: Add new types and remove useless ones.
6060	* config/i386/i386-builtin.def: Update builtin definitions.
6061	* config/i386/i386.c: Handle new builtin types and remove useless ones.
6062	* config/i386/sse.md: Update VFIXUPIMM* patterns.
6063	(<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
6064	(<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
6065	(<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
6066	(avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
6067	(avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
6068	(avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
6069	* config/i386/subst.md:
6070	(round_saeonly_sd_mask_operand4): Add new subst_attr.
6071	(round_saeonly_sd_mask_op4): Ditto.
6072	(round_saeonly_expand_operand5): Ditto.
6073	(round_saeonly_expand): Update.
6074
60752018-11-05  Max Filippov  <jcmvbkbc@gmail.com>
6076
6077	* config/xtensa/uclinux.h (XTENSA_ALWAYS_PIC): Change to 0.
6078
60792018-11-05  Segher Boessenkool  <segher@kernel.crashing.org>
6080
6081	PR rtl-optimization/87871
6082	* combine.c (make_more_copies): Skip if dest is frame_pointer_rtx.
6083
60842018-11-05  Paul Koning  <ni1d@arrl.net>
6085
6086	* doc/sourcebuild.texi (target attributes): Document new "inf"
6087	effective target keyword.
6088
60892018-11-05  Robin Dapp  <rdapp@linux.ibm.com>
6090
6091	* config/s390/s390.c (s390_register_move_cost): Increase costs for
6092	moves involving the CC reg.
6093
60942018-11-05  Richard Biener  <rguenther@suse.de>
6095
6096	PR tree-optimization/87873
6097	* tree-ssa-loop-manip.h (split_loop_exit_edge): Add copy_constants_p
6098	argument.
6099	* tree-ssa-loop-manip.c (split_loop_exit_edge): Likewise.
6100	* tree-vect-loop.c (vect_transform_loop): When splitting the
6101	loop exit also create forwarder PHIs for constants.
6102	* tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
6103	Handle constant to_arg, add extra checking we match up the correct
6104	PHIs.
6105
61062018-11-05  Robin Dapp  <rdapp@linux.ibm.com>
6107
6108	* config/s390/s390.md: QImode and HImode for load on condition.
6109
61102018-11-05  Robin Dapp  <rdapp@linux.ibm.com>
6111
6112	* config/s390/predicates.md: Fix typo.
6113	* config/s390/s390.md: Allow immediates for load on condition.
6114
61152018-11-05  Martin Liska  <mliska@suse.cz>
6116
6117	* alloc-pool.h (struct pool_usage): Use SIZE_AMOUNT.
6118	* bitmap.h (struct bitmap_usage): Likewise.
6119	* ggc-common.c (SCALE): Remove.
6120	(LABEL): Likewise.
6121	(struct ggc_usage): Use SIZE_AMOUNT. And update
6122	compare method.
6123	* ggc-page.c (SCALE): Remove.
6124	(STAT_LABEL): Remove.
6125	(ggc_print_statistics): Use SIZE_AMOUNT.
6126	* gimple.h (SCALE): Remove.
6127	(LABEL): Likewise.
6128	* input.c (ONE_K): Remove.
6129	(ONE_M): Likewise.
6130	(SCALE): Likewise.
6131	(STAT_LABEL): Likewise.
6132	(FORMAT_AMOUNT): Likewise.
6133	(dump_line_table_statistics): Use SIZE_AMOUNT.
6134	* mem-stats.h (struct mem_usage): Likewise.
6135	* rtl.c (dump_rtx_statistics): Likewise.
6136	(rtx_alloc_counts): Change type to size_t.
6137	(rtx_alloc_sizes): Likewise.
6138	(rtx_count_cmp): New.
6139	(dump_rtx_statistics): Sort first based on counts.
6140	* tree.c (tree_nodes_cmp): New.
6141	(tree_codes_cmp): New.
6142	(dump_tree_statistics): Sort first based on counts.
6143	* system.h (ONE_K): New.
6144	(ONE_M): Likewise.
6145	(SIZE_SCALE): Likewise.
6146	(SIZE_LABEL): Likewise.
6147	(SIZE_AMOUNT): Likewise.
6148	* tree-cfg.c (dump_cfg_stats): Use SIZE_AMOUNT.
6149	* tree-dfa.c (dump_dfa_stats): Likewise.
6150	* tree-phinodes.c (phinodes_print_statistics): Likewise.
6151	* tree-ssanames.c (ssanames_print_statistics): Likewise.
6152	* tree.c (dump_tree_statistics): Likewise.
6153	* vec.c (struct vec_usage): Likewise.
6154	* trans-mem.c (tm_mangle): Enlarge buffer in order to not
6155	trigger a -Werror=format-overflow with
6156	--enable-gather-detailed-stats.
6157
61582018-11-05  Martin Liska  <mliska@suse.cz>
6159
6160	* mem-stats.h (mem_alloc_description::release_instance_overhead):
6161	Return T *.
6162	* vec.c (struct vec_usage): Register m_element_size.
6163	(vec_prefix::register_overhead): New arguments: elements and
6164	element_size.
6165	(vec_prefix::release_overhead): Subtract elements.
6166	* vec.h (struct vec_prefix): Change signature.
6167	(va_heap::reserve): Pass proper arguments.
6168	(va_heap::release): Likewise.
6169
61702018-11-05  Martin Liska  <mliska@suse.cz>
6171
6172	* mem-stats.h (mem_alloc_description::get_list): Fix GNU coding
6173	style.
6174	* vec.c: Likewise.
6175
61762018-11-05  Richard Biener  <rguenther@suse.de>
6177
6178	* tree-scalar-evolution.h (final_value_replacement_loop): Update
6179	prototype.
6180	* tree-scalar-evolution.c (final_value_replacement_loop): Return
6181	whether anything was done.
6182	(scev_const_prop): Remove constant propagation part, fold
6183	remains into ...
6184	* tree-ssa-loop.c (pass_scev_cprop::execute): ... here.
6185	(pass_data_scev_cprop): TODO_cleanup_cfg is now done
6186	conditionally.
6187
61882018-11-05  Jakub Jelinek  <jakub@redhat.com>
6189
6190	PR tree-optimization/87859
6191	* gimple-ssa-store-merging.c (struct merged_store_group): Add
6192	only_constants and first_nonmergeable_order members.
6193	(merged_store_group::merged_store_group): Initialize them.
6194	(merged_store_group::do_merge): Clear only_constants member if
6195	adding something other than INTEGER_CST store.
6196	(imm_store_chain_info::coalesce_immediate_stores): Don't merge
6197	stores with order >= first_nonmergeable_order.  Use
6198	merged_store->only_constants instead of always recomputing it.
6199	Set merged_store->first_nonmergeable_order if we've skipped any
6200	stores.  Attempt to merge overlapping INTEGER_CST stores that
6201	we would otherwise skip.
6202
6203	PR sanitizer/87837
6204	* match.pd (X + Y < X): Don't optimize if TYPE_OVERFLOW_SANITIZED.
6205
62062018-11-05  Xuepeng Guo  <xuepeng.guo@intel.com>
6207
6208	PR target/87853
6209	* config/i386/emmintrin.h (__v16qs): New to cope with option
6210	-funsigned-char.
6211	(_mm_cmpeq_epi8): Replace __v16qi with __v16qs.
6212	(_mm_cmplt_epi8): Likewise.
6213	(_mm_cmpgt_epi8): Likewise.
6214
62152018-11-05  Richard Biener  <rguenther@suse.de>
6216
6217	PR rtl-optimization/87852
6218	* fwprop.c (use_killed_between): Only consider single-defs of the
6219	use whose definition statement dominates the use.
6220
62212018-11-05  Martin Liska  <mliska@suse.cz>
6222
6223	PR web/87829
6224	* doc/invoke.texi: Remove options that are
6225	not disabled with -Os.
6226
62272018-11-05  Martin Liska  <mliska@suse.cz>
6228
6229	PR c/87811
6230	* doc/extend.texi: Update constrain about the last argument
6231	of __builtin_expect_with_probability.
6232
62332018-11-05  Martin Liska  <mliska@suse.cz>
6234
6235	PR c/87811
6236	* predict.c (expr_expected_value_1): Verify
6237	that last argument is a real constants and emit
6238	error.
6239
62402018-11-05  Martin Liska  <mliska@suse.cz>
6241
6242	PR gcov-profile/77698
6243	* ipa-profile.c (ipa_profile): Adjust hotness threshold
6244	only in LTO mode.
6245
62462018-11-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6247
6248	PR tree-optimization/86572
6249	* builtins.c (c_strlen): Handle negative offsets in a safe way.
6250
62512018-11-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6252
6253	PR tree-optimization/87672
6254	* gimple-fold.c (gimple_fold_builtin_stxcpy_chk): Gimplify.
6255	* tree-ssa-strlen.c (handle_builtin_strcat): Adjust object size.
6256
62572018-11-04  Uros Bizjak  <ubizjak@gmail.com>
6258
6259	PR middle-end/58372
6260	* cfgexpand.c (pass_expand::execute): Move the call to
6261	finish_eh_generation in front of the call to expand_stack_alignment.
6262
62632018-11-04  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6264
6265	* common/config/i386/i386-common.c (processor_alias_table): Add
6266	znver2 entry.
6267	* config.gcc (i[34567]86-*-linux* | ...): Add znver2.
6268	(case ${target}): Add znver2.
6269	* config/i386/driver-i386.c: (host_detect_local_cpu): Let
6270	-march=native recognize znver2 processors.
6271	* config/i386/i386-c.c (ix86_target_macros_internal): Add znver2.
6272	* config/i386/i386.c (m_znver2): New definition.
6273	(m_ZNVER): New definition.
6274	(m_AMD_MULTIPLE): Includes m_znver2.
6275	(processor_cost_table): Add znver2 entry.
6276	(processor_target_table): Add znver2 entry.
6277	(get_builtin_code_for_version): Set priority for
6278	PROCESSOR_ZNVER2.
6279	(processor_model): Add M_AMDFAM17H_ZNVER2.
6280	(arch_names_table): Ditto.
6281	(ix86_reassociation_width): Include znver2.
6282	* config/i386/i386.h (TARGET_znver2): New definition.
6283	(struct ix86_size_cost): Add TARGET_ZNVER2.
6284	(enum processor_type): Add PROCESSOR_ZNVER2.
6285	* config/i386/i386.md (define_attr "cpu"): Add znver2.
6286	* config/i386/x86-tune-costs.h: (processor_costs) Add znver2 costs.
6287	* config/i386/x86-tune-sched.c: (ix86_issue_rate): Add znver2.
6288	(ix86_adjust_cost): Add znver2.
6289	* config/i386/x86-tune.def:  Replace m_ZNVER1 by m_ZNVER.
6290	* gcc/doc/extend.texi: Add details about znver2.
6291	* gcc/doc/invoke.texi: Add details about znver2.
6292
62932018-11-03  Sandra Loosemore  <sandra@codesourcery.com>
6294
6295	PR target/87079
6296
6297	* config/nios2/nios2.c (nios2_rtx_costs): Recognize <mul>sidi3
6298	pattern.
6299
63002018-11-02  Aaron Sawdey  <acsawdey@linux.ibm.com>
6301
6302	* config/rs6000/rs6000-string.c (expand_strncmp_gpr_sequence): Pay
6303	attention to TARGET_AVOID_XFORM and BYTES_BIG_ENDIAN.
6304
63052018-11-02  Richard Earnshaw  <rearnsha@arm.com>
6306
6307	* config/aarch64/aarch64.c ((aarch64_override_options): Disable
6308	shrink-wrapping when -mtrack-speculation.
6309
63102018-11-02  Richard Biener  <rguenther@suse.de>
6311
6312	* tree-ssa-coalesce.c (struct coalesce_list): Add obstack member.
6313	(pop_cost_one_pair): Do not free pair.
6314	(pop_best_coalesce): Likewise.
6315	(create_coalesce_list): Initialize obstack.
6316	(delete_coalesce_list): Free obstack.
6317	(find_coalesce_pair): Obstack-allocate coalesce pairs.
6318	(add_cost_one_coalesce): Likewise.
6319	(struct live_track): Remove bitmap pointer indirections.
6320	(new_live_track): Adjust.
6321	(delete_live_track): Likewise.
6322	(live_track_remove_partition): Likewise.
6323	(live_track_add_partition): Likewise.
6324	(live_track_live_p): Likewise.
6325	(live_track_process_def): Likewise.
6326	(live_track_clear_base_vars): Likewise.
6327
63282018-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6329
6330	* configure.ac (gcc_cv_as_sparc_register_op): Remove.
6331	* configure: Regenerate.
6332	* config.in: Regenerate.
6333	* config/sparc/sparc.c (sparc_output_scratch_registers): Remove
6334	HAVE_AS_REGISTER_PSEUDO_OP guard.
6335	* config/sparc/sparc.h (ASM_ARCH64_SPEC): Remove
6336	!HAVE_AS_REGISTER_PSEUDO_OP support.
6337	(ASM_DECLARE_REGISTER_GLOBAL): Remove HAVE_AS_REGISTER_PSEUDO_OP
6338	guard.
6339
63402018-11-02  Richard Biener  <rguenther@suse.de>
6341
6342	* dwarf2out.c (build_abbrev_table): Guard lookup_external_ref call
6343	with is_type_die.
6344
63452018-11-02  Richard Biener  <rguenther@suse.de>
6346
6347	PR tree-optimization/87776
6348	* tree-ssa-sccvn.c (do_rpo_vn): Do not mark backedges
6349	executable when iterating but running into rpo-vn-max-loop-depth
6350	and not eliding the iteration.
6351
63522018-11-30  Jan Hubicka  <jh@suse.cz>
6353
6354	* tree.c (free_lang_data_in_decl): Free TREE_TYPE and alignment of
6355	TYPE_DECL.
6356
63572018-11-01  Aaron Sawdey  <acsawdey@linux.ibm.com>
6358
6359	* config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert): Remove
6360	prototype.
6361	* config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem):
6362	Combine with rs6000_address_for_fpconvert.
6363	(rs6000_address_for_fpconvert): Combine with
6364	rs6000_force_indexed_or_indirect_mem.
6365	(rs6000_expand_vector_init): Change function call from
6366	rs6000_address_for_fpconvert to rs6000_force_indexed_or_indirect_mem.
6367	* config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Change call from
6368	rs6000_address_for_fpconvert to rs6000_force_indexed_or_indirect_mem.
6369	(floatsi<mode>2_lfiwax_mem): Ditto.
6370	(floatunssi<mode>2_lfiwzx): Ditto.
6371	(floatunssi<mode>2_lfiwzx_mem): Ditto.
6372	(float<QHI:mode><FP_ISA3:mode>2): Ditto.
6373	(floatuns<QHI:mode><FP_ISA3:mode>2): Ditto.
6374	(fix_trunc<mode>si2_stfiwx): Ditto.
6375	(fixuns_trunc<mode>si2_stfiwx): Ditto.
6376	(float_<mode>si2_hw): Ditto.
6377	(floatuns_<mode>si2_hw): Ditto.
6378	* config/rs6000/vsx.md (*vsx_extract_si): Ditto.
6379	(vsx_splat_<mode>): Ditto.
6380
63812018-11-01  Joseph Myers  <joseph@codesourcery.com>
6382
6383	* configure.ac (gcc_cv_as_ia64_ltoffx_ldxmov_relocs): Add newline
6384	at end of assembler input text.
6385	* configure: Regenerate.
6386
63872018-11-01  Jakub Jelinek  <jakub@redhat.com>
6388
6389	PR tree-optimization/87826
6390	* gimple-ssa-store-merging.c (do_shift_rotate): Punt if count is
6391	negative or larger or equal to type's precision.
6392
63932018-10-31  Alexandre Oliva  <aoliva@redhat.com>
6394
6395	* opts.c (default_options_table): Do not enable
6396	OPT_fdelayed_branch at -Og.
6397	* doc/invoke.texi (-fdelayed-branch): Document it.
6398
63992018-10-31  Richard Henderson  <richard.henderson@linaro.org>
6400
6401	* optabs-libfuncs.c (build_libfunc_function_visibility):
6402	New, split out from...
6403	(build_libfunc_function): ... here.
6404	(init_one_libfunc_visibility): New, split out from ...
6405	(init_one_libfunc): ... here.
6406
6407	* config/aarch64/atomics.md (aarch64_atomic_<ATOMIC_LDOP><ALLI>_lse):
6408	scratch register need not be early-clobber.  Document the reason
6409	why we cannot use ST<OP>.
6410
64112018-10-31  Joseph Myers  <joseph@codesourcery.com>
6412
6413	PR bootstrap/82856
6414	* configure.ac: Remove AC_PREREQ.  Use AC_LANG_SOURCE.  Use single
6415	line for second argument of AC_DEFINE_UNQUOTED.
6416	* doc/install.texi (Tools/packages necessary for modifying GCC):
6417	Update to autoconf 2.69 and automake 1.15.1.
6418	* aclocal.m4, config.in, configure: Regenerate.
6419
64202018-10-31  Pat Haugen  <pthaugen@us.ibm.com>
6421
6422	* tree-ssa-loop-ivcanon.c (try_peel_loop): Fix typo and remove dead
6423	initialization.
6424
64252018-10-31  Martin Liska  <mliska@suse.cz>
6426
6427	PR driver/83193
6428	* common/config/aarch64/aarch64-common.c (aarch64_parse_extension):
6429	Add new argument invalid_extension.
6430	(aarch64_get_all_extension_candidates): New function.
6431	(aarch64_rewrite_selected_cpu): Add NULL to function call.
6432	* config/aarch64/aarch64-protos.h (aarch64_parse_extension): Add
6433	new argument.
6434	(aarch64_get_all_extension_candidates): New function.
6435	* config/aarch64/aarch64.c (aarch64_parse_arch): Add new
6436	argument invalid_extension.
6437	(aarch64_parse_cpu): Likewise.
6438	(aarch64_print_hint_for_extensions): New function.
6439	(aarch64_validate_mcpu): Provide hint about invalid extension.
6440	(aarch64_validate_march): Likewise.
6441	(aarch64_handle_attr_arch): Pass new argument.
6442	(aarch64_handle_attr_cpu): Provide hint about invalid extension.
6443	(aarch64_handle_attr_isa_flags): Likewise.
6444
64452018-10-31  Richard Biener  <rguenther@suse.de>
6446
6447	PR middle-end/70359
6448	PR middle-end/86270
6449	* tree-outof-ssa.c (insert_backedge_copies): Restrict
6450	copy generation to useful cases.  Place the copy before
6451	the definition of the backedge value when possible.
6452
64532018-10-31  Claudiu Zissulescu  <claziss@synopsys.com>
6454
6455	* config/arc/arc-arch.h (ARC_TUNE_ARC7XX): New tune value.
6456	* config/arc/arc.c (arc_active_insn): New function.
6457	(check_store_cacheline_hazard): Likewise.
6458	(workaround_arc_anomaly): Use check_store_cacheline_hazard.
6459	(arc_override_options): Disable delay slot scheduler for older
6460	A7.
6461	(arc_store_addr_hazard_p): New implementation, old one renamed to
6462	...
6463	(arc_store_addr_hazard_internal_p): Renamed.
6464	(arc_reorg): Don't combine into brcc instructions which are part
6465	of hardware hazard solution.
6466	* config/arc/arc.md (attr tune): Consider new arc7xx tune value.
6467	(tune_arc700): Likewise.
6468	* config/arc/arc.opt (arc7xx): New tune value.
6469	* config/arc/arc700.md: Improve A7 scheduler.
6470
64712018-10-31  Claudiu Zissulescu  <claziss@synopsys.com>
6472
6473	* config/arc/arc.c (arc_override_options): Remove
6474	TARGET_COMPACT_CASESI.
6475	* config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Update.
6476	(CASE_VECTOR_MODE): Likewise.
6477	(CASE_VECTOR_PC_RELATIVE): Likewise.
6478	(CASE_VECTOR_SHORTEN_MODE): Likewise.
6479	(CASE_VECTOR_SHORTEN_MODE1): Delete.
6480	(ADDR_VEC_ALIGN): Update.
6481	(ASM_OUTPUT_CASE_LABEL): Undefine.
6482	(ASM_OUTPUT_BEFORE_CASE_LABEL): Undefine.
6483	(TARGET_BI_BIH): Define.
6484	(DEFAULT_BRANCH_INDEX): Likewise.
6485	* config/arc/arc.md (casesi): Rework to accept BI/BIH
6486	instructions, remove compact_casesi use case.
6487	(casesi_compact_jump): Remove.
6488	(casesi_dispatch): New pattern.
6489	* config/arc/arc.opt: Add mbranch-index option. Deprecate
6490	compact_casesi option.
6491	* doc/invoke.texi: Document mbranch-index option.
6492
64932018-10-31  Claudiu Zissulescu  <claziss@synopsys.com>
6494
6495	* config/arc/arc.c (arc_get_tp): Remove function.
6496	(arc_emit_call_tls_get_addr): Likewise.
6497	(arc_call_tls_get_addr): New function.
6498	(arc_legitimize_tls_address): Make use of arc_call_tls_get_addr.
6499	* config/arc/arc.md (tls_load_tp_soft): Remove.
6500	(tls_gd_get_addr): Likewise.
6501
65022018-10-31  Claudiu Zissulescu  <claziss@synopsys.com>
6503
6504	* config/arc/arc.md (mulsi3): Remove call to mulsi_600_lib.
6505	(mulsi3_600_lib): Remove pattern.
6506	(umulsi3_highpart_600_lib_le): Likewise.
6507	(umulsi3_highpart): Remove call to umulsi3_highpart_600_lib_le.
6508	(umulsidi3): Remove call to umulsidi3_600_lib.
6509	(umulsidi3_600_lib): Remove pattern.
6510	(peephole2): Remove peephole using the above deprecated patterns.
6511
65122018-10-31  Thomas Preud'homme  <thomas.preudhomme@linaro.org>
6513
6514	PR target/87374
6515	* config/arm/arm.c (arm_option_check_internal): Disable the combined
6516	use of -mslow-flash-data and -mword-relocations.
6517	(arm_option_override): Enable -mword-relocations if -fpic or -fPIC.
6518	* config/arm/arm.md (SYMBOL_REF MOVT splitter): Stop checking for
6519	flag_pic.
6520	* doc/invoke.texi (-mword-relocations): Mention conflict with
6521	-mslow-flash-data.
6522	(-mslow-flash-data): Reciprocally.
6523
65242018-10-31  Richard Henderson  <richard.henderson@linaro.org>
6525
6526	* config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Force
6527	16-byte modes held in GP registers to use an even regno.
6528
6529	* config/aarch64/aarch64.c (aarch64_emit_bic): Remove.
6530	(aarch64_atomic_ldop_supported_p): Remove.
6531	(aarch64_gen_atomic_ldop): Remove.
6532	* config/aarch64/atomic.md (atomic_<atomic_optab><ALLI>):
6533	Fully expand LSE operations here.
6534	(atomic_fetch_<atomic_optab><ALLI>): Likewise.
6535	(atomic_<atomic_optab>_fetch<ALLI>): Likewise.
6536	(aarch64_atomic_<ATOMIC_LDOP><ALLI>_lse): Drop atomic_op iterator
6537	and use ATOMIC_LDOP instead; use register_operand for the input;
6538	drop the split and emit insns directly.
6539	(aarch64_atomic_fetch_<ATOMIC_LDOP><ALLI>_lse): Likewise.
6540	(aarch64_atomic_<atomic_op>_fetch<ALLI>_lse): Remove.
6541	(@aarch64_atomic_load<ATOMIC_LDOP><ALLI>): Remove.
6542
6543	* config/aarch64/aarch64.c (aarch64_emit_atomic_swap): Remove.
6544	(aarch64_gen_atomic_ldop): Don't call it.
6545	* config/aarch64/atomics.md (atomic_exchange<ALLI>):
6546	Use aarch64_reg_or_zero.
6547	(aarch64_atomic_exchange<ALLI>): Likewise.
6548	(aarch64_atomic_exchange<ALLI>_lse): Remove split; remove & from
6549	operand 0; use aarch64_reg_or_zero for input; merge ...
6550	(@aarch64_atomic_swp<ALLI>): ... this and remove.
6551
6552	* config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): New.
6553	(aarch64_split_compare_and_swap): Use it.
6554	(aarch64_expand_compare_and_swap): Likewise.  Remove convert_modes;
6555	test oldval against the proper predicate.
6556	* config/aarch64/atomics.md (@atomic_compare_and_swap<ALLI>):
6557	Use nonmemory_operand for expected.
6558	(cas_short_expected_pred): New.
6559	(@aarch64_compare_and_swap<SHORT>): Use it; use "rn" not "rI" to match.
6560	(@aarch64_compare_and_swap<GPI>): Use "rn" not "rI" for expected.
6561	* config/aarch64/predicates.md (aarch64_plushi_immediate): New.
6562	(aarch64_plushi_operand): New.
6563
6564	* config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
6565	Force oldval into the rval register for TARGET_LSE; emit the compare
6566	during initial expansion so that it may be deleted if unused.
6567	(aarch64_gen_atomic_cas): Remove.
6568	* config/aarch64/atomics.md (@aarch64_compare_and_swap<SHORT>_lse):
6569	Change =&r to +r for operand 0; use match_dup for operand 2;
6570	remove is_weak and mod_f operands as unused.  Drop the split
6571	and merge with...
6572	(@aarch64_atomic_cas<SHORT>): ... this pattern's output; remove.
6573	(@aarch64_compare_and_swap<GPI>_lse): Similarly.
6574	(@aarch64_atomic_cas<GPI>): Similarly.
6575
65762018-10-31  Richard Biener  <rguenther@suse.de>
6577
6578	* tree-eh.c (replace_trapping_overflow): Simplify ABS_EXPR case
6579	using ABSU_EXPR.
6580
65812018-10-31  Sameera Deshpande  <sameera.deshpande@linaro.org>
6582
6583	* config/aarch64/aarch64-cores.def (saphira): Use saphira pipeline.
6584	* config/aarch64/aarch64.md: Include saphira.md
6585	* config/aarch64/saphira.md: New file for pipeline description.
6586
65872018-10-30  Martin Sebor  <msebor@redhat.com>
6588
6589	PR middle-end/87041
6590	* gimple-ssa-sprintf.c (format_directive): Use %G to include
6591	inlining context.
6592	(sprintf_dom_walker::compute_format_length):
6593	Avoid setting POSUNDER4K here.
6594	(get_destination_size): Handle null argument values.
6595	(get_user_idx_format): New function.
6596	(sprintf_dom_walker::handle_gimple_call): Handle all printf-like
6597	functions, including user-defined with attribute format printf.
6598	Use %G to include inlining context.
6599	Set POSUNDER4K here.
6600
66012018-10-30  Jan Hubicka  <jh@suse.cz>
6602
6603	* params.def (lto-partitions): Bump from 32 to 128.
6604
66052018-10-30  Jan Hubicka  <jh@suse.cz>
6606
6607	* tree.c
6608	(free_lang_data_d, add_tree_to_fld_list, fld_worklist_push): Move
6609	head in file.
6610	(free_lang_data_in_type): Forward declare.
6611	(fld_type_variant_equal_p): New function.
6612	(fld_type_variant): New function
6613	(fld_incomplete_types): New hash.
6614	(fld_incomplete_type_of): New function
6615	(fld_simplfied-type): New function.
6616	(free_lang_data_in_decl): Add fld parameter; simplify type of FIELD_DECL
6617	(free_lang_data): Allocate and free fld_incomplete_type; update call
6618	of free_lang_data_in_decl.
6619
66202018-10-30  Eric Botcazou  <ebotcazou@adacore.com>
6621
6622	* gcov.c (output_lines): Remove duplicate line.
6623
66242018-10-30  Aaron Sawdey  <acsawdey@linux.ibm.com>
6625
6626	* config/rs6000/rs6000.md (bswapdi2): Force address into register
6627	if not in indexed or indirect form.
6628	(bswapdi2_load): Change predicate to indexed_or_indirect_operand.
6629	(bswapdi2_store): Ditto.
6630	* config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem): New
6631	helper function.
6632	* config/rs6000/rs6000-protos.h (rs6000_force_indexed_or_indirect_mem):
6633	Prototype for helper function.
6634
66352018-10-30  Martin Sebor  <msebor@redhat.com>
6636
6637	* doc/extend.texi (optimize): Clarify/expand attribute documentation.
6638	(target, pragma GCC optimize, pragma GCC target): Ditto.
6639
66402018-10-30  Jonathan Wakely  <jwakely@redhat.com>
6641
6642	* doc/extend.texi: Fix prototype and description of
6643	__builtin_expect_with_probability.
6644
66452018-10-30  Michael Ploujnikov  <michael.ploujnikov@oracle.com>
6646
6647	* cgraph.h (clone_function_name_1): Replaced by new
6648	  clone_function_name_numbered that takes name as string; for
6649	  privatize_symbol_name_1 use only.
6650	  (clone_function_name): Renamed to
6651	  clone_function_name_numbered to be explicit about numbering.
6652	  (clone_function_name): New two-argument function that does
6653	  not number its output.
6654	  (clone_function_name): New three-argument function that
6655	  takes a number to append to its output.
6656	* cgraphclones.c (duplicate_thunk_for_node):
6657	  (clone_function_name_1): Renamed.
6658	  (clone_function_name_numbered): Two new functions.
6659	  (clone_function_name): Improved documentation.
6660	  (cgraph_node::create_virtual_clone): Use clone_function_name_numbered.
6661	* config/rs6000/rs6000.c (make_resolver_func): Ditto.
6662	* final.c (final_scan_insn_1): Use the new clone_function_name
6663	  without numbering.
6664	* multiple_target.c (create_dispatcher_calls): Ditto.
6665	  (create_target_clone): Ditto.
6666	* omp-expand.c (grid_expand_target_grid_body): Ditto.
6667	* omp-low.c (create_omp_child_function_name): Ditto.
6668	* omp-simd-clone.c (simd_clone_create): Ditto.
6669	* symtab.c (simd_symtab_node::noninterposable_alias): Use the
6670	  new clone_function_name without numbering.
6671
66722018-10-30  Richard Earnshaw  <rearnsha@arm.com>
6673
6674	* alloc-pool.h (base_pool_allocator <TBlockAllocator>::initialize):
6675	Assert that the allocation size is not zero.
6676
66772018-10-30  Richard Biener  <rguenther@suse.de>
6678
6679	PR tree-optimization/87800
6680	* tree-vect-slp.c (vect_build_slp_tree_2): Reject any
6681	non-induction or reduction PHIs.
6682
66832018-10-30  Sameera Deshpande  <sameera.deshpande@linaro.org>
6684
6685	* config/aarch64/falkor-tag-collision-avoidance.c
6686	(execute_tag_collision_avoidance): Call df_note_add_problem.
6687
66882018-10-30  Martin Liska  <mliska@suse.cz>
6689
6690	* doc/extend.texi: Fix typo in documentation
6691	of __builtin_expect_with_probability.
6692
66932018-10-29  David Malcolm  <dmalcolm@redhat.com>
6694
6695	PR c++/87721
6696	* input.c (get_substring_ranges_for_loc): Detect if
6697	linemap_resolve_location gives us a NULL map, and reject
6698	this case.
6699
67002018-10-29  Iain Buclaw  <ibuclaw@gdcproject.org>
6701
6702	* config.gcc (xstormy16-*-elf): Set tm_d_file.
6703
67042018-10-29  David Malcolm  <dmalcolm@redhat.com>
6705	    Martin Sebor  <msebor@redhat.com>
6706	    Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6707
6708	* doc/ux.texi (Quoting): New subsection, adapted from material at
6709	https://gcc.gnu.org/wiki/DiagnosticsGuidelines written by
6710	MartinSebor and ManuelLopezIbanez.
6711	(Fix-it hints): Note that fix-it hints shouldn't be marked for
6712	translation.
6713
67142018-10-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
6715
6716	PR middle-end/87469
6717	* tree-ssa-loop-niter.c (number_of_iterations_popcount): Fix niter
6718	max value.
6719
67202018-10-29  Paul A. Clarke  <pc@us.ibm.com>
6721
6722	* gcc.target/powerpc/ssse3-check.h: Remove inaccurate comment.
6723
67242018-10-29  Paul Koning  <ni1d@arrl.net>
6725
6726	* doc/rtl.texi (CONST_WIDE_INT_ELT): Give correct macro name.
6727
67282018-10-29  Paul A. Clarke  <pc@us.ibm.com>
6729
6730	* gcc/config/rs6000/mmintrin.h (_mm_packs_pi16, _mm_packs_pi32,
6731	_mm_packs_pu16, _mm_unpackhi_pi8, _mm_unpacklo_pi8, _mm_add_pi8,
6732	_mm_add_pi16, _mm_add_pi32, _mm_sub_pi8, _mm_sub_pi16, _mm_sub_pi32,
6733	_mm_cmpgt_pi8, _mm_cmpeq_pi16, _mm_cmpgt_pi16, _mm_cmpeq_pi32,
6734	_mm_cmpgt_pi32, _mm_adds_pi8, _mm_adds_pi16, _mm_adds_pu8,
6735	_mm_adds_pu16, _mm_subs_pi8, _mm_subs_pi16, _mm_subs_pu8,
6736	_mm_subs_pu16, _mm_madd_pi16, _mm_mulhi_pi16, _mm_mullo_pi16,
6737	_mm_sll_pi16, _mm_sra_pi16, _mm_srl_pi16, _mm_set1_pi16, _mm_set1_pi8):
6738	Change 'vector' to '__vector'.
6739	* gcc/config/rs6000/xmmintrin.h (_mm_cvtps_pi32, _mm_cvttps_pi32,
6740	_mm_cvtps_pi16, _mm_cvtps_pi8, _mm_max_pi16, _mm_max_pu8, _mm_min_pi16,
6741	_mm_min_pu8, _mm_mulhi_pu16, _mm_shuffle_pi16, _mm_avg_pu8,
6742	_mm_avg_pu16): Likewise.  And, whitespace corrections.
6743
67442018-10-29  Richard Biener  <rguenther@suse.de>
6745
6746	PR tree-optimization/87785
6747	* tree-vect-slp.c (vect_gather_slp_loads): Only gather
6748	internal defs.
6749
67502018-10-29  Olivier Hainque  <hainque@adacore.com>
6751
6752	* VXWORKS_NET_LIBS_RTP: New macro, network part of VXWORKS_LIBS_RTP.
6753
67542018-10-29  Olivier Hainque  <hainque@adacore.com>
6755
6756	* config/vxworks.h (VXWORKS_PERSONALITY): New VxWorks
6757	ports configuration macro, defaults to "gnu".
6758	(VXWORKS_OS_CPP_BUILTINS): Use it. Feed TOOL and
6759	TOOL_FAMILY instead of _VX_TOOL/_VXTOOL_FAMILY.
6760
67612018-10-29  Olivier Hainque  <hainque@adacore.com>
6762
6763	* config/vxworks.h (CLEAR_INSN_CACHE): #undef before #define.
6764
67652018-10-29  Richard Biener  <rguenther@suse.de>
6766
6767	PR tree-optimization/87790
6768	* tree-vect-slp.c (vect_mark_slp_stmts): Simplify.
6769	(vect_make_slp_decision): Adjust.
6770	(vect_slp_analyze_bb_1): Likewise.
6771	(vect_detect_hybrid_slp_stmts): Properly union SLP type over
6772	edges.
6773
67742018-10-29  Richard Biener  <rguenther@suse.de>
6775
6776	PR tree-optimization/87785
6777	* tree-vect-slp.c (vect_build_slp_tree_2): Remove loads argument
6778	and processing.
6779	(vect_build_slp_tree): Likewise.
6780	(vect_gather_slp_loads): New function.
6781	(vect_analyze_slp_instance): Gather loads separately from the
6782	SLP tree build.
6783
67842018-10-29  Martin Liska  <mliska@suse.cz>
6785
6786	* Makefile.in: Make dependency to json.o.
6787	* doc/gcov.texi: Document new JSON format, remove
6788	old intermediate format documentation.
6789	* gcov.c (struct function_info): Come up with m_name and
6790	m_demangled_name.
6791	(function_info::function_info): Initialize it.
6792	(function_info::~function_info): Release it.
6793	(main): Rename flag_intermediate_format to flag_json_format.
6794	(print_usage): Describe --json-format.
6795	(process_args): Set flag_json_format.
6796	(output_intermediate_line): Remove.
6797	(output_intermediate_json_line): Likewise.
6798	(get_gcov_intermediate_filename): Return new extension
6799	".gcov.json.gz".
6800	(output_intermediate_file): Implement JSON emission.
6801	(output_json_intermediate_file): Implement JSON emission.
6802	(generate_results): Use ::get_name for function name.
6803	Handle JSON output file.
6804	(read_graph_file): Use ::get_name instead of cplus_demangle.
6805	(read_count_file): Likewise.
6806	(solve_flow_graph): Likewise.
6807	(add_line_counts): Likewise.
6808	(accumulate_line_counts): Use new flag_json_format.
6809	(output_function_details): Use ::get_name instead of cplus_demangle.
6810	(output_lines): Likewise.
6811	* json.cc (test_writing_literals): Add new tests.
6812	* json.h (class literal): Add new boolean constructor.
6813
68142018-10-29  Segher Boessenkool  <segher@kernel.crashing.org>
6815
6816	PR rtl-optimization/87701
6817	PR rtl-optimization/87780
6818	* combine.c (make_more_copies): Rewrite.
6819
68202018-10-28  Kugan Vivekanandarajah  <kuganv@linaro.org>
6821
6822	* doc/generic.texi (ABSU_EXPR): Document.
6823	* match.pd (absu(x)*absu(x) -> x*x): Handle.
6824	(absu(absu(X)) -> absu(X)): Likewise.
6825	(absu(-X) -> absu(X)): Likewise.
6826	(absu(X)  where X is nonnegative -> X): Likewise.
6827
68282018-10-28  Iain Buclaw  <ibuclaw@gdcproject.org>
6829
6830	* Makefile.in (tm_d_file_list, tm_d_include_list): New variables.
6831	(TM_D_H, D_TARGET_DEF, D_TARGET_H, D_TARGET_OBJS): New variables.
6832	(tm_d.h, cs-tm_d.h, default-d.o): New rules.
6833	(d/d-target-hooks-def.h, s-d-target-hooks-def-h): New rules.
6834	(s-tm-texi): Also check timestamp on d-target.def.
6835	(generated_files): Add TM_D_H and d-target-hooks-def.h.
6836	(build/genhooks.o): Also depend on D_TARGET_DEF.
6837	* config.gcc (tm_d_file, d_target_objs, target_has_targetdm): New
6838	variables.
6839	* config/aarch64/aarch64-d.c: New file.
6840	* config/aarch64/aarch64-linux.h (GNU_USER_TARGET_D_CRITSEC_SIZE):
6841	Define.
6842	* config/aarch64/aarch64-protos.h (aarch64_d_target_versions): New
6843	prototype.
6844	* config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Define.
6845	* config/aarch64/t-aarch64 (aarch64-d.o): New rule.
6846	* config/arm/arm-d.c: New file.
6847	* config/arm/arm-protos.h (arm_d_target_versions): New prototype.
6848	* config/arm/arm.h (TARGET_D_CPU_VERSIONS): Define.
6849	* config/arm/linux-eabi.h (EXTRA_TARGET_D_OS_VERSIONS): Define.
6850	* config/arm/t-arm (arm-d.o): New rule.
6851	* config/default-d.c: New file.
6852	* config/glibc-d.c: New file.
6853	* config/gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
6854	* config/i386/i386-d.c: New file.
6855	* config/i386/i386-protos.h (ix86_d_target_versions): New prototype.
6856	* config/i386/i386.h (TARGET_D_CPU_VERSIONS): Define.
6857	* config/i386/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Define.
6858	(GNU_USER_TARGET_D_CRITSEC_SIZE): Define.
6859	* config/i386/t-i386 (i386-d.o): New rule.
6860	* config/kfreebsd-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
6861	* config/kopensolaris-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
6862	* config/linux-android.h (ANDROID_TARGET_D_OS_VERSIONS): Define.
6863	* config/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
6864	* config/mips/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Define.
6865	* config/mips/mips-d.c: New file.
6866	* config/mips/mips-protos.h (mips_d_target_versions): New prototype.
6867	* config/mips/mips.h (TARGET_D_CPU_VERSIONS): Define.
6868	* config/mips/t-mips (mips-d.o): New rule.
6869	* config/powerpcspe/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
6870	* config/powerpcspe/linux64.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
6871	* config/powerpcspe/powerpcspe-d.c: New file.
6872	* config/powerpcspe/powerpcspe-protos.h (rs6000_d_target_versions):
6873	New prototype.
6874	* config/powerpcspe/powerpcspe.c (rs6000_output_function_epilogue):
6875	Support GNU D by using 0 as the language type.
6876	* config/powerpcspe/powerpcspe.h (TARGET_D_CPU_VERSIONS): Define.
6877	* config/powerpcspe/t-powerpcspe (powerpcspe-d.o): New rule.
6878	* config/riscv/riscv-d.c: New file.
6879	* config/riscv/riscv-protos.h (riscv_d_target_versions): New
6880	prototype.
6881	* config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Define.
6882	* config/riscv/t-riscv (riscv-d.o): New rule.
6883	* config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
6884	* config/rs6000/linux64.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
6885	* config/rs6000/rs6000-d.c: New file.
6886	* config/rs6000/rs6000-protos.h (rs6000_d_target_versions): New
6887	prototype.
6888	* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
6889	Support GNU D by using 0 as the language type.
6890	* config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS): Define.
6891	* config/rs6000/t-rs6000 (rs6000-d.o): New rule.
6892	* config/s390/s390-d.c: New file.
6893	* config/s390/s390-protos.h (s390_d_target_versions): New prototype.
6894	* config/s390/s390.h (TARGET_D_CPU_VERSIONS): Define.
6895	* config/s390/t-s390 (s390-d.o): New rule.
6896	* config/sparc/sparc-d.c: New file.
6897	* config/sparc/sparc-protos.h (sparc_d_target_versions): New
6898	prototype.
6899	* config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Define.
6900	* config/sparc/t-sparc (sparc-d.o): New rule.
6901	* config/t-glibc (glibc-d.o): New rule.
6902	* configure: Regenerated.
6903	* configure.ac (tm_d_file): New variable.
6904	(tm_d_file_list, tm_d_include_list, d_target_objs): Add substitutes.
6905	* doc/contrib.texi (Contributors): Add self for the D frontend.
6906	* doc/frontends.texi (G++ and GCC): Mention D as a supported language.
6907	* doc/install.texi (Configuration): Mention libphobos as an option for
6908	--enable-shared.  Mention d as an option for --enable-languages.
6909	(Testing): Mention check-d as a target.
6910	* doc/invoke.texi (Overall Options): Mention .d, .dd, and .di as file
6911	name suffixes.  Mention d as a -x option.
6912	* doc/sourcebuild.texi (Top Level): Mention libphobos.
6913	* doc/standards.texi (Standards): Add section on D language.
6914	* doc/tm.texi: Regenerated.
6915	* doc/tm.texi.in: Add @node for D language and ABI, and @hook for
6916	TARGET_CPU_VERSIONS, TARGET_D_OS_VERSIONS, and TARGET_D_CRITSEC_SIZE.
6917	* dwarf2out.c (is_dlang): New function.
6918	(gen_compile_unit_die): Use DW_LANG_D for D.
6919	(declare_in_namespace): Return module die for D, instead of adding
6920	extra declarations into the namespace.
6921	(gen_namespace_die): Generate DW_TAG_module for D.
6922	(gen_decl_die): Handle CONST_DECLSs for D.
6923	(dwarf2out_decl): Likewise.
6924	(prune_unused_types_walk_local_classes): Handle DW_tag_interface_type.
6925	(prune_unused_types_walk): Handle DW_tag_interface_type same as other
6926	kinds of aggregates.
6927	* gcc.c (default_compilers): Add entries for .d, .dd and .di.
6928	* genhooks.c: Include d/d-target.def.
6929
69302018-10-28  Iain Sandoe  <iain@sandoe.co.uk>
6931
6932	PR target/85669
6933	* config/rs6000/darwin.h (STACK_BOUNDARY): New.
6934	(RS6000_STARTING_FRAME_OFFSET): Adjust to preserve 16byte alignment.
6935	(STACK_DYNAMIC_OFFSET): Likewise.
6936
69372018-10-27  Sandra Loosemore  <sandra@codesourcery.com>
6938
6939	PR target/80024
6940	* config/nios2/nios2.c (nios2_valid_target_attribute_rec): Fix
6941	error message.
6942
69432018-10-26  Tulio Magno Quites Machado Filho  <tuliom@linux.ibm.com>
6944
6945	* doc/extend.texi (PowerPC builtins): Fix __builtin_unpack_ibm128
6946	return type and other typos.
6947
69482018-10-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
6949
6950	* config/rs6000/rs6000-string.c (expand_strncmp_gpr_sequence): Change to
6951	a shorter sequence with fewer branches.
6952	(emit_final_str_compare_gpr): Ditto.
6953
69542018-10-26  Paul A. Clarke  <pc@us.ibm.com>
6955
6956	* config/rs6000/tmmintrin.h: New file.
6957	* config.gcc (powerpc*-*-*): Add tmmintrin.h to extra_headers.
6958
69592018-10-26  Paul A. Clarke  <pc@us.ibm.com>
6960
6961	* config/rs6000/mmintrin.h: Enable 32bit compilation.
6962	* config/rs6000/xmmintrin.h: Likewise.
6963
69642018-10-26  Paul A. Clarke  <pc@us.ibm.com>
6965
6966	* config/rs6000/xmmintrin.h (_mm_extract_pi16): Fix for big-endian.
6967
69682018-10-26  Richard Biener  <rguenther@suse.de>
6969
6970	* tree-vect-slp.c (vect_mark_slp_stmts): Add visited hash_set
6971	and wrapper.
6972	(vect_mark_slp_stmts_relevant): Likewise.
6973	(vect_detect_hybrid_slp_stmts): Likewise.
6974	(vect_bb_slp_scalar_cost): Likewise.
6975	(vect_remove_slp_scalar_calls): Likewise.
6976
69772018-10-26  Jan Hubicka  <jh@suse.cz>
6978
6979	* ipa-devirt.c (odr_subtypes_equivalent_p): Fix recursion.
6980	(warn_types_mismatch): Fix walk of DECL_NAME.
6981	(odr_types_equivalent_p): Fix overactive assert.
6982
69832018-10-26  Richard Biener  <rguenther@suse.de>
6984
6985	PR tree-optimization/87105
6986	* tree-vectorizer.h (_slp_tree::refcnt): New member.
6987	* tree-vect-slp.c (vect_free_slp_tree): Decrement and honor
6988	refcnt.
6989	(vect_create_new_slp_node): Initialize refcnt to one.
6990	(bst_traits): Move.
6991	(scalar_stmts_set_t, bst_fail): Remove.
6992	(vect_build_slp_tree_2): Add bst_map argument and adjust calls.
6993	(vect_build_slp_tree): Add bst_map argument and lookup
6994	already created SLP nodes.
6995	(vect_print_slp_tree): Handle a SLP graph, print SLP node
6996	addresses.
6997	(vect_slp_rearrange_stmts): Handle a SLP graph.
6998	(vect_analyze_slp_instance): Adjust and free SLP nodes from
6999	the CSE map.  Fix indenting.
7000	(vect_schedule_slp_instance): Add short-cut.
7001
70022018-10-26  Martin Liska  <mliska@suse.cz>
7003
7004	PR testsuite/86158
7005	* ipa-prop.c (struct ipa_vr_ggc_hash_traits): Hash with
7006	addr_expr and not with pointers.
7007
70082018-10-26  Jan Hubicka  <jh@suse.cz>
7009
7010	* tree.c (free_lang_data_in_type): Only check main variants.
7011	* ipa-devirt.c (warn_odr): Make static.
7012	(types_same_for_odr): Drop strict variant.
7013	(types_odr_comparable): Likewise.
7014	(odr_or_derived_type_p): Look for main variants.
7015	(odr_name_hasher::equal): Cleanup comment.
7016	(odr_subtypes_equivalent): Add warn and warned arguments; check main
7017	variants.
7018	(type_variants_equivalent_p): break out from ...
7019	(odr_types_equivalent): ... here; go for main variants where needed.
7020	(warn_odr): ... here; turn static.
7021	(warn_types_mismatch): Compare mangled names of main variants.
7022	* ipa-utils.h (types_odr_comparable): Drop strict parameter.
7023	(type_with_linkage_p): Sanity check that we look at main variant.
7024	* lto.c (lto_read_decls): Only consider main variant to be ODR type.
7025	* tree.h (types_same_for_odr): Drop strict argument.
7026
70272018-10-26  Richard Biener  <rguenther@suse.de>
7028
7029	PR tree-optimization/87746
7030	* tree-vect-data-refs.c (vect_update_misalignment_for_peel):
7031	Simplify and fix WRT strided store groups with size not
7032	equal to step in element count.
7033	(vect_analyze_group_access_1): Dump the whole group.
7034
70352018-10-25  Carl Love  <cel@us.ibm.com>
7036
7037	* config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_VSCEDPGT,
7038	P9V_BUILTIN_VEC_VSCEDPLT, P9V_BUILTIN_VEC_VSCEDPEQ,
7039	P9V_BUILTIN_VEC_VSCEDPUO): Rename base overloaded name.  Add quad
7040	precicion entry for each overloaded builtin.
7041	* config/rs6000/rs6000-builtin.def (VSCEDPGT, VSCEDPLT, VSCEDPEQ,
7042	VSCEDPUO): Rename overloaded name.
7043	(VSCEDPGT, VSCEQPGT, VSCEDPLT, VSCEQPLT, VSCEDPEQ, VSCEQPEQ,
7044	VSCEDPUO, VSCEQPUO): Add defitions for overloaded builtins.
7045	* config/rs6000/vsx.md (xscmpexpqp_<code>_<mode>): Add
7046	define_expand for xscmpexqp instruction.
7047	(*xscmpexpqp): Add define_insn for the xscmpexqp instruction.
7048
70492018-10-25  Bill Schmidt  <wschmidt@linux.ibm.com>
7050	    Jinsong Ji  <jji@us.ibm.com>
7051
7052	* config/rs6000/emmintrin.h (_mm_slli_epi16): Replace deprecated
7053	function with vec_sl.
7054	(_mm_slli_epi32): Likewise.
7055	(_mm_slli_epi64): Likewise.
7056	(_mm_srai_epi16): Replace deprecated function with vec_sra.
7057	(_mm_srai_epi32): Likewise.
7058	(_mm_srli_epi16): Replace deprecated function with vec_sr.
7059	(_mm_srli_epi32): Likewise.
7060	(_mm_srli_epi64): Likewise.
7061	(_mm_sll_epi16): Replace deprecated function with vec_sl.
7062	(_mm_sll_epi32): Likewise.
7063	(_mm_sll_epi64): Likewise.
7064	(_mm_sra_epi16): Replace deprecated function with vec_sra.
7065	(_mm_sra_epi32): Likewise.
7066	(_mm_srl_epi16): Replace deprecated function with vec_sr.
7067	(_mm_srl_epi32): Likewise.
7068	(_mm_srl_epi64): Likewise.
7069
70702018-10-25  Bill Schmidt  <wschmidt@linux.ibm.com>
7071	    Jinsong Ji  <jji@us.ibm.com>
7072
7073	* gcc/config/rs6000/emmintrin.h (_mm_sll_epi16): Replace
7074	comparison operators with vec_cmp* for compatibility due to
7075	unfortunate history; clean up formatting and use types more
7076	appropriately.
7077	(_mm_sll_epi32): Likewise.
7078	(_mm_sll_epi64): Likewise.
7079	(_mm_srl_epi16): Likewise.
7080	(_mm_srl_epi32): Likewise.
7081	(_mm_srl_epi64): Likewise.
7082
70832018-10-25  Bill Schmidt  <wschmidt@linux.ibm.com>
7084	    Jinsong Ji  <jji@us.ibm.com>
7085
7086	* config/rs6000/emmintrin.h (_mm_sll_epi64): Remove wrong cast.
7087	* config/rs6000/xmmintrin.h (_mm_min_ps): Change m's type to
7088	__vector __bool int.  Use vec_cmpgt in preference to deprecated
7089	function vec_vcmpgtfp.
7090	(_mm_max_ps): Likewise.
7091
70922018-10-25  Jeff Law  <law@redhat.com>
7093
7094	* config/rl78/rl78.c (insn_ok_now): Always re-recognize the insn
7095	if returning false.
7096
70972018-10-25  Martin Sebor  <msebor@redhat.com>
7098
7099	* doc/extend.texi (aligned): Expand attribute description.
7100	(Alignment): Rename section.  Discuss function arguments.
7101
71022018-10-25  Jan Hubicka  <jh@suse.cz>
7103
7104	* ipa-devirt.c (main_odr_variant): Remove.
7105	(hash_odr_name, types_same_for_odr, types_odr_comparable,
7106	odr_name_hasher::equal, odr_subtypes_equivalent_p):
7107	Drop use of main_odr_variant.
7108	(add_type_duplicate): Silence confused warnings on integer types.
7109	(get_odr_type): Always look for main variant.
7110	(register_odr_type): Simplify.
7111
71122018-10-25  Richard Biener  <rguenther@suse.de>
7113
7114	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses):
7115	Initialize ng to silence error with release checking bootstrap.
7116
71172018-10-25  Richard Biener  <rguenther@suse.de>
7118
7119	* tree-if-conv.c: Include tree-ssa-sccvn.h.
7120	(tree_if_conversion): Run CSE on the if-converted loop body.
7121
71222018-10-25  Ilya Leoshkevich  <iii@linux.ibm.com>
7123
7124	* config/s390/constraints.md (ZL): New constraint.
7125	* config/s390/s390.c (legitimate_pic_operand_p): Accept LARL
7126	operands.
7127	* config/s390/s390.md (movdi_larl): Remove.
7128	(movdi_64): Add the LARL alternative.
7129
71302018-10-25  Ilya Leoshkevich  <iii@linux.ibm.com>
7131
7132	PR bootstrap/87747
7133	* rtl.c (RTX_CODE_HWINT_P_1): New helper macro.
7134	(RTX_CODE_HWINT_P): New macro.
7135	(rtx_code_size): Use RTX_CODE_HWINT_P ().
7136
71372018-10-25  Jan Hubicka  <jh@suse.cz>
7138
7139	* ipa-devirt.c (odr_types_equivalent_p): Do not ICE if one of types
7140	is anonymous.
7141
71422018-10-25  Richard Biener  <rguenther@suse.de>
7143
7144	PR tree-optimization/87665
7145	PR tree-optimization/87745
7146	* tree-vectorizer.h (get_earlier_stmt): Remove.
7147	(get_later_stmt): Pick up UID from the original non-pattern stmt.
7148
71492018-10-25  Sam Tebbs  <sam.tebbs@arm.com>
7150
7151	* options.texi (Deprecated): Move list to Var section.
7152
71532018-10-24  Bill Schmidt  <wschmidt@linux.ibm.com>
7154	    Jinsong Ji  <jji@us.ibm.com>
7155
7156	* config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Change deprecated
7157	__vector long to __vector long long.
7158	(_mm_cvtpd_ps): Likewise.
7159	(_mm_cvttpd_epi32): Likewise.
7160	(_mm_cvtpi32_pd): Likewise.
7161	(_mm_unpackhi_epi64): Likewise.
7162	(_mm_unpacklo_epi64): Likewise.
7163
71642018-10-24  Segher Boessenkool  <segher@kernel.crashing.org>
7165
7166	PR rtl-optimization/87720
7167	* combine.c (make_more_copies): Skip if the dest is pc_rtx.
7168
71692018-10-24  Alexandre Oliva  <aoliva@redhat.com>
7170
7171	* gimple-ssa-isolate-paths.c
7172	(find_implicit_erroneous_behavior): Do not change code if the
7173	pass is running for warnings only.
7174	(find_explicit_erroneous_behavior): Likewise.
7175
71762018-10-24  Michael Meissner  <meissner@linux.ibm.com>
7177
7178	* config/rs6000/rs6000.c (TARGET_MANGLE_DECL_ASSEMBLER_NAME):
7179	Define as rs6000_mangle_decl_assembler_name.
7180	(rs6000_mangle_decl_assembler_name): If the user switched from IBM
7181	long double to IEEE long double, switch the names of the long
7182	double built-in functions to be <func>f128 instead of <func>l.
7183
71842018-10-24  Martin Sebor  <msebor@redhat.com>
7185
7186	* doc/extend.texi (nonnull): List no-argument form.  Reference
7187	-fno-delete-null-pointer-checks and -fisolate-erroneous-paths-attribute.
7188
71892018-10-24  Richard Biener  <rguenther@suse.de>
7190
7191	* tree-ssa-sccvn.c (do_rpo_vn): Free rpo_state.
7192
71932018-10-24  Martin Liska  <mliska@suse.cz>
7194
7195	PR tree-optimization/84436
7196	* tree-switch-conversion.c (switch_conversion::contains_same_values_p):
7197	Remove.
7198	(switch_conversion::contains_linear_function_p): New.
7199	(switch_conversion::build_one_array): Support linear
7200	transformation on input.
7201	* tree-switch-conversion.h (struct switch_conversion): Add
7202	contains_linear_function_p declaration.
7203
72042018-10-24  Richard Biener  <rguenther@suse.de>
7205
7206	* varasm.c (const_hash_1): Return hash of ADDR_EXPR
7207	if its argument is CONSTANT_CLASS_P.
7208
72092018-10-11  Jan Hubicka  <hubicka@ucw.cz>
7210
7211	* ipa-utils.h (type_with_linkage_p): No longer check for TYPE_STUB_DECL;
7212	it is wrong for forward declarations.
7213
72142018-10-24  Ilya Leoshkevich  <iii@linux.ibm.com>
7215
7216	* config/s390/s390.c (s390_check_qrst_address): Add the missing
7217	SYMBOL_REF_P () check.
7218
72192018-10-24  Richard Biener  <rguenther@suse.de>
7220
7221	PR tree-optimization/87105
7222	* tree-vect-data-refs.c (vect_analyze_group_access_1): Adjust
7223	dump classification.
7224	(vect_analyze_data_ref_accesses): Handle duplicate loads and
7225	stores by splitting the affected group after the fact.
7226	* tree-vect-slp.c (vect_build_slp_tree_2): Dump when we
7227	fail the SLP build because of size constraints.
7228
72292018-10-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7230
7231	* configure.ac (gcc_cv_ld_aligned_shf_merge): New test.
7232	* configure: Regenerate.
7233	* config.in: Regenerate.
7234	* varasm.c (mergeable_string_section): Use readonly_data_section
7235	if linker doesn't support SHF_MERGE with alignment > 8.
7236	(mergeable_constant_section): Likewise.
7237
72382018-10-24  Richard Biener  <rguenther@suse.de>
7239
7240	PR tree-optimization/84013
7241	* tree-ssa-structalias.c (struct msdi_data): New struct for
7242	marshalling data to walk_stmt_load_store_ops.
7243	(maybe_set_dependence_info): Refactor as callback for
7244	walk_stmt_load_store_ops.
7245	(compute_dependence_clique): Set restrict info on all stmt kinds.
7246
72472018-10-24  Martin Liska  <mliska@suse.cz>
7248
7249	* cgraph.c (cgraph_node::dump):
7250	Remove reduntant dumps and make tp_first_run dump more compact.
7251
72522018-10-24  Richard Biener  <rguenther@suse.de>
7253
7254	PR tree-optimization/87665
7255	* tree-vect-data-refs.c (vect_preserves_scalar_order_p): Adjust
7256	to reflect reality.
7257
72582018-10-12  Jeff Law  <law@redhat.com>
7259
7260	* config/h8300/h8300.c (h8300_expand_prologue): Fix stm generation
7261	for H8/S.
7262
72632018-10-23  Richard Biener  <rguenther@suse.de>
7264
7265	* tree-vrp.c (add_assert_info): Guard dump_printf with
7266	dump_enabled_p.
7267	* gimple-ssa-evrp-analyze.c
7268	(evrp_range_analyzer::record_ranges_from_incoming_edge):
7269	Use value_range::ignore_equivs_equal_p.
7270
72712018-10-23  Richard Biener  <rguenther@suse.de>
7272
7273	PR tree-optimization/87105
7274	PR tree-optimization/87608
7275	* passes.def (pass_all_early_optimizations): Add early phi-opt
7276	after dce.
7277	* tree-ssa-phiopt.c (value_replacement): Ignore NOPs and predicts in
7278	addition to debug stmts.
7279	(tree_ssa_phiopt_worker): Add early_p argument, do only min/max
7280	and abs replacement early.
7281	* tree-cfg.c (gimple_empty_block_p): Likewise.
7282
72832018-10-23  Richard Earnshaw  <rearnsha@arm.com>
7284
7285	PR target/86383
7286	* config.gcc (arm*-*-netbsdelf*): Default to StrongARM if no CPU
7287	specified to configure.
7288	(arm*-*-*): Use ARM7TDMI as the target CPU if no default provided.
7289
72902018-10-23  Richard Biener  <rguenther@suse.de>
7291
7292	PR tree-optimization/87700
7293	* tree-ssa-copy.c (set_copy_of_val): Fix change detection logic.
7294
72952018-10-23  Jakub Jelinek  <jakub@redhat.com>
7296
7297	PR target/87674
7298	* config/i386/avx512vlintrin.h (_mm_mask_mullo_epi32): Change type of
7299	second argument from __mmask16 to __mmask8.
7300	* config/i386/avx512vlbwintrin.h (_mm_mask_packus_epi32,
7301	_mm_mask_packs_epi32): Likewise.
7302	* config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i64scatter_ps):
7303	Likewise.
7304	(_mm512_mask_prefetch_i64scatter_pd): Likewise.  Formatting fix.
7305
73062018-10-23  Richard Biener  <rguenther@suse.de>
7307
7308	* tree-vect-stmts.c (vect_analyze_stmt): Fix typo in comment.
7309
73102018-10-23  Richard Biener  <rguenther@suse.de>
7311
7312	PR tree-optimization/86144
7313	* tree-vect-stmts.c (vect_analyze_stmt): Prefer -mveclibabi
7314	over simd attribute.
7315
73162018-10-23  Richard Biener  <rguenther@suse.de>
7317
7318	PR tree-optimization/87693
7319	* tree-ssa-threadedge.c (thread_around_empty_blocks): Handle
7320	the case we do not find the taken edge.
7321
73222018-10-22  Bill Schmidt  <wschmidt@linux.ibm.com>
7323	    Jinsong Ji  <jji@us.ibm.com>
7324
7325	* config/rs6000/emmintrin.h (_MM_SHUFFLE2): Comment cleanup.
7326	(_mm_store_pd): Use unaligned vector type for pointer cast.
7327	(_mm_maskmoveu_si128): Likewise.
7328	* config/rs6000/xmmintrin.h (__m128_u): New typedef.
7329	(_mm_store_ps): Use unaligned vector type for pointer cast.
7330
73312018-10-22  Paul Koning  <ni1d@arrl.net>
7332
7333	* symtab.c (symtab_node::increase_alignment): Correct max
7334	alignment check.
7335
73362018-10-22  Yury Gribov  <tetra2005@gmail.com>
7337
7338	PR tree-optimization/87633
7339	* match.pd: Do not generate unordered integer comparisons.
7340
73412018-10-22  Segher Boessenkool  <segher@kernel.crashing.org>
7342
7343	PR rtl-optimization/87600
7344	* combine.c: Add include of expr.h.
7345	(cant_combine_insn_p): Do not combine moves from any hard non-fixed
7346	register to a pseudo.
7347	(make_more_copies): New function, add a copy to a new pseudo after
7348	the moves from hard registers into pseudos.
7349	(rest_of_handle_combine): Declare rebuild_jump_labels_after_combine
7350	later.  Call make_more_copies.
7351
73522018-10-22  Andrew Stubbs  <ams@codesourcery.com>
7353
7354	* lra-constraints.c (process_alt_operands): New local array,
7355	matching_early_clobber.  Check matching_early_clobber before
7356	decrementing reject, and set matching_early_clobber after.
7357
73582018-10-22  Segher Boessenkool  <segher@kernel.crashing.org>
7359
7360	PR target/87598
7361	* config/rs6000/rs6000.c (print_operand_address): For unexpected RTL
7362	call output_addr_const and hope for the best.
7363
73642018-10-22  Richard Biener  <rguenther@suse.de>
7365
7366	* gimple-ssa-evrp-analyze.c
7367	(evrp_range_analyzer::record_ranges_from_incoming_edge): Be
7368	smarter about what ranges to use.
7369	* tree-vrp.c (add_assert_info): Dump here.
7370	(register_edge_assert_for_2): Instead of here at multiple but
7371	not all places.
7372
7373	* gcc.dg/tree-ssa/evrp12.c: New testcase.
7374	* gcc.dg/predict-6.c: Adjust.
7375	* gcc.dg/tree-ssa/vrp33.c: Disable EVRP.
7376	* gcc.dg/tree-ssa/vrp02.c: Likewise.
7377	* gcc.dg/tree-ssa/cunroll-9.c: Likewise.
7378
73792018-10-22  Steven Bosscher  <steven@gcc.gnu.org>
7380	Richard Biener  <rguenther@suse.de>
7381
7382	* bitmap.h: Update data structure documentation, including a
7383	description of bitmap views as either linked-lists or splay trees.
7384	(struct bitmap_element_def): Update comments for splay tree bitmaps.
7385	(struct bitmap_head_def): Likewise.
7386	(bitmap_list_view, bitmap_tree_view): New prototypes.
7387	(bitmap_initialize_stat): Initialize a bitmap_head's indx and
7388	tree_form fields.
7389	(bmp_iter_set_init): Assert the iterated bitmaps are in list form.
7390	(bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.
7391	* bitmap.c (bitmap_elem_to_freelist): Unregister overhead of a
7392	released bitmap element here.
7393	(bitmap_element_free): Remove.
7394	(bitmap_elt_clear_from): Work on splay tree bitmaps.
7395	(bitmap_list_link_element): Renamed from bitmap_element_link.  Move
7396	this function similar ones such that linked-list bitmap implementation
7397	functions are grouped.
7398	(bitmap_list_unlink_element): Renamed from bitmap_element_unlink,
7399	and moved for grouping.
7400	(bitmap_list_insert_element_after): Renamed from
7401	bitmap_elt_insert_after, and moved for grouping.
7402	(bitmap_list_find_element): New function spliced from bitmap_find_bit.
7403	(bitmap_tree_link_left, bitmap_tree_link_right,
7404	bitmap_tree_rotate_left, bitmap_tree_rotate_right, bitmap_tree_splay,
7405	bitmap_tree_link_element, bitmap_tree_unlink_element,
7406	bitmap_tree_find_element): New functions for splay-tree bitmap
7407	implementation.
7408	(bitmap_element_link, bitmap_element_unlink, bitmap_elt_insert_after):
7409	Renamed and moved, see above entries.
7410	(bitmap_tree_listify_from): New function to convert part of a splay
7411	tree bitmap to a linked-list bitmap.
7412	(bitmap_list_view): Convert a splay tree bitmap to linked-list form.
7413	(bitmap_tree_view): Convert a linked-list bitmap to splay tree form.
7414	(bitmap_find_bit): Remove.
7415	(bitmap_clear, bitmap_clear_bit, bitmap_set_bit,
7416	bitmap_single_bit_set_p, bitmap_first_set_bit, bitmap_last_set_bit):
7417	Handle splay tree bitmaps.
7418	(bitmap_copy, bitmap_count_bits, bitmap_and, bitmap_and_into,
7419	bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
7420	bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior, bitmap_ior_into,
7421	bitmap_xor, bitmap_xor_into, bitmap_equal_p, bitmap_intersect_p,
7422	bitmap_intersect_compl_p, bitmap_ior_and_compl,
7423	bitmap_ior_and_compl_into, bitmap_set_range, bitmap_clear_range,
7424	bitmap_hash): Reject trying to act on splay tree bitmaps.  Make
7425	corresponding changes to use linked-list specific bitmap_element
7426	manipulation functions as applicable for efficiency.
7427	(bitmap_tree_to_vec): New function.
7428	(debug_bitmap_elt_file): New function split out from ...
7429	(debug_bitmap_file): ... here.  Handle splay tree bitmaps.
7430	(bitmap_print): Likewise.
7431
7432	PR tree-optimization/63155
7433	* tree-ssa-propagate.c (ssa_prop_init): Use tree-view for the
7434	SSA edge worklists.
7435	* tree-ssa-coalesce.c (coalesce_ssa_name): Populate used_in_copies
7436	in tree-view.
7437
74382018-10-22  Martin Liska  <mliska@suse.cz>
7439
7440	PR tree-optimization/87686
7441	Revert
7442	2018-08-29  Martin Liska  <mliska@suse.cz>
7443
7444	* tree-switch-conversion.c (switch_conversion::expand):
7445	Strenghten assumption about gswitch statements.
7446
74472018-10-22  Martin Liska  <mliska@suse.cz>
7448
7449	* ipa-icf.c (sem_item::compare_attributes): Remove.
7450	(sem_item::compare_referenced_symbol_properties): Use
7451	attribute_list_equal instead.
7452	(sem_function::equals_wpa): Likewise.
7453	* ipa-icf.h: Remove compare_attributes.
7454
74552018-10-22  Richard Biener  <rguenther@suse.de>
7456
7457	PR middle-end/87682
7458	* mem-stats.h (mem_usage::operator==): Fix pasto.
7459
74602018-10-22  Richard Biener  <rguenther@suse.de>
7461
7462	PR tree-optimization/87640
7463	* tree-vrp.c (set_value_range_with_overflow): Decompose
7464	incomplete result.
7465	(extract_range_from_binary_expr_1): Adjust.
7466
74672018-10-22  Martin Jambor  <mjambor@suse.cz>
7468
7469	* tree-eh.h (stmt_could_throw_p): Add function parameter.
7470	(stmt_can_throw_external): Likewise.
7471	(stmt_can_throw_internal): Likewise.
7472	* tree-eh.c (lower_eh_constructs_2): Pass cfun to stmt_could_throw_p.
7473	(lower_eh_constructs_2): Likewise.
7474	(stmt_could_throw_p): Add fun parameter, use it instead of cfun.
7475	(stmt_can_throw_external): Likewise.
7476	(stmt_can_throw_internal): Likewise.
7477	(maybe_clean_eh_stmt_fn): Pass cfun to stmt_could_throw_p.
7478	(maybe_clean_or_replace_eh_stmt): Pass cfun to stmt_could_throw_p.
7479	(maybe_duplicate_eh_stmt_fn): Pass new_fun to stmt_could_throw_p.
7480	(maybe_duplicate_eh_stmt): Pass cfun to stmt_could_throw_p.
7481	(pass_lower_eh_dispatch::execute): Pass cfun to
7482	stmt_can_throw_external.
7483	(cleanup_empty_eh): Likewise.
7484	(verify_eh_edges): Pass cfun to stmt_could_throw_p.
7485	* cgraph.c (cgraph_edge::set_call_stmt): Pass a function to
7486	stmt_can_throw_external instead of pushing it to cfun.
7487	(symbol_table::create_edge): Likewise.
7488	* gimple-fold.c (fold_builtin_atomic_compare_exchange): Pass cfun to
7489	stmt_can_throw_internal.
7490	* gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Pass cfun
7491	to stmt_could_throw_p.
7492	* gimple-ssa-store-merging.c (handled_load): Pass cfun to
7493	stmt_can_throw_internal.
7494	(pass_store_merging::execute): Likewise.
7495	* gimple-ssa-strength-reduction.c
7496	(find_candidates_dom_walker::before_dom_children): Pass cfun to
7497	stmt_could_throw_p.
7498	* gimplify-me.c (gimple_regimplify_operands): Pass cfun to
7499	stmt_can_throw_internal.
7500	* ipa-pure-const.c (check_call): Pass cfun to stmt_could_throw_p and
7501	to stmt_can_throw_external.
7502	(check_stmt): Pass cfun to stmt_could_throw_p.
7503	(check_stmt): Pass cfun to stmt_can_throw_external.
7504	(pass_nothrow::execute): Likewise.
7505	* trans-mem.c (expand_call_tm): Pass cfun to stmt_can_throw_internal.
7506	* tree-cfg.c (is_ctrl_altering_stmt): Pass cfun to
7507	stmt_can_throw_internal.
7508	(verify_gimple_in_cfg): Pass cfun to stmt_could_throw_p.
7509	(stmt_can_terminate_bb_p): Pass cfun to stmt_can_throw_external.
7510	(gimple_purge_dead_eh_edges): Pass cfun to stmt_can_throw_internal.
7511	* tree-complex.c (expand_complex_libcall): Pass cfun to
7512	stmt_could_throw_p and to stmt_can_throw_internal.
7513	(expand_complex_multiplication): Pass cfun to stmt_can_throw_internal.
7514	* tree-inline.c (copy_edges_for_bb): Likewise.
7515	(maybe_move_debug_stmts_to_successors): Likewise.
7516	* tree-outof-ssa.c (ssa_is_replaceable_p): Pass cfun to
7517	stmt_could_throw_p.
7518	* tree-parloops.c (oacc_entry_exit_ok_1): Likewise.
7519	* tree-sra.c (scan_function): Pass cfun to stmt_can_throw_external.
7520	* tree-ssa-alias.c (stmt_kills_ref_p): Pass cfun to
7521	stmt_can_throw_internal.
7522	* tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
7523	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Pass cfun to
7524	stmt_could_throw_p.
7525	(mark_aliased_reaching_defs_necessary_1): Pass cfun to
7526	stmt_can_throw_internal.
7527	* tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
7528	* tree-ssa-loop-im.c (movement_possibility): Pass cfun to
7529	stmt_could_throw_p.
7530	* tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Likewise.
7531	(add_autoinc_candidates): Pass cfun to stmt_can_throw_internal.
7532	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
7533	(convert_mult_to_fma_1): Likewise.
7534	(convert_to_divmod): Likewise.
7535	* tree-ssa-phiprop.c (propagate_with_phi): Likewise.
7536	* tree-ssa-pre.c (compute_avail): Pass cfun to stmt_could_throw_p.
7537	* tree-ssa-propagate.c
7538	(substitute_and_fold_dom_walker::before_dom_children): Likewise.
7539	* tree-ssa-reassoc.c (suitable_cond_bb): Likewise.
7540	(maybe_optimize_range_tests): Likewise.
7541	(linearize_expr_tree): Likewise.
7542	(reassociate_bb): Likewise.
7543	* tree-ssa-sccvn.c (copy_reference_ops_from_call): Likewise.
7544	* tree-ssa-scopedtables.c (hashable_expr_equal_p): Likewise.
7545	* tree-ssa-strlen.c (adjust_last_stmt): Likewise.
7546	(handle_char_store): Likewise.
7547	* tree-vect-data-refs.c (vect_find_stmt_data_reference): Pass cfun to
7548	stmt_can_throw_internal.
7549	* tree-vect-patterns.c (check_bool_pattern): Pass cfun to
7550	stmt_could_throw_p.
7551	* tree-vect-stmts.c (vect_finish_stmt_generation_1): Likewise.
7552	(vectorizable_call): Pass cfun to stmt_can_throw_internal.
7553	(vectorizable_simd_clone_call): Likewise.
7554	* value-prof.c (gimple_ic): Pass cfun to stmt_could_throw_p.
7555	(gimple_stringop_fixed_value): Likewise.
7556
75572018-10-22  Ilya Leoshkevich  <iii@linux.ibm.com>
7558
7559	* config/s390/s390.c (s390_loadrelative_operand_p): Accept
7560	literal pool references.
7561	(s390_check_qrst_address): Adapt to the new behavior of
7562	s390_loadrelative_operand_p ().
7563
75642018-10-22  H.J. Lu  <hongjiu.lu@intel.com>
7565
7566	PR target/72782
7567	* config/i386/sse.md (*andnot<mode>3_bcst): New.
7568
75692018-10-22  H.J. Lu  <hongjiu.lu@intel.com>
7570
7571	PR target/72782
7572	* config/i386/sse.md (*<code><mode>3_bcst): New.
7573
75742018-10-22  H.J. Lu  <hongjiu.lu@intel.com>
7575
7576	PR target/72782
7577	* config/i386/sse.md (avx512bcst): Updated for V4SI, V2DI, V8SI,
7578	V4DI, V16SI and V8DI.
7579	(*sub<mode>3<mask_name>_bcst): New.
7580	(*add<mode>3<mask_name>_bcst): Likewise.
7581
75822018-10-21  Bill Schmidt  <wschmidt@linux.ibm.com>
7583	    Jinsong Ji  <jji@us.ibm.com>
7584
7585	* config/rs6000/emmintrin.h (_mm_movemask_pd): Replace __vector
7586	__m64 with __vector unsigned long long for compatibility.
7587	(_mm_movemask_epi8): Likewise.
7588	* config/rs6000/xmmintrin.h (_mm_cvtps_pi32): Likewise.
7589	(_mm_cvttps_pi32): Likewise.
7590	(_mm_cvtpi32_ps): Likewise.
7591	(_mm_cvtps_pi16): Likewise.
7592	(_mm_loadh_pi): Likewise.
7593	(_mm_storeh_pi): Likewise.
7594	(_mm_movehl_ps): Likewise.
7595	(_mm_movelh_ps): Likewise.
7596	(_mm_loadl_pi): Likewise.
7597	(_mm_storel_pi): Likewise.
7598	(_mm_movemask_ps): Likewise.
7599	(_mm_shuffle_pi16): Likewise.
7600
76012018-10-21  H.J. Lu  <hongjiu.lu@intel.com>
7602
7603	PR target/72782
7604	* config/i386/avx512fintrin.h (_mm512_fnmsub_round_pd): Use
7605	__builtin_ia32_vfnmsubpd512_mask.
7606	(_mm512_mask_fnmsub_round_pd): Likewise.
7607	(_mm512_fnmsub_pd): Likewise.
7608	(_mm512_mask_fnmsub_pd): Likewise.
7609	(_mm512_maskz_fnmsub_round_pd): Use
7610	__builtin_ia32_vfnmsubpd512_maskz.
7611	(_mm512_maskz_fnmsub_pd): Likewise.
7612	(_mm512_fnmsub_round_ps): Use __builtin_ia32_vfnmsubps512_mask.
7613	(_mm512_mask_fnmsub_round_ps): Likewise.
7614	(_mm512_fnmsub_ps): Likewise.
7615	(_mm512_mask_fnmsub_ps): Likewise.
7616	(_mm512_maskz_fnmsub_round_ps): Use
7617	__builtin_ia32_vfnmsubps512_maskz.
7618	(_mm512_maskz_fnmsub_ps): Likewise.
7619	* config/i386/avx512vlintrin.h (_mm256_mask_fnmsub_pd): Use
7620	__builtin_ia32_vfnmsubpd256_mask.
7621	(_mm256_maskz_fnmsub_pd): Use __builtin_ia32_vfnmsubpd256_maskz.
7622	(_mm_mask_fnmsub_pd): Use __builtin_ia32_vfmaddpd128_mask
7623	(_mm_maskz_fnmsub_pd): Use __builtin_ia32_vfnmsubpd128_maskz.
7624	(_mm256_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_mask.
7625	(_mm256_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_mask.
7626	(_mm256_maskz_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_maskz.
7627	(_mm_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps128_mask.
7628	(_mm_maskz_fnmsub_ps): Use __builtin_ia32_vfnmsubps128_maskz.
7629	* config/i386/fmaintrin.h (_mm_fnmsub_pd): Use
7630	__builtin_ia32_vfnmsubpd.
7631	(_mm256_fnmsub_pd): Use __builtin_ia32_vfnmsubpd256.
7632	(_mm_fnmsub_ps): Use __builtin_ia32_vfnmsubps.
7633	(_mm256_fnmsub_ps): Use __builtin_ia32_vfnmsubps256.
7634	(_mm_fnmsub_sd): Use __builtin_ia32_vfnmsubsd3.
7635	(_mm_fnmsub_ss): Use __builtin_ia32_vfnmsubss3.
7636	* config/i386/i386-builtin.def: Add
7637	__builtin_ia32_vfnmsubpd256_mask,
7638	__builtin_ia32_vfnmsubpd256_maskz,
7639	__builtin_ia32_vfnmsubpd128_mask,
7640	__builtin_ia32_vfnmsubpd128_maskz,
7641	__builtin_ia32_vfnmsubps256_mask,
7642	__builtin_ia32_vfnmsubps256_maskz,
7643	__builtin_ia32_vfnmsubps128_mask,
7644	__builtin_ia32_vfnmsubps128_maskz,
7645	__builtin_ia32_vfnmsubpd512_mask,
7646	__builtin_ia32_vfnmsubpd512_maskz,
7647	__builtin_ia32_vfnmsubps512_mask,
7648	__builtin_ia32_vfnmsubps512_maskz, __builtin_ia32_vfnmsubss3,
7649	__builtin_ia32_vfnmsubsd3, __builtin_ia32_vfnmsubps,
7650	__builtin_ia32_vfnmsubpd, __builtin_ia32_vfnmsubps256 and.
7651	__builtin_ia32_vfnmsubpd256.
7652	* config/i386/sse.md (fma4i_fnmsub_<mode>): New.
7653	(<avx512>_fnmsub_<mode>_maskz<round_expand_name>): Likewise.
7654	(*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1):
7655	Likewise.
7656	(*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_2):
7657	Likewise.
7658	(*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_3):
7659	Likewise.
7660	(fmai_vmfnmsub_<mode><round_name>): Likewise.
7661
76622018-10-21  H.J. Lu  <hongjiu.lu@intel.com>
7663
7664	PR target/72782
7665	* config/i386/avx512fintrin.h (_mm512_fnmadd_round_pd): Use
7666	__builtin_ia32_vfnmaddpd512_mask.
7667	(_mm512_mask_fnmadd_round_pd): Likewise.
7668	(_mm512_fnmadd_pd): Likewise.
7669	(_mm512_mask_fnmadd_pd): Likewise.
7670	(_mm512_maskz_fnmadd_round_pd): Use
7671	__builtin_ia32_vfnmaddpd512_maskz.
7672	(_mm512_maskz_fnmadd_pd): Likewise.
7673	(_mm512_fnmadd_round_ps): Use __builtin_ia32_vfnmaddps512_mask.
7674	(_mm512_mask_fnmadd_round_ps): Likewise.
7675	(_mm512_fnmadd_ps): Likewise.
7676	(_mm512_mask_fnmadd_ps): Likewise.
7677	(_mm512_maskz_fnmadd_round_ps): Use
7678	__builtin_ia32_vfnmaddps512_maskz.
7679	(_mm512_maskz_fnmadd_ps): Likewise.
7680	* config/i386/avx512vlintrin.h (_mm256_mask_fnmadd_pd): Use
7681	__builtin_ia32_vfnmaddpd256_mask.
7682	(_mm256_maskz_fnmadd_pd): Use __builtin_ia32_vfnmaddpd256_maskz.
7683	(_mm_mask_fnmadd_pd): Use __builtin_ia32_vfmaddpd128_mask
7684	(_mm_maskz_fnmadd_pd): Use __builtin_ia32_vfnmaddpd128_maskz.
7685	(_mm256_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_mask.
7686	(_mm256_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_mask.
7687	(_mm256_maskz_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_maskz.
7688	(_mm_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps128_mask.
7689	(_mm_maskz_fnmadd_ps): Use __builtin_ia32_vfnmaddps128_maskz.
7690	* config/i386/fmaintrin.h (_mm_fnmadd_pd): Use
7691	__builtin_ia32_vfnmaddpd.
7692	(_mm256_fnmadd_pd): Use __builtin_ia32_vfnmaddpd256.
7693	(_mm_fnmadd_ps): Use __builtin_ia32_vfnmaddps.
7694	(_mm256_fnmadd_ps): Use __builtin_ia32_vfnmaddps256.
7695	(_mm_fnmadd_sd): Use __builtin_ia32_vfnmaddsd3.
7696	(_mm_fnmadd_ss): Use __builtin_ia32_vfnmaddss3.
7697	* config/i386/i386-builtin.def: Add
7698	__builtin_ia32_vfnmaddpd256_mask,
7699	__builtin_ia32_vfnmaddpd256_maskz,
7700	__builtin_ia32_vfnmaddpd128_mask,
7701	__builtin_ia32_vfnmaddpd128_maskz,
7702	__builtin_ia32_vfnmaddps256_mask,
7703	__builtin_ia32_vfnmaddps256_maskz,
7704	__builtin_ia32_vfnmaddps128_mask,
7705	__builtin_ia32_vfnmaddps128_maskz,
7706	__builtin_ia32_vfnmaddpd512_mask,
7707	__builtin_ia32_vfnmaddpd512_maskz,
7708	__builtin_ia32_vfnmaddps512_mask,
7709	__builtin_ia32_vfnmaddps512_maskz, __builtin_ia32_vfnmaddss3,
7710	__builtin_ia32_vfnmaddsd3, __builtin_ia32_vfnmaddps,
7711	__builtin_ia32_vfnmaddpd, __builtin_ia32_vfnmaddps256 and.
7712	__builtin_ia32_vfnmaddpd256.
7713	* config/i386/sse.md (fma4i_fnmadd_<mode>): New.
7714	(<avx512>_fnmadd_<mode>_maskz<round_expand_name>): Likewise.
7715	(*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1):
7716	Likewise.
7717	(*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_2):
7718	Likewise.
7719	(*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_3):
7720	Likewise.
7721	(fmai_vmfnmadd_<mode><round_name>): Likewise.
7722
77232018-10-21  H.J. Lu  <hongjiu.lu@intel.com>
7724
7725	PR target/72782
7726	* config/i386/avx512fintrin.h (_mm512_fmsub_round_pd): Use
7727	__builtin_ia32_vfmsubpd512_mask.
7728	(_mm512_mask_fmsub_round_pd): Likewise.
7729	(_mm512_fmsub_pd): Likewise.
7730	(_mm512_mask_fmsub_pd): Likewise.
7731	(_mm512_maskz_fmsub_round_pd): Use
7732	__builtin_ia32_vfmsubpd512_maskz.
7733	(_mm512_maskz_fmsub_pd): Likewise.
7734	(_mm512_fmsub_round_ps): Use __builtin_ia32_vfmsubps512_mask.
7735	(_mm512_mask_fmsub_round_ps): Likewise.
7736	(_mm512_fmsub_ps): Likewise.
7737	(_mm512_mask_fmsub_ps): Likewise.
7738	(_mm512_maskz_fmsub_round_ps): Use
7739	__builtin_ia32_vfmsubps512_maskz.
7740	(_mm512_maskz_fmsub_ps): Likewise.
7741	* config/i386/avx512vlintrin.h (_mm256_mask_fmsub_pd): Use
7742	__builtin_ia32_vfmsubpd256_mask.
7743	(_mm256_maskz_fmsub_pd): Use __builtin_ia32_vfmsubpd256_maskz.
7744	(_mm_mask_fmsub_pd): Use __builtin_ia32_vfmaddpd128_mask
7745	(_mm_maskz_fmsub_pd): Use __builtin_ia32_vfmsubpd128_maskz.
7746	(_mm256_mask_fmsub_ps): Use __builtin_ia32_vfmsubps256_mask.
7747	(_mm256_mask_fmsub_ps): Use __builtin_ia32_vfmsubps256_mask.
7748	(_mm256_maskz_fmsub_ps): Use __builtin_ia32_vfmsubps256_maskz.
7749	(_mm_mask_fmsub_ps): Use __builtin_ia32_vfmsubps128_mask.
7750	(_mm_maskz_fmsub_ps): Use __builtin_ia32_vfmsubps128_maskz.
7751	* config/i386/fmaintrin.h (_mm_fmsub_pd): Use
7752	__builtin_ia32_vfmsubpd.
7753	(_mm256_fmsub_pd): Use __builtin_ia32_vfmsubpd256.
7754	(_mm_fmsub_ps): Use __builtin_ia32_vfmsubps.
7755	(_mm256_fmsub_ps): Use __builtin_ia32_vfmsubps256.
7756	(_mm_fmsub_sd): Use __builtin_ia32_vfmsubsd3.
7757	(_mm_fmsub_ss): Use __builtin_ia32_vfmsubss3.
7758	* config/i386/i386-builtin.def: Add
7759	__builtin_ia32_vfmsubpd256_mask,
7760	__builtin_ia32_vfmsubpd256_maskz,
7761	__builtin_ia32_vfmsubpd128_mask,
7762	__builtin_ia32_vfmsubpd128_maskz,
7763	__builtin_ia32_vfmsubps256_mask,
7764	__builtin_ia32_vfmsubps256_maskz,
7765	__builtin_ia32_vfmsubps128_mask,
7766	__builtin_ia32_vfmsubps128_maskz,
7767	__builtin_ia32_vfmsubpd512_mask,
7768	__builtin_ia32_vfmsubpd512_maskz,
7769	__builtin_ia32_vfmsubps512_mask,
7770	__builtin_ia32_vfmsubps512_maskz, __builtin_ia32_vfmsubss3,
7771	__builtin_ia32_vfmsubsd3, __builtin_ia32_vfmsubps,
7772	__builtin_ia32_vfmsubpd, __builtin_ia32_vfmsubps256 and.
7773	__builtin_ia32_vfmsubpd256.
7774	* config/i386/sse.md (fma4i_fmsub_<mode>): New.
7775	(<avx512>_fmsub_<mode>_maskz<round_expand_name>): Likewise.
7776	(*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1):
7777	Likewise.
7778	(*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_2):
7779	Likewise.
7780	(*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_3):
7781	Likewise.
7782	(fmai_vmfmsub_<mode><round_name>): Likewise.
7783
77842018-10-21  H.J. Lu  <hongjiu.lu@intel.com>
7785
7786	* config/i386/sse.md (*<plusminus_insn><mode>3<mask_name>_bcst_1):
7787	Remove plus.  Renamed to ...
7788	(*sub<mode>3<mask_name>_bcst): This.
7789	(*add<mode>3<mask_name>_bcst_2): Renamede to ...
7790	(*add<mode>3<mask_name>_bcst): This.
7791
77922018-10-21  H.J. Lu  <hongjiu.lu@intel.com>
7793
7794	PR target/72782
7795	* config/i386/sse.md (*mul<mode>3<mask_name>_bcst): New.
7796
77972018-10-21  H.J. Lu  <hongjiu.lu@intel.com>
7798
7799	PR target/87662
7800	* i386/avx512vlintrin.h (_mm256_or_epi32): New.
7801	(_mm_or_epi32): Likewise.
7802	(_mm256_xor_epi32): Likewise.
7803	(_mm_xor_epi32): Likewise.
7804	(_mm256_or_epi64): Likewise.
7805	(_mm_or_epi64): Likewise.
7806	(_mm256_xor_epi64): Likewise.
7807	(_mm_xor_epi64): Likewise.
7808
78092018-10-20  H.J. Lu  <hongjiu.lu@intel.com>
7810
7811	PR target/72782
7812	* config/i386/sse.md (*<avx512>_div<mode>3<mask_name>_bcst): New.
7813
78142018-10-20  Jakub Jelinek  <jakub@redhat.com>
7815
7816	PR middle-end/87647
7817	* varasm.c (decode_addr_const): Handle COMPOUND_LITERAL_EXPR.
7818
78192018-10-20  Andreas Schwab  <schwab@linux-m68k.org>
7820
7821	* doc/ux.texi: Move @section directly after @node.
7822
78232018-10-19  Jakub Jelinek  <jakub@redhat.com>
7824
7825	PR middle-end/85488
7826	PR middle-end/87649
7827	* omp-low.c (check_omp_nesting_restrictions): Diagnose ordered without
7828	depend closely nested inside of loop with ordered clause with
7829	a parameter.
7830
78312018-10-19  David Malcolm  <dmalcolm@redhat.com>
7832
7833	* Makefile.in (TEXI_GCCINT_FILES): Add ux.texi.
7834	* doc/gccint.texi: Include ux.texi and use it in top-level menu.
7835	* doc/ux.texi: New file.
7836
78372018-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
7838
7839	* config/rs6000/rs6000.h (REG_ALLOC_ORDER): Move 68 (that is, CR0) to
7840	be the first CR field allocated.
7841
78422018-10-19  Richard Biener  <rguenther@suse.de>
7843
7844	PR target/87657
7845	* config/i386/i386.c (ix86_builtin_vectorization_cost): Use
7846	TYPE_VECTOR_SUBPARTS and avoid relying on vector mode.
7847
78482018-10-19  H.J. Lu  <hongjiu.lu@intel.com>
7849
7850	PR target/72782
7851	* config/i386/sse.md
7852	(*<plusminus_insn><mode>3<mask_name>_bcst_1): New.
7853	(*add<mode>3<mask_name>_bcst_2): Likewise.
7854
78552018-10-19  H.J. Lu  <hongjiu.lu@intel.com>
7856
7857	* config/i386/sse.md
7858	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1):
7859	Replace nonimmediate_operand with register_operand.
7860	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2):
7861	Likewise.
7862	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3):
7863	Likewise.
7864
78652018-10-19  Ilya Leoshkevich  <iii@linux.ibm.com>
7866
7867	PR rtl-optimization/87596
7868	* lra-constraints.c (spill_hard_reg_in_range): Use INSN_P () +
7869	lra_get_insn_recog_data () instead of lra_insn_recog_data[]
7870	for instructions in FROM..TO range.
7871
78722018-10-19  Eric Botcazou  <ebotcazou@adacore.com>
7873
7874	* cfgexpand.c (expand_one_var): Use specific wording in error message
7875	for non-local frame variables.
7876	* stor-layout.c (layout_decl): Do not issue a warning for them.
7877
78782018-10-19  Robin Dapp  <rdapp@linux.ibm.com>
7879
7880	* haifa-sched.c (priority): Add force_recompute parameter.
7881	(apply_replacement): Call priority () with force_recompute = true.
7882	(restore_pattern): Likewise.
7883
78842018-10-18  H.J. Lu  <hongjiu.lu@intel.com>
7885
7886	* simplify-rtx.c (simplify_subreg): Limit mask of vec_merge to
7887	HOST_BITS_PER_WIDE_INT.
7888	(test_vector_ops_duplicate): Likewise.
7889
78902018-10-18  H.J. Lu  <hongjiu.lu@intel.com>
7891
7892	PR target/72782
7893	* config/i386/sse.md (VF_AVX512): New.
7894	(avx512bcst): Likewise.
7895	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1):
7896	Likewise.
7897	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2):
7898	Likewise.
7899	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3):
7900	Likewise.
7901
79022018-10-18  Jonathan Wakely  <jwakely@redhat.com>
7903
7904	* doc/invoke.texi (-dumpversion): Improve grammar.
7905	(-dumpfullversion): Make more consistent with -dumpversion.
7906
79072018-10-18  Uros Bizjak  <ubizjak@gmail.com>
7908
7909	* config/i386/i386.c (ix86_emit_fp_unordered_jump):
7910	Set JUMP_LABEL to the jump insn.
7911	(ix86_emit_i387_log1p): Use ix86_expand_branch to expand branch.
7912	Predict emitted jump and add label to jump insn.
7913
79142018-10-18  David Malcolm  <dmalcolm@redhat.com>
7915
7916	PR tree-optimization/87562
7917	* input.c (get_substring_ranges_for_loc): Use
7918	LRK_SPELLING_LOCATION rather than LRK_MACRO_EXPANSION_POINT when
7919	getting the linemap for the endpoint.  Verify that it's either
7920	in the same linemap as the start point's spelling location, or
7921	at least in the same file.
7922
79232018-10-18  Richard Biener  <rguenther@suse.de>
7924
7925	* config/i386/i386.c (ix86_builtin_vectorization_cost): Do not
7926	feed width-specific load/store costs through ix86_vec_cost.
7927	* config/i386/x86-tune-costs.h (athlon_cost): Adjust.
7928	(k8_cost): Likewise.
7929	(bdver_cost): Likewise.
7930	(znver1_cost): Likewise.
7931	(btver1_cost): Likewise.
7932	(btver2_cost): Likewise.
7933
79342018-10-18  H.J. Lu  <hongjiu.lu@intel.com>
7935
7936	* simplify-rtx.c (simplify_subreg): Call simplify_gen_subreg
7937	to simplify subreg of vec_merge.
7938
79392018-10-18  Richard Biener  <rguenther@suse.de>
7940
7941	* config/i386/i386.c: Fix costing of vector FMA.
7942
79432018-10-18  Richard Biener  <rguenther@suse.de>
7944
7945	* config/i386/i386.c (ix86_vec_cost): Remove !parallel path
7946	and argument.
7947	(ix86_builtin_vectorization_cost): For vec_construct properly
7948	cost insertion into SSE regs.
7949	(...): Adjust calls to ix86_vec_cost.
7950
79512018-10-18  Richard Biener  <rguenther@suse.de>
7952
7953	PR middle-end/87087
7954	Revert
7955	2018-02-07  Richard Biener  <rguenther@suse.de>
7956
7957	PR tree-optimization/84204
7958	* tree-chrec.c (chrec_fold_plus_1): Remove size limiting in
7959	this place.
7960
79612018-10-18  H.J. Lu  <hongjiu.lu@intel.com>
7962
7963	PR target/87537
7964	* simplify-rtx.c (simplify_subreg): Simplify subreg of vec_merge
7965	of vec_duplicate.
7966	(test_vector_ops_duplicate): Add test for a scalar subreg of a
7967	VEC_MERGE of a VEC_DUPLICATE.
7968
79692018-10-17  Joseph Myers  <joseph@codesourcery.com>
7970
7971	* doc/cpp.texi (__STDC_VERSION__): Document C2X handling.
7972	* doc/invoke.texi (-std=c2x, -std=gnu2x): Document new options.
7973	* doc/standards.texi (C Language): Document C2X.
7974	* dwarf2out.c (highest_c_language), config/rl78/rl78.c
7975	(rl78_option_override): Handle "GNU C2X" language name.
7976
79772018-10-17  Joseph Myers  <joseph@codesourcery.com>
7978
7979	* doc/invoke.texi (-std=c17), doc/standards.texi (C Language):
7980	Document C17 as published in 2018.
7981
79822018-10-17  Eric Botcazou  <ebotcazou@adacore.com>
7983
7984	PR middle-end/87623
7985	* fold-const.c (fold_truth_andor_1): If the right side is not constant,
7986	bail out if both sides do not have the same storage order.
7987
79882018-10-17  Aldy Hernandez  <aldyh@redhat.com>
7989
7990	* bitmap.c (bitmap_head::dump): New.
7991	* bitmap.h (bitmap_head): Add dump().
7992	* gimple-ssa-evrp-analyze.c
7993	(evrp_range_analyzer::try_find_new_range): Adjust for value_range API.
7994	(evrp_range_analyzer::set_ssa_range_info): Same.
7995	(evrp_range_analyzer::record_ranges_from_phis): Same.
7996	(evrp_range_analyzer::record_ranges_from_stmt): Same.
7997	* gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Same.
7998	* gimple-ssa-sprintf.c (get_int_range): Same.
7999	(format_integer): Same.
8000	(sprintf_dom_walker::handle_gimple_call): Same.
8001	* ipa-cp.c (ipcp_vr_lattice::meet_with_1): Same.
8002	(ipcp_vr_lattice::top_p): Same.
8003	(ipcp_vr_lattice::bottom_p): Same.
8004	(ipcp_vr_lattice::set_to_bottom): Same.
8005	(ipa_vr_operation_and_type_effects): Same.
8006	(propagate_vr_across_jump_function): Same.
8007	(ipcp_store_vr_results): Same.
8008	* ipa-prop.c (struct ipa_vr_ggc_hash_traits): Same.
8009	(ipa_print_node_jump_functions_for_edge): Same.
8010	(ipa_get_value_range): Same.
8011	(ipa_compute_jump_functions_for_edge): Same.
8012	(ipa_write_jump_function): Same.
8013	* tree-ssa-dom.c (simplify_stmt_for_jump_threading): Same.
8014	* tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
8015	Same.
8016	* vr-values.c (set_value_range_to_nonnegative): Same.
8017	(set_value_range_to_truthvalue): Same.
8018	(vr_values::get_value_range): Same.
8019	(vr_values::set_defs_to_varying): Same.
8020	(vr_values::update_value_range): Same.
8021	(symbolic_range_based_on_p): Same.
8022	(vr_values::op_with_boolean_value_range_p): Same.
8023	(vr_values::extract_range_for_var_from_comparison_expr): Same.
8024	(vr_values::extract_range_from_ssa_name): Same.
8025	(vr_values::extract_range_from_binary_expr): Same.
8026	(vr_values::extract_range_from_unary_expr): Same.
8027	(vr_values::extract_range_from_cond_expr): Same.
8028	(vr_values::extract_range_from_comparison): Same.
8029	(vr_values::check_for_binary_op_overflow): Same.
8030	(vr_values::extract_range_basic): Same.
8031	(vr_values::extract_range_from_assignment): Same.
8032	(compare_ranges): Same.
8033	(compare_range_with_value): Same.
8034	(vr_values::adjust_range_with_scev): Same.
8035	(vrp_valueize): Same.
8036	(vrp_valueize_1): Same.
8037	(vr_values::get_vr_for_comparison): Same.
8038	(vr_values::compare_name_with_value): Same.
8039	(vr_values::compare_names): Same.
8040	(vr_values::vrp_evaluate_conditional): Same.
8041	(find_case_label_ranges): Same.
8042	(vr_values::vrp_visit_switch_stmt): Same.
8043	(vr_values::extract_range_from_phi_node): Same.
8044	(vr_values::simplify_div_or_mod_using_ranges): Same.
8045	(vr_values::simplify_bit_ops_using_ranges): Same.
8046	(test_for_singularity): Same.
8047	(range_fits_type_p): Same.
8048	(vr_values::simplify_cond_using_ranges_1): Same.
8049	(vr_values::simplify_switch_using_ranges): Same.
8050	(vr_values::simplify_float_conversion_using_ranges): Same.
8051	(vr_values::two_valued_val_range_p): Same.
8052	(vr_values::add_equivalence): Move to value_range::equiv_add.
8053	* vr-values.h (vr_values::add_equivalence): Remove.
8054	(VR_INITIALIZER): Remove.
8055	* tree-vrp.c (value_range::set): New.
8056	(value_range::equiv_add): New.
8057	(value_range::value_range): New.
8058	(value_range::deep_copy): New.
8059	(value_range::check): New.
8060	(value_range::equal_p): New.
8061	(value_range::ignore_equivs_equal_p): New.
8062	(value_range::operator==): New.
8063	(value_range::operator!=): New.
8064	(value_range::symbolic_p): New.
8065	(value_range::numeric_p): New.
8066	(value_range::set_undefined): New.
8067	(value_range::set_varying): New.
8068	(value_range::may_contain_p): New.
8069	(value_range::equiv_clear): New.
8070	(value_range::singleton_p): New.
8071	(value_range::intersect): New.
8072	(value_range::dump): New.
8073	(value_range::set_and_canonicalize): New.
8074	(set_value_range): Adjust for value_range API.
8075	(set_value_range_to_undefined): Same.
8076	(set_value_range_to_varying): Same.
8077	(set_and_canonicalize_value_range): Same.
8078	(set_value_range_to_nonnull): Same.
8079	(set_value_range_to_null): Same.
8080	(range_is_null): Same.
8081	(range_is_nonnull): Same.
8082	(range_int_cst_p): Same.
8083	(range_int_cst_singleton_p): Same.
8084	(symbolic_range_p): Same.
8085	(range_includes_zero_p): Same.
8086	(value_range_constant_singleton): Same.
8087	(vrp_set_zero_nonzero_bits): Same.
8088	(ranges_from_anti_range): Same.
8089	(extract_range_into_wide_ints): Same.
8090	(extract_range_from_multiplicative_op): Same.
8091	(set_value_range_with_overflow): Same.
8092	(extract_range_from_binary_expr_1): Same.
8093	(extract_range_from_unary_expr): Same.
8094	(dump_value_range): Same.
8095	(debug_value_range): Same.
8096	(vrp_prop::check_array_ref): Same.
8097	(vrp_prop::check_mem_ref): Same.
8098	(vrp_prop::vrp_initialize): Same.
8099	(vrp_prop::visit_stmt): Same.
8100	(intersect_ranges): Same.
8101	(vrp_prop::visit_phi): Same.
8102	(vrp_prop::vrp_finalize): Same.
8103	(determine_value_range_1): Same.
8104	(determine_value_range): Same.
8105	(vrp_intersect_ranges_1): Rename to...
8106	(vrp_intersect_1): this.
8107	(vrp_intersect_ranges): Rename to...
8108	(value_range::intersect_helper): ...this.
8109	(vrp_meet_1): Rename to...
8110	(value_range::union_helper): ...this.
8111	(vrp_meet): Rename to...
8112	(value_range::union_): ...this.
8113	(copy_value_range): Remove.
8114	* tree-vrp.h (struct value_range): Rewrite into a proper class.
8115	(value_range::vrtype): New.
8116	(value_range::type): New.
8117	(value_range::equiv): New.
8118	(value_range::min): New.
8119	(value_range::max): New.
8120	(value_range::varying_p): New.
8121	(value_range::undefined_p): New.
8122	(value_range::null_p): New.
8123	(value_range::equiv_add): New.
8124	(copy_value_range): Remove.
8125
81262018-10-17  David Malcolm  <dmalcolm@redhat.com>
8127
8128	* Makefile.in (SELFTEST_TARGETS): New.
8129	(selftest) Change from s-selftest-c to $(SELFTEST_TARGETS).
8130	(C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb)
8131	(selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move to
8132	c/Make-lang.in.
8133	(CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++)
8134	(selftest-c++-gdb, selftest-c++-valgrind): Move to
8135	cp/Make-lang.in.
8136	* configure: Regenerate.
8137	* configure.ac (selftest_languages): New.
8138
81392018-10-17  Aldy Hernandez  <aldyh@redhat.com>
8140
8141	* tree-vrp.c (extract_range_from_multiplicative_op): Remove
8142	overflow wraps argument.
8143	(extract_range_from_binary_expr_1): Do not pass overflow wraps to
8144	wide_int_range_multiplicative_op.
8145	* wide-int-range.cc (wide_int_range_mult_wrapping): Remove
8146	overflow wraps argument.
8147	(wide_int_range_multiplicative_op): Same.
8148	(wide_int_range_lshift): Same.
8149	(wide_int_range_div): Same.
8150	* wide-int-range.h (wide_int_range_multiplicative_op): Same.
8151	(wide_int_range_lshift): Same.
8152	(wide_int_range_div): Same.
8153
81542018-10-17  Aldy Hernandez  <aldyh@redhat.com>
8155
8156	* wide-int-range.h (wide_int_range_shift_undefined_p): Adjust to
8157	use sign as argument.
8158	* tree-vrp.c (extract_range_from_binary_expr_1): Pass sign to
8159	wide_int_range_shift_undefined_p.
8160
81612018-10-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8162
8163	* config/aarch64/aarch64.md (despeculate_copy<ALLI_TI:mode>):
8164	Rename to...
8165	(@despeculate_copy<ALLI_TI:mode>): ... This.
8166	* config/aarch64/aarch64.c (aarch64_speculation_safe_value): Remove
8167	switch statement.
8168
81692018-10-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8170
8171	* config.gcc: Obsolete *-*-solaris2.10*.
8172	* doc/install.texi (Specific, *-*-solaris2*): Document it.
8173
81742018-10-12  Jeff Law  <law@redhat.com>
8175
8176	* config/ft32/ft32.md (ft32_general_movsrc_operand): Disable
8177	reg + sym +- const_int addressing modes.
8178
81792018-10-15  David Malcolm  <dmalcolm@redhat.com>
8180
8181	* common.opt (fdiagnostics-minimum-margin-width=): New option.
8182	* diagnostic-show-locus.c (layout::layout): Apply the minimum
8183	margin width.
8184	(layout::start_annotation_line): Only print up to 3 of the
8185	margin character, to avoid touching the left-hand side.
8186	(selftest::test_diagnostic_show_locus_fixit_lines): Update for
8187	minimum margin width, as set by test_diagnostic_context's ctor.
8188	(selftest::test_fixit_insert_containing_newline): Likewise.
8189	(selftest::test_fixit_insert_containing_newline_2): Likewise.
8190	(selftest::test_line_numbers_multiline_range): Clear
8191	dc.min_margin_width.
8192	* diagnostic.c (diagnostic_initialize): Initialize
8193	min_margin_width.
8194	* diagnostic.h (struct diagnostic_context): Add field
8195	"min_margin_width".
8196	* doc/invoke.texi: Add -fdiagnostics-minimum-margin-width=.
8197	* opts.c (common_handle_option): Handle
8198	OPT_fdiagnostics_minimum_margin_width_.
8199	* selftest-diagnostic.c
8200	(selftest::test_diagnostic_context::test_diagnostic_context):
8201	Initialize min_margin_width to 6.
8202	* toplev.c (general_init): Initialize global_dc->min_margin_width.
8203
82042018-10-15  David Malcolm  <dmalcolm@redhat.com>
8205
8206	* gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
8207	Fix usage of "error_at_rich_loc" in the comment.
8208
82092018-10-15  Renlin Li  <renlin.li@arm.com>
8210
8211	PR target/87563
8212	* tree-vectorizer.c (try_vectorize_loop_1): Don't use
8213	if-conversioned loop when it contains ifn with types not
8214	supported by backend.
8215	* internal-fn.c (expand_direct_optab_fn): Add an assert.
8216	(direct_internal_fn_supported_p): New helper function.
8217	* internal-fn.h (direct_internal_fn_supported_p): Declare.
8218
82192018-10-15  Jakub Jelinek  <jakub@redhat.com>
8220
8221	PR target/87572
8222	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET):
8223	Remove OPTION_MASK_ISA_AVX5124FMAPS_UNSET and
8224	OPTION_MASK_ISA_AVX5124VNNIW_UNSET.
8225
82262018-10-15  Bin Cheng  <bin.cheng@linux.alibaba.com>
8227
8228	PR tree-optimization/87022
8229	* tree-loop-distribution.c (pg_add_dependence_edges): Check all
8230	bits in dist vector rather than the first one.
8231
82322018-10-15  Richard Biener  <rguenther@suse.de>
8233
8234	PR middle-end/87610
8235	* tree-ssa-structalias.c (struct vls_data): Add escaped_p member.
8236	(visit_loadstore): When a used restrict tag escaped verify that
8237	the points-to solution of "other" pointers do not include
8238	escaped.
8239	(compute_dependence_clique): If a used restrict tag escaped
8240	communicated that down to visit_loadstore.
8241
82422018-10-15  Andreas Krebbel  <krebbel@linux.ibm.com>
8243
8244	* config/s390/s390.c (s390_expand_vec_init): Force vector element
8245	into reg if it isn't a general operand.
8246
82472018-10-14  H.J. Lu  <hongjiu.lu@intel.com>
8248
8249	PR target/87599
8250	* config/i386/sse.md (*vec_dupv2di): Add register source to
8251	movddup.
8252
82532018-10-14  H.J. Lu  <hongjiu.lu@intel.com>
8254
8255	PR target/87572
8256	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET):
8257	Add OPTION_MASK_ISA_AVX512IFMA_UNSET,
8258	OPTION_MASK_ISA_AVX5124FMAPS_UNSET and
8259	OPTION_MASK_ISA_AVX5124VNNIW_UNSET.
8260
82612018-10-13  Eric Botcazou  <ebotcazou@adacore.com>
8262
8263	* dwarf2cfi.c (struct dw_trace_info): Add args_size_defined_for_eh.
8264	(notice_args_size): Set it in the current trace if no insn that can
8265	throw internally has been seen yet.
8266	(connect_traces): When connecting args_size between traces, allow the
8267	incoming values not to match if there is an insn setting it before the
8268	first insn that can throw internally; in that case, force the creation
8269	of a CFI note on this latter insn.
8270
82712018-10-13  Jonathan Wakely  <jwakely@redhat.com>
8272
8273	* opt-problem.h (opt_wrapper): Use template-argument-list when naming
8274	the base class, because using the injected-class-name was not clearly
8275	specified until DR 176.
8276
82772018-10-12  Paul Koning  <ni1d@arrl.net>
8278
8279	* config/pdp11/pdp11.md (doloop_end): New expander.
8280	(doloop_end_insn): renamed from "doloop_end".
8281	(addqi3): New pattern.
8282	(subqi3): New pattern.
8283	* config/pdp11/predicates.md (incdec_operand): New predicate.
8284
82852018-10-12  Yury Gribov  <tetra2005@gmail.com>
8286
8287	PR middle-end/81376
8288	* real.c (format_helper::can_represent_integral_type_p): New function
8289	* real.h (format_helper::can_represent_integral_type_p): Ditto.
8290	* match.pd: New pattern.
8291
82922018-10-12  Alexandre Oliva  <oliva@adacore.com>
8293
8294	* configure.ac: Introduce --enable-large-address-aware
8295	to define MINGW_DEFAULT_LARGE_ADDR_AWARE.
8296	* doc/install.texi: Document it.
8297	* configure, config.in: Rebuilt.
8298	* config/i386/mingw32.h (LINK_SPEC_LARGE_ADDR_AWARE): Define,
8299	based on MINGW_DEFAULT_LARGE_ADDR_AWARE.
8300	(LINK_SPEC): Insert it.
8301	* config/i386/mingw-w64.h: Likewise.
8302
8303	* cygming.h (HAVE_GAS_ALIGNED_COMM): Fallback-define.
8304
83052018-10-12  Peter Bergner  <bergner@linux.ibm.com>
8306
8307	PR rtl-optimization/87600
8308	* ira-lives (non_conflicting_reg_copy_p): Disable for non LRA targets.
8309
83102018-10-12  Paul Koning  <ni1d@arrl.net>
8311
8312	* doc/md.texi (doloop_end): Document that the pattern code may
8313	need to check operand mode.
8314
83152018-10-12  Wilco Dijkstra  <wdijkstr@arm.com>
8316
8317	* config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Add alternatives
8318	to zero-extend between int and floating-point registers.
8319	(load_pair_zero_extendsidi2_aarch64): Add alternative for zero-extended
8320	ldp into floating-point registers.  Add type and arch attributes.
8321	(zero_extend<SHORT:mode><GPI:mode>2_aarch64): Add arch attribute.
8322	Use f_loads for type attribute.
8323
83242018-10-11  Martin Sebor  <msebor@redhat.com>
8325
8326	* doc/extend.texi (attribute packed): Correct typos.
8327
83282018-10-11  Martin Sebor  <msebor@redhat.com>
8329
8330	* doc/extend.texi (attribute flatten): Mention interaction with
8331	noinline.
8332
83332018-10-11  Jan Hubicka  <hubicka@ucw.cz>
8334
8335	PR target/87156
8336	* cgraphclones.c (cgraph_node::create_version_clone_with_body):
8337	Set new_decl virtual flag to zero.
8338
83392018-10-11  Martin Sebor  <msebor@redhat.com>
8340
8341	PR middle-end/87593
8342	* doc/extend.texi (attribute format_arg): Discuss using multiple
8343	attributes on a single function.
8344
83452018-10-11  Giuliano Belinassi  <giuliano.belinassi@usp.br>
8346
8347	PR tree-optimization/86829
8348	* match.pd (sin (atan (x))): New simplification rules.
8349	(cos (atan (x))): Likewise.
8350	* real.c (build_sinatan_real): New function.
8351	* real.h (build_sinatan_real): Prototype.
8352
83532018-10-11  Will Schmidt  <will_schmidt@vnet.ibm.com>
8354
8355	* config/rs6000/rs6000.c (map_to_integral_tree_type): New helper
8356	function.
8357	(fold_mergeeo_helper): New helper function.
8358	(rs6000_gimple_fold_builtin): Add hooks for vec_mergee and vec_mergeo
8359	intrinsics.  Correct some whitespace indentation issues.
8360
83612018-10-11  Wilco Dijkstra  <wdijkstr@arm.com>
8362
8363	PR target/87511
8364	* config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
8365	Use HOST_WIDE_INT_1U for shift.
8366
83672018-10-11  Doug Rupp  <rupp@adacore.com>
8368	    Olivier Hainque  <hainque@adacore.com>
8369
8370	* config/rs6000/vxworks.h (VXWORKS_RELAX_LINK_SPEC): New macro.
8371	Pass --relax to the linker for RTPs.
8372	(LINK_SPEC): Append VXWORKS_RELAX_LINK_SPEC.
8373
83742018-10-11  Andrew Stubbs  <ams@codesourcery.com>
8375	    Jan Hubicka  <jh@suse.cz>
8376	    Martin Jambor  <mjambor@suse.cz>
8377
8378	* print-rtl.c (print_rtx_operand_codes_E_and_V): Print how many times
8379	the same elements are repeated rather than printing all of them.
8380	* read-rtl.c (rtx_reader::read_rtx_operand): Recognize and expand
8381	"repeated" elements.
8382	* read-rtl-function.c (test_loading_repeat): New function.
8383	(read_rtl_function_c_tests): Call test_loading_repeat.
8384	* rtl-tests.c (test_dumping_repeat): New function.
8385	(rtl_tests_c_tests): Call test_dumping_repeat.
8386
83872018-10-11  Richard Biener  <rguenther@suse.de>
8388
8389	* config/i386/x86-tune-costs.h (bdver?_memcpy, bdver?_memset,
8390	bdver?_cost): Unify to ...
8391	(bdver_memcpy, bdver_memset, bdver_cost): ... this.
8392	* config/i386/i386.c (processor_cost_table): Adjust.
8393
83942018-10-10  Eric Botcazou  <ebotcazou@adacore.com>
8395
8396	PR middle-end/87574
8397	* cgraphunit.c (cgraph_node::expand_thunk): Force DECL_IGNORED_P on
8398	the thunk when expanding to GIMPLE.
8399
84002018-10-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8401
8402	PR bootstrap/87551
8403	* varasm.c (mergeable_string_section): Don't try to move zero-length
8404	strings to the merge section.
8405
84062018-10-10  Uros Bizjak  <ubizjak@gmail.com>
8407
8408	PR target/87573
8409	* config/i386/mmx.md (const_vector 0 -> mem splitter): New splitter.
8410
84112018-10-10  Jakub Jelinek  <jakub@redhat.com>
8412
8413	PR target/87550
8414	* config/i386/i386-builtin.def (IX86_BUILTIN_RDPMC): Move from args set
8415	to special_args set.
8416
84172018-10-10  Richard Biener  <rguenther@suse.de>
8418
8419	* config/i386/sse.md (reduc_plus_scal_v8df, reduc_plus_scal_v4df,
8420	reduc_plus_scal_v2df, reduc_plus_scal_v16sf, reduc_plus_scal_v8sf,
8421	reduc_plus_scal_v4sf): Merge into pattern reducing to half width
8422	and recursing and pattern terminating the recursion on SSE
8423	vector width using ix86_expand_reduc.
8424	(reduc_sminmax_scal_<mode>): Split into part reducing to half
8425	width and recursing and SSE2 vector variant doing the final
8426	reduction with ix86_expand_reduc.
8427	(reduc_uminmax_scal_<mode>): Likewise for the AVX512 variants
8428	with terminating the recursion at AVX level, splitting that
8429	to SSE there.
8430
84312018-10-09  David Malcolm  <dmalcolm@redhat.com>
8432
8433	* genmatch.c (error_cb): Rename to...
8434	(diagnostic_cb): ...this, converting int params to enums.
8435	(fatal_at): Update for renaming.
8436	(warning_at): Likewise.
8437	(main): Likewise.
8438	* input.c (selftest::ebcdic_execution_charset::apply):
8439	Update for renaming of...
8440	(selftest::ebcdic_execution_charset::on_error): ...this, renaming
8441	to...
8442	(selftest::ebcdic_execution_charset::on_diagnostic): ...this,
8443	converting level and reason to enums.
8444	(class selftest::lexer_error_sink): Rename to...
8445	(class selftest::lexer_test_options): ...this, renaming field
8446	"m_errors" to "m_diagnostics".
8447	(selftest::lexer_test_options::apply): Update for renaming of...
8448	(selftest::lexer_test_options::on_error): ...this, renaming to...
8449	(selftest::lexer_test_options::on_diagnostic): ...this
8450	converting level and reason to enums.
8451	(selftest::test_lexer_string_locations_raw_string_unterminated):
8452	Update for renamings.
8453	* opth-gen.awk (struct cpp_reason_option_codes_t): Use enum for
8454	"reason".
8455
84562018-10-09  Paul A. Clarke  <pc@us.ibm.com>
8457
8458	* config.gcc (powerpc*-*-*): Add pmmintrin.h to extra_headers.
8459	* config/rs6000/pmmintrin.h: New file.
8460
84612018-10-09  Eric Botcazou  <ebotcazou@adacore.com>
8462
8463	PR tree-optimization/86659
8464	* gimple-match.h (gimple_match_op constructors): Initialize reverse.
8465
84662018-10-09  Richard Biener  <rguenther@suse.de>
8467
8468	PR tree-optimization/63155
8469	* tree-ssa-structalias.c: Include tree-ssa.h.
8470	(get_constraint_for_ssa_var): For undefs return nothing_id.
8471	(find_func_aliases): Cleanup PHI handling.
8472
84732018-10-09  Richard Biener  <rguenther@suse.de>
8474
8475	* tree-vectorizer.c (dump_stmt_cost): Fix cut&paste missing
8476	replacements.
8477
84782018-10-09  Martin Liska  <mliska@suse.cz>
8479
8480	* asan.c (asan_emit_stack_protection): If a stack variable
8481	is located in a same file as current function, then emit
8482	line info into variable definition string.
8483
84842018-10-08  Eric Botcazou  <ebotcazou@adacore.com>
8485
8486	* print-rtl.c (rtx_writer::print_rtx_operand_code_i): Print column
8487	information.
8488
84892018-10-08  Eric Botcazou  <ebotcazou@adacore.com>
8490
8491	* cgraphunit.c (cgraph_node::expand_thunk): Do not force DECL_IGNORED_P
8492	on the thunk.
8493
84942018-10-08  Eric Botcazou  <ebotcazou@adacore.com>
8495
8496	PR tree-optimization/86659
8497	* gimple-match.h (struct gimple_match_op): Add reverse field.
8498	(gimple_match_op::set_op): New overloaded method.
8499	* gimple-match-head.c (maybe_build_generic_op) <BIT_FIELD_REF>: Set
8500	the REF_REVERSE_STORAGE_ORDER flag on the value.
8501	(gimple_simplify) <GIMPLE_ASSIGN>: For BIT_FIELD_REF, propagate the
8502	REF_REVERSE_STORAGE_ORDER flag and avoid simplifying if it is set.
8503
85042018-10-08  Richard Sandiford  <richard.sandiford@arm.com>
8505
8506	PR middle-end/63155
8507	* gimple-ssa-backprop.c (backprop::intersect_uses): Use
8508	FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT.
8509
85102018-10-08  H.J. Lu  <hongjiu.lu@intel.com>
8511
8512	PR target/87517
8513	* config/i386/avx512fintrin.h (_mm512_mask_fmaddsub_round_pd):
8514	Defined with __builtin_ia32_vfmaddsubpd512_mask.
8515
85162018-10-08  Richard Biener  <rguenther@suse.de>
8517
8518	* config/i386/x86-tune-costs.h (znver1_cost): Make AVX256 vector loads
8519	cost the same as AVX128 ones.
8520
85212018-10-08  Paul Koning  <ni1d@arrl.net>
8522
8523	* config/pdp11/pdp11-protos.h (output_block_move): Remove.
8524	(expand_block_move): New function.
8525	* config/pdp11/pdp11.c (output_block_move): Remove.
8526	(expand_block_move): New function.
8527	* config/pdp11/pdp11.h (MOVE_RATIO): New definition.
8528	* config/pdp11/pdp11.md (movmemhi): Use expand_block_move.
8529	(*movmemhi1): Remove.
8530
85312018-10-08  Robin Dapp  <rdapp@linux.ibm.com>
8532
8533	* config/s390/2827.md: Increase latencies for some FP instructions.
8534
85352018-10-08  Richard Biener  <rguenther@suse.de>
8536
8537	* tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
8538	Open a dump scope.
8539	* tree-vectorizer.c (dump_stmt_cost): Add cost param and dump it.
8540	* tree-vectorizer.h (dump_stmt_cost): Adjust.
8541	(add_stmt_cost): Dump return value of the hook.
8542
85432018-10-08  Richard Biener  <rguenther@suse.de>
8544
8545	PR tree-optimization/63155
8546	* tree-ssa-propagate.c (add_ssa_edge): Do cheap check first.
8547	(ssa_propagation_engine::ssa_propagate): Remove redundant
8548	bitmap bit clearing.
8549
85502018-10-05  Peter Bergner  <bergner@linux.ibm.com>
8551
8552	PR rtl-optimization/86939
8553	PR rtl-optimization/87479
8554	* ira.h (non_conflicting_reg_copy_p): New prototype.
8555	* ira-lives.c (ignore_reg_for_conflicts): New static variable.
8556	(make_hard_regno_dead): Don't add conflicts for register
8557	ignore_reg_for_conflicts.
8558	(make_object_dead): Likewise.
8559	(non_conflicting_reg_copy_p): New function.
8560	(process_bb_node_lives): Set ignore_reg_for_conflicts for copies.
8561	Remove special conflict handling of REAL_PIC_OFFSET_TABLE_REGNUM.
8562	* lra-lives.c (ignore_reg_for_conflicts): New static variable.
8563	(make_hard_regno_dead): Don't add conflicts for register
8564	ignore_reg_for_conflicts.  Remove special conflict handling of
8565	REAL_PIC_OFFSET_TABLE_REGNUM.  Remove now unused argument
8566	check_pic_pseudo_p and update callers.
8567	(mark_pseudo_dead): Don't add conflicts for register
8568	ignore_reg_for_conflicts.
8569	(process_bb_lives): Set ignore_reg_for_conflicts for copies.
8570
85712018-10-05  Andrew Waterman  <andrew@sifive.com>
8572	    Jim Wilson  <jimw@sifive.com>
8573
8574	* config/riscv/riscv.md (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4):
8575	Add define_expand.  Add ! HONOR_SNANS check to current pattern.  Add
8576	new pattern using HONOR_SNANS that emits one extra instruction.
8577
85782018-10-05  Segher Boessenkool  <segher@kernel.crashing.org>
8579
8580	* config/rs6000/rs6000.md (unnamed mfcr scc_comparison_operator
8581	patterns): Merge SI and DI patterns to a GPR pattern.
8582	(unnamed define_insn and define_split for record form of that): Merge
8583	to a single define_insn_and_split pattern.
8584
85852018-10-05  David Malcolm  <dmalcolm@redhat.com>
8586
8587	PR c++/56856
8588	* input.c (expand_location_to_spelling_point): Add param "aspect"
8589	and use rather than hardcoding LOCATION_ASPECT_CARET.
8590	(get_substring_ranges_for_loc): Handle the case of a single token
8591	within a macro expansion.
8592	* input.h (expand_location_to_spelling_point): Add "aspect" param,
8593	defaulting to LOCATION_ASPECT_CARET.
8594
85952018-10-05  Paul Koning  <ni1d@arrl.net>
8596
8597	* config/pdp11/pdp11.c (TARGET_CXX_GUARD_TYPE): Define.
8598	(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define.
8599	(TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
8600	(pdp11_guard_type): New function.
8601
86022018-10-05  Paul Koning  <ni1d@arrl.net>
8603
8604	* config/pdp11/pdp11.h (FLOAT_TYPE_SIZE): Always 32.
8605	* config/pdp11/pdp11.opt (mfloat32): Remove.
8606	(mfloat64): Remove.
8607	* doc/invoke.texi (pdp11 -mfloat32): Remove:
8608	(pdp11 -mfloat64): Remove.
8609
86102018-10-05  Uros Bizjak  <ubizjak@gmail.com>
8611
8612	* config/i386/i386.md (*cmpxf_cc_i387): Remove pattern.
8613	(*cmp<mode>_cc_i387): Ditto.
8614	(*cmpu<mode>_cc_i387): Ditto.
8615	(*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
8616	* config/i386/i386.c (ix86_expand_fp_compare): Remove
8617	"scratch" argument.
8618	<case IX86_FPCMP_SAHF>: Do not generate pattern with HImode clobber.
8619	Emit x86_sahf_1 pattern.
8620	(ix86_expand_compare): Update call to ix86_expand_fp_compare.
8621	(ix86_expand_carry_flag_compare): Ditto.
8622
86232018-10-05  Uros Bizjak  <ubizjak@gmail.com>
8624
8625	* config/i386/i386.md (*cmpxf_i387): Change operand 2 predicate
8626	to reg_or_0_operand.  Add "C" constraint.
8627	(*cmpxf_cc_i387): Ditto.
8628	(*cmp<mode>_i387): Change operand 2 predicate
8629	to nonimm_or_0_operand.  Add "C" constraint.
8630	(*cmp<mode>_cc_i387): Ditto.
8631	(*cmp<mode>_0_i387): Remove insn pattern.
8632	(*cmp<mode>_0_cc_i387): Ditto.
8633
86342018-10-05  Uros Bizjak  <ubizjak@gmail.com>
8635
8636	* config/i386/constraints.md ("C"): Do not depend on TARGET_SSE.
8637	* config/i386/predicates.md (nonimm_or_0_operand): Rename
8638	from vector_move_operand.  Update all uses.
8639
86402018-10-05  Martin Sebor  <msebor@redhat.com>
8641
8642	PR tree-optimization/87490
8643	* builtins.c (expand_builtin_strnlen): Handle a null data.decl
8644	consistently.
8645
86462018-10-05  Richard Biener  <rguenther@suse.de>
8647
8648	PR tree-optimization/63155
8649	* tree-ssa-ccp.c (ccp_propagate::visit_phi): Avoid excess
8650	vertical space in dumpfiles.
8651	* tree-ssa-propagate.h
8652	(ssa_propagation_engine::process_ssa_edge_worklist): Remove.
8653	* tree-ssa-propagate.c (cfg_blocks_back): New global.
8654	(ssa_edge_worklist_back): Likewise.
8655	(curr_order): Likewise.
8656	(cfg_blocks_get): Remove abstraction.
8657	(cfg_blocks_add): Likewise.
8658	(cfg_blocks_empty_p): Likewise.
8659	(add_ssa_edge): Add to current or next worklist based on
8660	RPO index.
8661	(add_control_edge): Likewise.
8662	(ssa_propagation_engine::process_ssa_edge_worklist): Fold
8663	into ...
8664	(ssa_propagation_engine::ssa_propagate): ... here.  Unify
8665	iteration from CFG and SSA edge worklist so we process
8666	everything in RPO order, prioritizing forward progress
8667	over iteration.
8668	(ssa_prop_init): Allocate new worklists, do not dump
8669	immediate uses.
8670	(ssa_prop_fini): Free new worklists.
8671
86722018-10-05  Richard Biener  <rguenther@suse.de>
8673
8674	* tree-core.h (tree_block::abstract_flag): Remove.
8675	(tree_block::block_num): Make full 32bits.
8676	* tree.def (BLOCK): Remove docs about BLOCK_ABSTRACT.
8677	* tree.h (BLOCK_ABSTRACT): Remove.
8678	* dwarf2out.c (gen_lexical_block_die): Remove dead code
8679	resulting from BLOCK_ABSTRACT being always false.
8680	(gen_inlined_subroutine_die): Likewise.
8681	(gen_block_die): Likewise.
8682	* tree.c (block_ultimate_origin): Likewise.
8683	* tree-pretty-print.c (dump_block_node): Remove code dealing
8684	with BLOCK_ABSTRACT.
8685	* tree-ssa-live.c (dump_scope_block): Likewise.
8686	* tree-streamer-in.c (unpack_ts_block_value_fields): Likewise.
8687	* tree-streamer-out.c (pack_ts_block_value_fields): Likewise.
8688
86892018-10-05   Richard Biener  <rguenther@suse.de>
8690
8691	* config/i386/i386.c (ix86_add_stmt_cost): When scalar cost
8692	is asked for initialize mode to the component mode of the
8693	vector type.
8694
86952018-10-05  H.J. Lu  <hongjiu.lu@intel.com>
8696
8697	PR target/87522
8698	* config/i386/gnu-user.h (ASM_SPEC): Don't pass -msse2avx to
8699	assembler for -mavx.
8700	* config/i386/gnu-user64.h (ASM_SPEC): Likewise.
8701
87022018-10-05  Segher Boessenkool  <segher@kernel.crashing.org>
8703
8704	PR target/87509
8705	* config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_SET_FPSCR_DRN): Use
8706	RS6000_BTM_DFP.
8707	* config/rs6000/rs6000.md (rs6000_set_fpscr_rn): Require the operand
8708	to be DImode.  When using mffscrn, force the operand to a register.
8709
87102018-10-04  Uros Bizjak  <ubizjak@gmail.com>
8711
8712	* config/i386/i386.md (*fop_<X87MODEF:mode>_2_i387): Macroize insn
8713	from *fop_<MODEF:mode>_2_i387 and *fop_xf_2_i387 using
8714	X87MODEF mode iterator.
8715	(*fop_<X87MODEF:mode>_3_i387): Macroize insn from
8716	*fop_<MODEF:mode>_3_i387 and *fop_xf_3_i387 using
8717	X87MODEF mode iterator.
8718
87192018-10-04  Vinay Kumar  <vinay.kumar@blackfigtech.com>
8720
8721	* doc/invoke.texi (-Wno-prio-ctor-dtor): Document new warning
8722	-Wno-prio-ctor-dtor.
8723
87242018-10-04  David Malcolm  <dmalcolm@redhat.com>
8725
8726	* Makefile.in (OBJS): Add opt-problem.o.
8727	* dump-context.h: Include "selftest.h.
8728	(selftest::temp_dump_context): New forward decl.
8729	(class dump_context): Make friend of class
8730	selftest::temp_dump_context.
8731	(dump_context::dump_loc_immediate): New decl.
8732	(class dump_pretty_printer): Move here from dumpfile.c.
8733	(class temp_dump_context): Move to namespace selftest.
8734	(temp_dump_context::temp_dump_context): Add param
8735	"forcibly_enable_dumping".
8736	(selftest::verify_dumped_text):
8737	(ASSERT_DUMPED_TEXT_EQ): Move here from dumpfile.c.
8738	(selftest::verify_item):
8739	(ASSERT_IS_TEXT): Move here from dumpfile.c.
8740	(ASSERT_IS_TREE): Likewise.
8741	(ASSERT_IS_GIMPLE): Likewise.
8742	* dumpfile.c (dump_context::dump_loc): Move immediate dumping
8743	to...
8744	(dump_context::dump_loc_immediate): ...this new function.
8745	(class dump_pretty_printer): Move to dump-context.h.
8746	(dump_switch_p_1): Don't enable MSG_PRIORITY_REEMITTED.
8747	(opt_info_switch_p_1): Enable MSG_PRIORITY_REEMITTED.
8748	(temp_dump_context::temp_dump_context): Move to "selftest"
8749	namespace.  Add param "forcibly_enable_dumping", and use it to
8750	conditionalize the use of m_pp;
8751	(selftest::verify_dumped_text): Make non-static.
8752	(ASSERT_DUMPED_TEXT_EQ): Move to dump-context.h.
8753	(selftest::verify_item): Make non-static.
8754	(ASSERT_IS_TEXT): Move to dump-context.h.
8755	(ASSERT_IS_TREE): Likewise.
8756	(ASSERT_IS_GIMPLE): Likewise.
8757	(selftest::test_capture_of_dump_calls): Pass "true" for new
8758	param of temp_dump_context.
8759	* dumpfile.h (enum dump_flag): Add MSG_PRIORITY_REEMITTED, adding
8760	it to MSG_ALL_PRIORITIES.  Update values of TDF_COMPARE_DEBUG and
8761	TDF_COMPARE_DEBUG.
8762	* opt-problem.cc: New file.
8763	* opt-problem.h: New file.
8764	* optinfo-emit-json.cc
8765	(selftest::test_building_json_from_dump_calls): Pass "true" for
8766	new param of temp_dump_context.
8767	* optinfo.cc (optinfo_kind_to_dump_flag): New function.
8768	(optinfo::emit_for_opt_problem): New function.
8769	(optinfo::emit): Clarity which emit_item is used.
8770	* optinfo.h (optinfo::get_dump_location): New accessor.
8771	(optinfo::emit_for_opt_problem): New decl.
8772	(optinfo::emit): Make const.
8773	* selftest-run-tests.c (selftest::run_tests): Call
8774	selftest::opt_problem_cc_tests.
8775	* selftest.h (selftest::opt_problem_cc_tests): New decl.
8776	* tree-data-ref.c (dr_analyze_innermost): Convert return type from
8777	bool to opt_result, converting fprintf messages to
8778	opt_result::failure_at calls.  Add "stmt" param for use by the
8779	failure_at calls.
8780	(create_data_ref): Pass "stmt" to the dr_analyze_innermost call.
8781	(runtime_alias_check_p): Convert return type from bool to
8782	opt_result, converting dump_printf calls to
8783	opt_result::failure_at, using the statement DDR_A for their
8784	location.
8785	(find_data_references_in_stmt): Convert return type from bool to
8786	opt_result, converting "return false" to opt_result::failure_at
8787	with a new message.
8788	* tree-data-ref.h: Include "opt-problem.h".
8789	(dr_analyze_innermost): Convert return type from bool to opt_result,
8790	and add a const gimple * param.
8791	(find_data_references_in_stmt): Convert return type from bool to
8792	opt_result.
8793	(runtime_alias_check_p): Likewise.
8794	* tree-predcom.c (find_looparound_phi): Pass "init_stmt" to
8795	dr_analyze_innermost.
8796	* tree-vect-data-refs.c (vect_mark_for_runtime_alias_test):
8797	Convert return type from bool to opt_result, adding a message for
8798	the PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS zero case.
8799	(vect_analyze_data_ref_dependence): Convert return type from bool
8800	to opt_result.  Change sense of return type from "false"
8801	effectively meaning "no problems" to "false" meaning a problem,
8802	so that "return false" becomes "return opt_result::success".
8803	Convert "return true" calls to opt_result::failure_at, using
8804	the location of statement A rather than vect_location.
8805	(vect_analyze_data_ref_dependences): Convert return type from bool
8806	to opt_result.
8807	(verify_data_ref_alignment): Likewise, converting dump_printf_loc
8808	calls to opt_result::failure_at, using the stmt location rather
8809	than vect_location.
8810	(vect_verify_datarefs_alignment): Convert return type from bool
8811	to opt_result.
8812	(vect_enhance_data_refs_alignment): Likewise.  Split local "stat"
8813	into multiple more-tightly-scoped copies.
8814	(vect_analyze_data_refs_alignment): Convert return type from bool
8815	to opt_result.
8816	(vect_analyze_data_ref_accesses): Likewise, converting a
8817	"return false" to a "return opt_result::failure_at", adding a
8818	new message.
8819	(vect_prune_runtime_alias_test_list): Convert return type from
8820	bool to opt_result, converting dump_printf_loc to
8821	opt_result::failure_at.  Add a %G to show the pertinent statement,
8822	and use the stmt's location rather than vect_location.
8823	(vect_find_stmt_data_reference): Convert return type from
8824	bool to opt_result, converting dump_printf_loc to
8825	opt_result::failure_at, using stmt's location.
8826	(vect_analyze_data_refs):  Convert return type from bool to
8827	opt_result.  Convert "return false" to "return
8828	opt_result::failure_at", adding messages as needed.
8829	* tree-vect-loop.c (vect_determine_vf_for_stmt_1): Convert return
8830	type from bool to opt_result.
8831	(vect_determine_vf_for_stmt): Likewise.
8832	(vect_determine_vectorization_factor): Likewise, converting
8833	dump_printf_loc to opt_result::failure_at, using location of phi
8834	rather than vect_location.
8835	(vect_analyze_loop_form_1): Convert return type from bool to
8836	opt_result, converting dump_printf_loc calls, retaining the use of
8837	vect_location.
8838	(vect_analyze_loop_form): Convert return type from loop_vec_info
8839	to opt_loop_vec_info.
8840	(vect_analyze_loop_operations): Convert return type from bool to
8841	opt_result, converting dump_printf_loc calls, using the location
8842	of phi/stmt rather than vect_location where available.  Convert
8843	various "return false" to "return opt_result::failure_at" with
8844	"unsupported phi" messages.
8845	(vect_get_datarefs_in_loop): Convert return type from bool to
8846	opt_result.  Add a message for the
8847	PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS failure.
8848	(vect_analyze_loop_2): Convert return type from bool to
8849	opt_result.  Ensure "ok" is set to a opt_result::failure_at before
8850	each "goto again;", adding new messages where needed.
8851	Add "unsupported grouped {store|load}" messages.
8852	(vect_analyze_loop): Convert return type from loop_vec_info to
8853	opt_loop_vec_info.
8854	* tree-vect-slp.c (vect_analyze_slp): Convert return type from
8855	bool to opt_result.
8856	* tree-vect-stmts.c (process_use): Likewise, converting
8857	dump_printf_loc call and using stmt location, rather than
8858	vect_location.
8859	(vect_mark_stmts_to_be_vectorized): Likeise.
8860	(vect_analyze_stmt): Likewise, adding a %G.
8861	(vect_get_vector_types_for_stmt): Convert return type from bool to
8862	opt_result, converting dump_printf_loc calls and using stmt
8863	location, rather than vect_location.
8864	(vect_get_mask_type_for_stmt): Convert return type from tree to
8865	opt_tree, converting dump_printf_loc calls and using stmt location.
8866	* tree-vectorizer.c: Include "opt-problem.h.
8867	(try_vectorize_loop_1): Flag "Analyzing loop at" dump message as
8868	MSG_PRIORITY_INTERNALS.  Convert local "loop_vinfo" from
8869	loop_vec_info to opt_loop_vec_info.  If if fails, and dumping is
8870	enabled, use it to report at the top level "couldn't vectorize
8871	loop" followed by the problem.
8872	* tree-vectorizer.h (opt_loop_vec_info): New typedef.
8873	(vect_mark_stmts_to_be_vectorized): Convert return type from bool
8874	to opt_result.
8875	(vect_analyze_stmt): Likewise.
8876	(vect_get_vector_types_for_stmt): Likewise.
8877	(tree vect_get_mask_type_for_stmt): Likewise.
8878	(vect_analyze_data_ref_dependences): Likewise.
8879	(vect_enhance_data_refs_alignment): Likewise.
8880	(vect_analyze_data_refs_alignment): Likewise.
8881	(vect_verify_datarefs_alignment): Likewise.
8882	(vect_analyze_data_ref_accesses): Likewise.
8883	(vect_prune_runtime_alias_test_list): Likewise.
8884	(vect_find_stmt_data_reference): Likewise.
8885	(vect_analyze_data_refs): Likewise.
8886	(vect_analyze_loop): Convert return type from loop_vec_info to
8887	opt_loop_vec_info.
8888	(vect_analyze_loop_form): Likewise.
8889	(vect_analyze_slp): Convert return type from bool to opt_result.
8890
88912018-10-04  David Malcolm  <dmalcolm@redhat.com>
8892
8893	* doc/invoke.texi (-fopt-info): Document new "internals"
8894	sub-option.
8895	* dump-context.h (dump_context::apply_dump_filter_p): New decl.
8896	* dumpfile.c (dump_options): Update for renaming of MSG_ALL to
8897	MSG_ALL_KINDS.
8898	(optinfo_verbosity_options): Add "internals".
8899	(kind_as_string): Update for renaming of MSG_ALL to MSG_ALL_KINDS.
8900	(dump_context::apply_dump_filter_p): New member function.
8901	(dump_context::dump_loc): Use apply_dump_filter_p rather than
8902	explicitly masking the dump_kind.
8903	(dump_context::begin_scope): Increment the scope depth first.  Use
8904	apply_dump_filter_p rather than explicitly masking the dump_kind.
8905	(dump_context::emit_item): Use apply_dump_filter_p rather than
8906	explicitly masking the dump_kind.
8907	(dump_dec): Likewise.
8908	(dump_hex): Likewise.
8909	(dump_switch_p_1): Default to MSG_ALL_PRIORITIES.
8910	(opt_info_switch_p_1): Default to MSG_PRIORITY_USER_FACING.
8911	(opt_info_switch_p): Update handling of default
8912	MSG_OPTIMIZED_LOCATIONS to cope with default of
8913	MSG_PRIORITY_USER_FACING.
8914	(dump_basic_block): Use apply_dump_filter_p rather than explicitly
8915	masking the dump_kind.
8916	(selftest::test_capture_of_dump_calls): Update test_dump_context
8917	instances to use MSG_ALL_KINDS | MSG_PRIORITY_USER_FACING rather
8918	than MSG_ALL.  Generalize scope test to be run at all four
8919	combinations of with/without MSG_PRIORITY_USER_FACING and
8920	MSG_PRIORITY_INTERNALS, adding examples of explicit priority
8921	for each of the two values.
8922	* dumpfile.h (enum dump_flag): Add comment about the MSG_* flags.
8923	Rename MSG_ALL to MSG_ALL_KINDS.  Add MSG_PRIORITY_USER_FACING,
8924	MSG_PRIORITY_INTERNALS, and MSG_ALL_PRIORITIES, updating the
8925	values for TDF_COMPARE_DEBUG and TDF_ALL_VALUES.
8926	(AUTO_DUMP_SCOPE): Add a note to the comment about the interaction
8927	with MSG_PRIORITY_*.
8928	* tree-vect-loop-manip.c (vect_loop_versioning): Mark versioning
8929	dump messages as MSG_PRIORITY_USER_FACING.
8930	* tree-vectorizer.h (DUMP_VECT_SCOPE): Add a note to the comment
8931	about the interaction with MSG_PRIORITY_*.
8932
89332018-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8934
8935	* varasm.c (output_constant): Add new parameter merge_strings.
8936	Make strings properly zero terminated in merge string sections.
8937	(mergeable_string_section): Don't fail if the last char is non-zero.
8938	(assemble_variable_contents): Handle merge string sections.
8939	(assemble_variable): Likewise.
8940	(assemble_constant_contents): Likewise.
8941	(output_constant_def_contents): Likewise.
8942	(output_constructor_array_range,
8943	output_constructor_regular_field): Adjust call to output_constant.
8944	(output_object_block): Adjust call to assemble_constant_contents
8945	and assemble_variable_contents.
8946
89472018-10-04  Martin Liska  <mliska@suse.cz>
8948
8949	PR c/87483
8950	* cgraphunit.c (process_function_and_variable_attributes):
8951	Warn about a function with alias attribute and a body.
8952
89532018-10-04  Martin Liska  <mliska@suse.cz>
8954
8955	PR ipa/82625
8956	* multiple_target.c (redirect_to_specific_clone): New function.
8957	(ipa_target_clone): Use it.
8958	* tree-inline.c: Fix comment.
8959
89602018-10-04  David Malcolm  <dmalcolm@redhat.com>
8961
8962	* dumpfile.c (gcc::dump_manager::dump_manager): Initialize new
8963	fields.
8964	(gcc::dump_manager::~dump_manager): Free m_optinfo_filename.
8965	(gcc::dump_manager::register_pass): New member function, adapted
8966	from loop body in gcc::pass_manager::register_pass, adding a
8967	call to update_dfi_for_opt_info.
8968	(gcc::dump_manager::opt_info_enable_passes): Store the
8969	-fopt-info options into the new fields.  Move the loop
8970	bodies into...
8971	(gcc::dump_manager::update_dfi_for_opt_info): ...this new member
8972	function.
8973	* dumpfile.h (struct opt_pass): New forward decl.
8974	(gcc::dump_manager::register_pass): New decl.
8975	(gcc::dump_manager::update_dfi_for_opt_info): New decl.
8976	(class gcc::dump_manager): Add fields "m_optgroup_flags",
8977	"m_optinfo_flags", and "m_optinfo_filename".
8978	* passes.c (gcc::pass_manager::register_pass): Move all of the
8979	dump-handling code to gcc::dump_manager::register_pass.
8980
89812018-10-04  Peter Bergner  <bergner@linux.ibm.com>
8982
8983	PR rtl-optimization/87466
8984	* target.def (setjmp_preserves_nonvolatile_regs_p): New target hook.
8985	* doc/tm.texi.in (TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P): New hook.
8986	* doc/tm.texi: Regenerate.
8987	* ira-lives.c (process_bb_node_lives): Use the new target hook.
8988	* lra-lives.c (process_bb_lives): Likewise.
8989	* config/rs6000/rs6000.c (TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P):
8990	Define.
8991
89922018-10-04  Tamar Christina  <tamar.christina@arm.com>
8993
8994	* params.c (add_params): Fix initialization.
8995
89962018-10-04  Martin Liska  <mliska@suse.cz>
8997
8998	PR gcov-profile/84107
8999	* tree-profile.c (init_ic_make_global_vars):
9000	Remove ic_void_ptr_var and ic_gcov_type_ptr_var.
9001	Come up with new ic_tuple* variables.  Emit
9002	__gcov_indirect_call{,_topn} variables.
9003	(gimple_gen_ic_profiler): Access the variable
9004	and emit gimple.
9005	(gimple_gen_ic_func_profiler): Access
9006	__gcov_indirect_call.callee field.
9007	(gimple_init_gcov_profiler): Use ptr_type_node.
9008	* value-prof.c (gimple_ic): Use ptr_type_node.
9009
90102018-10-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9011
9012	PR tree-optimization/85787
9013	* ipa-pure-const.c (malloc_candidate_p_1): Move most of
9014	malloc_candidate_p into this function and add support for
9015	detecting multiple phis.
9016	(DUMP_AND_RETURN): Move from malloc_candidate_p into top-level macro.
9017
90182018-10-04  Martin Liska  <mliska@suse.cz>
9019
9020	PR ipa/87491
9021	* ipa-inline.c (inline_to_all_callers_1):
9022	Call ultimate_alias_target for node being inlined.
9023
90242018-10-03  Jeff Law  <law@redhat.com>
9025
9026	* gimple-ssa-sprintf.c (format_string): Do not hardcode size of
9027	target's wchar_t.
9028	* tree.c (get_typenode_from_name): Moved from fortran/trans-types.c.
9029	* tree.h (get_typenode_from_name): Prototype.
9030
90312018-10-03  Uros Bizjak  <ubizjak@gmail.com>
9032
9033	* config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
9034	Change operand 2 predicate to nonimmediate_operand.
9035	(*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
9036
90372018-10-03  Martin Sebor  <msebor@redhat.com>
9038	    Jeff Law  <law@redhat.com>
9039
9040	* gimple-ssa-sprintf.c (struct fmtresult): Add new member and
9041	initialize it.
9042	(get_string_length): Detect unterminated arrays.
9043	(format_string): Same.
9044	(format_directive): Warn about unterminated arrays.
9045	(handle_gimple_call): Mark statements with no_warning as needed.
9046
90472018-10-03  Jim Wilson  <jimw@sifive.com>
9048
9049	* config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): For ABI_ILP32E,
9050	also define __riscv_abi_rve.  Delete trailing white space.
9051
90522018-10-03  Paul Koning  <ni1d@arrl.net>
9053
9054	Enable LRA register allocator for PDP11.
9055	* config/pdp11/constraints.md (Q): Use define_memory_constraint.
9056	(R): Likewise.
9057	(D): Likewise.
9058	* config/pdp11/pdp11.c (pdp11_lra_p): New function.
9059	* config/pdp11/pdp11.opt (-mlra): New option.
9060	* doc/invoke.texi (PDP-11 Options): Document -mlra.
9061
90622018-10-03  Uros Bizjak  <ubizjak@gmail.com>
9063
9064	* config/i386/i386.md (*<absneg:code>extendsfdf2): Remove.
9065	(*<absneg:code>extend<mode>xf2): Ditto.
9066
90672018-10-03  Aldy Hernandez  <aldyh@redhat.com>
9068
9069	PR tree-optimization/87415
9070	* tree-vrp.c (set_value_range_with_overflow): Special case one bit
9071	precision fields.
9072
90732018-10-02  Jeff Law  <law@redhat.com>
9074
9075	* gimple-fold.c (get_range_strlen): Only set *nonstr when
9076	an unterminated string is discovered.  Bubble up range
9077	even for unterminated strings.
9078	(gimple_fold_builtin_strlen): Do not fold if get_range_strlen
9079	indicates the string was not terminated via NONSTR.
9080
90812018-10-03  Aldy Hernandez  <aldyh@redhat.com>
9082
9083	* tree-vrp.c (extract_range_from_unary_expr): Special case all
9084	pointer conversions.
9085	Do not do anything special for anti-ranges.
9086
90872018-10-03  Jérôme Lambourg  <lambourg@adacore.com>
9088
9089	* config/arm/vxworks.h (ARM_TARGET2_DWARF_FORMAT): Adjust to
9090	DW_EH_PE_pcrel | DW_EH_PE_indirect for RTPs.
9091
90922018-10-03  Martin Liska  <mliska@suse.cz>
9093
9094	PR gcov-profile/86109
9095	* coverage.c (coverage_begin_function): Do not
9096	mark lambdas as artificial.
9097	* tree-core.h (struct GTY): Remove tm_clone_flag
9098	and introduce new lambda_function.
9099	* tree.h (DECL_LAMBDA_FUNCTION): New macro.
9100
91012018-10-02  Aaron Sawdey  <acsawdey@linux.ibm.com>
9102
9103	PR target/87474
9104	* config/rs6000/rs6000-string.c (expand_strn_compare): Check that both
9105	P8_VECTOR and VSX are enabled.
9106
91072018-10-02  Andreas Krebbel  <krebbel@linux.ibm.com>
9108
9109	* config/s390/driver-native.c (s390_host_detect_local_cpu): Add
9110	0x3907 as CPU model number.
9111
91122018-10-02  Andreas Krebbel  <krebbel@linux.ibm.com>
9113
9114	* common/config/s390/s390-common.c: Rename PF_ARCH12 to PF_Z14.
9115	* config/s390/s390.h (enum processor_flags): Rename PF_ARCH12 to
9116	PF_Z14.  Rename TARGET_CPU_ARCH12 to TARGET_CPU_Z14,
9117	TARGET_CPU_ARCH12_P to TARGET_CPU_Z14_P, TARGET_ARCH12 to
9118	TARGET_Z14, and TARGET_ARCH12_P to TARGET_Z14_P.
9119	* config/s390/s390.md: Likewise. Rename also the cpu attribute
9120	value from arch12 to z14.
9121
91222018-10-02  Uros Bizjak  <ubizjak@gmail.com>
9123
9124	* config/i386/i386.md (fxam<mode>2_i387_with_temp): Remove.
9125	(isinfxf2): Ditto.
9126	(isinf<mode>2): Ditto.
9127
91282018-10-02  Uros Bizjak  <ubizjak@gmail.com>
9129
9130	* config/i386/i386.c (ix86_emit_i387_round): Extend op1 to XFmode
9131	before emitting fxam.  Perform calculations in XFmode.
9132
91332018-10-02  Marc Glisse  <marc.glisse@inria.fr>
9134
9135	* match.pd (((X /[ex] A) +- B) * A): New transformation.
9136
91372018-10-02  Marc Glisse  <marc.glisse@inria.fr>
9138
9139	PR middle-end/87319
9140	* fold-const.c (fold_plusminus_mult_expr): Handle complex and vectors.
9141	* tree.c (signed_or_unsigned_type_for): Handle complex.
9142
91432018-10-02  Jeff Law  <law@redhat.com>
9144
9145	* gimple-fold.c (get_range_strlen): Remove dead code.
9146
91472018-10-02  Martin Sebor  <msebor@redhat.com>
9148	    Jeff Law  <law@redhat.com>
9149
9150	* builtins.c (unterminated_array): Add new arguments.
9151	If argument is not terminated, bubble up size and exact
9152	state to callers.
9153	(expand_builtin_strnlen): Detect, avoid expanding
9154	and diagnose unterminated arrays.
9155	(c_strlen): Fill in offset of start of unterminated strings.
9156	* builtins.h (unterminated_array): Update prototype.
9157
91582018-10-02  Richard Biener  <rguenther@suse.de>
9159
9160	* config/i386/sse.md (reduc_plus_scal_v4df): Avoid the use
9161	of haddv4df, first reduce to SSE width and exploit the fact
9162	that we only need element zero with the reduction result.
9163	(reduc_plus_scal_v2df): Likewise.
9164
91652018-10-02  Eric Botcazou  <ebotcazou@adacore.com>
9166
9167	* dojump.h (do_jump): Delete.
9168	(do_jump_1): Likewise.
9169	(split_comparison): Move around.
9170	* dojump.c (do_jump): Make static.
9171	(do_jump_1): Likewise.
9172	(jumpifnot): Move around.
9173	(jumpifnot_1): Likewise.
9174	(jumpif): Likewise.
9175	(jumpif_1): Likewise.
9176	* expr.c (expand_expr_real_1): Call jumpif[not] instead of do_jump.
9177
91782018-10-02  Eric Botcazou  <ebotcazou@adacore.com>
9179
9180	* reorg.c (make_return_insns): Use emit_copy_of_insn_after for the
9181	insns in the delay slot and add_insn_after for the jump insn.
9182
91832018-10-02  Richard Biener  <rguenther@suse.de>
9184
9185	* tree-inline.c (expand_call_inline): Use the location of
9186	the callee declaration for the inline-entry marker.
9187	* final.c (notice_source_line): Remove special-casing of
9188	NOTE_INSN_INLINE_ENTRY.
9189
91902018-10-01  Carl Love  <cel@us.ibm.com>
9191
9192	PR 69431
9193	* config/rs6000/rs6000-builtin.def (__builtin_mffsl): New.
9194	(__builtin_mtfsb0): New.
9195	(__builtin_mtfsb1): New.
9196	( __builtin_set_fpscr_rn): New.
9197	(__builtin_set_fpscr_drn): New.
9198	* config/rs6000/rs6000.c (rs6000_expand_mtfsb_builtin): Add.
9199	(rs6000_expand_set_fpscr_rn_builtin): Add.
9200	(rs6000_expand_set_fpscr_drn_builtin): Add.
9201	(rs6000_expand_builtin): Add case statement entries for
9202	RS6000_BUILTIN_MTFSB0, RS6000_BUILTIN_MTFSB1,
9203	RS6000_BUILTIN_SET_FPSCR_RN, RS6000_BUILTIN_SET_FPSCR_DRN,
9204	RS6000_BUILTIN_MFFSL.
9205	(rs6000_init_builtins): Add ftype initialization and def_builtin
9206	calls for __builtin_mffsl, __builtin_mtfsb0, __builtin_mtfsb1,
9207	__builtin_set_fpscr_rn, __builtin_set_fpscr_drn.
9208	* config/rs6000.md (rs6000_mtfsb0, rs6000_mtfsb1, rs6000_mffscrn,
9209	rs6000_mffscdrn): Add define_insn.
9210	(rs6000_set_fpscr_rn, rs6000_set_fpscr_drn): Add define_expand.
9211	* doc/extend.texi: Add documentation for the builtins.
9212
92132018-10-01  Richard Biener  <rguenther@suse.de>
9214
9215	PR tree-optimization/87465
9216	* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix typo
9217	causing branch miscounts.
9218
92192018-10-01  Tamar Christina  <tamar.christina@arm.com>
9220
9221	* common/config/aarch64/aarch64-common.c (TARGET_OPTION_DEFAULT_PARAM,
9222	aarch64_option_default_param):	New.
9223	(params.h): Include.
9224	(TARGET_OPTION_VALIDATE_PARAM, aarch64_option_validate_param): New.
9225	* config/aarch64/aarch64.c (aarch64_override_options_internal): Simplify
9226	stack-clash protection validation code.
9227
92282018-10-01  Tamar Christina  <tamar.christina@arm.com>
9229
9230	* params.c (validate_param): New.
9231	(add_params): Use it.
9232	(set_param_value): Refactor param validation into validate_param.
9233	(diagnostic.h): Include.
9234	* diagnostic.h (diagnostic_ready_p): New.
9235
92362018-10-01  Tamar Christina  <tamar.christina@arm.com>
9237
9238	* params.c (set_param_value):
9239	Add index of parameter being validated.
9240	* common/common-target.def (option_validate_param): New.
9241	* common/common-targhooks.h (default_option_validate_param): New.
9242	* common/common-targhooks.c (default_option_validate_param): New.
9243	* doc/tm.texi.in (TARGET_OPTION_VALIDATE_PARAM): New.
9244	* doc/tm.texi: Regenerate.
9245
92462018-10-01  Tamar Christina  <tamar.christina@arm.com>
9247
9248	PR target/86486
9249	* config/aarch64/aarch64.c (aarch64_override_options_internal):
9250	Add validation for stack-clash parameters and set defaults.
9251
92522018-10-01  Tamar Christina  <tamar.christina@arm.com>
9253
9254	PR target/86486
9255	* configure.ac: Add stack-clash-protection-guard-size.
9256	* doc/install.texi: Document it.
9257	* config.in (DEFAULT_STK_CLASH_GUARD_SIZE): New.
9258	* params.def: Update comment for guard-size.
9259	(PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE,
9260	PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Update description.
9261	* configure: Regenerate.
9262
92632018-10-01  Tamar Christina  <tamar.christina@arm.com>
9264
9265	PR target/86486
9266	* config/aarch64/aarch64.h (STACK_CLASH_MIN_BYTES_OUTGOING_ARGS,
9267	STACK_DYNAMIC_OFFSET): New.
9268	* config/aarch64/aarch64.c (aarch64_layout_frame):
9269	Update outgoing args size.
9270	(aarch64_stack_clash_protection_alloca_probe_range,
9271	TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE): New.
9272
92732018-10-01  Tamar Christina  <tamar.christina@arm.com>
9274
9275	PR target/86486
9276	* explow.c (anti_adjust_stack_and_probe_stack_clash): Support custom
9277	probe ranges.
9278	* target.def (stack_clash_protection_alloca_probe_range): New.
9279	(stack_clash_protection_final_dynamic_probe): Remove.
9280	* targhooks.h (default_stack_clash_protection_alloca_probe_range) New.
9281	(default_stack_clash_protection_final_dynamic_probe): Remove.
9282	* targhooks.c: Likewise.
9283	* doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE): New.
9284	(TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE): Remove.
9285	* doc/tm.texi: Regenerate.
9286
92872018-10-01  Tamar Christina  <tamar.christina@arm.com>
9288
9289	PR target/86486
9290	* config/aarch64/aarch64-protos.h (aarch64_output_probe_sve_stack_clash): New.
9291	* config/aarch64/aarch64.c (aarch64_output_probe_sve_stack_clash,
9292	aarch64_clamp_to_uimm12_shift): New.
9293	(aarch64_allocate_and_probe_stack_space): Add SVE specific section.
9294	* config/aarch64/aarch64.md (probe_sve_stack_clash): New.
9295
92962018-10-01  Tamar Christina  <tamar.christina@arm.com>
9297
9298	PR target/86486
9299	* config/aarch64/aarch64.c (aarch64_layout_frame): Add assert.
9300
93012018-10-01  Jeff Law  <law@redhat.com>
9302	    Richard Sandiford  <richard.sandiford@linaro.org>
9303	    Tamar Christina  <tamar.christina@arm.com>
9304
9305	PR target/86486
9306	* config/aarch64/aarch64.md
9307	(probe_stack_range): Add k (SP) constraint.
9308	* config/aarch64/aarch64.h (STACK_CLASH_CALLER_GUARD,
9309	STACK_CLASH_MAX_UNROLL_PAGES): New.
9310	* config/aarch64/aarch64.c (aarch64_output_probe_stack_range): Emit
9311	stack probes for stack clash.
9312	(aarch64_allocate_and_probe_stack_space): New.
9313	(aarch64_expand_prologue): Use it.
9314	(aarch64_expand_epilogue): Likewise and update IP regs re-use criteria.
9315	(aarch64_sub_sp): Add emit_move_imm optional param.
9316
93172018-10-01  MCC CS  <deswurstes@users.noreply.github.com>
9318
9319	PR tree-optimization/87261
9320	* match.pd: Remove trailing whitespace.
9321	Add (x & y) | ~(x | y) -> ~(x ^ y),
9322	(~x | y) ^ (x ^ y) -> x | ~y and (x ^ y) | ~(x | y) -> ~(x & y)
9323
93242018-10-01  Claudiu Zissulescu  <claziss@synopsys.com>
9325
9326	* config/arc/arc.md (*add_n): Clean up pattern, update instruction
9327	constraints.
9328	(ashlsi3_insn): Update instruction constraints.
9329	(ashrsi3_insn): Likewise.
9330	(rotrsi3): Likewise.
9331	(add_shift): Likewise.
9332	* config/arc/constraints.md (Csz): New 32 bit constraint. It
9333	avoids placing in the limm field small constants which, otherwise,
9334	could end into a small instruction.
9335
93362018-10-01  Claudiu Zissulescu  <claziss@synopsys.com>
9337
9338	* config/arc/arc.md (maddsidi4_split): Don't use dmac if the
9339	destination register is not odd-even.
9340	(umaddsidi4_split): Likewise.
9341
93422018-10-01  Richard Biener  <rguenther@suse.de>
9343
9344	* tree-inline.c (expand_call_inline): Store origin of fn
9345	in BLOCK_ABSTRACT_ORIGIN for the inline BLOCK.
9346	* tree.c (block_ultimate_origin): Simplify and do some
9347	checking.
9348
93492018-09-30  Uros Bizjak  <ubizjak@gmail.com>
9350
9351	* config/i386/mmx.md (EMMS): New int iterator.
9352	(emms): New int attribute.
9353	(mmx_<emms>): Macroize insn from *mmx_emms and *mmx_femms using
9354	EMMS int iterator.  Explicitly declare clobbers.
9355	(mmx_emms): Remove expander.
9356	(mmx_femms): Ditto.
9357	* config/i386/predicates.md (emms_operation): Remove predicate.
9358	(vzeroall_pattern): New predicate.
9359	(vzeroupper_pattern): Rename from vzeroupper_operation.
9360	* config/i386/i386.c (ix86_avx_u128_mode_after): Use
9361	vzeroupper_pattern and vzeroall_pattern predicates.
9362
93632018-09-30  Peter Bergner  <bergner@linux.ibm.com>
9364
9365	PR rtl-optimization/86939
9366	* ira-lives.c (make_hard_regno_born): Rename from this...
9367	(make_hard_regno_live): ... to this.  Remove update to conflict
9368	information.  Update function comment.
9369	(make_hard_regno_dead): Add conflict information update.  Update
9370	function comment.
9371	(make_object_born): Rename from this...
9372	(make_object_live): ... to this.  Remove update to conflict information.
9373	Update function comment.
9374	(make_object_dead):  Add conflict information update.  Update function
9375	comment.
9376	(mark_pseudo_regno_live): Call make_object_live.
9377	(mark_pseudo_regno_subword_live): Likewise.
9378	(mark_hard_reg_dead): Update function comment.
9379	(mark_hard_reg_live): Call make_hard_regno_live.
9380	(process_bb_node_lives): Likewise.
9381	* lra-lives.c (make_hard_regno_born): Rename from this...
9382	(make_hard_regno_live): ... to this.  Remove update to conflict
9383	information.  Remove now uneeded check_pic_pseudo_p argument.
9384	Update function comment.
9385	(make_hard_regno_dead): Add check_pic_pseudo_p argument and add update
9386	to conflict information.  Update function comment.
9387	(mark_pseudo_live): Remove update to conflict information.  Update
9388	function comment.
9389	(mark_pseudo_dead): Add conflict information update.
9390	(mark_regno_live): Call make_hard_regno_live.
9391	(mark_regno_dead): Call make_hard_regno_dead with new arguement.
9392	(process_bb_lives): Call make_hard_regno_live and make_hard_regno_dead.
9393
93942018-09-29  H.J. Lu  <hongjiu.lu@intel.com>
9395
9396	PR target/87370
9397	* config/i386/i386.c (construct_container): Use TImode for
9398	BLKmode values in 2 integer registers.
9399
94002018-09-29  Jeff Law  <law@redhat.com>
9401
9402	* builtins.c (unterminated_array): Pass in c_strlen_data * to
9403	c_strlen rather than just a tree *.
9404	(c_strlen): Change NONSTR argument to a c_strlen_data pointer.
9405	Update recursive calls appropriately.  If caller did not provide a
9406	suitable data pointer, create a local one.  When a non-terminated
9407	string is discovered, bubble up information about the string via the
9408	c_strlen_data object.
9409	* builtins.h (c_strlen): Update prototype.
9410	(c_strlen_data): New structure.
9411	* gimple-fold.c (get_range_strlen): Update calls to c_strlen.
9412	For a type 2 call, if c_strlen indicates a non-terminated string
9413	use the length of the non-terminated string.
9414	(gimple_fold_builtin_stpcpy): Update calls to c_strlen.
9415
94162018-09-29  Jakub Jelinek  <jakub@redhat.com>
9417
9418	PR target/87467
9419	* config/i386/avx512fintrin.h (_mm512_abs_pd, _mm512_mask_abs_pd): Use
9420	__m512d type for __A argument rather than __m512.
9421
94222018-09-28  John David Anglin  <danglin@gcc.gnu.org>
9423
9424	* match.pd (simple_comparison): Don't optimize if either operand is
9425	a function pointer when target needs function pointer canonicalization.
9426
94272018-09-28  Segher Boessenkool  <segher@kernel.crashing.org>
9428
9429	* config/rs6000/driver-rs6000.c (asm_names): Adjust the entries for
9430	power5 .. power9 to remove indirection.
9431	* config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC, ASM_CPU_POWER6_SPEC,
9432	ASM_CPU_POWER7_SPEC, ASM_CPU_POWER8_SPEC, ASM_CPU_POWER9_SPEC,
9433	ASM_CPU_476_SPEC): Delete.
9434	(ASM_CPU_SPEC): Adjust.
9435	(EXTRA_SPECS): Delete asm_cpu_power5, asm_cpu_power6, asm_cpu_power7,
9436	asm_cpu_power8, asm_cpu_power9, asm_cpu_476.
9437
94382018-09-28  Segher Boessenkool  <segher@kernel.crashing.org>
9439
9440	* config.in: Delete HAVE_AS_DCI.
9441	* config/powerpcspe/powerpcspe.h: Treat HAVE_AS_DCI as always true.
9442	* config/rs6000/rs6000.h: Ditto.
9443	* configure.ac: Delete HAVE_AS_DCI.
9444	* configure: Regenerate.
9445
94462018-09-28  Segher Boessenkool  <segher@kernel.crashing.org>
9447
9448	* config.in (HAVE_AS_LWSYNC): Delete.
9449	* config/powerpcspe/powerpcspe.h (TARGET_LWSYNC_INSTRUCTION): Delete.
9450	* config/powerpcspe/sync.md (*lwsync): Always generate lwsync, never
9451	do it as a .long .
9452	* config/rs6000/rs6000.h (TARGET_LWSYNC_INSTRUCTION): Delete.
9453	* config/rs6000/sync.md (*lwsync): Always generate lwsync, never do it
9454	as a .long .
9455	* configure.ac: Delete HAVE_AS_LWSYNC.
9456	* configure: Regenerate.
9457
94582018-09-28  Eric Botcazou  <ebotcazou@adacore.com>
9459	    Pierre-Marie de Rodat  <derodat@adacore.com>
9460
9461	* calls.c (expand_call): Try to do a tail call for thunks at -O0 too.
9462	* cgraph.h (struct cgraph_thunk_info): Add indirect_offset.
9463	(cgraph_node::create_thunk): Add indirect_offset parameter.
9464	(thunk_adjust): Likewise.
9465	* cgraph.c (cgraph_node::create_thunk): Add indirect_offset parameter
9466	and initialize the corresponding field with it.
9467	(cgraph_node::dump): Dump indirect_offset field.
9468	* cgraphclones.c (duplicate_thunk_for_node): Deal with indirect_offset.
9469	* cgraphunit.c (cgraph_node::analyze): Be prepared for external thunks.
9470	(thunk_adjust): Add indirect_offset parameter and deal with it.
9471	(cgraph_node::expand_thunk): Deal with the indirect_offset field and
9472	pass it to thunk_adjust.  Do not call the target hook if it's non-zero
9473	or if the thunk is external or local.  Fix formatting.  Do not chain
9474	the RESULT_DECL to BLOCK_VARS.  Pass the static chain to the target,
9475	if any, in the GIMPLE representation.
9476	* ipa-icf.c (sem_function::equals_wpa): Deal with indirect_offset.
9477	* lto-cgraph.c (lto_output_node): Write indirect_offset field.
9478	(input_node): Read indirect_offset field.
9479	* tree-inline.c (expand_call_inline): Pass indirect_offset field in the
9480	call to thunk_adjust.
9481	* tree-nested.c (struct nesting_info): Add thunk_p field.
9482	(create_nesting_tree): Set it.
9483	(convert_all_function_calls): Copy static chain from targets to thunks.
9484	(finalize_nesting_tree_1): Return early for thunks.
9485	(unnest_nesting_tree_1): Do not finalize thunks.
9486	(gimplify_all_functions): Do not gimplify thunks.
9487
94882018-09-28  David Malcolm  <dmalcolm@redhat.com>
9489
9490	* opt-suggestions.c (option_proposer::build_option_suggestions):
9491	Release	"option_values".
9492
94932018-09-28  David Malcolm  <dmalcolm@redhat.com>
9494
9495	* coverage.c (get_coverage_counts): Convert problem-reporting dump
9496	messages from MSG_OPTIMIZED_LOCATIONS to MSG_MISSED_OPTIMIZATION.
9497	* dumpfile.c (kind_as_string): New function.
9498	(dump_loc): Rather than a hardcoded prefix of "note: ", use
9499	kind_as_string to vary the prefix based on dump_kind.
9500	(selftest::test_capture_of_dump_calls): Update for above.
9501
95022018-09-28  Uros Bizjak  <ubizjak@gmail.com>
9503
9504	* config/i386/i386.h (SSE_REGNO): Fix check for FIRST_REX_SSE_REG.
9505	(GET_SSE_REGNO): Rename from SSE_REGNO.  Update all uses for rename.
9506
95072018-09-28  Uros Bizjak  <ubizjak@gmail.com>
9508
9509	* config/i386/i386.h (CC_REGNO): Remove FPSR_REG.
9510	* config/i386/i386.c (ix86_fixed_condition_code_regs): Use
9511	INVALID_REGNUM instead of FPSR_REG.
9512	(ix86_md_asm_adjust): Do not clobber FPSR_REG.
9513	* config/i386/i386.md: Update comment of FP compares.
9514	(fldenv): Do not clobber FPSR_REG.
9515
95162018-09-28  Richard Biener  <rguenther@suse.de>
9517
9518	* tree.h (BLOCK_ORIGIN): New.
9519	* omp-expand.c (grid_expand_target_grid_body): Assign
9520	BLOCK_ORIGIN to BLOCK_ABSTRACT_ORIGIN.
9521	* tree-inline.c (remap_block): Likewise.
9522	* auto-profile.c (get_function_decl_from_block): Simplify
9523	by eliding the BLOCK_ABSTRACT_ORIGIN chasing.
9524	* langhooks.c (lhd_print_error_function): Likewise.
9525	* optinfo-emit-json.cc (optrecord_json_writer::inlining_chain_to):
9526	Likewise.
9527	* tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
9528	* tree.c (block_nonartificial_location): Likewise.
9529	(block_ultimate_origin): Likewise.
9530	* tree-pretty-print.c (percent_K_format): Likewise.  Remove
9531	no longer needed LTO case.
9532
95332018-09-28  Andrew Stubbs  <ams@codesourcery.com>
9534	    Jan Hubicka  <jh@suse.cz>
9535	    Martin Jambor  <mjambor@suse.cz>
9536
9537	* simplify-rtx.c (simplify_merge_mask): New function.
9538	(simplify_ternary_operation): Use it, also see if VEC_MERGEs with the
9539	same masks are used in op1 or op2.
9540	(test_vec_merge): New function.
9541	(test_vector_ops): Call test_vec_merge.
9542
95432018-09-28  Eric Botcazou  <ebotcazou@adacore.com>
9544
9545	* config/sparc/sparc-protos.h (sparc_branch_cost): Declare.
9546	* config/sparc/sparc.h (BRANCH_COST): Call sparc_branch_cost.
9547	* config/sparc/sparc.c (struct processor_costs): Add branch_cost field.
9548	(cypress_costs): Set it.
9549	(supersparc_costs): Likewise.
9550	(hypersparc_costs): Likewise.
9551	(leon_cost): Likewise.
9552	(leon3_costs): Likewise.
9553	(sparclet_costs): Likewise.
9554	(ultrasparc_costs): Likewise.
9555	(ultrasparc_costs): Likewise.
9556	(niagara_costs): Likewise.
9557	(niagara2_costs): Likewise.
9558	(niagara3_costs): Likewise.
9559	(niagara4_costs): Likewise.
9560	(niagara7_costs): Likewise.
9561	(m8_costs): Likewise.
9562	(TARGET_CAN_FOLLOW_JUMP): Define.
9563	(pass_work_around_errata::gate): Minor tweak.
9564	(sparc_option_override): Remove MASK_FSMULD mask for V7 processors.
9565	Do not set both MASK_VIS4 and MASK_VIS4B for M8 processor.
9566	Automaitcally clear MASK_FSMULD mask for V7 processors.
9567	(sparc_can_follow_jump): New static function.
9568	(output_ubranch): Deal with CROSSING_JUMP_P.
9569	(sparc_use_sched_lookahead): Rewrite using switch statement.
9570	(sparc_issue_rate): Reorder.
9571	(sparc_branch_cost): New function.
9572
95732018-09-27  Martin Sebor  <msebor@redhat.com>
9574
9575	* tree.h (tree_to_shwi): Add attribute nonnull and pure.
9576	(tree_to_poly_int64, tree_to_uhwi, tree_to_poly_uint64): Same.
9577	(int_fits_type_p): Same.
9578
95792018-09-27  Uros Bizjak  <ubizjak@gmail.com>
9580
9581	* config/i386/i386.md (FPCR_REG): Remove.
9582	(UNSPEC_FLDCW): Remove.
9583	(x86_fnstcw_1): Use (const_int 0) instead of FPCR_REG.
9584	(x86_fldcw_1): Remove insn pattern.
9585	(fnstenv): Do not clobber FPCR_REG.
9586	(fldenv): Ditto.
9587	* config/i386/i386.h (FIXED_REGISTERS) Remove fpsr register.
9588	(CALL_USED_REGISTERS): Ditto.
9589	(REG_ALLOC_ORDER): Ditto.
9590	(REG_CLASS_CONTENTS): Ditto.
9591	(HI_REGISTER_NAMES): Ditto.
9592	(ADDITIONAL_REGISTER_NAMES): Use defines instead
9593	of numerical constants.
9594	* config/i386/i386.c (regclass_map): Remove fpsr register.
9595	(dbx_register_map): Ditto.
9596	(dbx64_register_map): Ditto.
9597	(svr4_dbx_register_map): Ditto.
9598	(print_reg): Do not handle FPCR_REG.
9599
96002018-09-27  Segher Boessenkool  <segher@kernel.crashing.org>
9601
9602	PR target/87149
9603	* config.in (HAVE_AS_CMPB, HAVE_AS_DFP, HAVE_AS_FPRND, HAVE_AS_MFPGPR,
9604	HAVE_AS_POPCNTB, HAVE_AS_POPCNTD, HAVE_AS_POWER8, HAVE_AS_POWER9):
9605	Delete, always treat as true.
9606	* config/powerpcspe/powerpcspe.c (rs6000_option_override_internal):
9607	Ditto.  Simplify remaining code.
9608	* config/powerpcspe/powerpcspe.h: Ditto.
9609	* config/rs6000/rs6000.c (rs6000_option_override_internal): Ditto.
9610	Simplify remaining code.
9611	(rs6000_expand_builtin): Ditto.
9612	* config/rs6000/rs6000.h: Ditto.
9613	* configure.ac: Ditto.
9614	* configure: Regenerate.
9615
96162018-09-27  Martin Liska  <mliska@suse.cz>
9617
9618	* coverage.c (get_coverage_counts): Revert the formatting
9619	of missing profile opt info.
9620
96212018-09-27  Richard Biener  <rguenther@suse.de>
9622
9623	PR debug/37801
9624	PR debug/87440
9625	* dwarf2out.c (set_block_origin_self): Do not mark outermost
9626	block as we do not output that.
9627	(gen_inlined_subroutine_die): Elide the originally outermost
9628	block, matching what we do for concrete instances.
9629	(decls_for_scope): Add parameter specifying whether to recurse
9630	to subblocks.
9631
96322018-09-27  Andrew Stubbs  <ams@codesourcery.com>
9633	    Tom de Vries  <tom@codesourcery.com>
9634
9635	PR 82089
9636
9637	* expmed.c (emit_cstore): Fix handling of result_mode == BImode and
9638	STORE_FLAG_VALUE == 1.
9639
96402018-09-27  Andreas Krebbel  <krebbel@linux.ibm.com>
9641
9642	* config/s390/s390.md (PPA_TX_ABORT, PPA_OOO_BARRIER): New
9643	constant definitions.
9644	("tx_assist"): Replace magic number with PPA_TX_ABORT.
9645	("*ppa"): Enable pattern also for -march=zEC12 -mno-htm.
9646	("speculation_barrier"): New expander definition.
9647
96482018-09-26  Indu Bhagat  <indu.bhagat@oracle.com>
9649
9650	PR gcov-profile/86957
9651	* common.opt: New warning option -Wmissing-profile.
9652	* coverage.c (get_coverage_counts): Add warning for missing .gcda file.
9653	* doc/invoke.texi: Document -Wmissing-profile.
9654
96552018-09-26  Jim Wilson  <jimw@sifive.com>
9656
9657	* config/riscv/riscv.md (subsi3_extended2): Add J constraint.
9658	(negdi2, negsi2, negsi2_extended, negsi2_extended2): New.
9659
96602018-09-26  Martin Sebor  <msebor@redhat.com>
9661
9662	* tree.c (zerop): Change return type to bool.
9663	(integer_zerop, integer_onep, integer_each_onep): Same.
9664	(integer_all_onesp, integer_minus_onep, integer_pow2p): Same.
9665	(integer_nonzerop, integer_truep, tree_ctz, real_zerop): Same.
9666	(real_onep, real_minus_onep, chain_index): Same.
9667	(print_type_hash_statistics, type_list_equal): Same.
9668	* tree.h (zerop): Same.
9669	(zerop, integer_zerop, integer_onep, integer_each_onep): Same.
9670	(integer_all_onesp, integer_minus_onep, integer_pow2p): Same.
9671	(integer_nonzerop, integer_truep, tree_ctz, real_zerop): Same.
9672	(real_onep, real_minus_onep, chain_index): Same.
9673	(print_type_hash_statistics, type_list_equal): Same.
9674
96752018-09-26  Jim Wilson  <jimw@sifive.com>
9676
9677	* config/riscv/riscv.h (FUNCTION_ARG_REGNO_P): Fix comment.
9678
96792018-09-26  Jakub Jelinek  <jakub@redhat.com>
9680
9681	PR target/87414
9682	* config/i386/i386.c: Include debug.h and dwarf2out.h.
9683	(output_indirect_thunk): Emit DW_CFA_def_cfa_offset after the
9684	call.
9685
96862018-09-25  Andrew Stubbs  <ams@codesourcery.com>
9687
9688	* builtins.c (get_builtin_sync_mem): Force address mode conversion.
9689
96902018-09-26  Uros Bizjak  <ubizjak@gmail.com>
9691
9692	* config/i386/i386.h (enum reg_class): Remove FP_TOP_SSE_REGS
9693	and FP_SECOND_SSE_REGS.
9694	(REG_CLASS_NAMES): Ditto.
9695	(REG_CLASS_CONTENTS): Ditto.
9696	* config/i386/i386.c (ix86_preferred_reload_class) Do not handle
9697	FP_TOP_SSE_REGS and FP_SECOND_SSE_REGS classes.
9698	(ix86_preferred_output_reload_class): Ditto.
9699	* config/i386/i386.md (fix_trunc<mode>_i387_fisttp): Change "=&1f"
9700	clobber constraint to "=&f".
9701	(fix_truncdi_i387): Ditto.
9702	(lrintxfdi2): Ditto.
9703	(fistdi2_<rounding>): Ditto.
9704	(fpremxf4_i387): Change "=u" constraint to "=f".
9705	(fprem1xf4_i387): Ditto.
9706	(sincosxf3): Ditto.
9707	(fptanxf4_i387): Ditto.
9708	(fxtractxf3_i387): Ditto.
9709	(fscalexf4_i387): Ditto.
9710	(atan2xf3): Change "u" constraint to "f".
9711	(fyl2xxf3_i387): Ditto.
9712	(fyl2xp1xf3_i387): Ditto.
9713
97142018-09-26  Uros Bizjak  <ubizjak@gmail.com>
9715
9716	PR target/87439
9717	* config/i386/i386.h (NUM_MODES_FOR_MODE_SWITCHING): Update
9718	for removed I387_MASK_PM entity.
9719
9720
97212018-09-26  Jeff Law  <law@redhat.com>
9722	Revert
9723	2018-09-26  Alexey Neyman  <stilor@att.net>
9724
9725	* graphite.h: Include <isl/id.h> and <isl/space.h>; these
9726	headers are no longer pulled in by <isl/val.h>.
9727
97282018-09-26  Richard Biener  <rguenther@suse.de>
9729
9730	PR debug/87443
9731	* dwarf2out.c (gen_lexical_block_die): Do not equate inline
9732	or concrete instance DIE to the tree.  Create abstract origin
9733	attributes also for concrete instances.
9734
97352018-09-26  Alexey Neyman  <stilor@att.net>
9736
9737	* graphite.h: Include <isl/id.h> and <isl/space.h>; these
9738	headers are no longer pulled in by <isl/val.h>.
9739
97402018-09-26  Matthew Malcomson  <matthew.malcomson@arm.com>
9741
9742	* config/arm/arm.c (arm_split_compare_and_swap, arm_split_atomic_op):
9743	Use new helper functions.
9744	* config/arm/sync.md (atomic_load<mode>, atomic_store<mode>):
9745	Use new helper functions.
9746	* config/arm/aarch-common-protos.h (aarch_mm_needs_acquire,
9747	aarch_mm_needs_release): New declarations.
9748	* config/arm/aarch-common.c (aarch_mm_needs_acquire,
9749	aarch_mm_needs_release): New.
9750
97512018-09-26  Eric Botcazou  <ebotcazou@adacore.com>
9752
9753	* config/arm/arm.c (arm_reorg): Skip Thumb reorg pass for thunks.
9754	(arm32_output_mi_thunk): Deal with long calls.
9755
97562018-09-26  Richard Biener  <rguenther@suse.de>
9757
9758	PR debug/87428
9759	PR debug/87362
9760	* tree-inline.c (expand_call_inline): When the location
9761	of the call is UNKNOWN_LOCATION use DECL_SOURCE_LOCATION
9762	or BUILTINS_LOCATION for the BLOCK_SOURCE_LOCATION of
9763	the inserted BLOCK to make inlined_function_outer_scope_p
9764	recognize it.
9765	* dwarf2out.c (add_call_src_coords_attributes): Do not add
9766	coords for reserved locations.
9767
97682018-09-25  Segher Boessenkool  <segher@kernel.crashing.org>
9769
9770	* config/rs6000/rs6000.md (*movcc_internal1): Use set_attr_alternative.
9771	(*call_indirect_nonlocal_sysv<mode>): Ditto.
9772	(*call_value_indirect_nonlocal_sysv<mode>): Ditto.
9773	(*sibcall_nonlocal_sysv<mode>): Ditto.
9774	(*sibcall_value_nonlocal_sysv<mode>): Ditto.
9775	(<bd>_<mode>): Ditto.
9776	(<bd>tf_<mode>): Ditto.
9777
97782018-09-25  Segher Boessenkool  <segher@kernel.crashing.org>
9779
9780	* config/rs6000/altivec.md (*altivec_mov<mode>): Write the output
9781	control string as a list of templates instead of as C code.
9782	(*altivec_movti): Ditto.
9783	* config/rs6000/darwin.md (movdf_low_di): Ditto.
9784
97852018-09-25  Jim Wilson  <jimw@sifive.com>
9786
9787	* config/riscv/riscv.c (riscv_split_symbol): Mark auipc label as weak
9788	when target symbol is weak.
9789
97902018-09-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9791
9792	PR c/87387
9793	* builtins.c (unterminated_array): Simplify.
9794	* expr.c (string_constant): Handle SSA_NAME.  Add more exceptions
9795	where pointer arithmetic is safe.
9796
97972018-09-25  Segher Boessenkool  <segher@kernel.crashing.org>
9798
9799	PR target/86987
9800	* config/rs6000/altivec.md (altivec_vspltb): Use
9801	const_0_to_15_operand instead of u5bit_cint_operand.
9802	(*altivec_vspltb_internal): Ditto.
9803	(altivec_vspltb_direct): Ditto.
9804	(altivec_vsplth): Use const_0_to_7_operand instead of
9805	u5bit_cint_operand.
9806	(*altivec_vsplth_internal): Ditto.
9807	(altivec_vsplth_direct): Ditto.
9808	(altivec_vspltw): Use const_0_to_3_operand instead of
9809	u5bit_cint_operand.
9810	(*altivec_vspltw_internal): Ditto.
9811	(altivec_vspltw_direct): Ditto.
9812	(altivec_vspltsf): Ditto.
9813	(*altivec_vspltsf_internal): Ditto.
9814	* config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Handle the
9815	various splats with the proper size immediate.  Reorder the various
9816	cases by ascending size of immediate, and put all such together.
9817
98182018-09-25  Richard Biener  <rguenther@suse.de>
9819
9820	PR debug/83941
9821	* dwarf2out.c (add_AT_external_die_ref): Remove now redundant
9822	GC-ification.
9823	(maybe_create_die_with_external_ref): Do not create
9824	DW_TAG_imported_unit here.
9825	(add_abstract_origin_attribute): Handle external BLOCK refs.
9826	(dwarf2out_abstract_function): Simplify LTO case.
9827	(dwarf2out_early_finish): Create DW_TAG_imported_unit explicitely
9828	rather than using maybe_create_die_with_external_ref.
9829
98302018-09-25  Uros Bizjak  <ubizjak@gmail.com>
9831
9832	PR target/71278
9833	* config/i386/i386.md (frndintxf2_mask_pm): Remove.
9834	(frndintxf2_mask_pm_i387): Ditto.
9835	(nearbyintxf2): Rewrite expander pattern to match rintxf2.
9836	Enable for !flag_trapping_math.
9837	(nearbyint<mode>2): Enable x87 modes for !flag_trapping_math.
9838	Enable SSE modes for TARGET_SSE4_1 and expand them with round insn.
9839	Change operand 1 predicate to nonimmediate_operand.
9840	(attr "i387_cw"): Remove mask_pm.
9841	* config/i386/i386.h (enum ix86_stack_slot): Remove SLOT_CW_MASK_PM.
9842	(enum ix86_entity): Remove I387_MASK_PM.
9843	* config/i386/i386.c (ix86_i387_mode_needed): Do not
9844	handle I387_MASK_PM.
9845	(ix86_mode_needed): Ditto.
9846	(ix86_mode_after): Ditto.
9847	(ix86_mode_entry): Ditto.
9848	(ix86_mode_exit): Ditto.
9849	(emit_i387_cw_initialization): Do not handle I387_CW_MASK_PM.
9850
98512018-09-25  Jakub Jelinek  <jakub@redhat.com>
9852
9853	* vr-values.c (vr_values::vr_values): Initialize to_remove_edges and
9854	to_update_switch_stmts to vNULL instead of calling create on them
9855	immediately.
9856
98572018-09-25  Richard Biener  <rguenther@suse.de>
9858
9859	PR tree-optimization/87402
9860	* tree-ssa-sccvn.c (SSA_VISITED): Remove unused function.
9861	(visit_phi): Re-instantiate handling of supposed to be VARYING
9862	but non-VARYING backedge value.
9863
98642018-09-25  Richard Biener  <rguenther@suse.de>
9865
9866	PR debug/83941
9867	* dwarf2out.c (struct sym_off_pair): New.
9868	(external_die_map): New global.
9869	(lookup_decl_die): When in LTO create DIEs lazily from the
9870	external_die_map.
9871	(lookup_block_die): New function, create DIEs lazily in LTO.
9872	(equate_block_to_die): New function.
9873	(dwarf2out_die_ref_for_decl): During WPA get the association
9874	from the external DIE map.
9875	(dwarf2out_register_external_die): Record mapping into the
9876	external DIE map.
9877	(maybe_create_die_with_external_ref): New function split out from
9878	DIE generation part of old dwarf2out_register_external_die.
9879	(add_abstract_origin_attribute): Do not return the DIE.  When
9880	in LTO reference externals directly.
9881	(dwarf2out_abstract_function): When in LTO ignore calls for
9882	decls with external DIEs (already present abstract instances).
9883	(gen_call_site_die): Adjust.
9884	(add_high_low_attributes): Likewise.
9885	(gen_lexical_block_die): Likewise.
9886	(gen_inlined_subroutine_die): Likewie.
9887	(gen_block_die): Likewise.
9888	(dwarf2out_inline_entry): Likewise.
9889	(dwarf2out_early_finish): In LTRANS phase create DW_TAG_imported_unit
9890	DIEs.
9891
98922018-09-25  Martin Liska  <mliska@suse.cz>
9893
9894	* ipa-fnsummary.c (estimate_node_size_and_time): Scale by two
9895	integers and not by a float value.
9896
98972018-09-25  Martin Liska  <mliska@suse.cz>
9898
9899	PR fortran/87394
9900	* dbgcnt.c (dbg_cnt_process_single_pair): Return false
9901	instead of NULL.
9902	* dumpfile.c (dump_enable_all): Remove extra parenthesis.
9903	* gcov-tool.c: Declare the function with ATTRIBUTE_NORETURN.
9904	* godump.c (go_format_type): Remove extra parenthesis.
9905
99062018-09-25  Martin Liska  <mliska@suse.cz>
9907
9908	* alias.c (set_dest_equal_p): Remove unused function.
9909	* config/i386/i386.c (def_builtin_pure2): Likewise.
9910	* diagnostic-show-locus.c (class layout): Remove
9911	unused field.
9912	(layout::layout): Likewise here.
9913	* dump-context.h (class temp_dump_context): Likewise.
9914	* dwarf2out.c (add_AT_fde_ref): Remove unused function.
9915	(add_AT_loclistsptr): Likewise.
9916	(add_AT_offset): Likewise.
9917	(get_AT_hi_pc): Likewise.
9918	(is_comdat_die): Likewise.
9919	(type_is_enum): Likewise.
9920	(ceiling): Likewise.
9921	(add_AT_vms_delta): Likewise.
9922	(is_class_die): Likewise.
9923	* edit-context.c (class line_event): Remove unused field.
9924	* graphite-sese-to-poly.c (tree_int_to_gmp): Remove
9925	unused function.
9926	* ipa-cp.c (ipa_get_vr_lat): Likewise.
9927	* lra-constraints.c (ok_for_index_p_nonstrict): Likewise.
9928	(ok_for_base_p_nonstrict): Likewise.
9929	* tree-chrec.c (is_not_constant_evolution): Likewise.
9930	(chrec_fold_poly_cst): Likewise.
9931	* tree-if-conv.c (has_pred_critical_p): Likewise.
9932	* tree-ssa-coalesce.c (print_exprs): Likewise.
9933	* tree-ssa-pre.c (bitmap_set_contains_expr): Likewise.
9934	* tree-ssa-uninit.c (is_and_or_or_p): Likewise.
9935	* tree-vrp.c (value_ranges_intersect_p): Likewise.
9936	(value_range_nonnegative_p): Likewise.
9937
99382018-09-25  Martin Liska  <mliska@suse.cz>
9939
9940	* config/powerpcspe/powerpcspe.c (rs6000_output_function_epilogue):
9941	Do not handle "GNU Pascal".
9942	* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
9943	Likewise.
9944	* config/sparc/sparc.c (sparc_pass_by_reference): Remove Pascal
9945	from documentation. Likewise.
9946	* dbxout.c (dbxout_range_type): Likewise.
9947	* doc/cpp.texi: Likewise.
9948	* doc/extend.texi: Likewise.
9949	* doc/frontends.texi: Likewise.
9950	* doc/invoke.texi: Remove Pascal entry.
9951	* tree.def (CLEANUP_POINT_EXPR): Likewise.
9952	* doc/rtl.texi (MODE_FUNCTION): Remove not used entry.
9953
99542018-09-25  Martin Liska  <mliska@suse.cz>
9955
9956	PR middle-end/86078
9957	* doc/invoke.texi: Document all parameters and remove default
9958	of the parameters.
9959
99602018-09-25  Ilya Leoshkevich  <iii@linux.ibm.com>
9961
9962	PR bootstrap/87417
9963	* rtl.c (rtx_code_size): Take into account that EQ_ATTR_ALT
9964	contains HOST_WIDE_INTs when computing its size.
9965
99662018-09-24  Jim Wilson  <jimw@sifive.com>
9967
9968	PR target/87391
9969	* config/riscv/riscv.h (STACK_BOUNDARY): Test riscv_abi == ABI_ILP32E
9970	not TARGET_RVE.
9971	(ABI_STACK_BOUNDARY, MAX_ARGS_IN_REGISTERS): Likewise.
9972
99732018-09-24  Andrew Pinski  <apinski@marvell.com>
9974
9975	*  config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Don't
9976	access prev before checking it for NULLness in the
9977	AARCH64_FUSE_CMP_BRANCH case.
9978
99792018-09-24  H.J. Lu  <hongjiu.lu@intel.com>
9980
9981	PR target/82699
9982	* config/i386/i386.c (rest_of_insert_endbranch): Set
9983	endbr_queued_at_entrance to true and don't insert ENDBR if
9984	x86_function_profiler will be called.
9985	(x86_function_profiler): Insert ENDBR if endbr_queued_at_entrance
9986	is true.
9987	* config/i386/i386.h (machine_function): Add
9988	endbr_queued_at_entrance.
9989
99902018-09-24  Ilya Leoshkevich  <iii@linux.ibm.com>
9991
9992	* genattrtab.c (mk_attr_alt): Use alternative_mask.
9993	(attr_rtx_1): Adjust caching to match the new EQ_ATTR_ALT field
9994	types.
9995	(check_attr_test): Use alternative_mask.
9996	(get_attr_value): Likewise.
9997	(compute_alternative_mask): Use alternative_mask and XWINT.
9998	(make_alternative_compare): Use alternative_mask.
9999	(attr_alt_subset_p): Use XWINT.
10000	(attr_alt_subset_of_compl_p): Likewise.
10001	(attr_alt_intersection): Use alternative_mask and XWINT.
10002	(attr_alt_union): Likewise.
10003	(attr_alt_complement): Use HOST_WIDE_INT and XWINT.
10004	(mk_attr_alt): Use alternative_mask and HOST_WIDE_INT.
10005	(simplify_test_exp): Use alternative_mask and XWINT.
10006	(write_test_expr): Use alternative_mask and XWINT, adjust bit
10007	number calculation to support 64 bits.  Generate code that
10008	checks 64-bit masks.
10009	(main): Use alternative_mask.
10010	* rtl.def (EQ_ATTR_ALT): Change field types from ii to ww.
10011
100122018-09-24  Ilya Leoshkevich  <iii@linux.ibm.com>
10013
10014	PR target/80080
10015	* config/s390/s390.c (s390_emit_epilogue): Do not use PARALLEL
10016	RETURN+USE when returning via %r14.
10017
100182018-09-24  Martin Liska  <mliska@suse.cz>
10019
10020	* gcov.c (output_lines): Print colorization legend
10021	for both flag_use_colors and flag_use_hotness_colors.
10022	Reword the help.
10023
100242018-09-24  Martin Liska  <mliska@suse.cz>
10025
10026	* coverage.c (get_coverage_counts): Use warning_at
10027	with current_function_decl location. Use %qD in warning
10028	message.
10029
100302018-09-24  Martin Liska  <mliska@suse.cz>
10031
10032	* memory-block.h (memory_block_pool::release): Annotate with
10033	valgrind that the memory is not accessible.
10034
100352018-09-24  Martin Liska  <mliska@suse.cz>
10036
10037	PR sanitizer/85774
10038	* asan.c: Make asan_handled_variables extern.
10039	* asan.h: Likewise.
10040	* cfgexpand.c (expand_stack_vars): Make sure
10041	a representative is unpoison if another
10042	variable in the partition is handled by
10043	use-after-scope sanitization.
10044
100452018-09-24  Richard Biener  <rguenther@suse.de>
10046
10047	PR tree-optimization/63155
10048	* tree-ssa-propagate.c (add_ssa_edge): Avoid adding PHIs to
10049	the worklist when the edge of the respective argument isn't
10050	executable.
10051
100522018-09-23   Uros Bizjak  <ubizjak@gmail.com>
10053
10054	* config/i386/i386.h (enum reg_class): Rename MASK_REGS to
10055	ALL_MASK_REGS and MASK_EVEX_REGS to MASK_REGS.
10056	(MASK_CLASS_P): Update for rename.
10057	(MAYBE_MASK_CLASS_P): Ditto.
10058	(REG_CLASS_NAMES): Update.
10059	(REG_CLASS_CONTENT): Update.
10060	* config/i386/i386.c (regclass_map): Update for MASK_REG
10061	and ALL_MASK_REGS rename.
10062	* config/i386/constraints.md (Yk): Update for rename.
10063	(k): Ditto.
10064
100652018-09-23   Uros Bizjak  <ubizjak@gmail.com>
10066
10067	* config/i386/i386.h (enum reg_class): Remove
10068	EVEX_SSE_REGS and MOD4_SSE_REGS.
10069	(REG_CLASS_NAMES): Update.
10070	(REG_CLASS_CONTENT): Update.
10071	* config/i386/i386.c (regclass_map): Declare AVX-512 SSE
10072	registers as ALL_SSE_REGS.
10073	(ix86_additional_allocno_class_p): Remove.
10074	(TARGET_ADDITIONAL_ALLOCNO_CLASS_P): Remove.
10075	(ix86_register_priority): Lower priority of EVEX SSE registers.
10076	Use IN_RANGE macro where appropriate.
10077	(ix86_hard_regno_mode_ok): Merge AVX-5124FMAPS and
10078	AVX-5124VNNIW checks.
10079	(ix86_modes_tieable_p): Tie 512-bit SSE modes.
10080	* config/i386/sse.md (avx5124fmaddps_4fmaddps)
10081	(avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddps_maskz)
10082	(avx5124fmaddps_4fmaddss, avx5124fmaddps_4fmaddss_mask)
10083	(avx5124fmaddps_4fmaddss_maskz, avx5124fmaddps_4fnmaddps)
10084	(avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddps_maskz)
10085	(avx5124fmaddps_4fnmaddss, avx5124fmaddps_4fnmaddss_mask)
10086	(avx5124fmaddps_4fnmaddss_maskz, avx5124vnniw_vp4dpwssd)
10087	(avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssd_maskz)
10088	(avx5124vnniw_vp4dpwssds, avx5124vnniw_vp4dpwssds_mask)
10089	(avx5124vnniw_vp4dpwssds_maskz): Use "v" instead of "Yh" constraint.
10090	* config/i386/constraints.md (Yh): Remove.
10091
100922018-09-23   Uros Bizjak  <ubizjak@gmail.com>
10093
10094	* config/i386/i386.c (regclass_map): Declare integer REX registers
10095	as GENERAL_REGS.
10096
100972018-09-23  Gerald Pfeifer  <gerald@pfeifer.com>
10098
10099	* doc/service.texi (Service): Switch the fsf.org link to https.
10100
101012018-09-22  Chung-Ju Wu  <jasonwucj@gmail.com>
10102
10103	PR target/86798
10104	* config/nds32/nds32.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
10105	Define to speculation_safe_value_not_needed.
10106
101072018-09-21  Florian Weimer  <fweimer@redhat.com>
10108
10109	PR middle-end/81035
10110	* doc/extend.texi (Common Function Attributes): Mention that
10111	noreturn suppresses tail call optimization.
10112
101132018-09-21  Jeff Law  <law@redhat.com>
10114
10115	* gimple-ssa-evrp.c (evrp_dom_walker::cleanup): Call
10116	vr_values::cleanup_edges_and_switches.
10117	* tree-vrp.c (to_remove_edges, to_update_switch_stmts): Moved into
10118	vr_values class.
10119	(identify_jump_threads): Remove EDGE_IGNORE handling.
10120	(execute_vrp): Move handling of to_remove_edges and
10121	to_update_switch_stmts into vr_values class member functions.
10122	* tree-vrp.h (switch_update, to_remove_edges): Remove declarations.
10123	(to_update_switch_stmts): Likewise.
10124	* vr-values.c: Include cfghooks.h.
10125	(vr_values::vr_values): Initialize to_remove_edges and
10126	to_update_switch_stmts.
10127	(vr_values::~vr_values): Verify to_remove_edges and
10128	to_update_switch_stmts are empty.
10129	(vr_values::simplify_switch_using_ranges): Set EDGE_IGNORE as needed.
10130	(vr_values::cleanup_edges_and_switches): New member function.
10131	* vr-values.h (vr_values): Add cleanup_edges_and_switches member
10132	function.  Add new data members.
10133
101342018-09-21  David Malcolm  <dmalcolm@redhat.com>
10135
10136	PR tree-optimization/87309
10137	* dumpfile.c (dump_context::begin_scope): Filter the dump_loc
10138	calls with pflags and alt_flags.
10139	(selftest::test_capture_of_dump_calls): Add test of interaction of
10140	MSG_OPTIMIZED_LOCATIONS with AUTO_DUMP_SCOPE.
10141
101422018-09-21  Olivier Hainque  <hainque@adacore.com>
10143
10144	* config.gcc: Factorize and comment inclusion of vxworks-dummy.h.
10145
101462018-09-21  Olivier Hainque  <hainque@adacore.com>
10147
10148	* config/vxworks.h (CLEAR_INSN_CACHE): #define to 1.
10149
101502018-09-21  Olivier Hainque  <hainque@adacore.com>
10151
10152	* config/vxworks.h (VXWORKS_LIBGCC_SPEC): Remove -lc_internal.
10153	Merge block comment with the one ahead of VXWORKS_LIBS_RTP. Then:
10154	(VXWORKS_LIBS_RTP): Minor reordering.
10155
101562018-09-21  Olivier Hainque  <hainque@adacore.com>
10157
10158	* config/vxworks.h (STARTFILE_PREFIX_SPEC): Define.
10159	(VXWORKS_LIBS_DIR_RTP): Remove definition and use.
10160
101612018-09-21  Olivier Hainque  <hainque@adacore.com>
10162
10163	* config/vxworks.h (SIZE_TYPE): Account for TARGET_VXWORKS64.
10164	(PTRDIFF_TYPE): Likewise.
10165
101662018-09-21  Olivier Hainque  <hainque@adacore.com>
10167
10168	* config.gcc: Enforce def of TARGET_VXWORKS64 to 1 from
10169	triplet, similar to support for VxWorks7.
10170	* config/vxworks-dummy.h: Provide a default definition
10171	of TARGET_VXWORKS64 to 0.
10172
101732018-09-21  Olivier Hainque  <hainque@adacore.com>
10174
10175	* config/vxworks.h (TARGET_VXWORKS7): Move default definition ...
10176	* config/vxworks-dummy.h: here.
10177
101782018-09-21  Olivier Hainque  <hainque@adacore.com>
10179
10180	* config.gcc: Prepend vxworks-dummy.h to tm_file for powerpc*
10181
101822018-09-21  Shaokun Zhang  <zhangshaokun@hisilicon.com>
10183	    Bo Zhou  <zbo.zhou@hisilicon.com>
10184
10185	* config/aarch64/aarch64-cores.def (tsv110): New CPU.
10186	* config/aarch64/aarch64-tune.md: Regenerated.
10187	* doc/invoke.texi (AArch64 Options/-mtune): Add "tsv110".
10188	* config/aarch64/aarch64.c (tsv110_tunings): New tuning table.
10189	* config/aarch64/aarch64-cost-tables.h: Add "tsv110" extra costs.
10190
101912018-09-21  Andrew Stubbs  <ams@codesourcery.com>
10192	    Julian Brown  <julian@codesourcery.com>
10193
10194	* builtins.c (get_builtin_sync_mem): Handle address spaces.
10195
101962018-09-21  Eric Botcazou  <ebotcazou@adacore.com>
10197
10198	* config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Return false
10199	if the call takes a static chain.
10200
102012018-09-21  Martin Liska  <mliska@suse.cz>
10202
10203	* auto-profile.c (autofdo_source_profile::read): Do not
10204	set sum_all.
10205	(read_profile): Do not add working sets.
10206	(read_autofdo_file): Remove sum_all.
10207	(afdo_callsite_hot_enough_for_early_inline): Remove const
10208	qualifier.
10209	* coverage.c (struct counts_entry): Remove gcov_summary.
10210	(read_counts_file): Read new GCOV_TAG_OBJECT_SUMMARY,
10211	do not support GCOV_TAG_PROGRAM_SUMMARY.
10212	(get_coverage_counts): Remove summary and expected
10213	arguments.
10214	* coverage.h (get_coverage_counts): Likewise.
10215	* doc/gcov-dump.texi: Remove -w option.
10216	* gcov-dump.c (dump_working_sets): Remove.
10217	(main): Do not support '-w' option.
10218	(print_usage): Likewise.
10219	(tag_summary): Likewise.
10220	* gcov-io.c (gcov_write_summary): Do not dump
10221	histogram.
10222	(gcov_read_summary): Likewise.
10223	(gcov_histo_index): Remove.
10224	(gcov_histogram_merge): Likewise.
10225	(compute_working_sets): Likewise.
10226	* gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Mark
10227	it not obsolete.
10228	(GCOV_TAG_PROGRAM_SUMMARY): Mark it obsolete.
10229	(GCOV_TAG_SUMMARY_LENGTH): Adjust.
10230	(GCOV_HISTOGRAM_SIZE): Remove.
10231	(GCOV_HISTOGRAM_BITVECTOR_SIZE): Likewise.
10232	(struct gcov_summary): Simplify rapidly just
10233	to runs and sum_max fields.
10234	(gcov_histo_index): Remove.
10235	(NUM_GCOV_WORKING_SETS): Likewise.
10236	(compute_working_sets): Likewise.
10237	* gcov-tool.c (print_overlap_usage_message): Remove
10238	trailing empty line.
10239	* gcov.c (read_count_file): Read GCOV_TAG_OBJECT_SUMMARY.
10240	(output_lines): Remove program related line.
10241	* ipa-profile.c (ipa_profile): Do not consider GCOV histogram.
10242	* lto-cgraph.c (output_profile_summary): Do not stream GCOV
10243	histogram.
10244	(input_profile_summary): Do not read it.
10245	(merge_profile_summaries): And do not merge it.
10246	(input_symtab): Do not call removed function.
10247	* modulo-sched.c (sms_schedule): Do not print sum_max.
10248	* params.def (HOT_BB_COUNT_FRACTION): Reincarnate param that was
10249	removed when histogram method was invented.
10250	(HOT_BB_COUNT_WS_PERMILLE): Mention that it's used only in LTO
10251	mode.
10252	* postreload-gcse.c (eliminate_partially_redundant_load): Fix
10253	GCOV coding style.
10254	* predict.c (get_hot_bb_threshold): Use HOT_BB_COUNT_FRACTION
10255	and dump selected value.
10256	* profile.c (add_working_set): Remove.
10257	(get_working_sets): Likewise.
10258	(find_working_set): Likewise.
10259	(get_exec_counts): Do not work with working sets.
10260	(read_profile_edge_counts): Do not inform as sum_max is removed.
10261	(compute_branch_probabilities): Likewise.
10262	(compute_value_histograms): Remove argument for call of
10263	get_coverage_counts.
10264	* profile.h: Do not make gcov_summary const.
10265
102662018-09-21  Monk Chiang  <sh.chiang04@gmail.com>
10267
10268	* config.gcc (nds32*-*-*): Set TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0.
10269
102702018-09-21  Eric Botcazou  <ebotcazou@adacore.com>
10271
10272	PR tree-optimization/86990
10273	* gimple-ssa-store-merging.c (imm_store_chain_info:coalesce_immediate):
10274	Check that the entire merged store group is made of constants only for
10275	overlapping stores.
10276
102772018-09-20  Allan Sandfeld Jensen  <allan.jensen@qt.io>
10278
10279	* gcc.c (LINK_COMMAND_SPEC): Handle -r like -nostdlib.
10280	(VTABLE_VERIFICATION_SPEC): Likewise.
10281	(SANITIZER_EARLY_SPEC): Likewise.
10282	(SANITIZER_SPEC): Likewise.
10283	* config/darwin.h (LINK_COMMAND_SPEC): Likewise.
10284	* doc/invoke.texi (Link Options): Document -r.
10285
102862018-09-20  Richard Biener  <rguenther@suse.de>
10287
10288	PR middle-end/87054
10289	* gimplify.c (gimplify_expr): Retain alignment of
10290	addressable lvalue in dereference.
10291
102922018-09-20  Alexandre Oliva  <aoliva@redhat.com>
10293
10294	PR bootstrap/87013
10295	* configure.ac: Check for .loc is_stmt support.
10296	* configure, config.in: Rebuilt.
10297	* dwarf2out.c (dwarf2out_source_line): Skip is_stmt
10298	if not supported.
10299
103002018-09-20  Segher Boessenkool  <segher@kernel.crashing.org>
10301
10302	* config/rs6000/rs6000.opt (misel=no, misel=yes): Delete.
10303	* doc/invoke.texi (RS/6000 and PowerPC Options): Delete -misel=yes and
10304	-misel=no.
10305
103062018-09-20  Segher Boessenkool  <segher@kernel.crashing.org>
10307
10308	* config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete
10309	VECTOR_OTHER.
10310	* config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete
10311	case VECTOR_OTHER.
10312
103132018-09-20  Marek Polacek  <polacek@redhat.com>
10314
10315	* doc/invoke.texi: Add -Wno-init-list-lifetime to C++ Language Options.
10316
103172018-09-20  Richard Sandiford  <richard.sandiford@arm.com>
10318
10319	PR tree-optimization/87288
10320	* tree-vect-loop.c (vect_analyze_loop_2): Take PEELING_FOR_GAPS
10321	into account when determining PEELING_FOR_NITERS.
10322
103232018-09-20  Richard Sandiford  <richard.sandiford@arm.com>
10324
10325	PR tree-optimization/86877
10326	* tree-vect-loop.c (vect_analyze_loop_2): Call
10327	vect_verify_datarefs_alignment.
10328
103292018-09-19  Marek Polacek  <polacek@redhat.com>
10330
10331	* doc/invoke.texi: Document -Wclass-conversion.
10332
103332018-09-19  John David Anglin  <danglin@gcc.gnu.org>
10334
10335	* config/pa/pa.c (pa_adjust_priority): Delete.
10336	(TARGET_SCHED_ADJUST_PRIORITY): Delete define.
10337
10338	* config/pa/pa.md (atomic_storeqi): Restore deleted expander.
10339	(atomic_storehi): Likewise.
10340	(atomic_storesi): Likewise.
10341	(atomic_loaddi): Restore compare and swap exchange loop code.
10342
103432018-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
10344
10345	PR rtl-optimization/86902
10346	* combine.c (try_combine): When changing the CC mode used, don't change
10347	an unrelated mode in other_insn to that new CC mode.
10348
103492018-09-19  David Malcolm  <dmalcolm@redhat.com>
10350
10351	* tree-data-ref.c (runtime_alias_check_p): Use formatted printing
10352	with %T in place of calls to dump_generic_expr.
10353	(prune_runtime_alias_test_list): Likewise.
10354	(create_runtime_alias_checks): Likewise.
10355	* tree-vect-data-refs.c (vect_check_nonzero_value): Likewise.
10356	(vect_analyze_data_ref_dependence): Likewise.
10357	(vect_slp_analyze_data_ref_dependence): Likewise.
10358	(vect_record_base_alignment): Likewise.  Use %G in place of call
10359	to dump_gimple_stmt.
10360	(vect_compute_data_ref_alignment): Likewise.
10361	(verify_data_ref_alignment): Likewise.
10362	(vect_find_same_alignment_drs): Likewise.
10363	(vect_analyze_group_access_1): Likewise.
10364	(vect_analyze_data_ref_accesses): Likewise.
10365	(dependence_distance_ge_vf): Likewise.
10366	(dump_lower_bound): Likewise.
10367	(vect_prune_runtime_alias_test_list): Likewise.
10368	(vect_find_stmt_data_reference): Likewise.
10369	(vect_analyze_data_refs): Likewise.
10370	(vect_create_addr_base_for_vector_ref): Likewise.
10371	(vect_create_data_ref_ptr): Likewise.
10372	* tree-vect-loop-manip.c (vect_set_loop_condition): Likewise.
10373	(vect_can_advance_ivs_p): Likewise.
10374	(vect_update_ivs_after_vectorizer): Likewise.
10375	(vect_gen_prolog_loop_niters): Likewise.
10376	(vect_prepare_for_masked_peels): Likewise.
10377	* tree-vect-loop.c (vect_determine_vf_for_stmt): Likewise.
10378	(vect_determine_vectorization_factor): Likewise.
10379	(vect_is_simple_iv_evolution): Likewise.
10380	(vect_analyze_scalar_cycles_1): Likewise.
10381	(vect_analyze_loop_operations): Likewise.
10382	(report_vect_op): Likewise.
10383	(vect_is_slp_reduction): Likewise.
10384	(check_reduction_path): Likewise.
10385	(vect_is_simple_reduction): Likewise.
10386	(vect_create_epilog_for_reduction): Likewise.
10387	(vect_finalize_reduction:): Likewise.
10388	(vectorizable_induction): Likewise.
10389	(vect_transform_loop_stmt): Likewise.
10390	(vect_transform_loop): Likewise.
10391	(optimize_mask_stores): Likewise.
10392	* tree-vect-patterns.c (vect_pattern_detected): Likewise.
10393	(vect_split_statement): Likewise.
10394	(vect_recog_over_widening_pattern): Likewise.
10395	(vect_recog_average_pattern): Likewise.
10396	(vect_determine_min_output_precision_1): Likewise.
10397	(vect_determine_precisions_from_range): Likewise.
10398	(vect_determine_precisions_from_users): Likewise.
10399	(vect_mark_pattern_stmts): Likewise.
10400	(vect_pattern_recog_1): Likewise.
10401	* tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
10402	(vect_record_max_nunits): Likewise.
10403	(vect_build_slp_tree_1): Likewise.
10404	(vect_build_slp_tree_2): Likewise.
10405	(vect_print_slp_tree): Likewise.
10406	(vect_analyze_slp_instance): Likewise.
10407	(vect_detect_hybrid_slp_stmts): Likewise.
10408	(vect_detect_hybrid_slp_1): Likewise.
10409	(vect_slp_analyze_operations): Likewise.
10410	(vect_slp_analyze_bb_1): Likewise.
10411	(vect_transform_slp_perm_load): Likewise.
10412	(vect_schedule_slp_instance): Likewise.
10413	* tree-vect-stmts.c (vect_mark_relevant): Likewise.
10414	(vect_mark_stmts_to_be_vectorized): Likewise.
10415	(vect_init_vector_1): Likewise.
10416	(vect_get_vec_def_for_operand): Likewise.
10417	(vect_finish_stmt_generation_1): Likewise.
10418	(vect_check_load_store_mask): Likewise.
10419	(vectorizable_call): Likewise.
10420	(vectorizable_conversion): Likewise.
10421	(vectorizable_operation): Likewise.
10422	(vectorizable_load): Likewise.
10423	(vect_analyze_stmt): Likewise.
10424	(vect_is_simple_use): Likewise.
10425	(vect_get_vector_types_for_stmt): Likewise.
10426	(vect_get_mask_type_for_stmt): Likewise.
10427	* tree-vectorizer.c (increase_alignment): Likewise.
10428
104292018-09-19  Andrew Stubbs  <ams@codesourcery.com>
10430
10431	* doc/rtl.texi: Adjust vec_select description.
10432	* simplify-rtx.c (simplify_binary_operation_1): Allow VEC_SELECT to use
10433	non-constant selectors.
10434
104352018-09-19  Matthew Malcomson  <matthew.malcomson@arm.com>
10436
10437	* config/aarch64/aarch64-protos.h
10438	(aarch64_offset_9bit_signed_unscaled_p): New declaration.
10439	* config/aarch64/aarch64.md (arches): New "rcpc8_4" attribute value.
10440	(arch_enabled): Add check for "rcpc8_4" attribute value of "arch".
10441	* config/aarch64/aarch64.h (AARCH64_FL_RCPC8_4): New bitfield.
10442	(AARCH64_FL_FOR_ARCH8_4): Include AARCH64_FL_RCPC8_4.
10443	(AARCH64_FL_PROFILE): Move index so flags are ordered.
10444	(AARCH64_ISA_RCPC8_4): New flag.
10445	* config/aarch64/aarch64.c (offset_9bit_signed_unscaled_p): Renamed
10446	to aarch64_offset_9bit_signed_unscaled_p.
10447	* config/aarch64/atomics.md (atomic_store<mode>): Allow offset
10448	and use stlur.
10449	* config/aarch64/constraints.md (Ust): New constraint.
10450	* config/aarch64/predicates.md.
10451	(aarch64_9bit_offset_memory_operand): New predicate.
10452	(aarch64_rcpc_memory_operand): New predicate.
10453
104542018-09-19  Eric Botcazou  <ebotcazou@adacore.com>
10455
10456	PR rtl-optimization/87361
10457	* rtlanal.c (nonzero_bits1): Revert accidental change.
10458
104592018-09-19  Richard Biener  <rguenther@suse.de>
10460
10461	PR tree-optimization/87349
10462	PR tree-optimization/87342
10463	* tree-ssa-sccvn.c (do_rpo_vn): Iterate max_rpo computation.
10464
104652018-09-18  Marek Polacek  <polacek@redhat.com>
10466
10467	P1064R0 - Allowing Virtual Function Calls in Constant Expressions
10468	* gimple-fold.c (gimple_get_virt_method_for_vtable): Adjust assert.
10469
104702018-09-18  Segher Boessenkool  <segher@kernel.crashing.org>
10471
10472	* config/rs6000/rs6000.md: Remove old "Cygnus sibcall" comment.
10473
104742018-09-18  Segher Boessenkool  <segher@kernel.crashing.org>
10475
10476	PR rtl-optimization/86882
10477	* rtlanal.c (reg_overlap_mentioned_p): Handle CLOBBER.
10478
104792018-09-18  Uros Bizjak  <ubizjak@gmail.com>
10480
10481	* config/i386/i386.md (*<code>extend<mode>xf2): Macroize insn from
10482	*<code>extendsfxf2 and *<code>extenddfxf2 using MODEF mode iterator.
10483
104842018-09-18  Jonathan Wakely  <jwakely@redhat.com>
10485
10486	PR other/87353
10487	* doc/invoke.texi (Link Options): Fix formatting and grammar.
10488
104892018-09-18  Richard Biener  <rguenther@suse.de>
10490
10491	PR middle-end/63155
10492	* tree-ssa-coalesce.c (tree_int_map_hasher): Remove.
10493	(compute_samebase_partition_bases): Likewise.
10494	(coalesce_ssa_name): Always use compute_optimized_partition_bases.
10495	(gimple_can_coalesce_p): Simplify.
10496
104972018-09-18  Hans-Peter Nilsson  <hp@bitrange.com>
10498
10499	Handle a library implementation of ffs calling __builtin_ffs.
10500	* config/mmix/mmix.c (TARGET_INIT_LIBFUNCS): Override with...
10501	(mmix_init_libfuncs): New function: make __builtin_ffs expand
10502	to __ffsdi2.
10503
105042018-09-17  David Malcolm  <dmalcolm@redhat.com>
10505
10506	* diagnostic-show-locus.c (class layout_range): Add field
10507	"m_original_idx".
10508	(layout_range::layout_range): Add "original_idx" param and use it
10509	to initialize new field.
10510	(make_range): Use 0 for original_idx.
10511	(layout::layout): Pass in index to calls to
10512	maybe_add_location_range.
10513	(layout::maybe_add_location_range): Add param "original_idx" and
10514	pass it on to layout_range.
10515	(layout::print_any_labels): Pass on range->m_original_idx to
10516	get_text call.
10517	(gcc_rich_location::add_location_if_nearby): Use 0 for
10518	original_idx.
10519	* gcc-rich-location.h (text_range_label::get_text): Update for new
10520	param.
10521	(range_label_for_type_mismatch::get_text): Likewise.
10522
105232018-09-17  Uros Bizjak  <ubizjak@gmail.com>
10524
10525	* config/i386/i386.c (ix86_emit_i387_log1p): Emit fldln2 earlier.
10526
105272018-09-17  David Malcolm  <dmalcolm@redhat.com>
10528
10529	* gimple-ssa-sprintf.c (fmtwarn): Update for introduction of
10530	format_string_diagnostic_t.
10531	(fmtwarn_n): Likewise.
10532	* substring-locations.c
10533	(format_string_diagnostic_t::format_string_diagnostic_t) New ctor.
10534	(format_warning_n_va): Convert to...
10535	(format_string_diagnostic_t::emit_warning_n_va): ...this.
10536	(format_warning_va): Convert to...
10537	(format_string_diagnostic_t::emit_warning_va): ...this.
10538	(format_warning_at_substring): Convert to...
10539	(format_string_diagnostic_t::emit_warning): ...this.
10540	(format_warning_at_substring_n): Convert to...
10541	(format_string_diagnostic_t::emit_warning_n): ...this.
10542	* substring-locations.h (class format_string_diagnostic_t): New
10543	class.
10544	(format_warning_va): Convert to
10545	format_string_diagnostic_t::emit_warning_va.
10546	(format_warning_n_va): Convert to
10547	format_string_diagnostic_t::emit_warning_n_va.
10548	(format_warning_at_substring): Convert to
10549	format_string_diagnostic_t::emit_warning.
10550	(format_warning_at_substring_n): Convert to
10551	format_string_diagnostic_t::emit_warning_n.
10552
105532018-09-17  Cesar Philippidis  <cesar@codesourcery.com>
10554	    Bernd Schmidt  <bernds_cb1@t-online.de>
10555
10556	* config/nvptx/nvptx.md (atomic_fetch_<logic><mode>): Enable with
10557	SImode args.
10558
105592018-09-17  Uros Bizjak  <ubizjak@gmail.com>
10560
10561	* config/i386/i386.md (truncxf<mode>2_i387_noop_unspec): Change
10562	operand 0 predicate to nonimmediate operand.
10563	(rint<mode>2_frndint): Remove insn pattern.
10564	(rint<mode>2): Change operand 1 predicate to general_operand.
10565	Extend operand 1 to XFmode and generate rintxf2 insn.
10566	(frndintxf2_<rounding>): Rename from frndint<mode>2_<rounding>.
10567	Do not use X87MODEF mode macro.
10568	(frndintxf2_<rounding>_i387): Rename from
10569	frndint<mode>2_<rounding>_i387.  Do not use X87MODEF mode macro.
10570	(<rounding_insn><mode>2): For non-SSE modes, extend operand 1
10571	to XFmode and generate significandxf3 insn.
10572
105732018-09-17  Richard Biener  <rguenther@suse.de>
10574
10575	PR tree-optimization/87328
10576	* tree-ssa-sccvn.c (process_bb): Remove assertion about not
10577	visiting unexecutable backedges when not iterating.
10578	(do_rpo_vn): Mark all edges not executable even when not
10579	iterating.
10580
105812018-09-17  Martin Jambor  <mjambor@suse.cz>
10582
10583	PR c/63886
10584	* doc/invoke.texi (Warning Options): Likewise.
10585
105862018-09-17  Richard Biener  <rguenther@suse.de>
10587
10588	PR tree-optimization/87301
10589	* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_cleanup): Properly
10590	clean EH info from leftover copy assignments.
10591
105922018-09-17  Martin Liska  <mliska@suse.cz>
10593
10594	PR gcov-profile/85871
10595	* gcov.c (output_intermediate_file): Fix out of bounds
10596	access.
10597
105982018-09-17  Vineet Gupta  <vgupta@synopsys.com>
10599
10600	* config/arc/arc.c: Object attributes for core4 not reflected
10601	correctly.
10602	* config/arc/arc.h: Don't restrict DBNZ to core3 (core4 includes
10603	core3).
10604
106052018-09-17  Alexey Brodkin  <abrodkin@synopsys.com>
10606
10607	* config/arc/linux.h (LINK_EH_SPEC): Add missing space.
10608
106092018-09-17  Martin Liska  <mliska@suse.cz>
10610
10611	* doc/gcov.texi: Document new option --use-hotness-colors.
10612	* gcov.c (struct source_info): Declare new field.
10613	(source_info::source_info): Set default for maximum_count.
10614	(print_usage): Add new -q option.
10615	(process_args): Process it.
10616	(accumulate_line_info): Save src->maximum_count.
10617	(output_line_beginning): Make color line number if
10618	flag_use_hotness_colors is set.
10619	(output_line_details): Pass default argument value.
10620	(output_lines): Pass src->maximum_count.
10621
106222018-09-17  Martin Liska  <mliska@suse.cz>
10623
10624	* common/config/i386/i386-common.c (ix86_get_valid_option_values):
10625	Use processor_names table.
10626	* config/i386/i386.c (ix86_default_align): Use
10627	processor_cost_table for alignment values.
10628	(ix86_option_override_internal): Use processor_names.
10629	(ix86_function_specific_print): Likewise.
10630	* config/i386/i386.h (struct processor_costs):
10631	Add alignment values.
10632	(struct ptt): Remove and replace with const char *.
10633	* config/i386/x86-tune-costs.h (struct processor_costs):
10634	Declare default alignments for all costs.
10635
106362018-09-17  Aldy Hernandez  <aldyh@redhat.com>
10637
10638	* tree-vrp.c (extract_range_from_unary_expr): Do not special case
10639	symbolics or VR_VARYING ranges for ABS_EXPR.
10640	* wide-int-range.cc (wide_int_range_abs): Return positive numbers
10641	when range will wrap.
10642
106432018-09-15  Eric Botcazou  <ebotcazou@adacore.com>
10644
10645	PR middle-end/86864
10646	* cfgexpand.c (expand_gimple_basic_block): Be prepared for a BARRIER
10647	before and after a JUMP_TABLE_DATA.
10648
106492018-09-14  John David Anglin  <danglin@gcc.gnu.org>
10650
10651	PR middle-end/87188
10652	* dojump.c (do_compare_and_jump): Canonicalize function pointers
10653	when one operand is a function pointer.  Use POINTER_TYPE_P and
10654	FUNC_OR_METHOD_TYPE_P.
10655	* expr.c (do_store_flag): Use POINTER_TYPE_P and FUNC_OR_METHOD_TYPE_P.
10656	* fold-const.c (build_range_check): Likewise.
10657	* match.pd (simple_comparison): Likewise.
10658
106592018-09-14  David Malcolm  <dmalcolm@redhat.com>
10660
10661	PR c/82967
10662	* spellcheck.c (get_edit_distance_cutoff): New function.
10663	(selftest::test_edit_distance_unit_test_oneway): Rename to...
10664	(selftest::test_get_edit_distance_one_way): ...this.
10665	(selftest::test_get_edit_distance_unit): Rename to...
10666	(selftest::test_get_edit_distance_both_ways): ...this.
10667	(selftest::test_edit_distances): Move tests to this new function,
10668	and test some more pairs of strings.  Update for above renaming.
10669	(selftest::get_old_cutoff): New function.
10670	(selftest::test_get_edit_distance_cutoff): New function.
10671	(selftest::assert_suggested_for): New function.
10672	(ASSERT_SUGGESTED_FOR): New macro.
10673	(selftest::assert_not_suggested_for): New function.
10674	(ASSERT_NOT_SUGGESTED_FOR): New macro.
10675	(selftest::test_suggestions): New function.
10676	(selftest::spellcheck_c_tests): Move test_get_edit_distance_unit
10677	tests to selftest::test_edit_distances and call it.  Add calls to
10678	selftest::test_get_edit_distance_cutoff and
10679	selftest::test_suggestions.
10680	* spellcheck.h (get_edit_distance_cutoff): New function declaration.
10681	(best_match::consider): Replace hard-coded cutoff calculation with
10682	a call to...
10683	(best_match::get_cutoff): New declaration.
10684	(best_match::get_best_meaningful_candidate): Likewise.
10685
106862018-09-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10687
10688	* builtins.c (fold_builtin_strlen): Remove TODO comment.
10689
106902018-09-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10691
10692	revert:
10693	2018-07-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10694
10695	* tree-ssa-forwprop.c (simplify_builtin_call): Don't create a not NUL
10696	terminated string literal.
10697
106982018-09-14  Martin Sebor  <msebor@redhat.com>
10699
10700	* builtins.c (unterminated_array): Handle ARRAY_REF.
10701	(expand_builtin_stpcpy_1): Detect unterminated char arrays.
10702	* builtins.h (unterminated_array): Declare extern.
10703	* gimple-fold.c (gimple_fold_builtin_stpcpy): Detect unterminated
10704	arrays.
10705	(gimple_fold_builtin_sprintf): Propagate NO_WARNING to transformed
10706	calls.
10707
107082018-09-14  Martin Sebor  <msebor@redhat.com>
10709	    Jeff Law  <law@redhat.com>
10710
10711	* builtins.c (unterminated_array): New.
10712	(expand_builtin_strcpy): Adjust.
10713	(expand_builtin_strcpy_args): Detect unterminated arrays.
10714	* gimple-fold.c (get_maxval_strlen): Add argument.  Detect
10715	unterminated arrays.
10716	* gimple-fold.h (get_maxval_strlen): Add argument.
10717	(gimple_fold_builtin_strcpy): Detec unterminated arrays.
10718
10719	* gimple-fold.c (get_range_strlen): Add argument.
10720	(get_maxval_strlen): Adjust.
10721	* gimple-fold.h (get_range_strlen): Add argument.
10722
107232018-09-14  Wei Xiao  <wei3.xiao@intel.com>
10724
10725	* config/i386/movdirintrin.h: Fix copyright year.
10726
107272018-09-14  Uros Bizjak  <ubizjak@gmail.com>
10728
10729	* reg-stack.c: Include regs.h.
10730	(replace_reg): Assert that mode is MODE_FLOAT or MODE_COMPLEX_FLOAT.
10731	(emit_pop_insn): Default pop insn mode to the reg_raw_mode of
10732	FIRST_STACK_REG, not DFmode.
10733	(emit_swap_insn): Default swap insn mode to the reg_raw_mode of
10734	FIRST_STACK_REG, not XFmode.  Explicitly construct swap RTX.
10735	(change stack): Default register mode to the reg_raw_mode of
10736	FIRST_STACK_REG, not DFmode.
10737	* config/i386/i386.md (*swap<mode>): Remove insn pattern.
10738	(*swapxf): Rename from swapxf.
10739
107402018-09-14  Carl Love  <cel@us.ibm.com>
10741
10742	* config/rs6000/emmintrin.h: Add _MM_SHUFFLE2.
10743	* config/rs6000/xmmintrin.h: Add _MM_SHUFFLE.
10744
107452018-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
10746
10747	PR target/87224
10748	* config/rs6000/rs6000.md (*mov<mode>_hardfloat64): Add Z to the Y
10749	alternatives.
10750
107512018-09-14  Sam Tebbs  <sam.tebbs@arm.com>
10752
10753	PR target/85628
10754	* config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Define.
10755
107562018-09-14  Jason Merrill  <jason@redhat.com>
10757
10758	Fix --enable-gather-detailed-mem-stats.
10759	* hash-table.c (hash_table_usage): Change from variable to function.
10760	* hash-table.h: Adjust.
10761	* Makefile.in: Add missing dependencies on hash-table.h.
10762
107632018-09-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10764
10765	PR tree-optimization/87259
10766	PR lto/87283
10767	(pass_cse_reciprocals::execute): Run optimize_recip_sqrt after
10768	execute_cse_reciprocals_1 has tried transforming.
10769
107702018-09-14  Aldy Hernandez  <aldyh@redhat.com>
10771
10772	* tree-vrp.c (extract_range_from_binary_expr_1): Normalize
10773	VR_VARYING for PLUS/MINUS_EXPR.
10774
107752018-09-14  Ilya Leoshkevich  <iii@linux.ibm.com>
10776
10777	* config/s390/s390-passes.def (INSERT_PASS_BEFORE): Improve
10778	formatting.
10779
107802018-09-14  Richard Biener  <rguenther@suse.de>
10781
10782	PR middle-end/63155
10783	* tree-ssa-coalesce.c (ssa_conflicts_merge): Remove conflict
10784	bits for the merged partition.
10785
107862018-09-13  Martin Sebor  <msebor@redhat.com>
10787	    Bernd Edlinger  <bernd.edlinger@hotmail.de>
10788
10789	* builtins.h (c_srlen): Add argument.
10790	* builtins.c (warn_string_no_nul): New function.
10791	(c_strlen): Add argument and use it.  Update recursive calls.
10792	Pass DECL argument to string_constant to get info on non
10793	terminated strings.  Update *NONSTR as needed.
10794	(fold_builtin_strlen): Add argument to calls to c_strlen.
10795	Warn for unterminated arrays.
10796	(warn_string_no_null): Add prototype.
10797	* expr.c (string_constant): Update arguments.  Update recursive
10798	calls appropriately.  Detect missing NUL terminator and outermost
10799	declaration its missing in.
10800	Improve checks for arrays with nonzero lower bound or elements
10801	that are not a single byte.  Simplify offset computation.
10802	Simplify checks for non-NUL terminated strings.
10803	* gimple-fold.c (get_range_strlen): Add argument to c_strlen call.
10804	* gimple-ssa-sprintf.c (get_string_length): Remove unnecessary code.
10805
108062018-09-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10807
10808	* builtins.c (c_strlen): Handle not zero terminated STRING_CSTs
10809	correctly.
10810	* fold-const.c (c_getstr): Fix function comment.  Remove unused third
10811	argument.  Fix range checks.
10812	* fold-const.h (c_getstr): Adjust protoype.
10813	* gimple-fold.c (gimple_fold_builtin_memory_op): Avoid folding when
10814	string is constant but contains no NUL byte.
10815
10816	* expr.c (string_constant): Adjust function comment.
10817	Remove bogus check for zero termination.
10818
10819	* fold-const.c (c_getstr): Clamp STRING_LENGTH to STRING_SIZE.
10820
10821	* varasm.c (compare_constant): Compare type size of STRING_CSTs.
10822	(get_constant_size): Don't make STRING_CSTs larger than they are.
10823	(check_string_literal): New check function for STRING_CSTs.
10824	(output_constant): Use it.
10825
108262018-09-13  Eric Botcazou  <ebotcazou@adacore.com>
10827
10828	PR target/86812
10829	* config/visium/visium.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
10830
108312018-09-13  Richard Biener  <rguenther@suse.de>
10832
10833	PR tree-optimization/87263
10834	* tree-ssa-sccvn.c (visit_phi): Revert some earlier changes.
10835	(struct unwind_state): Add max_rpo field.
10836	(do_rpo_vn): Allow up-to-date loop state to be used when not iterating.
10837	Compute max_rpo, the max RPO number a block can be backwards reached
10838	from.  Re-write non-iterating mode to a RPO ordered worklist approach,
10839	separating it from the iterating mode.
10840
108412018-09-13  Vlad Lazar  <vlad.lazar@arm.com>
10842
10843	* haifa-sched.c (rank_for_schedule): Schedule by INSN_COST.
10844	(rfs_decision): New scheduling decision.
10845
108462018-09-13  Richard Biener  <rguenther@suse.de>
10847
10848	PR bootstrap/87134
10849	* tree-ssa-sccvn.c (vn_nary_op_insert_into): Fix assert.
10850	(vn_nary_op_insert_pieces_predicated): Do not write useless
10851	valid_dominated_by_p entry outside of the allocated storage.
10852
108532018-09-13  Omar Sandoval  <osandov@osandov.com>
10854	    Tom de Vries  <tdevries@suse.de>
10855
10856	PR debug/86985
10857	* dwarf2out.c (is_c): New function.
10858	(add_subscript_info): Add DW_AT_count of 0 for C zero-length arrays.
10859
108602018-09-13  Sam Tebbs  <sam.tebbs@arm.com>
10861
10862	PR target/85628
10863	* config/aarch64/aarch64.md (*aarch64_bfxil):
10864	Define.
10865	* config/aarch64/constraints.md (Ulc): Define.
10866	* config/aarch64/aarch64-protos.h (aarch64_high_bits_all_ones_p):
10867	Define.
10868	* config/aarch64/aarch64.c (aarch64_high_bits_all_ones_p):
10869	New function.
10870
108712018-09-13  Vlad Lazar  <vlad.lazar@arm.com>
10872
10873	* config/aarch64/aarch64.h (TARGET_COMPUTE_FRAME_LAYOUT): Define.
10874	* config/aarch64/aarch64.c (aarch64_expand_prologue): Remove
10875	aarch64_layout_frame call.
10876	(aarch64_expand_epilogue): Likewise.
10877	(aarch64_initial_elimination_offset): Likewise.
10878	(aarch64_get_separate_components): Likewise.
10879	(aarch64_use_return_insn_p): Likewise.
10880	(aarch64_layout_frame): Remove unneeded check.
10881
108822018-09-13  Jakub Jelinek  <jakub@redhat.com>
10883
10884	* configure.ac: Only append
10885	" : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS" to
10886	gcc_config_arguments if it was never reconfigured or last reconfigure
10887	was with different arguments.
10888	* configure: Regenerated.
10889
108902018-09-13  Jakub Jelinek  <jakub@redhat.com>
10891	    Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10892
10893	PR middle-end/87290
10894	* expr.c (maybe_optimize_pow2p_mod_cmp): New function.
10895	(maybe_optimize_mod_cmp): Use it if integer_pow2p treeop1.
10896
108972018-09-13  Jakub Jelinek  <jakub@redhat.com>
10898
10899	PR tree-optimization/87287
10900	* fold-const.c (fold_binary_loc) <case EQ_EXPR>: Move signed modulo
10901	X % C == 0 to X % (unsigned) C == 0 optimization to ...
10902	* match.pd (X % C == 0): ... here.  New optimization.
10903
109042018-09-12  Jakub Jelinek  <jakub@redhat.com>
10905
10906	PR middle-end/82853
10907	* expr.h (maybe_optimize_mod_cmp): Declare.
10908	* expr.c (mod_inv): New function.
10909	(maybe_optimize_mod_cmp): New function.
10910	(do_store_flag): Use it.
10911	* cfgexpand.c (expand_gimple_cond): Likewise.
10912
109132018-09-09  Cesar Philippidis  <cesar@codesourcery.com>
10914	    Julian Brown  <julian@codesourcery.com>
10915
10916	PR middle-end/86336
10917	* gimplify.c (gimplify_scan_omp_clauses): Set
10918	target_firstprivatize_array_bases in OpenACC parallel and kernels
10919	region contexts.  Remove GOMP_MAP_FIRSTPRIVATE_REFERENCE clauses from
10920	OpenACC data regions.
10921
109222018-09-12  Uros Bizjak  <ubizjak@gmail.com>
10923
10924	* config/i386/i386.md (sqrt_extend<mode>xf3_i387): Remove.
10925	(sqrt<mode>2): Extend operand 1 to XFmode and generate sqrtxf3 insn.
10926
109272018-09-12  Richard Biener  <rguenther@suse.de>
10928
10929	PR tree-optimization/87280
10930	* tree-ssa-sccvn.c (process_bb): Handle the case of executable
10931	edge but unreachable target.
10932	(do_rpo_vn): For conservatively handling a PHI only mark
10933	the backedge executable but not the block reachable.
10934
109352018-09-12  Richard Biener  <rguenther@suse.de>
10936
10937	PR tree-optimization/87266
10938	* tree-ssa-sccvn.c (do_rpo_vn): Always iterate to not yet
10939	visited blocks.
10940
109412018-09-12  Andreas Krebbel  <krebbel@linux.ibm.com>
10942
10943	* config/s390/s390.md (PFPO_RND_MODE_DFP, PFPO_RND_MODE_BFP): New
10944	constants.
10945	("trunc<BFP:mode><DFP_ALL:mode>2")
10946	("trunc<DFP_ALL:mode><BFP:mode>2")
10947	("extend<BFP:mode><DFP_ALL:mode>2")
10948	("extend<DFP_ALL:mode><BFP:mode>2"): Set proper rounding mode
10949	according to the target operand type.
10950
109512018-09-12  Jakub Jelinek  <jakub@redhat.com>
10952	    Andreas Krebbel  <krebbel@linux.ibm.com>
10953
10954	PR tree-optimization/86844
10955	* gimple-ssa-store-merging.c
10956	(imm_store_chain_info::coalesce_immediate): For overlapping stores, if
10957	there are any overlapping stores in between them, make sure they are
10958	also coalesced or we give up completely.
10959
109602018-09-12  Jakub Jelinek  <jakub@redhat.com>
10961
10962	PR middle-end/87248
10963	* fold-const.c (fold_ternary_loc) <case COND_EXPR>: Verify also that
10964	BIT_AND_EXPR's second operand is a power of two.  Formatting fix.
10965
109662018-09-12  Tom de Vries  <tdevries@suse.de>
10967
10968	* common.opt (gdescribe-dies): Add option.
10969	* dwarf2out.c (add_name_and_src_coords_attributes): Add description
10970	attribute for artifical and nameless decls.
10971	(dwarf2out_register_external_die): Add description attribute to
10972	external reference die.
10973	(add_desc_attribute): New functions.
10974	(gen_subprogram_die): Add description attribute to
10975	DW_TAG_call_site_parameter.
10976	* tree-pretty-print.c (print_generic_expr_to_str): New function.
10977	* tree-pretty-print.h (print_generic_expr_to_str): Declare.
10978	* doc/invoke.texi (@item Debugging Options): Add -gdescribe-dies and
10979	-gno-describe-dies.
10980	(@item -gdescribe-dies): Add.
10981
109822018-09-12  Aldy Hernandez  <aldyh@redhat.com>
10983
10984	* tree-vrp.c (vrp_shift_undefined_p): Remove.
10985	(extract_range_from_binary_expr_1: Call
10986	wide_int_range_shift_undefined_p instead of vrp_shift_undefined_p.
10987	* wide-int-range.h (wide_int_range_shift_undefined_p): Do not
10988	depend on sign.
10989
109902018-09-12  Aldy Hernandez  <aldyh@redhat.com>
10991
10992	* gimple-ssa-warn-alloca.c
10993	(alloca_type_and_limit::alloca_type_and_limit): Initialize limit
10994	field for ALLOCA_BOUND_*_LARGE.
10995
109962018-09-11  Nathan Sidwell  <nathan@acm.org>
10997
10998	* gcc.c (load_specs, execute, run_attempt): Use %qs not '%s'.
10999
110002018-09-11  Uros Bizjak  <ubizjak@gmail.com>
11001
11002	* reg-stack.c (subst_asm_stack_regs): Call replace_reg also
11003	for clobbers.  Remove obsolete comment.
11004
110052018-09-11  Uros Bizjak  <ubizjak@gmail.com>
11006
11007	* config/i386/i386.md (define_attr "type"): Remove mpxmov, mpxmk,
11008	mpxchk, mpxld and mpxst types.
11009	(define_attr length_immediate): Remove all processing of mpx types.
11010	(define_attr prefix_0f): Ditto.
11011	(define_attr memory): Ditto.
11012
110132018-09-11  Uros Bizjak  <ubizjak@gmail.com>
11014
11015	* config/i386/i386.md (fyl2x_extend<mode>xf3_i387): Remove.
11016	(log<mode>2): Change operand 1 predicate to general_operand.
11017	Extend operand 1 to XFmode and generate logxf3 insn.
11018	(log10<mode>2): Change operand 1 predicate to general_operand.
11019	Extend operand 1 to XFmode and generate log10xf3 insn.
11020	(log2<mode>2): Change operand 1 predicate to general_operand.
11021	Extend operand 1 to XFmode and generate log2xf3 insn.
11022	(fyl2xp1_extend<mode>xf3_i387): Remove.
11023	(log1p<mode>2): Change operand 1 predicate to general_operand.
11024	Extend operand 1 to XFmode and generate log1pxf3 insn.
11025	(fxtract_extend<mode>xf3_i387): Remove.
11026	(logb<mode>2): Change operand 1 predicate to general_operand.
11027	Extend operand 1 to XFmode and generate logbxf3 insn.
11028	(ilogb<mode>2): Change operand 1 predicate to general_operand.
11029	Extend operand 1 to XFmode and generate fxtractxf3_i387 insn.
11030	(significand<mode>2): Change operand 1 predicate to general_operand.
11031	Extend operand 1 to XFmode and generate significandxf3 insn.
11032
110332018-09-11  Nathan Sidwell  <nathan@acm.org>
11034
11035	* gcc.c (perror_with_name, pfatal_with_name): Delete.
11036	(load_specs): Use fatal_error.
11037	(DELETE_IF_ORDINARY, process_command): Use error.
11038	(execute, run_attempt): Use fatal_error.
11039
110402018-09-11  Andrew Stubbs  <ams@codesourcery.com>
11041
11042	* diagnostic-core.h (sorry_at): New prototype.
11043	* diagnostic.c (sorry_at): New function.
11044
110452018-09-11  Aldy Hernandez  <aldyh@redhat.com>
11046
11047	* tree-vrp.c (extract_range_from_binary_expr_1): Treat all divisions
11048	by zero as VR_UNDEFINED.
11049
110502018-09-10  Uros Bizjak  <ubizjak@gmail.com>
11051
11052	* config/i386/i386.md (<sincos>xf2): Rename from *<sincos>xf2_i387.
11053	(*<sincos>_extend<mode>xf2_i387): Remove insn pattern.
11054	(<sincos>mode2): New expander.
11055	(sincos_extend<mode>xf3_i387): Remove insn pattern.
11056	(sincos -> sin, cos splitters): Remove splitter patterns.
11057	(sincos<mode>3): Change operand 2 predicate to general_operand.
11058	Extend operand 2 to XFmode and generate sincosxf3 insn.
11059	(fptanxf4_i387): Change mode of operands 0 and 3 to SFmode.
11060	Change operand 3 predicate to const1_operand.
11061	(fptan_extend<mode>xf4_i387): Remove insn pattern.
11062	(tanxf2): Update operands in the call to fptanxf4_i387.
11063	(tan<mode>2): Change operand 1 predicate to general_operand.
11064	Extend operand 1 to XFmode and generate tanxf3 insn.
11065	(atan2xf3): Rename from *fpatanxf3_i387.
11066	(fpatan_extend<mode>xf3_i387): Remove insn pattern.
11067	(atan2xf3): Remove expander.
11068	(atan2<mode<3):  Change operand 1 and 2 predicates to general_operand.
11069	Extend operands 1 and 2 to XFmode and generate atan2xf3 insn.
11070	(atan<mode>2): Change operand 1 predicate to general_operand.
11071	Extend operand 1 to XFmode and generate atanxf3 insn.
11072
110732018-09-10  Uros Bizjak  <ubizjak@gmail.com>
11074
11075	* config/i386/i386.md (x87/SSE constant load splitter): Use
11076	memory_operand instead of nonimmediate_operand for input operand
11077	predicate.
11078
110792018-09-09  Uros Bizjak  <ubizjak@gmail.com>
11080
11081	* config/i386/i386.md (float partial SSE register stall splitter): Move
11082	splitter near its instruction pattern.
11083	(float_extend partial SSE register stall splitter): Ditto.
11084	(float_truncate partial SSE register stall splitter): Ditto.
11085
110862018-09-09  Hans-Peter Nilsson  <hp@bitrange.com>
11087
11088	PR target/86794
11089	* config/mmix/mmix.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine
11090	to speculation_safe_value_not_needed.
11091
11092	PR target/85666
11093	* config/mmix/mmix.c (mmix_assemble_integer): Handle byte-size
11094	non-CONST_INT rtx:es using assemble_integer_with_op ".byte".
11095	(MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS): Don't call
11096	leaf_function_p, instead use has_hard_reg_initial_val.
11097
110982018-09-09  Nathan Sidwell  <nathan@acm.org>
11099
11100	* gcc.h (pfatal_with_name): Don't declare here.
11101	* gcc.c (pfatal_with_name): Make static.
11102
111032018-09-09  Xianmiao Qu  <xianmiao_qu@c-sky.com>
11104
11105	* config/csky/csky.md (*cskyv2_adddi3, *cskyv2_subdi3): Add
11106	earlyclobber.
11107
111082018-09-08  John David Anglin  <danglin@gcc.gnu.org>
11109
11110	PR rtl-optimization/85458
11111	* sel-sched.c (sel_target_adjust_priority): Allow backend adjust
11112	priority hook to reduce the priority of EXPR.
11113
111142018-09-07  Uros Bizjak  <ubizjak@gmail.com>
11115
11116	* config/i386/i386.md (float<SWI48x:mode><MODEF:mode>2) Enable
11117	DImode for x87 on 32bit targets.  Conditionally disable x87 modes
11118	with X87_ENABLE_FLOAT.  Remove preparation code.
11119	(*float<SWI48:mode><MODEF:mode>2): Rename from
11120	*float<SWI48:mode><MODEF:mode>2_mixed.  Handle x87, SSE and mixed
11121	math using "enabled" attribute.
11122	(*floatdi<MODEF:mode>2_i387): Rename from
11123	*float<SWI48x:mode><MODEF:mode>2_i387.  Handle only DImode and
11124	enable for 32bit targets only.
11125	(floatdi<X87MODEF:mode>2_i387_with_xmm pre-reload splitter): New
11126	splitter.
11127	(floatdi<X87MODEF:mode>2_i387_with_xmm): Use register_operand
11128	as operand 1 predicate.  Rewrite as define_insn_and_split.
11129	(floatdi<X87MODEF:mode>2_i387_with_xmm memory input splitter): Remove.
11130
111312018-09-06  Uros Bizjak  <ubizjak@gmail.com>
11132
11133	* reg-stack.c (get_true_reg) <case FLOAT_TRUNCATE>: Reorder
11134	to fallthru to FLOAT case.
11135
111362018-09-06  Will Schmidt  <will_schmidt@vnet.ibm.com>
11137
11138	PR target/86731
11139	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Update logic
11140	around folding of vec_sl to handle out of range shift values.
11141
111422018-09-06  Uros Bizjak  <ubizjak@gmail.com>
11143
11144	* config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Remove.
11145	Update callers to gen_fix_trunc<mode>_i387_fisttp
11146	(fix_trunc<mode>_i387_fisttp): Change operand 0 predicate to
11147	nonimmediate_operand.
11148	(fix_trunc<mode>_i387_fisttp_with_temp): Remove insn pattern
11149	and corresponding splitters.
11150	(*fix_trunc<mode>_i387_1): Always expand with fix_trunc<mode>_i387.
11151	(fix_truncdi_i387): Change operand 0 predicate to nonimmediate_operand.
11152	(fix_truncdi_i387_with_temp): Remove insn pattern
11153	and corresponding splitters.
11154	(fix_trunc<mode>_i387): Change operand 0 predicate to
11155	nonimmediate_operand.
11156	(fix_trunc<mode>_i387_with_temp): Remove insn pattern
11157	and corresponding splitters.
11158	(*fistdi2_1): Remove.
11159	(fistdi2): Ditto.
11160	(fistdi2_with_temp): Remove insn pattern and corresponding splitters.
11161	(lrintxfdi2): Remove expander.  Reimplement as define_insn.
11162	(*fist<mode>2_1): Remove.
11163	(fist<mode>2): Ditto.
11164	(fist<mode>2_with_temp): Remove insn pattern and corresponding
11165	splitters.
11166	(lrintxf<mode>2): Remove expander.  Reimplement as define_insn.
11167	(*fist<mode>2_<rounding>_1): Always expand with fist<mode>2_<rounding>.
11168	(fistdi2_<rounding>): Change operand 0 predicate to
11169	nonimmediate_operand.
11170	(fistdi2_<rounding>_with_temp): Remove insn pattern
11171	and corresponding splitters.
11172	(fist<mode>2_<rounding>): Change operand 0 predicate to
11173	nonimmediate_operand.
11174	(fist<mode>2_<rounding>_with_temp): Remove insn pattern
11175	and corresponding splitters.
11176
11177	(*fixuns_trunc<mode>si2_avx512f_zext): Depend on TARGET_SSE_MATH.
11178
111792018-09-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11180
11181	* varasm.c (output_constructor_regular_field): Check TYPE_SIZE_UNIT of
11182	the init value.
11183
111842018-09-06  Will Schmidt  <will_schmidt@vnet.ibm.com>
11185
11186	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
11187	early gimple folding of vec_splat().
11188	* tree-vect-generic.c: Remove static from tree_vec_extract() definition.
11189	* gimple-fold.h: Add an extern define for tree_vec_extract().
11190
111912018-09-06  Will Schmidt  <will_schmidt@vnet.ibm.com>
11192
11193	* config/rs6000/rs6000.c (fold_mergehl_helper): Add types_compatible_p
11194	wrappers around TREE_TYPE comparisons.
11195
111962018-09-06  Ilya Leoshkevich  <iii@linux.ibm.com>
11197
11198	PR target/80080
11199	* config/s390/predicates.md: Add nonsym_memory_operand.
11200	* config/s390/s390.c (s390_legitimize_cs_operand): If operand
11201	contains a SYMBOL_REF, load it into an intermediate pseudo.
11202	(s390_emit_compare_and_swap): Legitimize operand.
11203	* config/s390/s390.md: Use the new nonsym_memory_operand
11204	with UNSPECV_CAS patterns.
11205
112062018-09-06  Ilya Leoshkevich  <iii@linux.ibm.com>
11207
11208	PR target/80080
11209	* config/s390/s390-passes.def: New file.
11210	* config/s390/s390-protos.h (class rtl_opt_pass): Add forward
11211	declaration.
11212	(make_pass_s390_early_mach): Add declaration.
11213	* config/s390/s390.c (make_pass_s390_early_mach):
11214	(s390_option_override): Remove dynamic registration.
11215	* config/s390/t-s390: Add s390-passes.def.
11216
112172018-09-06  Ilya Leoshkevich  <iii@linux.ibm.com>
11218
11219	* config/s390/s390.c (s390_decompose_constant_pool_ref):
11220	Remove UNSPEC_LTREL_BASE check.
11221	(annotate_constant_pool_refs): Likewise.
11222	(find_constant_pool_ref): Likewise.
11223	(find_ltrel_base): Removed.
11224	(replace_ltrel_base): Removed.
11225	(s390_mainpool_finish): Remove replace_ltrel_base call.
11226	(s390_chunkify_start): Remove pending LTREL_BASE logic.
11227	(s390_chunkify_finish): Remove replace_ltrel_base call.
11228	* config/s390/s390.md: Remove UNSPEC_LTREL_BASE.
11229
112302018-09-06  Hans-Peter Nilsson  <hp@axis.com>
11231
11232	PR target/86779
11233	* config/cris/cris.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine
11234	to speculation_safe_value_not_needed.
11235
112362018-09-05  Cesar Philippidis  <cesar@codesourcery.com>
11237	    Bernd Schmidt  <bernds_cb1@t-online.de>
11238
11239	* config/nvptx/nvptx-opts.h: New file.
11240	* config/nvptx/nvptx.c (nvptx_file_start): Print the correct .target.
11241	* config/nvptx/nvptx.h: Include "nvptx-opts.h".
11242	(ASM_SPEC): Define.
11243	(TARGET_SM35): New macro.
11244	* config/nvptx/nvptx.md (atomic_fetch_<logic><mode>): Enable with the
11245	correct predicate.
11246	* config/nvptx/nvptx.opt (ptx_isa, sm_30, sm_35): New enum and its
11247	values.
11248	(misa=): New option.
11249	* doc/invoke.texi (Nvidia PTX Options): Document -misa.
11250
112512018-09-05  Uros Bizjak  <ubizjak@gmail.com>
11252
11253	* config/i386/i386.md (truncdfsf2): Remove expander.
11254	(truncdfsf2_with_temp): Ditto.
11255	(truncxf<mode>2): Ditto.
11256	(*truncdfsf_fast_mixed): Remove insn pattern.
11257	(*truncdfsf_fast_i387): Ditto.
11258	(*truncdfsf_mixed): Ditto.
11259	(*truncdfsf_i387): Ditto.
11260	(*truncdfsf2_i387_1): Ditto.
11261	(*truncxfsf2_mixed): Ditto.
11262	(*truncxfdf2_mixed): Ditto.
11263	(*truncxf<mode>2_i387_noop): Ditto. Update callers
11264	to call gen_truncxf<mode>2 instead.
11265	(*truncxf<mode>2_i387): Remove.
11266	(reg->reg splitters): Remove splitter pattern.
11267	(reg->mem splitters): Ditto.
11268
11269	(truncdfsf2): New insn pattern.
11270	(truncxf<mode>2): Ditto.
11271
112722018-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11273
11274	* tree-ssa-math-opts.c (is_mult_by): New function.
11275	(is_square_of): Use the above.
11276	(optimize_recip_sqrt): New function.
11277	(pass_cse_reciprocals::execute): Use the above.
11278
112792018-09-05  Richard Biener  <rguenther@suse.de>
11280
11281	PR bootstrap/87134
11282	* tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Make sure
11283	to zero-init the emplaced vec.
11284
112852018-09-05  Martin Liska  <mliska@suse.cz>
11286
11287	PR tree-optimization/87205
11288	* tree-switch-conversion.c (pass_lower_switch::execute):
11289	Group cases for switch statements.
11290
112912018-09-05  Richard Biener  <rguenther@suse.de>
11292
11293	PR tree-optimization/87217
11294	* tree-ssa-sccvn.c (vuse_valueize): New.
11295	(vn_reference_lookup_pieces): Use it.
11296	(vn_reference_lookup): Likewise.
11297
112982018-09-05  Nathan Sidwell  <nathan@acm.org>
11299
11300	PR c++/87137
11301	* stor-layout.c (place_field): Scan forwards to check last
11302	bitfield when ms_bitfield_placement is in effect.
11303
113042018-09-05  Richard Biener  <rguenther@suse.de>
11305
11306	PR bootstrap/87225
11307	* tree-vect-stmts.c (vectorizable_simd_clone_call): Fix bogus
11308	return.
11309
113102018-09-05  Siddhesh Poyarekar  <siddhesh@sourceware.org>
11311	    Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
11312
11313	* config/aarch64/falkor-tag-collision-avoidance.c: New file.
11314	* config.gcc (extra_objs): Build it.
11315	* config/aarch64/t-aarch64 (falkor-tag-collision-avoidance.o):
11316	Likewise.
11317	* config/aarch64/aarch64-passes.def
11318	(pass_tag_collision_avoidance): New pass.
11319	* config/aarch64/aarch64.c (qdf24xx_tunings): Add
11320	AARCH64_EXTRA_TUNE_RENAME_LOAD_REGS to tuning_flags.
11321	(aarch64_classify_address): Remove static qualifier.
11322	(aarch64_address_info, aarch64_address_type): Move to...
11323	* config/aarch64/aarch64-protos.h: ... here.
11324	(make_pass_tag_collision_avoidance): New function.
11325	* config/aarch64/aarch64-tuning-flags.def (rename_load_regs):
11326	New tuning flag.
11327
113282018-09-05  Martin Liska  <mliska@suse.cz>
11329
11330	* doc/gcov.texi: Update documentation of humar
11331	readable mode.
11332	* gcov.c (format_count): Print one decimal place, it provides
11333	more fine number of situations like '1G' vs. '1.4G'.
11334
113352018-09-05  Martin Liska  <mliska@suse.cz>
11336
11337	PR target/87164
11338	* config/rs6000/rs6000.opt: Mark the option as Deprecated.
11339	* optc-gen.awk: Allow 'Var' for Deprecated options in order
11340	to generate a MASK value.
11341
113422018-09-04  H.J. Lu  <hongjiu.lu@intel.com>
11343
11344	PR debug/86593
11345	* dwarf2out.c (based_loc_descr): Allow hard frame pointer even
11346	if frame pointer isn't used.
11347	(compute_frame_pointer_to_fb_displacement): Likewise.
11348
113492018-09-04  Jakub Jelinek  <jakub@redhat.com>
11350
11351	PR target/87198
11352	* common/config/i386/i386-common.c (OPTION_MASK_ISA_XSAVEOPT_SET,
11353	OPTION_MASK_ISA_XSAVES_SET, OPTION_MASK_ISA_XSAVEC_SET): Use
11354	OPTION_MASK_ISA_XSAVE_SET instead of OPTION_MASK_ISA_XSAVE.
11355	(OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_XSAVES_UNSET
11356	and OPTION_MASK_ISA_XSAVEC_UNSET.
11357
113582018-09-04  Max Filippov  <jcmvbkbc@gmail.com>
11359
11360	* config/xtensa/xtensa.c (xtensa_expand_atomic): Reorder AND and
11361	XOR operations in NAND case.
11362
113632018-09-04  Aldy Hernandez  <aldyh@redhat.com>
11364
11365	* wide-int-range.cc (wide_int_range_convert): New.
11366	* wide-int-range.h (wide_int_range_convert): New.
11367	* tree-vrp.c (extract_range_from_unary_expr): Abstract wide int
11368	code into wide_int_range_convert.
11369	(extract_range_into_wide_ints): Do not munge anti range constants
11370	into the entire domain.  Just return the range back.
11371
113722018-09-04  Martin Liska  <mliska@suse.cz>
11373
11374	* genmatch.c (output_line_directive): Add new argument
11375	fnargs.
11376	(dt_simplify::gen_1): Encapsulate dump within __builtin_expect.
11377
113782018-09-04  Jonathan Wakely  <jwakely@redhat.com>
11379
11380	* doc/invoke.texi (Option Summary): Add whitespace.
11381
11382	* doc/invoke.texi (Option Summary): Add -Waligned-new.
11383
113842018-09-04  Richard Biener  <rguenther@suse.de>
11385
11386	PR tree-optimization/87211
11387	* tree-ssa-sccvn.c (visit_phi): When value-numbering to a
11388	backedge value we're supposed to treat as VARYING also number
11389	the PHI to VARYING in case it got a different value-number already.
11390
113912018-09-04  Aldy Hernandez  <aldyh@redhat.com>
11392
11393	* tree-vrp.c (vrp_can_optimize_bit_op): Remove.
11394	(extract_range_from_binary_expr_1): Do not call
11395	vrp_can_optimize_bit_op.
11396	* wide-int-range.cc (wide_int_range_can_optimize_bit_op): Make
11397	static.
11398	(wide_int_range_get_mask_and_bounds): New.
11399	(wide_int_range_optimize_bit_op): New.
11400	(wide_int_range_bit_ior): Call wide_int_range_optimize_bit_op.
11401	(wide_int_range_bit_and): Same.
11402	* wide-int-range.h (wide_int_range_can_optimize_bit_op): Remove.
11403	(wide_int_range_optimize_bit_op): New.
11404	(wide_int_range_get_mask_and_bounds): New.
11405
114062018-09-04  Richard Biener  <rguenther@suse.de>
11407
11408	PR tree-optimization/87176
11409	* tree-ssa-sccvn.c (visit_phi): Remove redundant allsame
11410	variable.  When value-numbering a virtual PHI node make sure
11411	to not value-number to the backedge value.
11412
114132018-09-04  Jonathan Wakely  <jwakely@redhat.com>
11414
11415	* doc/extend.texi (Long Long, Hex Floats): Document support for
11416	long long and hex floats in more recent versions of ISO C++.
11417
114182018-09-03  Richard Biener  <rguenther@suse.de>
11419
11420	PR tree-optimization/87177
11421	* tree-ssa-sccvn.c (vuse_ssa_val): Revert previous change, keep
11422	cleanup.
11423
114242018-09-03  Alexander Monakov  <amonakov@ispras.ru>
11425
11426	* bb-reorder.c (edge_order): Convert to C-qsort-style
11427	tri-state comparator.
11428	(reorder_basic_blocks_simple): Change std::stable_sort to
11429	gcc_stablesort.
11430
114312018-09-03  Alexander Monakov  <amonakov@ispras.ru>
11432
11433	* tree-loop-distribution.c (offset_cmp): Convert to C-qsort-style
11434	tri-state comparator.
11435	(fuse_memset_builtins): Change std::stable_sort to gcc_stablesort.
11436
114372018-09-03  Alexander Monakov  <amonakov@ispras.ru>
11438
11439	* sort.cc (struct sort_ctx): New field 'nlim'.  Use it...
11440	(mergesort): ... here as maximum count for using netsort.
11441	(gcc_qsort): Set nlim to 3 if stable sort is requested.
11442	(gcc_stablesort): New.
11443	* system.h (gcc_stablesort): Declare.
11444
114452018-09-03  Alexander Monakov  <amonakov@ispras.ru>
11446
11447	* sort.cc (gcc_qsort) [CHECKING_P]: Call qsort_chk.
11448	* system.h (qsort): Always redirect to gcc_qsort.  Update comment.
11449	* vec.c (qsort_chk): Do not call gcc_qsort.  Update comment.
11450
114512018-09-03  Segher Boessenkool  <segher@kernel.crashing.org>
11452
11453	* config/rs6000/rs6000.md (*mov<mode>_hardfloat32): Remove %U from the
11454	lxsdx and stxsdx alternatives.
11455	(*mov<mode>_hardfloat64): Ditto.
11456	* config/rs6000/vsx.md (*vsx_extract_<mode>_store): Ditto.
11457
114582018-09-03  Richard Biener  <rguenther@suse.de>
11459
11460	PR tree-optimization/87200
11461	* tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize a
11462	simplify result.
11463
114642018-09-03  Martin Liska  <mliska@suse.cz>
11465
11466	PR tree-optimization/87201
11467	* tree-switch-conversion.c (switch_decision_tree::balance_case_nodes):
11468	Fix parenthesis in an expression.
11469
114702018-09-03  Richard Biener  <rguenther@suse.de>
11471
11472	PR tree-optimization/87197
11473	* tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Mark the new def
11474	visited.  CSE the VN_INFO hashtable lookup.
11475
11476	PR tree-optimization/87169
11477	* tree-ssa-sccvn.c (do_rpo_vn): When marking loops for not
11478	iterating make sure there's no extra backedges from irreducible
11479	regions feeding the header.  Mark the destination block
11480	executable.
11481
114822018-09-03  Martin Liska  <mliska@suse.cz>
11483
11484	PR driver/83193
11485	* common/common-target.def: Add TARGET_GET_VALID_OPTION_VALUES.
11486	* common/common-targhooks.c (default_get_valid_option_values):
11487	New function.
11488	* common/common-targhooks.h (default_get_valid_option_values):
11489	Likewise.
11490	* common/config/i386/i386-common.c: Move processor_target_table
11491	from i386.c.
11492	(ix86_get_valid_option_values): New function.
11493	(TARGET_GET_VALID_OPTION_VALUES): New macro.
11494	* config/i386/i386.c (struct ptt): Move to i386-common.c.
11495	(PTA_*): Move all defined masks into i386-common.c.
11496	(ix86_function_specific_restore): Use new processor_cost_table.
11497	* config/i386/i386.h (struct ptt): Moved from i386.c.
11498	(struct pta): Likewise.
11499	* doc/tm.texi: Document new TARGET_GET_VALID_OPTION_VALUES.
11500	* doc/tm.texi.in: Likewise.
11501	* opt-suggestions.c (option_proposer::suggest_option):
11502	Pass prefix to build_option_suggestions.
11503	(option_proposer::get_completions): Likewise.
11504	(option_proposer::build_option_suggestions): Use the new target
11505	hook.
11506	* opts.c (struct option_help_tuple): New struct.
11507	(print_filtered_help): Use the new target hook.
11508
115092018-09-03  Martin Liska  <mliska@suse.cz>
11510
11511	PR middle-end/59521
11512	* predict.c (set_even_probabilities): Add likely_edges
11513	argument and handle cases where we have precisely one
11514	likely edge.
11515	(combine_predictions_for_bb): Catch also likely_edges.
11516	(tree_predict_by_opcode): Handle gswitch statements.
11517	* tree-cfg.h (find_case_label_for_value): New declaration.
11518	(find_taken_edge_switch_expr): Likewise.
11519	* tree-switch-conversion.c (switch_decision_tree::balance_case_nodes):
11520	Find pivot in decision tree based on probabily, not by number of
11521	nodes.
11522
115232018-09-02  Gerald Pfeifer  <gerald@pfeifer.com>
11524
11525	* doc/standards.texi (Standards): Update Objective-C reference.
11526
115272018-09-01  Gerald Pfeifer  <gerald@pfeifer.com>
11528
11529	* doc/install.texi (Prerequisites): Update link for MPC.
11530
115312018-09-01  Michael Matz  <matz@suse.de>
11532
11533	PR tree-optimization/87074
11534	* gimple-loop-jam.c (unroll_jam_possible_p): Check loop exit
11535	PHIs for outer-loop uses.
11536
115372018-09-01  Gerald Pfeifer  <gerald@pfeifer.com>
11538
11539	* doc/generic.texi (OpenMP): Adjust link to openmp.org.
11540	* doc/invoke.texi (C Dialect Options): Ditto.
11541
115422018-09-01  Gerald Pfeifer  <gerald@pfeifer.com>
11543
11544	* doc/install.texi (Prerequisites): Adjust link mpfr.org.
11545
115462018-08-31  Richard Biener  <rguenther@suse.de>
11547
11548	PR tree-optimization/87168
11549	* tree-ssa-sccvn.c (SSA_VAL): Add visited output parameter.
11550	(rpo_elim::eliminate_avail): When OP was not visited it must
11551	be available.
11552
115532018-08-31  David Malcolm  <dmalcolm@redhat.com>
11554
11555	* tree-vrp.c (copy_value_range): Convert param "from" from
11556	"value_range *" to "const value_range *".
11557	(range_is_null): Likewise for param "vr".
11558	(range_int_cst_p): Likewise.
11559	(range_int_cst_singleton_p): Likewise.
11560	(symbolic_range_p): Likewise.
11561	(value_ranges_intersect_p): Likewise for both params.
11562	(value_range_nonnegative_p): Likewise for param "vr".
11563	(value_range_constant_singleton): Likewise.
11564	(vrp_set_zero_nonzero_bits): Likewise for param "ar".
11565	(extract_range_into_wide_ints): Likewise for param "vr".
11566	(extract_range_from_multiplicative_op): Likewise for params "vr0"
11567	and "vr1".
11568	(vrp_can_optimize_bit_op): Likewise.
11569	(extract_range_from_binary_expr_1): Likewise for params "vr0_" and
11570	"vr1_".
11571	(extract_range_from_unary_expr): Likewise.
11572	(debug_value_range): Likewise for param "vr".
11573	(value_range::dump): Add "const" qualifier.
11574	(vrp_prop::check_array_ref): Convert local "vr" from
11575	"value_range *" to "const value_range *".
11576	(vrp_prop::check_mem_ref): Likewise.
11577	(vrp_prop::visit_stmt): Likewise for local "old_vr".
11578	(vrp_intersect_ranges_1): Likewise for param "vr_1".
11579	(vrp_intersect_ranges): Likewise.
11580	(simplify_stmt_for_jump_threading): Likewise for local "vr".
11581	(vrp_prop::vrp_finalize): Likewise.
11582	* tree-vrp.h (value_range::dump): Add "const" qualifier.
11583	(vrp_intersect_ranges): Add "const" qualifier to params as above.
11584	(extract_range_from_unary_expr): Likewise.
11585	(value_range_constant_singleton): Likewise.
11586	(symbolic_range_p): Likewise.
11587	(copy_value_range): Likewise.
11588	(extract_range_from_binary_expr_1): Likewise.
11589	(range_int_cst_p): Likewise.
11590	(vrp_set_zero_nonzero_bits): Likewise.
11591	(range_int_cst_singleton_p): Likewise.
11592
115932018-08-31  Vlad Lazar  <vlad.lazar@arm.com>
11594
11595	* config/aarch64/arm_neon.h (vabsd_s64): New.
11596	(vnegd_s64): Likewise.
11597
115982018-08-31  Martin Jambor  <mjambor@suse.cz>
11599
11600	* ipa-cp.c (estimate_local_effects): Replace wrong MAX with MIN.
11601
116022018-08-31  Martin Liska  <mliska@suse.cz>
11603
11604	* ipa-icf.c (sem_item::add_type): Use
11605	sem_item::m_type_hash_cache.
11606	* ipa-icf.h: Move the cache from sem_item_optimizer
11607	to sem_item.
11608
116092018-08-31  Nathan Sidwell  <nathan@acm.org>
11610
11611	* doc/extend.texi (Backwards Compatibility): Remove implicit
11612	extern C leeway of () being (...).
11613
116142018-08-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11615
11616	* ipa-inline.c (can_inline_edge_by_limits_p): Fix typos in comment.
11617
116182018-08-31  Segher Boessenkool  <segher@kernel.crashing.org>
11619
11620	PR target/86684
11621	PR target/87149
11622	* config/rs6000/rs6000.md (lround<mode>di2): Gate on TARGET_FPRND.
11623
116242018-08-31  Jakub Jelinek  <jakub@redhat.com>
11625
11626	PR middle-end/87138
11627	* expmed.c (expand_mult_const): Use immed_wide_int_const instead of
11628	gen_int_mode.  Formatting fixes.
11629
116302018-08-30  Sandra Loosemore  <sandra@codesourcery.com>
11631
11632	* target.def (custom_function_descriptors): Improve documentation.
11633	* doc/tm.texi.in (Trampolines): Expand discussion of function
11634	descriptors and move TARGET_CUSTOM_FUNCTION_DESCRIPTORS to the
11635	beginning of the section.
11636	* doc/tm.texi: Regenerated.
11637
116382018-08-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
11639
11640	* cfg.h (class auto_edge_flag): Spell out the template-id of the
11641	base class in the initializer list.  This is a workaround for
11642	building with older GCC.
11643	(class auto_bb_flag): Likewise.
11644
116452018-08-30  Aaron Sawdey  <acsawdey@linux.ibm.com>
11646
11647	* config/rs6000/altivec.md (altivec_eq<mode>): Remove star.
11648	(altivec_vcmpequ<VI_char>_p): Remove star.
11649	* config/rs6000/rs6000-string.c (do_load_for_compare): Support
11650	vector load modes.
11651	(expand_strncmp_vec_sequence): New function.
11652	(emit_final_str_compare_vec): New function.
11653	(expand_strn_compare): Add support for vector strncmp.
11654	* config/rs6000/rs6000.opt (-mstring-compare-inline-limit): Change
11655	length specification to bytes.
11656	* config/rs6000/vsx.md (vsx_ld_elemrev_v16qi_internal): Remove star.
11657	(vcmpnezb_p): New pattern.
11658	* doc/invoke.texi (RS/6000 and PowerPC Options): Update documentation
11659	for option -mstring-compare-inline-limit.
11660
116612018-08-30  Thiago Macieira  <thiago.macieira@intel.com>
11662
11663	* config/i386/i386.c (PTA_WESTMERE): Remove PTA_AES.
11664	(PTA_SKYLAKE): Add PTA_AES.
11665	(PTA_GOLDMONT): Likewise.
11666
116672018-08-29  Jan Hubicka  <jh@suse.cz>
11668
11669	PR lto/86517
11670	* lto-opts.c (lto_write_options): Always stream PIC/PIE mode.
11671	* lto-wrapper.c (merge_and_complain): Fix merging of PIC/PIE.
11672
116732018-08-29  Jan Hubicka  <jh@suse.cz>
11674
11675	* lto-streamer-out.c (DFS::DFS_write_tree_body): Do not follow
11676	TYPE_STUB_DECL.
11677	(hash_tree): Do not visit TYPE_STUB_DECL.
11678	* tree-streamer-out.c (write_ts_type_common_tree_pointers): Do not
11679	stream TYPE_STUB_DECL.
11680	* tree-streamer-in.c (lto_input_ts_type_common_tree_pointers): Likewise.
11681	* ipa-utils.h (type_with_linkage_p): Do not rely on TYPE_STUB_DECL
11682	after free_lang_data.
11683	(type_in_anonymous_namespace_p): Likewise.
11684
116852018-08-29  Jan Hubicka  <jh@suse.cz>
11686
11687	* sreal.h (SREAL_PART_BITS): Change to 31; remove seemingly unnecessary
11688	comment that it has to be even number.
11689	(class sreal): Change m_sig type to int32_t.
11690	* sreal.c (sreal::dump, sreal::to_int, opreator+, operator-): Use
11691	int64_t for temporary calculations.
11692	(sreal_verify_basics): Drop one bit from minimum and maximum.
11693
116942018-08-30  Richard Biener  <rguenther@suse.de>
11695
11696	PR tree-optimization/87147
11697	* tree-ssa-sccvn.c (SSA_VISITED): New function.
11698	(visit_phi): When the degenerate result is from the backedge and
11699	we didn't visit its definition yet drop to VARYING.
11700	(do_rpo_vn): Properly mark blocks with incoming backedges as executable.
11701
117022018-08-29  Jan Hubicka  <jh@suse.cz>
11703
11704	* lto-streamer-out.c (DFS::DFS_write_tree_body): Do not walk
11705	DECL_VINDEX.
11706	(hash_tree): Likewise.
11707
117082018-08-29  Jan Hubicka  <jh@suse.cz>
11709
11710	* tree.c (find_decls_types_r): Walk also TYPE_NEXT_PTR_TO
11711	and TYPE_NEXT_REF_TO.
11712
117132018-08-29  Jan Hubicka  <jh@suse.cz>
11714
11715	* sreal.h (SREAL_PART_BITS): Change to 31; remove seemingly unnecessary
11716	comment that it has to be even number.
11717	(class sreal): Change m_sig type to int32_t.
11718	* sreal.c (sreal::dump, sreal::to_int, opreator+, operator-): Use
11719	int64_t for temporary calculations.
11720	(sreal_verify_basics): Drop one bit from minimum and maximum.
11721
117222018-08-30  Tamar Christina  <tamar.christina@arm.com>
11723
11724	* config/aarch64/aarch64.c (aarch64_expand_movmem): Set TImode max.
11725
117262018-08-30  Vlad Lazar  <vlad.lazar@arm.com>
11727
11728	PR middle-end/86995
11729	* expmed.c (canonicalize_comparison): Use wi::sub instead of wi::add
11730	if to_add is negative.
11731
117322018-08-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11733
11734	PR middle-end/87053
11735	* builtins.c (c_strlen): Improve range checks.
11736
117372018-08-29  Martin Sebor  <msebor@redhat.com>
11738	    Jeff Law  <law@redhat.com>
11739
11740	PR tree-optimization/86714
11741	PR tree-optimization/86711
11742	* builtins.c (c_strlen): Add arguments to call to string_constant.
11743	* expr.c (string_constant): Add argument.  Detect missing nul
11744	terminator and outermost declaration it's missing in.
11745	* expr.h (string_constant): Add argument.
11746	* fold-const.c (read_from_constant_string): Add arguments to call to
11747	string_constant.
11748	(c_getstr): Likewise.
11749	* tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
11750	to string_constant.
11751	* tree-ssa-strlen.c (get_stridx): Likewise.
11752
117532018-08-29  Jan Hubicka  <jh@suse.cz>
11754
11755	* tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
11756	Do not stream DECL_VINDEX.
11757	* tree-streamer-out.c (write_ts_function_decl_tree_pointers): Likewise.
11758	* tree.c (free_lang_data_in_decl): Clear DECL_VINDEX.
11759	(decl_function_context): Use DECL_VIRTUAL_P rather than DECL_VINDEX.
11760
117612018-08-29  Richard Biener  <rguenther@suse.de>
11762
11763	* tree-ssa-sccvn.c (vuse_ssa_val): Return NULL for unvisited
11764	virtual operands that are not default defs to honor region
11765	boundaries.
11766	(rpo_vn_valueize): Remove ineffective code here.
11767
117682018-08-29  Richard Biener  <rguenther@suse.de>
11769
11770	PR tree-optimization/87132
11771	* tree-ssa-alias.c (get_continuation_for_phi): Do not translate
11772	when skipping defs reachable over backedges.
11773
117742018-08-29  Richard Biener  <rguenther@suse.de>
11775
11776	* tree-core.h: Document use of deprecated_flag in SSA_NAME.
11777	* tree.h (SSA_NAME_POINTS_TO_READONLY_MEMORY): Define.
11778	* tree-into-ssa.c (pass_build_ssa::execute): Initialize
11779	function parameters SSA_NAME_POINTS_TO_READONLY_MEMORY from fnspec.
11780	* tree-ssa-sccvn.c (const_parms, init_const_parms): Remove.
11781	(vn_reference_lookup_3): Remove use of const_parms.
11782	(free_rpo_vn): Do not free const_parms.
11783	(do_rpo_vn): Do not call init_const_parms.
11784	* tree-ssa-alias.c (refs_may_alias_p_1): Honor
11785	SSA_NAME_POINTS_TO_READONLY_MEMORY.
11786	(call_may_clobber_ref_p_1): Likewise.
11787
117882018-08-29  Alexander Monakov  <amonakov@ispras.ru>
11789
11790	PR other/86726
11791	* invoke.texi (Optimization Options): List -ftree-scev-cprop.
11792	(-O): Ditto.
11793	(-ftree-scev-cprop): Document.
11794
117952018-08-29  Jan Hubicka  <jh@suse.cz>
11796
11797	* sreal.h (normalize, normalize_up, normalize_down): Add new_sig/new_exp
11798	parameters.
11799	(sreal constructor): Update.
11800	* sreal.c (sreal:operator+, sreal:operator-, sreal:operator*,
11801	sreal:operator/): Update.
11802
118032018-08-29  Martin Liska  <mliska@suse.cz>
11804
11805	* tree-switch-conversion.c (switch_conversion::expand):
11806	Strenghten assumption about gswitch statements.
11807
118082018-08-29  Richard Biener  <rguenther@suse.de>
11809
11810	PR tree-optimization/87117
11811	* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only
11812	re-value-number released SSA VDEFs.
11813
118142018-08-29  Richard Biener  <rguenther@suse.de>
11815
11816	PR tree-optimization/87126
11817	* tree-ssa-sccvn.c (vn_reference_insert): Remove assert.
11818
118192018-08-28  Jim Wilson  <jimw@sifive.com>
11820
11821	* config/riscv/pic.md: Rewrite.
11822	* config/riscv/riscv.c (riscv_address_insns): Return cost of 3 for
11823	invalid address.
11824	* config/riscv/riscv.md (ZERO_EXTEND_LOAD): Delete.
11825	(SOFTF, default_load, softload, softstore): New.
11826
118272018-08-28  Jeff Law  <law@redhat.com>
11828
11829	* fold-const.c (fold_binary_loc): Remove recently added assert.
11830
118312018-08-28  Joern Rennecke  <joern.rennecke@riscy-ip.com>
11832
11833	* genpreds.c (write_predicate_subfunction): Also add ATTRIBUTE_UNUSED
11834	to OP parmeter of generated function.
11835
118362018-08-28  MCC CS  <deswurstes@users.noreply.github.com>
11837
11838	PR tree-optimization/87009
11839	* match.pd: Add boolean optimizations.
11840
118412018-08-28  Martin Sebor  <msebor@redhat.com>
11842
11843	PR middle-end/86631
11844	* calls.c (alloc_max_size): Treat HOST_WIDE_INT special.
11845	* gimple-ssa-warn-alloca.c (adjusted_warn_limit): New function.
11846	(pass_walloca::gate): Use it.
11847	(alloca_call_type): Same.
11848	(pass_walloca::execute): Same.
11849	* stor-layout.c (layout_decl): Treat HOST_WIDE_INT special.
11850
118512018-08-28  David Malcolm  <dmalcolm@redhat.com>
11852
11853	* dumpfile.h (ATTRIBUTE_GCC_DUMP_PRINTF): Change version check on
11854	GCC_VERSION for usage of "__gcc_dump_printf__" format from
11855	>= 3005 to >= 9000.
11856
118572018-08-28  Richard Biener  <rguenther@suse.de>
11858
11859	PR tree-optimization/87124
11860	* tree-ssa-sccvn.c (vn_lookup_simplify_result): Guard against
11861	constants before looking up avail.
11862
118632018-08-28  Jakub Jelinek  <jakub@redhat.com>
11864
11865	PR middle-end/87099
11866	* calls.c (maybe_warn_nonstring_arg): Punt early if
11867	warn_stringop_overflow is zero.  Don't call get_range_strlen
11868	on 3rd argument, keep iterating until lenrng[1] is INTEGER_CST.
11869	Swap comparison operands to have constants on rhs.  Only use
11870	lenrng[1] if non-NULL and INTEGER_CST.  Don't uselessly
11871	increment lenrng[0].
11872
118732018-08-28  Richard Sandiford  <richard.sandiford@arm.com>
11874
11875	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Fix unguarded
11876	use of tree_to_shwi.  Remove duplicated test for the size being
11877	a whole number of bytes.
11878
118792018-08-28  Richard Biener  <rguenther@suse.de>
11880
11881	PR tree-optimization/87117
11882	* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_cleanup):
11883	Handle removed stmt without LHS (GIMPLE_NOP).
11884
118852018-08-28  Richard Biener  <rguenther@suse.de>
11886
11887	PR tree-optimization/87117
11888	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Exclude
11889	void which is is_gimple_reg_type by checking for COMPLETE_TYPE_P.
11890
118912018-08-28  Richard Biener  <rguenther@suse.de>
11892
11893	PR tree-optimization/87117
11894	* tree-ssa-pre.c (compute_avail): Do not make expressions
11895	with predicated values available.
11896	(get_expr_value_id): Assert we do not run into predicated value
11897	expressions.
11898
118992018-08-28  Richard Biener  <rguenther@suse.de>
11900
11901	PR tree-optimization/87117
11902	* tree-ssa-operands.c (add_stmt_operand): STRING_CST may
11903	get virtual operands.
11904	(get_expr_operands): Handle STRING_CST like other decls.
11905
119062018-08-28  Martin Liska  <mliska@suse.cz>
11907
11908	* tree.h: Update documentation of fndecl_built_in_p
11909	functions.
11910
11911
119122018-08-27  Jeff Law  <law@redhat.com>
11913	PR tree-optimization/87110
11914	* tree-ssa-dse.c (compute_trims): Handle non-constant
11915	TYPE_SIZE_UNIT.
11916
119172018-08-27  Martin Sebor  <msebor@redhat.com>
11918
11919	PR tree-optimization/86914
11920	* tree-ssa-strlen.c (maybe_set_strlen_range): Avoid MEM_REF.
11921
119222018-08-27  Martin Sebor  <msebor@redhat.com>
11923
11924	PR tree-optimization/87112
11925	* builtins.c (expand_builtin_strnlen): Convert c_strlen result to
11926	the type of the bound argument.
11927
119282018-08-27  Jeff Law  <law@redhat.com>
11929
11930	* tree-ssa-dse.c (compute_trims): Handle case where the reference's
11931	type does not have a TYPE_SIZE_UNIT.
11932
119332018-08-27  Steve Ellcey  <sellcey@cavium.com>
11934
11935	* config/aarch64/aarch64-speculation.cc: Replace include of cfg.h
11936	with include of backend.h.
11937
119382018-08-27  Richard Biener  <rguenther@suse.de>
11939
11940	PR tree-optimization/86927
11941	* tree-vect-loop.c (vect_create_epilog_for_reduction): Properly
11942	use const cond reduction code.
11943
119442018-08-27  Alexander Monakov  <amonakov@ispras.ru>
11945
11946	PR tree-optimization/85758
11947	* match.pd ((X & Y) ^ Y): Add :s qualifier to inner expression.
11948
119492018-08-27  David Malcolm  <dmalcolm@redhat.com>
11950
11951	PR c++/87091
11952	* diagnostic-show-locus.c (class layout_range): Update for
11953	conversion of show_caret_p to a tri-state.
11954	(layout_range::layout_range): Likewise.
11955	(make_range): Likewise.
11956	(layout::maybe_add_location_range): Likewise.
11957	(layout::should_print_annotation_line_p): Don't show annotation
11958	lines for ranges that are SHOW_LINES_WITHOUT_RANGE.
11959	(layout::get_state_at_point): Update for conversion of
11960	show_caret_p to a tri-state.  Bail out early for
11961	SHOW_LINES_WITHOUT_RANGE, so that such ranges don't affect
11962	underlining or source colorization.
11963	(gcc_rich_location::add_location_if_nearby): Update for conversion
11964	of show_caret_p to a tri-state.
11965	(selftest::test_one_liner_multiple_carets_and_ranges): Likewise.
11966	(selftest::test_one_liner_fixit_replace_equal_secondary_range):
11967	Likewise.
11968	(selftest::test_one_liner_labels): Likewise.
11969	* gcc-rich-location.c (gcc_rich_location::add_expr): Update for
11970	conversion of show_caret_p to a tri-state.
11971	* pretty-print.c (text_info::set_location): Likewise.
11972	* pretty-print.h (text_info::set_location): Likewise.
11973	* substring-locations.c (format_warning_n_va): Likewise.
11974	* tree-diagnostic.c (default_tree_printer): Likewise.
11975	* tree-pretty-print.c (newline_and_indent): Likewise.
11976
119772018-08-27  David Malcolm  <dmalcolm@redhat.com>
11978
11979	PR c++/87091
11980	* diagnostic-show-locus.c (get_line_span_for_fixit_hint): Show the
11981	line above for line-insertion fix-it hints.
11982	(selftest::test_fixit_insert_containing_newline): Update the
11983	expected results, and add a test with line-numbering enabled.
11984
119852018-08-27  Martin Liska  <mliska@suse.cz>
11986
11987	PR sanitizer/86962
11988	* sanopt.c (sanitize_rewrite_addressable_params): Ignore
11989	params with DECL_HAS_VALUE_EXPR_P.
11990
119912018-08-27  Martin Liska  <mliska@suse.cz>
11992
11993	* config/i386/i386.c (ix86_expand_set_or_movmem): Dump
11994	selected expansion strategy.
11995
119962018-08-27  Martin Liska  <mliska@suse.cz>
11997
11998	* builtins.h (is_builtin_fn): Remove and fndecl_built_in_p.
11999	* builtins.c (is_builtin_fn): Likewise.
12000	* attribs.c (diag_attr_exclusions): Use new function
12001	fndecl_built_in_p and remove check for FUNCTION_DECL if
12002	possible.
12003	(builtin_mathfn_code): Likewise.
12004	(fold_builtin_expect): Likewise.
12005	(fold_call_expr): Likewise.
12006	(fold_builtin_call_array): Likewise.
12007	(fold_call_stmt): Likewise.
12008	(set_builtin_user_assembler_name): Likewise.
12009	(is_simple_builtin): Likewise.
12010	* calls.c (gimple_alloca_call_p): Likewise.
12011	(maybe_warn_nonstring_arg): Likewise.
12012	* cfgexpand.c (expand_call_stmt): Likewise.
12013	* cgraph.c (cgraph_update_edges_for_call_stmt_node): Likewise.
12014	(cgraph_edge::verify_corresponds_to_fndecl): Likewise.
12015	(cgraph_node::verify_node): Likewise.
12016	* cgraphclones.c (build_function_decl_skip_args): Likewise.
12017	(cgraph_node::create_clone): Likewise.
12018	* config/arm/arm.c (arm_insert_attributes): Likewise.
12019	* config/i386/i386.c (ix86_gimple_fold_builtin): Likewise.
12020	* dse.c (scan_insn): Likewise.
12021	* expr.c (expand_expr_real_1): Likewise.
12022	* fold-const.c (operand_equal_p): Likewise.
12023	(fold_binary_loc): Likewise.
12024	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
12025	* gimple-low.c (lower_stmt): Likewise.
12026	* gimple-pretty-print.c (dump_gimple_call): Likewise.
12027	* gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call):
12028	Likewise.
12029	* gimple.c (gimple_build_call_from_tree): Likewise.
12030	(gimple_call_builtin_p): Likewise.
12031	(gimple_call_combined_fn): Likewise.
12032	* gimplify.c (gimplify_call_expr): Likewise.
12033	(gimple_boolify): Likewise.
12034	(gimplify_modify_expr): Likewise.
12035	(gimplify_addr_expr): Likewise.
12036	* hsa-gen.c (gen_hsa_insns_for_call): Likewise.
12037	* ipa-cp.c (determine_versionability): Likewise.
12038	* ipa-fnsummary.c (compute_fn_summary): Likewise.
12039	* ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise.
12040	* ipa-split.c (visit_bb): Likewise.
12041	(split_function): Likewise.
12042	* ipa-visibility.c (cgraph_externally_visible_p): Likewise.
12043	* lto-cgraph.c (input_node): Likewise.
12044	* lto-streamer-out.c (write_symbol): Likewise.
12045	* omp-low.c (setjmp_or_longjmp_p): Likewise.
12046	(lower_omp_1): Likewise.
12047	* predict.c (strip_predict_hints): Likewise.
12048	* print-tree.c (print_node): Likewise.
12049	* symtab.c (symtab_node::output_to_lto_symbol_table_p): Likewise.
12050	* trans-mem.c (is_tm_irrevocable): Likewise.
12051	(is_tm_load): Likewise.
12052	(is_tm_simple_load): Likewise.
12053	(is_tm_store): Likewise.
12054	(is_tm_simple_store): Likewise.
12055	(is_tm_abort): Likewise.
12056	(tm_region_init_1): Likewise.
12057	* tree-call-cdce.c (gen_shrink_wrap_conditions): Likewise.
12058	* tree-cfg.c (verify_gimple_call): Likewise.
12059	(move_stmt_r): Likewise.
12060	(stmt_can_terminate_bb_p): Likewise.
12061	* tree-eh.c (lower_eh_constructs_2): Likewise.
12062	* tree-if-conv.c (if_convertible_stmt_p): Likewise.
12063	* tree-inline.c (remap_gimple_stmt): Likewise.
12064	(copy_bb): Likewise.
12065	(estimate_num_insns): Likewise.
12066	(fold_marked_statements): Likewise.
12067	* tree-sra.c (scan_function): Likewise.
12068	* tree-ssa-ccp.c (surely_varying_stmt_p): Likewise.
12069	(optimize_stack_restore): Likewise.
12070	(pass_fold_builtins::execute): Likewise.
12071	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
12072	(mark_all_reaching_defs_necessary_1): Likewise.
12073	* tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Likewise.
12074	* tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
12075	(pass_forwprop::execute): Likewise.
12076	* tree-ssa-loop-im.c (stmt_cost): Likewise.
12077	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
12078	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Likewise.
12079	* tree-ssa-strlen.c (get_string_length): Likewise.
12080	* tree-ssa-structalias.c (handle_lhs_call): Likewise.
12081	(find_func_aliases_for_call): Likewise.
12082	* tree-ssa-ter.c (find_replaceable_in_bb): Likewise.
12083	* tree-stdarg.c (optimize_va_list_gpr_fpr_size): Likewise.
12084	* tree-tailcall.c (find_tail_calls): Likewise.
12085	* tree.c (need_assembler_name_p): Likewise.
12086	(free_lang_data_in_decl): Likewise.
12087	(get_call_combined_fn): Likewise.
12088	* ubsan.c (is_ubsan_builtin_p): Likewise.
12089	* varasm.c (incorporeal_function_p): Likewise.
12090	* tree.h (DECL_BUILT_IN): Remove and replace with
12091	fndecl_built_in_p.
12092	(DECL_BUILT_IN_P): Transfort to fndecl_built_in_p.
12093	(fndecl_built_in_p): New.
12094
120952018-08-27  Martin Liska  <mliska@suse.cz>
12096
12097	PR tree-optimization/86847
12098	* tree-switch-conversion.c (switch_decision_tree::dump_case_nodes):
12099	Dump also subtree probability.
12100	(switch_decision_tree::do_jump_if_equal): New function.
12101	(switch_decision_tree::emit_case_nodes): Handle special
12102	situations in balanced tree that can be emitted much simpler.
12103	Fix calculation of probabilities that happen in tree expansion.
12104	* tree-switch-conversion.h (struct cluster): Add
12105	is_single_value_p.
12106	(struct simple_cluster): Likewise.
12107	(struct case_tree_node): Add new function has_child.
12108	(do_jump_if_equal): New.
12109
121102018-08-27  Martin Liska  <mliska@suse.cz>
12111
12112	* tree-switch-conversion.c (bit_test_cluster::find_bit_tests):
12113	Add new argument to bit_test_cluster constructor.
12114	(bit_test_cluster::emit): Set bits really number of values
12115	handlel by a test.
12116	(bit_test_cluster::hoist_edge_and_branch_if_true): Add
12117	probability argument.
12118	* tree-switch-conversion.h (struct bit_test_cluster):
12119	Add m_handles_entire_switch.
12120
121212018-08-27  Martin Liska  <mliska@suse.cz>
12122
12123	PR tree-optimization/86702
12124	* tree-switch-conversion.c (jump_table_cluster::emit):
12125	Make probabilities even for values in jump table
12126	according to number of cases handled.
12127	(switch_decision_tree::compute_cases_per_edge): Pass
12128	argument to reset_out_edges_aux function.
12129	(switch_decision_tree::analyze_switch_statement): Likewise.
12130	* tree-switch-conversion.h (switch_decision_tree::reset_out_edges_aux):
12131	Make it static.
12132
121332018-08-27  Martin Liska  <mliska@suse.cz>
12134
12135	* cfgexpand.c (expand_asm_stmt): Use label_to_block and pass
12136	cfun argument explicitly.
12137	* gimple-pretty-print.c (dump_gimple_switch): Likewise.
12138	* hsa-gen.c (gen_hsa_insns_for_switch_stmt): Use new
12139	function gimple_switch_default_bb.
12140	(convert_switch_statements):
12141	(expand_builtins):
12142	* ipa-fnsummary.c (set_switch_stmt_execution_predicate):
12143	* stmt.c (label_to_block_fn): Use label_to_block and pass
12144	cfun argument explicitly and use gimple_switch_label_bb.
12145	(expand_case): Likewise.
12146	* tree-cfg.c (lower_phi_internal_fn): Use label_to_block and pass
12147	cfun argument explicitly. Likewise.
12148	(make_edges_bb): Likewise.
12149	(make_cond_expr_edges): Likewise.
12150	(get_cases_for_edge): Likewise.
12151	(make_gimple_switch_edges): Likewise.
12152	(label_to_block_fn): Likewise.
12153	(label_to_block): Likewise.
12154	(make_goto_expr_edges): Likewise.
12155	(make_gimple_asm_edges): Likewise.
12156	(main_block_label): Likewise.
12157	(group_case_labels_stmt): Likewise.
12158	(find_taken_edge_computed_goto): Likewise.
12159	(find_taken_edge_switch_expr): Likewise.
12160	(gimple_verify_flow_info): Likewise.
12161	(gimple_redirect_edge_and_branch): Likewise.
12162	(gimple_switch_label_bb): New function.
12163	(gimple_switch_default_bb): Likewise.
12164	(gimple_switch_edge): Likewise.
12165	(gimple_switch_default_edge): Likewise.
12166	* tree-cfg.h (label_to_block_fn): Remove and replace ...
12167	(label_to_block): ... with this.
12168	(gimple_switch_label_bb): New.
12169	(gimple_switch_default_bb): Likewise.
12170	(gimple_switch_edge): Likewise.
12171	(gimple_switch_default_edge): Likewise.
12172	* tree-cfgcleanup.c (convert_single_case_switch): Use
12173	new gimple functions and pass new argument to label_to_block.
12174	(cleanup_control_flow_bb):
12175	* tree-eh.c (make_eh_dispatch_edges): Use label_to_block and pass
12176	cfun argument explicitly.
12177	(make_eh_edges): Likewise.
12178	(redirect_eh_dispatch_edge): Likewise.
12179	(lower_resx): Likewise.
12180	(lower_eh_dispatch): Likewise.
12181	(maybe_remove_unreachable_handlers): Likewise.
12182	(unsplit_eh): Likewise.
12183	(cleanup_empty_eh): Likewise.
12184	(verify_eh_edges): Likewise.
12185	(verify_eh_dispatch_edge): Likewise.
12186	* tree-ssa-dom.c (record_edge_info): Likewise.
12187	* tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): Likewise.
12188	* tree-ssa-threadedge.c (thread_around_empty_blocks): Likewise.
12189	(thread_through_normal_block): Likewise.
12190	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
12191	* tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
12192	* tree-switch-conversion.c (switch_conversion::collect): Use new
12193	gimple functions.
12194	(switch_conversion::check_final_bb): Likewise.
12195	(switch_conversion::gather_default_values): Pass new argument
12196	to label_to_block.
12197	(switch_conversion::build_constructors): Likewise.
12198	(switch_decision_tree::compute_cases_per_edge): Use new
12199	gimple_switch_edge function.
12200	(switch_decision_tree::analyze_switch_statement): Pass new argument
12201	to label_to_block.
12202	(switch_decision_tree::try_switch_expansion): Use
12203	gimple_switch_default_edge.
12204	* tree-vrp.c (find_switch_asserts): Pass new argument
12205	to label_to_block.
12206	* vr-values.c (vr_values::vrp_visit_switch_stmt): Likewise.
12207	(vr_values::simplify_switch_using_ranges): Likewise.
12208
122092018-08-27  Richard Biener  <rguenther@suse.de>
12210
12211	* cfganal.h (rev_post_order_and_mark_dfs_back_seme): Declare.
12212	* cfganal.c (rev_post_order_and_mark_dfs_back_seme): New function.
12213
12214	* tree-ssa-sccvn.h (struct vn_pval): New structure.
12215	(struct vn_nary_op_s): Add unwind_to member.  Add
12216	predicated_values flag and put result into a union together
12217	with a linked list of vn_pval.
12218	(struct vn_ssa_aux): Add name member to make maintaining
12219	a map of SSA name to vn_ssa_aux possible.  Remove no longer
12220	needed info, dfsnum, low, visited, on_sccstack, use_processed
12221	and range_info_anti_range_p members.
12222	(run_scc_vn, vn_eliminate, free_scc_vn, vn_valueize): Remove.
12223	(do_rpo_vn, run_rpo_vn, eliminate_with_rpo_vn, free_rpo_vn):
12224	New functions.
12225	(vn_valueize): New global.
12226	(vn_context_bb): Likewise.
12227	(VN_INFO_RANGE_INFO, VN_INFO_ANTI_RANGE_P, VN_INFO_RANGE_TYPE,
12228	VN_INFO_PTR_INFO): Remove.
12229	* tree-ssa-sccvn.c: ... (rewrite)
12230	(pass_fre::execute): For -O2+ initialize loops and run
12231	RPO VN in optimistic mode (iterating).  For -O1 and -Og
12232	run RPO VN in non-optimistic mode.
12233	* params.def (PARAM_SCCVN_MAX_SCC_SIZE): Remove.
12234	(PARAM_RPO_VN_MAX_LOOP_DEPTH): Add.
12235	* doc/invoke.texi (sccvn-max-scc-size): Remove.
12236	(rpo-vn-max-loop-depth): Document.
12237	* tree-ssa-alias.c (walk_non_aliased_vuses): Stop walking
12238	when valuezing the VUSE signals we walked out of the region.
12239	* tree-ssa-pre.c (phi_translate_1): Ignore predicated values.
12240	(phi_translate): Set VN context block to use for availability
12241	lookup.
12242	(compute_avail): Likewise.
12243	(pre_valueize): New function.
12244	(pass_pre::execute): Adjust to the RPO VN API.
12245
12246	* tree-ssa-loop-ivcanon.c: Include tree-ssa-sccvn.h.
12247	(propagate_constants_for_unrolling): Remove.
12248	(tree_unroll_loops_completely): Perform value-numbering
12249	on the unrolled bodies loop parent.
12250
122512018-08-27  Richard Biener  <rguenther@suse.de>
12252
12253	* tree-ssa-pre.c (compute_antic): Re-use inverted postorder
12254	for partial antic compute.
12255
122562018-08-27  Jakub Jelinek  <jakub@redhat.com>
12257
12258	PR rtl-optimization/87065
12259	* combine.c (simplify_if_then_else): Formatting fix.
12260	(if_then_else_cond): Guard MULT optimization with SCALAR_INT_MODE_P
12261	check.
12262	(known_cond): Don't return const_true_rtx for vector modes.  Use
12263	CONST0_RTX instead of const0_rtx.  Formatting fixes.
12264
122652018-08-27  Martin Liska  <mliska@suse.cz>
12266
12267	PR gcov-profile/87069
12268	* gcov.c (process_file): Record files already processed
12269	and warn about a file being processed multiple times.
12270
122712018-08-27  Martin Liska  <mliska@suse.cz>
12272
12273	PR driver/83193
12274	* config/aarch64/aarch64.c (aarch64_override_options_internal):
12275	Set default values for x_aarch64_*_string strings.
12276	* config/aarch64/aarch64.opt: Remove --{march,mcpu,mtune}==
12277	prefix.  For -mabi do not print '=ABI' in help and use
12278	<option_value> format for -msve-vector-bits and -moverride
12279	options.
12280
122812018-08-26  Jeff Law  <law@redhat.com>
12282
12283	* config/mips/frame-header-opt.c: Include "backend.h" rather than
12284	"cfg.h"
12285
122862018-08-26  Marek Polacek  <polacek@redhat.com>
12287
12288	PR c++/87029, Implement -Wredundant-move.
12289	* doc/invoke.texi: Document -Wredundant-move.
12290
122912018-08-25  Martin Sebor  <msebor@redhat.com>
12292
12293	PR tree-optimization/87059
12294	* builtins.c (expand_builtin_strncmp): Convert MIN_EXPR operand
12295	to the same type as the other.
12296	* fold-const.c (fold_binary_loc): Assert expectation.
12297
122982018-08-25  Iain Sandoe  <iain@sandoe.co.uk>
12299
12300	* config/darwin.c (machopic_legitimize_pic_address): Clean up
12301	extraneous parentheses, dead code section and formatting.
12302
123032018-08-24  David Malcolm  <dmalcolm@redhat.com>
12304
12305	PR c++/87091
12306	* diagnostic-show-locus.c (layout::layout): Ensure the margin is
12307	wide enough for jumps in the line-numbering to be visible.
12308	(layout::print_gap_in_line_numbering): New member function.
12309	(layout::calculate_line_spans): When using line numbering, merge
12310	line spans that are only 1 line apart.
12311	(diagnostic_show_locus): When printing line numbers, show gaps in
12312	line numbering directly, rather than printing headers.
12313	(selftest::test_diagnostic_show_locus_fixit_lines): Add test of
12314	line-numbering with multiple line spans.
12315	(selftest::test_fixit_insert_containing_newline_2): Add test of
12316	line-numbering, in which the spans are close enough to be merged.
12317
123182018-08-24  Aldy Hernandez  <aldyh@redhat.com>
12319
12320	* gimple-ssa-evrp-analyze.c (set_ssa_range_info): Pass value_range
12321	to range_includes_zero_p.  Do not special case VR_ANTI_RANGE.
12322	* tree-vrp.c (range_is_nonnull): Remove.
12323	(range_includes_zero_p): Accept value_range instead of min/max.
12324	(extract_range_from_binary_expr_1): Do not early bail on
12325	POINTER_PLUS_EXPR.
12326	Use range_includes_zero_p instead of range_is_nonnull.
12327	(extract_range_from_unary_expr): Use range_includes_zero_p instead
12328	of range_is_nonnull.
12329	(vrp_meet_1): Pass value_range to range_includes_zero_p.  Do not
12330	special case VR_ANTI_RANGE.
12331	(vrp_finalize): Same.
12332	* tree-vrp.h (range_includes_zero_p): Pass value_range as argument
12333	instead of min/max.
12334	(range_is_nonnull): Remove.
12335	* vr-values.c (vrp_stmt_computes_nonzero): Use
12336	range_includes_zero_p instead of range_is_nonnull.
12337	(extract_range_basic): Pass value_range to range_includes_zero_p
12338	instead of range_is_nonnull.
12339
123402018-08-24  Uros Bizjak  <ubizjak@gmail.com>
12341
12342	* emit-rtl.c (init_emit_once): Do not emit MODE_POINTER_BOUNDS RTXes.
12343	* emit-rtl.h (rtl_data): Remove return_bnd.
12344	* explow.c (trunc_int_for_mode): Do not handle POINTER_BOUNDS_MODE_P.
12345	* function.c (diddle_return_value): Do not handle crtl->return_bnd.
12346	* genmodes.c (complete_mode): Do not handle MODE_POINTER_BOUNDS.
12347	(POINTER_BOUNDS_MODE): Remove definition.
12348	(make_pointer_bounds_mode): Remove.
12349	(get_mode_class): Do not handle MODE_POINTER_BOUNDS.
12350	* machmode.h (POINTER_BOUNDS_MODE_P): Remove definition.
12351	(scalare_mode::includes_p): Do not handle MODE_POINTER_BOUNDS.
12352	* mode-classes.def: Do not define MODE_POINTER_BOUNDS.
12353	* stor-layout.c (int_mode_for_mode): Do not handle MODE_POINTER_BOUNDS.
12354	* tree-core.h (enum tree_index): Remove TI_POINTER_BOUNDS_TYPE.
12355	* varasm.c (output_constant_pool_2): Do not handle MODE_POINTER_BOUNDS.
12356
12357	* config/i386/i386-modes.def (BND32, BND64): Remove.
12358	* config/i386/i386.c (dbx_register_map): Remove bound registers.
12359	(dbx64_register_map): Ditto.
12360	(svr4_dbx_register_map): Ditto.
12361	(indirect_thunk_bnd_needed): Remove.
12362	(indirect_thunks_bnd_used): Ditto.
12363	(indirect_return_bnd_needed): Ditto.
12364	(indirect_return_via_cx_bnd): Ditto.
12365	(enum indirect_thunk_prefix): Remove indirect_thunk_prefix_bnd.
12366	(indirect_thunk_name): Remove handling of indirect_thunk_prefix_bnd.
12367	(output_indirect_thunk): Ditto.  Remove need_prefix argument.
12368	(output_indirect_thunk_function): Remove handling of
12369	indirect_return_bnd_needed, indirect_return_via_cx_bnd,
12370	indirect_thunk_bnd_needed and indirect_thunks_bnd_used variables.
12371	(ix86_save_reg): Remove handling of crtl->return_bnd.
12372	(ix86_legitimate_constant_p): Remove handling of POINTER_BOUNDS_MODE_P.
12373	(ix86_print_operand_address_as): Remove handling of UNSPEC_BNDMK_ADDR
12374	and UNSPEC_BNDLX_ADDR.
12375	(ix86_output_indirect_branch_via_reg): Remove handling of
12376	indirect_thunk_prefix_bnd.
12377	(ix86_output_indirect_branch_via_push): Ditto.
12378	(ix86_output_function_return): Ditto.
12379	(ix86_output_indirect_function_return): Ditto.
12380	(avoid_func_arg_motion): Do not handle UNSPEC_BNDSTX.
12381	* config/i386/i386.h (FIXED_REGISTERS): Remove bound registers.
12382	(CALL_USED_REGISTERS): Ditto.
12383	(REG_ALLOC_ORDER): Update for removal of bound registers.
12384	(HI_REGISTER_NAMES): Ditto.
12385	* config/i386/i386.md (UNSPEC_BNDMK, UNSPEC_BNDMK_ADDR, UNSPEC_BNDSTX)
12386	(UNSPEC_BNDLDX, UNSPEC_BNDLDX_ADDR, UNSPEC_BNDCL, UNSPEC_BNDCU)
12387	(UNSPEC_BNDCN, UNSPEC_MPX_FENCE): Remove.
12388	(BND0_REG, BND1_REG, BND2_REG, BND3_REG): Remove
12389	(FIRST_PSEUDO_REG): Update.
12390	(BND): Remove mode iterator.
12391	* config/i386/predicates.md (bnd_mem_operator): Remove.
12392
123932018-08-24  Richard Sandiford  <richard.sandiford@arm.com>
12394
12395	* tree-vect-stmts.c (vectorizable_bswap): Handle variable-length
12396	vectors.
12397
123982018-08-24  Richard Sandiford  <richard.sandiford@arm.com>
12399
12400	* tree-vect-slp.c (vect_transform_slp_perm_load): Separate out
12401	the case in which the permute needs only a single element and
12402	repeats for every vector of the result.  Extend that case to
12403	handle variable-length vectors.
12404	* tree-vect-stmts.c (vectorizable_load): Update accordingly.
12405
124062018-08-24  H.J. Lu  <hongjiu.lu@intel.com>
12407
12408	PR debug/79342
12409	* dwarf2out.c (save_macinfo_strings): Call set_indirect_string
12410	on DW_MACINFO_start_file for -gsplit-dwarf -g3.
12411
124122018-08-24  Richard Biener  <rguenther@suse.de>
12413
12414	* cfg.h (struct control_flow_graph): Add edge_flags_allocated and
12415	bb_flags_allocated members.
12416	(auto_flag): New RAII class for allocating flags.
12417	(auto_edge_flag): New RAII class for allocating edge flags.
12418	(auto_bb_flag): New RAII class for allocating bb flags.
12419	* cfgloop.c (verify_loop_structure): Allocate temporary edge
12420	flag dynamically.
12421	* cfganal.c (dfs_enumerate_from): Remove use of visited sbitmap
12422	in favor of temporarily allocated BB flag.
12423	* hsa-brig.c: Re-order includes.
12424	* hsa-dump.c: Likewise.
12425	* hsa-regalloc.c: Likewise.
12426	* print-rtl.c: Likewise.
12427	* profile-count.c: Likewise.
12428
124292018-08-24  Segher Boessenkool  <segher@kernel.crashing.org>
12430
12431	PR target/86989
12432	* config/rs6000/rs6000.c (toc_relative_expr_p): Check that the base is
12433	the TOC register.
12434
124352018-08-24  Aldy Hernandez  <aldyh@redhat.com>
12436
12437	PR 87073/bootstrap
12438	* wide-int-range.cc (wide_int_range_div): Do not ignore result
12439	from wide_int_range_multiplicative_op.
12440
124412018-08-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
12442
12443	* tree-vect-data-refs.c (vect_grouped_store_supported): Fix typo
12444	"permutaion".
12445
124462018-08-23  Giuliano Belinassi  <giuliano.belinassi@usp.br>
12447
12448	* genmatch.c (parser::parse_operation): Fix typo 'exapnded'
12449	to 'expanded'.
12450
124512018-08-23  Alexander Monakov  <amonakov@ispras.ru>
12452
12453	* tree-scalar-evolution.c (final_value_replacement_loop): Dump
12454	full GENERIC expression used for replacement.
12455
124562018-08-23  Aldy Hernandez  <aldyh@redhat.com>
12457
12458	* tree-vrp.c (abs_extent_range): Remove.
12459	(extract_range_into_wide_ints): Pass wide ints by reference.
12460	(extract_range_from_binary_expr_1): Rewrite the *DIV_EXPR code.
12461	Pass wide ints by reference in all calls to
12462	extract_range_into_wide_ints.
12463	* wide-int-range.cc (wide_int_range_div): New.
12464	* wide-int-range.h (wide_int_range_div): New.
12465	(wide_int_range_includes_zero_p): New.
12466	(wide_int_range_zero_p): New.
12467
124682018-08-23  Matthew Malcomson  <matthew.malcomson@arm.com>
12469
12470	* config/aarch64/aarch64.md (arches): New enum.
12471	(arch): New enum attr.
12472	(arch_enabled): New attr.
12473	(enabled): Now uses arch_enabled only.
12474	(simd, sve, fp16): Removed attribute.
12475	(fp): Attr now defined in terms of 'arch'.
12476	(*mov<mode>_aarch64, *movsi_aarch64, *movdi_aarch64, *movti_aarch64,
12477	*movhf_aarch64, <optab><fcvt_target><GPF:mode>2,
12478	<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3,
12479	<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Merge 'fp' and 'simd'
12480	attributes into 'arch'.
12481	(*movsf_aarch64, *movdf_aarch64, *movtf_aarch64, *add<mode>3_aarch64,
12482	subdi3, neg<mode>2, <optab><mode>3, one_cmpl<mode>2,
12483	*<NLOGICAL:optab>_one_cmpl<mode>3, *xor_one_cmpl<mode>3,
12484	*aarch64_ashl_sisd_or_int_<mode>3, *aarch64_lshr_sisd_or_int_<mode>3,
12485	*aarch64_ashr_sisd_or_int_<mode>3, *aarch64_sisd_ushl): Convert use of
12486	'simd' attribute into 'arch'.
12487	(load_pair_sw_<SX:mode><SX2:mode>, load_pair_dw_<DX:mode><DX2:mode>,
12488	store_pair_sw_<SX:mode><SX2:mode>, store_pair_dw_<DX:mode><DX2:mode>):
12489	Convert use of 'fp' attribute to 'arch'.
12490	* config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>,
12491	move_lo_quad_internal_<mode>): (different modes) Merge 'fp' and 'simd'
12492	into 'arch'.
12493	(move_lo_quad_internal_be_<mode>, move_lo_quad_internal_be_<mode>):
12494	(different modes) Merge 'fp' and 'simd' into 'arch'.
12495	(*aarch64_combinez<mode>, *aarch64_combinez_be<mode>): Merge 'fp' and
12496	'simd' into 'arch'.
12497
124982018-08-23  Segher Boessenkool  <segher@kernel.crashing.org>
12499
12500	PR rtl-optimization/87026
12501	* expmed.c (canonicalize_comparison): If we can no longer create
12502	pseudoregisters, don't.
12503
125042018-08-23  Richard Earnshaw  <rearnsha@arm.com>
12505
12506	PR target/86951
12507	* config/arm/arm-protos.h (arm_emit_speculation_barrier): New
12508	prototype.
12509	* config/arm/arm.c (speculation_barrier_libfunc): New static
12510	variable.
12511	(arm_init_libfuncs): Initialize it.
12512	(arm_emit_speculation_barrier): New function.
12513	* config/arm/arm.md (speculation_barrier): Call
12514	arm_emit_speculation_barrier for architectures that do not have
12515	DSB or ISB.
12516	(speculation_barrier_insn): Only match on Armv7 or later.
12517
125182018-08-23  Richard Biener  <rguenther@suse.de>
12519
12520	PR middle-end/87024
12521	* tree-inline.c (copy_bb): Drop unused __builtin_va_arg_pack_len
12522	calls.
12523
125242018-08-23  Richard Sandiford  <richard.sandiford@arm.com>
12525
12526	* config/aarch64/aarch64.c (aarch64_evpc_sve_tbl): Fix handling
12527	of single-vector TBLs.
12528	(aarch64_vectorize_vec_perm_const): Set one_vector_p when only
12529	one input is given.
12530
125312018-08-23  Richard Sandiford  <richard.sandiford@arm.com>
12532
12533	PR target/85910
12534	* config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Fix
12535	aarch64_evpc_tbl guard.
12536
125372018-08-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12538
12539	* tree-ssa-dse.c (compute_trims): Avoid folding away undefined
12540	behaviour.
12541
125422018-08-22  Martin Sebor  <msebor@redhat.com>
12543
12544	PR middle-end/87052
12545	* tree-pretty-print.c (pretty_print_string): Add argument.
12546	(dump_generic_node): Call to pretty_print_string with string size.
12547
125482018-08-22  Segher Boessenkool  <segher@kernel.crashing.org>
12549
12550	PR rtl-optimization/86771
12551	* combine.c (try_combine): Do not allow splitting a resulting PARALLEL
12552	of two SETs into those two SETs, one to be placed at i2, if that SETs
12553	destination is modified between i2 and i3.
12554
125552018-08-22  Richard Sandiford  <richard.sandiford@arm.com>
12556
12557	PR tree-optimization/86725
12558	* tree-vect-loop.c (vect_inner_phi_in_double_reduction_p): New
12559	function.
12560	(vect_analyze_scalar_cycles_1): Check it.
12561
125622018-08-22  Richard Sandiford  <richard.sandiford@arm.com>
12563
12564	PR tree-optimization/86725
12565	* tree-vect-loop.c (vect_is_simple_reduction): When treating
12566	an outer loop phi as a double reduction, make sure that the
12567	single user of the phi result is an inner loop phi.
12568
125692018-08-22  Richard Sandiford  <richard.sandiford@arm.com>
12570
12571	* tree-vect-data-refs.c (vect_analyze_group_access_1): Convert
12572	grouped stores with gaps to a strided group.
12573
125742018-08-22  Richard Sandiford  <richard.sandiford@arm.com>
12575
12576	* tree-vect-stmts.c (get_group_load_store_type)
12577	(get_load_store_type): Only test STMT_VINFO_STRIDED_P for the
12578	first statement in a group.
12579
125802018-08-22  Iain Sandoe  <iain@sandoe.co.uk>
12581
12582	* config/darwin.h (LINK_COMMAND_SPEC_A): Sync LTO options with
12583	the sequence used in gcc/gcc.c.
12584
125852018-08-22  Iain Sandoe  <iain@sandoe.co.uk>
12586
12587	PR other/704
12588	* gcc-ar.c (main): Don’t try to invoke the plug-in if we’re not
12589	building it.
12590
125912018-08-22  Iain Sandoe  <iain@sandoe.co.uk>
12592
12593	* config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Adjust to use the
12594	Darwin10-specific unwinder-shim.
12595	* config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Remove.
12596	* config/rs6000/darwin.h (DARWIN_CRT1_SPEC, DARWIN_DYLIB1_SPEC):
12597	New to cater for Darwin10 Rosetta.
12598
125992018-08-22  Iain Sandoe  <iain@sandoe.co.uk>
12600
12601	* config/i386/i386.c (ix86_output_addr_diff_elt): Move the MACH-O
12602	specific test before the one for HAVE_AS_GOTOFF_IN_DATA.
12603
126042018-08-22  Iain Sandoe  <iain@sandoe.co.uk>
12605
12606	PR bootstrap/81033
12607	PR target/81733
12608	PR target/52795
12609	* gcc/dwarf2out.c (FUNC_SECOND_SECT_LABEL): New.
12610	(dwarf2out_switch_text_section): Generate a local label for the
12611	second function sub-section and apply it as the second FDE start
12612	label.
12613	* gcc/final.c (final_scan_insn_1): Emit second FDE label after the
12614	second sub-section start.
12615
126162018-08-22  Richard Biener  <rguenther@suse.de>
12617
12618	PR tree-optimization/86988
12619	* tree-vrp.c (vrp_prop::check_mem_ref): Bail out on VLAs.
12620
126212018-08-22  Richard Biener  <rguenther@suse.de>
12622
12623	PR tree-optimization/86945
12624	* tree-cfg.c (generate_range_test): Use unsigned arithmetic.
12625
126262018-08-22  Alexandre Oliva  <oliva@adacore.com>
12627
12628	* config/rs6000/rs6000.c (SMALL_DATA_RELOC, SMALL_DATA_REG): Add
12629	a comment about how uses of r2 for .sdata2 come about.
12630
126312018-08-22  Alexandre Oliva  <aoliva@redhat.com>
12632
12633	* tree-ssa-reassoc.c (is_reassociable_op): Fix cut&pasto.
12634
126352018-08-21  Marek Polacek  <polacek@redhat.com>
12636
12637	PR c++/86981, Implement -Wpessimizing-move.
12638	* doc/invoke.texi: Document -Wpessimizing-move.
12639
126402018-08-21  Jan Hubicka  <jh@suse.cz>
12641
12642	* tree.c (find_decls_types_r): Do not check for redundant typedefs.
12643	* tree.h (is_redundant_typedef): Remove.
12644	* dwarf2out.c (is_redundant_typedef): Turn into static function.
12645
126462018-08-21  Jan Hubicka  <jh@suse.cz>
12647
12648	* tree.c (free_lang_data_in_decl): Remove types from DECL_CONTEXT
12649	when possible.
12650
126512018-08-21  Tamar Christina  <tamar.christina@arm.com>
12652
12653	* expmed.c (extract_low_bits): Reject invalid subregs early.
12654
126552018-08-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12656
12657	PR middle-end/86121
12658	* tree-ssa-strlen.c (adjust_last_stmt): Avoid folding away undefined
12659	behaviour.
12660
126612018-08-21  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
12662
12663	* config/vxworks.h: Guard vxworks_asm_out_constructor and
12664	vxworks_asm_out_destructor by !HAVE_INITFINI_ARRAY_SUPPORT
12665	* config/vxworks.c: Likewise.
12666
126672018-08-21  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
12668
12669	* config/vxworks.c: Set targetm.have_ctors_dtors
12670	if HAVE_INITFINI_ARRAY_SUPPORT.
12671	* config/vxworks.h: Set SUPPORTS_INIT_PRIORITY
12672	if HAVE_INITFINI_ARRAY_SUPPORT.
12673
126742018-08-21  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
12675
12676	* config/vxworks.h: Add $(WIND_BASE)/target/h/wrn/coreip to
12677	default search path for VxWorks < 7.
12678
126792018-08-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12680
12681	* gimple-ssa-sprintf.c (decl_constant_value): Remove.
12682	(get_format_string): Refer to c_getstr.
12683
126842018-08-21  Tom de Vries  <tdevries@suse.de>
12685
12686	* cgraph.h (debuginfo_early_init, debuginfo_init, debuginfo_fini)
12687	(debuginfo_start, debuginfo_stop, debuginfo_early_start)
12688	(debuginfo_early_stop): Declare.
12689	* cgraphunit.c (debuginfo_early_init, debuginfo_init, debuginfo_fini)
12690	(debuginfo_start, debuginfo_stop, debuginfo_early_start)
12691	(debuginfo_early_stop): New function.
12692	(symbol_table::finalize_compilation_unit): Call debuginfo_early_start
12693	and debuginfo_early_stop.
12694	* dwarf2out.c (dwarf2out_finish, dwarf2out_early_finish): Dump dwarf.
12695	* toplev.c (compile_file): Call debuginfo_start and debuginfo_stop.
12696	(general_init): Call debuginfo_early_init.
12697	(finalize): Call debuginfo_fini.
12698	(do_compile): Call debuginfo_init.
12699	* doc/invoke.texi (@gccoptlist): Add -fdump-debug and
12700	-fdump-early-debug.
12701	(@item -fdump-debug, @item -fdump-earlydebug): Add.
12702
127032018-08-21  Tom de Vries  <tdevries@suse.de>
12704
12705	* dwarf2out.c (print_dw_val, print_loc_descr, print_die): Handle
12706	flag_dump_noaddr and flag_dump_unnumbered.
12707
127082018-08-21  Aldy Hernandez  <aldyh@redhat.com>
12709
12710	* wide-int-range.cc (wide_int_range_abs): New.
12711	(wide_int_range_order_set): Rename from wide_int_range_min_max.
12712	* wide-int-range.h (wide_int_range_abs): New.
12713	(wide_int_range_min_max): New.
12714	* tree-vrp.c (extract_range_from_unary_expr): Rewrite ABS_EXPR
12715	case to call wide_int_range_abs.
12716	Rewrite MIN/MAX_EXPR to call wide_int_range_min_max.
12717	(extract_range_from_abs_expr): Delete.
12718
127192018-08-20  Michael Meissner  <meissner@linux.ibm.com>
12720
12721	PR target/87033
12722	* config/rs6000/rs6000.md (extendsi<mode>2): Change constraints
12723	from 'Y' to 'YZ' to enable the LWAX instruction to be generated
12724	for indexed loads.
12725
127262018-08-20  Nathan Sidwell  <nathan@acm.org>
12727	    Jeff Law  <law@redhat.com>
12728
12729	* config/s390/s390-c (s390_macro_to_expand): Use cpp_macro_p.
12730	* config/spu/spu-c.c (spu_macro_to_expand): Likewise.
12731
127322018-08-20  David Malcolm  <dmalcolm@redhat.com>
12733
12734	PR other/84889
12735	* attribs.c (diag_attr_exclusions): Add auto_diagnostic_group instance.
12736	(decl_attributes): Likewise.
12737	* calls.c (maybe_warn_nonstring_arg): Add auto_diagnostic_group
12738	instance.
12739	* cgraphunit.c (maybe_diag_incompatible_alias): Likewise.
12740	* diagnostic-core.h (class auto_diagnostic_group): New class.
12741	* diagnostic.c (diagnostic_initialize): Initialize the new fields.
12742	(diagnostic_report_diagnostic): Handle the first diagnostics within
12743	a group.
12744	(emit_diagnostic): Add auto_diagnostic_group instance.
12745	(inform): Likewise.
12746	(inform_n): Likewise.
12747	(warning): Likewise.
12748	(warning_at): Likewise.
12749	(warning_n): Likewise.
12750	(pedwarn): Likewise.
12751	(permerror): Likewise.
12752	(error): Likewise.
12753	(error_n): Likewise.
12754	(error_at): Likewise.
12755	(sorry): Likewise.
12756	(fatal_error): Likewise.
12757	(internal_error): Likewise.
12758	(internal_error_no_backtrace): Likewise.
12759	(auto_diagnostic_group::auto_diagnostic_group): New ctor.
12760	(auto_diagnostic_group::~auto_diagnostic_group): New dtor.
12761	* diagnostic.h (struct diagnostic_context): Add fields
12762	"diagnostic_group_nesting_depth",
12763	"diagnostic_group_emission_count", "begin_group_cb",
12764	"end_group_cb".
12765	* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior):
12766	Add auto_diagnostic_group instance(s).
12767	(find_explicit_erroneous_behavior): Likewise.
12768	* gimple-ssa-warn-alloca.c (pass_walloca::execute): Likewise.
12769	* gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Likewise.
12770	* gimplify.c (warn_implicit_fallthrough_r): Likewise.
12771	(gimplify_va_arg_expr): Likewise.
12772	* hsa-gen.c (HSA_SORRY_ATV): Likewise.
12773	(HSA_SORRY_AT): Likewise.
12774	* ipa-devirt.c (compare_virtual_tables): Likewise.
12775	(warn_odr): Likewise.
12776	* multiple_target.c (expand_target_clones): Likewise.
12777	* opts-common.c (cmdline_handle_error): Likewise.
12778	* reginfo.c (globalize_reg): Likewise.
12779	* substring-locations.c (format_warning_n_va): Likewise.
12780	* tree-inline.c (expand_call_inline): Likewise.
12781	* tree-ssa-ccp.c (pass_post_ipa_warn::execute): Likewise.
12782	* tree-ssa-loop-niter.c
12783	(do_warn_aggressive_loop_optimizations): Likewise.
12784	* tree-ssa-uninit.c (warn_uninit): Likewise.
12785	* tree.c (warn_deprecated_use): Likewise.
12786
127872018-08-20  H.J. Lu  <hongjiu.lu@intel.com>
12788
12789	PR target/87014
12790	* config/i386/i386.md (eh_return): Always update EH return
12791	address in word_mode.
12792
127932018-08-20  Chung-Lin Tang  <cltang@codesourcery.com>
12794
12795	* targhooks.c (std_gimplify_va_arg_expr): Properly handle case of when
12796	TARGET_SPLIT_COMPLEX_ARG is defined.
12797
127982018-08-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12799
12800	* expr.c (store_field): Change gcc_assert to gcc_checking_assert.
12801
128022018-08-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12803
12804	PR target/86984
12805	* expr.c (expand_assignment): Assert that bitpos is positive.
12806	(store_field): Likewise
12807	(expand_expr_real_1): Make sure that bitpos is positive.
12808	* config/alpha/alpha.h (CONSTANT_ADDRESS_P): Avoid signed
12809	integer overflow.
12810
128112018-08-20  Nathan Sidwell  <nathan@acm.org>
12812
12813	* Makefile.in (CPP_ID_DATA_H): Delete.
12814	(CPP_INTERNAL_H): Don't add it.
12815	(GTFILES): Replace CPP_ID_DATA_H with CPPLIB_H.
12816	* gengtype.c (open_base_files): Replace cpp-id-data.h with cpplib.h
12817
128182018-08-20  Richard Biener  <rguenther@suse.de>
12819
12820	PR tree-optimization/78655
12821	* tree-vrp.c (extract_range_from_binary_expr_1): Make
12822	pointer + offset nonnull if either operand is nonnull work.
12823
128242018-08-20  Tom de Vries  <tdevries@suse.de>
12825
12826	* dwarf2out.c (add_scalar_info): Don't add reference to existing die
12827	unless the referenced die describes the added property using
12828	DW_AT_location or DW_AT_const_value.  Fall back to exprloc case.
12829	Otherwise, add a DW_AT_location to the referenced die.
12830
128312018-08-19  Uros Bizjak  <ubizjak@gmail.com>
12832
12833	PR target/86994
12834	* config/i386/i386.c (ix86_rtx_costs) [case SET]: Check source for
12835	register_operand when calling ix86_set_reg_reg_cost.
12836	[case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF]:
12837	Set *total to 0 for operands that satisfy x86_64_immediate_operand
12838	predicate and to 1 otherwise.
12839
128402018-08-18  Iain Sandoe  <iain@sandoe.co.uk>
12841
12842	* config/darwin.c (darwin_override_options): If -gsplit-dwarf is set,
12843	emit a diagnostic that it is not supported and reset the option.
12844	* config/darwin.h (DRIVER_SELF_SPECS): Note that gsplit-dwarf is not
12845	supported and consume the option.  (ASM_FINAL_SPEC): New.
12846
128472018-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
12848
12849	* doc/md.texi (Patterns): Use @ref instead of @xref in the middle of
12850	a sentence.
12851
128522018-08-17  Sandra Loosemore  <sandra@codesourcery.com>
12853
12854	C-SKY port: Documentation
12855
12856	* doc/extend.texi (C-SKY Function Attributes): New section.
12857	* doc/invoke.texi (Option Summary): Add C-SKY options.
12858	(C-SKY Options): New section.
12859	* doc/md.texi (Machine Constraints): Document C-SKY constraints.
12860
128612018-08-17  Jojo  <jijie_rong@c-sky.com>
12862	    Huibin Wang  <huibin_wang@c-sky.com>
12863	    Sandra Loosemore  <sandra@codesourcery.com>
12864	    Chung-Lin Tang  <cltang@codesourcery.com>
12865
12866	C-SKY port: Backend implementation
12867
12868	* config/csky/*: New.
12869	* common/config/csky/*: New.
12870
128712018-08-17  Jojo  <jijie_rong@c-sky.com>
12872	    Huibin Wang  <huibin_wang@c-sky.com>
12873	    Sandra Loosemore  <sandra@codesourcery.com>
12874	    Chung-Lin Tang  <cltang@codesourcery.com>
12875	    Andrew Jenner  <andrew@codesourcery.com>
12876
12877	C-SKY port: Configury
12878
12879	* config.gcc (csky-*-*): New.
12880	* configure.ac: Add csky to targets for dwarf2 debug_line support.
12881	* configure: Regenerated.
12882
128832018-08-17  David Malcolm  <dmalcolm@redhat.com>
12884
12885	* dump-context.h: Include "dumpfile.h".
12886	(dump_context::dump_printf_va): Convert final param from va_list
12887	to va_list *.  Convert from ATTRIBUTE_PRINTF to
12888	ATTRIBUTE_GCC_DUMP_PRINTF.
12889	(dump_context::dump_printf_loc_va): Likewise.
12890	* dumpfile.c: Include "stringpool.h".
12891	(make_item_for_dump_printf_va): Delete.
12892	(make_item_for_dump_printf): Delete.
12893	(class dump_pretty_printer): New class.
12894	(dump_pretty_printer::dump_pretty_printer): New ctor.
12895	(dump_pretty_printer::emit_items): New member function.
12896	(dump_pretty_printer::emit_any_pending_textual_chunks): New member
12897	function.
12898	(dump_pretty_printer::emit_item): New member function.
12899	(dump_pretty_printer::stash_item): New member function.
12900	(dump_pretty_printer::format_decoder_cb): New member function.
12901	(dump_pretty_printer::decode_format): New member function.
12902	(dump_context::dump_printf_va): Reimplement in terms of
12903	dump_pretty_printer.
12904	(dump_context::dump_printf_loc_va): Convert final param from va_list
12905	to va_list *.
12906	(dump_context::begin_scope): Reimplement call to
12907	make_item_for_dump_printf.
12908	(dump_printf): Update for change to dump_printf_va.
12909	(dump_printf_loc): Likewise.
12910	(selftest::test_capture_of_dump_calls): Convert "stmt" from
12911	greturn * to gimple *.  Add a test_decl.  Add tests of dump_printf
12912	with %T, %E, and %G.
12913	* dumpfile.h (ATTRIBUTE_GCC_DUMP_PRINTF): New macro.
12914	(dump_printf): Replace ATTRIBUTE_PRINTF_2 with
12915	ATTRIBUTE_GCC_DUMP_PRINTF (2, 3).
12916	(dump_printf_loc): Replace ATTRIBUTE_PRINTF_3 with
12917	ATTRIBUTE_GCC_DUMP_PRINTF (3, 0).
12918	* tree-vect-data-refs.c (vect_lanes_optab_supported_p): Convert
12919	use of HOST_WIDE_INT_PRINT_DEC on unsigned HOST_WIDE_INT "count"
12920	within a dump_printf_loc call to "%wu".
12921	(vector_alignment_reachable_p): Merge two dump_printf[_loc] calls,
12922	converting a use of HOST_WIDE_INT_PRINT_DEC to "%wd".  Add a
12923	missing space after "=".
12924	* tree-vect-loop.c (vect_analyze_loop_2) Within a dump_printf
12925	call, convert use of HOST_WIDE_INT_PRINT_DEC to "%wd".
12926	* tree-vect-slp.c (vect_slp_bb): Within a dump_printf_loc call,
12927	convert use of HOST_WIDE_INT_PRINT_UNSIGNED to "%wu".
12928	* tree-vectorizer.c (try_vectorize_loop_1): Likewise.  Remove
12929	duplicate "vectorized" from message.
12930
129312018-08-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
12932
12933	* config/arm/arm-builtins.c (arm_init_simd_builtin_types): Clear
12934	polyNxK_t element's TYPE_STRING_FLAG.
12935
129362018-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
12937
12938	* config/rs6000/rs6000.md (*cbranch, *creturn): Name these patterns
12939	(they were unnamed before).  Fix comments.
12940
129412018-08-17  Nathan Sidwell  <nathan@acm.org>
12942
12943	* cppbuiltin.c: Include "cpplib.h", not "cpp-id-data.h".
12944
129452018-08-17  Richard Biener  <rguenther@suse.de>
12946
12947	PR tree-optimization/86841
12948	* wide-int-range.cc (wide_int_range_lshift): Use to_uhwi.
12949
129502018-08-17  Martin Liska  <mliska@suse.cz>
12951
12952	* common.opt: Remove Warn, Init and Report for options with
12953	Ignore/Deprecated flag. Warning is done automatically for
12954	Deprecated flags.
12955	* config/i386/i386.opt: Likewise.
12956	* config/ia64/ia64.opt: Likewise.
12957	* config/rs6000/rs6000.opt: Likewise.
12958	* cppbuiltin.c (define_builtin_macros_for_compilation_flags):
12959	Remove usage of flag_check_pointer_bounds.
12960	* lto-wrapper.c (merge_and_complain): Do not handle
12961	OPT_fcheck_pointer_bounds.
12962	(append_compiler_options): Likewise.
12963	* opt-functions.awk: Do not handle Deprecated.
12964	* optc-gen.awk: Check that Var, Report and Init are not
12965	used for an option with Ignore/Deprecated flag.
12966	* opts-common.c (decode_cmdline_option): Do not report
12967	CL_ERR_DEPRECATED.
12968	(read_cmdline_option): Report warning for OPT_SPECIAL_deprecated
12969	options.
12970	* opts.h (struct cl_option): Remove cl_deprecated flag.
12971	(CL_ERR_DEPRECATED): Remove error enum value.
12972
129732018-08-17  Richard Biener  <rguenther@suse.de>
12974
12975	PR middle-end/86505
12976	* tree-inline.c (copy_bb): When inlining __builtin_va_arg_pack_len ()
12977	across a va-arg-pack using call adjust its return value accordingly.
12978
129792018-08-16  Martin Sebor  <msebor@redhat.com>
12980
12981	PR tree-optimization/86853
12982	* gimple-ssa-sprintf.c (struct format_result): Rename member.
12983	(struct fmtresult): Add member and initialize it in ctors.
12984	(format_character): Handle %C.  Extend range to NUL.  Set MAYFAIL.
12985	(format_string): Handle %S the same as %ls.  Set MAYFAIL.
12986	(format_directive): Set POSUNDER4K when MAYFAIL is set.
12987	(parse_directive): Handle %C same as %c.
12988	(sprintf_dom_walker::compute_format_length): Adjust.
12989	(is_call_safe): Adjust.
12990
129912018-08-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12992
12993	* builtins.c (c_strlen): Add new parameter eltsize.  Use it
12994	for determining how to count the elements.
12995	* builtins.h (c_strlen): Adjust prototype.
12996	* expr.c (string_constant): Add new parameter mem_size.
12997	Set *mem_size appropriately.
12998	* expr.h (string_constant): Adjust protoype.
12999	* gimple-fold.c (get_range_strlen): Add new parameter eltsize.
13000	* gimple-fold.h (get_range_strlen): Adjust prototype.
13001	* gimple-ssa-sprintf.c (get_string_length): Add new parameter eltsize.
13002	(format_string): Call get_string_length with eltsize.
13003
130042018-08-16  David Malcolm  <dmalcolm@redhat.com>
13005
13006	* diagnostic.c (default_diagnostic_start_span_fn): Call pp_string
13007	to emit the span, rather than setting it as the prefix.
13008
130092018-08-16  David Malcolm  <dmalcolm@redhat.com>
13010
13011	* diagnostic-show-locus.c (layout::start_annotation_line): Add
13012	"margin_char" parameter, defaulting to space.  Use it in place
13013	of pp_space for the initial part of the margin.
13014	(layout::print_leading_fixits): Use '+' when filling the margin
13015	of line-insertion fix-it hints.
13016
130172018-08-16  Segher Boessenkool  <segher@kernel.crashing.org>
13018
13019	* config/rs6000/rs6000.md (two unnamed define_insn and define_split):
13020	Delete.
13021
130222018-08-16  Segher Boessenkool  <segher@kernel.crashing.org>
13023
13024	* config/rs6000/altivec.md: Don't set length attribute to the default
13025	value.
13026	* config/rs6000/darwin.md: Ditto.
13027	* config/rs6000/dfp.md: Ditto.
13028	* config/rs6000/htm.md: Ditto.
13029	* config/rs6000/rs6000.md: Ditto.
13030	* config/rs6000/sync.md: Ditto.
13031	* config/rs6000/vsx.md: Ditto.
13032
130332018-08-16  Segher Boessenkool  <segher@kernel.crashing.org>
13034
13035	* config/rs6000/altivec.md: Don't set length attribute to the default
13036	value, for branch instructions.
13037	* config/rs6000/darwin.md: Ditto.
13038	* config/rs6000/rs6000.md: Ditto.
13039
130402018-08-16  Segher Boessenkool  <segher@kernel.crashing.org>
13041
13042	* config/rs6000/rs6000.md (length): Always define as const_int 4.
13043	(unnamed conditional branch define_insn): Set length to 4 or 8
13044	depending on offset.
13045	(<bd>_<mode>): Similar, for alternative 0.
13046	(<bd>tf_<mode>): Ditto.
13047
130482018-08-16  Tamar Christina  <tamar.christina@arm.com>
13049
13050	* expr.c (copy_blkmode_to_reg): Perform larger copies when safe.
13051
130522018-08-16  Matthew Malcomson  <matthew.malcomson@arm.com>
13053
13054	* doc/rtl.texi: Replace old RTX class names with new names.
13055
13056
130572018-08-16  Vlad Lazar  <vlad.lazar@arm.com>
13058
13059	* expmed.h (canonicalize_comparison): New declaration.
13060	* expmed.c (canonicalize_comparison, equivalent_cmp_code): New function.
13061	* expmed.c (emit_store_flag_1): Add call to canonicalize_comparison.
13062	* optabs.c (prepare_cmp_insn): Likewise.
13063	* rtl.h (unsigned_condition_p): New function which checks if a
13064	comparison operator is unsigned.
13065
130662018-08-16  Nathan Sidwell  <nathan@acm.org>
13067
13068	* config/rs6000/rs6000-c.c (rs6000_macro_to_expend): Use cpp_macro_p.
13069	* config/powerpcspc/powerpcspe-c.c (rs6000_macro_to_expend): Likewise.
13070
130712018-08-16  Tamar Christina  <tamar.christina@arm.com>
13072
13073	PR target/84711
13074	* config/arm/arm.c (arm_can_change_mode_class): Disallow subreg.
13075	* config/arm/neon.md (movv4hf, movv8hf): Refactored to..
13076	(mov<mov>): ..this and enable unconditionally.
13077
130782018-08-16  Tamar Christina  <tamar.christina@arm.com>
13079
13080	* config/arm/neon.md (*neon_mov<mode>): Remove reg-to-reg alternative.
13081
130822018-08-16  Sam Tebbs  <sam.tebbs@arm.com>
13083
13084	* config/aarch64/aarch64.opt (mlow-precision-recip-sqrt)
13085	(mlow-precision-sqrt, mlow-precision-div, mverbose-cost-dump): Replace
13086	"Common" with "Target".
13087
130882018-08-15  Uros Bizjak  <ubizjak@gmail.com>
13089
13090	* config/i386/i386.opt (mmitigate-rop): Mark as deprecated.
13091	* doc/invoke.texi (mmitigate-rop): Remove.
13092	* config/i386/i386.c: Do not include "regrename.h".
13093	(ix86_rop_should_change_byte_p, reg_encoded_number)
13094	(ix86_get_modrm_for_rop, set_rop_modrm_reg_bits, ix86_mitigate_rop):
13095	Remove.
13096	(ix86_reorg): Remove call to ix86_mitigate_rop.
13097	* config/i386/i386.md (attr "modrm_class"): Remove.
13098	(cmp<mode>_ccno_1, mov<mode>_xor, movstrict<mode>_xor)
13099	(x86_mov<mode>cc_0_m1. x86_mov<mode>cc_0_m1_se)
13100	(x86_mov<mode>cc_0_m1_neg): Remove modrm_class attribute override.
13101
131022018-08-15  Will Schmidt  <will_schmidt@vnet.ibm.com>
13103
13104	* config/rs6000/rs600.c (rs6000_gimple_fold_builtin): Add entries to
13105	allow folding of mergeh() and mergel() for the float and double types.
13106	(fold_mergehl_helper): Rework to handle building a permute tree
13107	for float vectors.
13108
131092018-08-15  Uros Bizjak  <ubizjak@gmail.com>
13110
13111	* config/i386/i386.c (expand_vec_perm_movs): Enable V4SFmode
13112	for TARGET_SSE.
13113
131142018-08-15  David Malcolm  <dmalcolm@redhat.com>
13115
13116	* common.opt (fdiagnostics-show-labels): New option.
13117	* diagnostic-show-locus.c (class layout_range): Add field
13118	"m_label".
13119	(class layout): Add field "m_show_labels_p".
13120	(layout_range::layout_range): Add param "label" and use it to
13121	initialize m_label.
13122	(make_range): Pass in NULL for new "label" param of layout_range's
13123	ctor.
13124	(layout::layout): Initialize m_show_labels_p.
13125	(layout::maybe_add_location_range): Pass in loc_range->m_label
13126	when constructing layout_range instances.
13127	(struct line_label): New struct.
13128	(layout::print_any_labels): New member function.
13129	(layout::print_line): Call it if label-printing is enabled.
13130	(selftest::test_one_liner_labels): New test.
13131	(selftest::test_diagnostic_show_locus_one_liner): Call it.
13132	* diagnostic.c (diagnostic_initialize): Initialize
13133	context->show_labels_p.
13134	* diagnostic.h (struct diagnostic_context): Add field
13135	"show_labels_p".
13136	* doc/invoke.texi (Diagnostic Message Formatting Options): Add
13137	-fno-diagnostics-show-labels.
13138	* dwarf2out.c (gen_producer_string): Add
13139	OPT_fdiagnostics_show_labels to the ignored options.
13140	* gcc-rich-location.c (gcc_rich_location::add_expr): Add "label"
13141	param.
13142	(gcc_rich_location::maybe_add_expr): Likewise.
13143	* gcc-rich-location.h (gcc_rich_location::gcc_rich_location): Add
13144	label" param, defaulting to NULL.
13145	(gcc_rich_location::add_expr): Add "label" param.
13146	(gcc_rich_location::maybe_add_expr): Likewise.
13147	(class text_range_label): New class.
13148	(class range_label_for_type_mismatch): New class.
13149	* gimple-ssa-sprintf.c (fmtwarn): Pass NULL for new label params
13150	of format_warning_va.
13151	(fmtwarn_n): Likewise for new params of format_warning_n_va.
13152	* lto-wrapper.c (merge_and_complain): Add
13153	OPT_fdiagnostics_show_labels to the "pick one setting" options.
13154	(append_compiler_options): Likewise to the dropped options.
13155	(append_diag_options): Likewise to the passed-on options.
13156	* opts.c (common_handle_option): Handle the new option.
13157	* selftest-diagnostic.c
13158	(test_diagnostic_context::test_diagnostic_context): Enable
13159	show_labels_p.
13160	* substring-locations.c: Include "gcc-rich-location.h".
13161	(format_warning_n_va): Add "fmt_label" and "param_label" params
13162	and use them as appropriate.
13163	(format_warning_va): Add "fmt_label" and "param_label" params,
13164	passing them on to format_warning_n_va.
13165	(format_warning_at_substring): Likewise.
13166	(format_warning_at_substring_n): Likewise.
13167	* substring-locations.h (format_warning_va): Add "fmt_label" and
13168	"param_label" params.
13169	(format_warning_n_va): Likewise.
13170	(format_warning_at_substring): Likewise.
13171	(format_warning_at_substring_n): Likewise.
13172	* toplev.c (general_init): Initialize global_dc->show_labels_p.
13173
131742018-08-15  Qing Zhao  <qing.zhao@oracle.com>
13175
13176	PR testsuite/86519
13177	* builtins.c (expand_builtin_memcmp): Do not expand the call
13178	when overflow is detected.
13179
131802018-08-15  Martin Sebor  <msebor@redhat.com>
13181
13182	PR tree-optimization/71625
13183	* config/aarch64/aarch64-builtins.c
13184	(aarch64_init_simd_builtin_types): Clear Poly8_t's TYPE_STRING_FLAG.
13185
131862018-08-15  Ilya Leoshkevich  <iii@linux.ibm.com>
13187
13188	* config/s390/s390.c (s390_reorg): Remove loop.
13189
131902018-08-15  Iain Sandoe  <iain@sandoe.co.uk>
13191
13192	* config/darwin.c
13193	 (darwin_function_switched_text_sections): Delete.
13194	* gcc/config/darwin.h
13195	 (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): Likewise.
13196
131972018-08-15  Iain Sandoe  <iain@sandoe.co.uk>
13198
13199	PR target/81685
13200	* config/darwin.h: (DEBUG_STR_OFFSETS_SECTION, DEBUG_LOCLISTS_SECTION,
13201	DEBUG_RNGLISTS_SECTION) new macros.  (DEBUG_PUBNAMES_SECTION,
13202	DEBUG_PUBTYPES_SECTION) update to include GNU variant.
13203
132042018-08-15  Martin Liska  <mliska@suse.cz>
13205
13206	PR tree-optimization/86925
13207	* predict.c (expr_expected_value_1): When taking
13208	later predictor, assign also probability.
13209	Use fold_build2_initializer_loc in order to fold
13210	the expression in -frounding-math.
13211
132122018-08-14  Allan Sandfeld Jensen  <allan.jensen@qt.io>
13213
13214	* config/i386/i386.c (expand_vec_perm_movs): New method matching movs
13215	patterns.
13216	(expand_vec_perm_1): Try the new method.
13217
132182018-08-14  Ilya Leoshkevich  <iii@linux.ibm.com>
13219
13220	PR target/86547
13221	* lra-lives.c (remove_some_program_points_and_update_live_ranges):
13222	Check whether lra_live_max_point is 0 before dividing.
13223
132242018-08-14  Martin Sebor  <msebor@redhat.com>
13225
13226	PR tree-optimization/86650
13227	* tree-vrp.c (vrp_prop::check_array_ref): Print an inform message.
13228	(vrp_prop::check_mem_ref): Same.
13229
132302018-08-13  Liu Hao  <lh_mouse@126.com>
13231
13232	* pretty-print.c (eat_esc_sequence): Swap the foreground and
13233	background colors if the COMMON_LVB_REVERSE_VIDEO flag is set,
13234	and clear it thereafter, as it only works for DBCS.
13235
132362018-08-13  Liu Hao  <lh_mouse@126.com>
13237
13238	* pretty-print.c (mingw_ansi_fputs): Do not call _close() on the
13239	handle returned by _get_osf_handle().
13240
132412018-08-13  Will Schmidt  <will_schmidt@vnet.ibm.com>
13242
13243	* gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support
13244	for folding vec_perm.
13245
132462018-08-13  Will Schmidt  <will_schmidt@vnet.ibm.com>
13247
13248	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin):
13249	Add support for gimple-folding of vec_pack() and vec_unpack()
13250	intrinsics.
13251
132522018-08-13  Will Schmidt  <will_schmidt@vnet.ibm.com>
13253
13254	* config/rs6000/rs6000.c (rs6000_builtin_valid_without_lhs): Add
13255	vec_xst variants to the list.
13256	(rs6000_gimple_fold_builtin): Add support for folding unaligned
13257	vector loads and stores.
13258
132592018-08-13  David Edelsohn  <dje.gcc@gmail.com>
13260
13261	* config.gcc (rs6000-ibm-aix4.x): Delete.
13262	(rs6000-ibm-aix5.1): Delete.
13263	(rs6000-ibm-aix5.2): Delete.
13264	(rs6000-ibm-aix5.3): Delete.
13265	* config/rs6000/aix43.h: Delete.
13266	* config/rs6000/aix51.h: Delete.
13267	* config/rs6000/aix52.h: Delete.
13268	* config/rs6000/t-aix43: Delete.
13269
132702018-08-13  Ilya Leoshkevich  <iii@linux.ibm.com>
13271
13272	* config/s390/s390.c (s390_decompose_constant_pool_ref):
13273	New function.
13274	(s390_decompose_address): Factor out constant pool ref
13275	decomposition.
13276
132772018-08-12  Chung-Ju Wu  <jasonwucj@gmail.com>
13278
13279	* config/nds32/nds32-predicates.c
13280	(nds32_can_use_bclr_p): Change return type as bool.
13281	(nds32_can_use_bset_p): Ditto.
13282	(nds32_can_use_btgl_p): Ditto.
13283	(nds32_can_use_bitci_p): Ditto.
13284	* config/nds32/nds32-protos.h
13285	(nds32_can_use_bclr_p): Change declaration.
13286	(nds32_can_use_bset_p): Ditto.
13287	(nds32_can_use_btgl_p): Ditto.
13288	(nds32_can_use_bitci_p): Ditto.
13289
132902018-08-12  Chung-Ju Wu  <jasonwucj@gmail.com>
13291
13292	* config/nds32/nds32.c (nds32_expand_prologue, nds32_expand_epilogue):
13293	Support -msched-prolog-epilog option.
13294	* config/nds32/nds32.opt (msched-prolog-epilog): New option.
13295
132962018-08-12  Chung-Ju Wu  <jasonwucj@gmail.com>
13297
13298	* common/config/nds32/nds32-common.c
13299	(nds32_option_optimization_table): Enalbe -malways-align.
13300
133012018-08-12  Chung-Ju Wu  <jasonwucj@gmail.com>
13302
13303	* config.gcc (nds32*): Add nds32_isr.h and nds32_init.inc in
13304	extra_headers.
13305	* common/config/nds32/nds32-common.c (nds32_handle_option): Handle
13306	OPT_misr_secure_ case.
13307	* config/nds32/nds32-isr.c: Implementation of backward compatibility.
13308	* config/nds32/nds32-protos.h (nds32_isr_function_critical_p): New.
13309	* config/nds32/nds32.c (nds32_attribute_table): Add critical and
13310	secure attribute.
13311	* config/nds32/nds32.h (nds32_isr_nested_type): Add NDS32_CRITICAL.
13312	(nds32_isr_info): New field security_level.
13313	(TARGET_ISR_VECTOR_SIZE_4_BYTE): New macro.
13314	* config/nds32/nds32.md (return_internal): Consider critical attribute.
13315	* config/nds32/nds32.opt (misr-secure): New option.
13316	* config/nds32/nds32_init.inc: New file.
13317	* config/nds32/nds32_isr.h: New file.
13318
133192018-08-11  John David Anglin  <danglin@gcc.gnu.org>
13320
13321	* config/pa/pa.md (UNSPEC_MEMORY_BARRIER): New unspec enum.
13322	Update comment for atomic instructions.
13323	(atomic_storeqi, atomic_storehi, atomic_storesi, atomic_storesf,
13324	atomic_loaddf, atomic_loaddf_1, atomic_storedf, atomic_storedf_1):
13325	Remove.
13326	(atomic_loaddi): Revise fence expansion to only emit fence prior to
13327	load for __ATOMIC_SEQ_CST model.
13328	(atomic_loaddi_1): Remove float register target.
13329	(atomic_storedi): Handle CONST_INT values.
13330	(atomic_storedi_1): Remove float register source.  Add special case
13331	for zero value.
13332	(memory_barrier): New expander and insn.
13333
133342018-08-11  Jakub Jelinek  <jakub@redhat.com>
13335
13336	PR tree-optimization/86835
13337	* tree-ssa-math-opts.c (insert_reciprocals): Even when inserting
13338	new_stmt after def_gsi, make sure to insert new_square_stmt after
13339	that stmt, not 2 stmts before it.
13340
133412018-08-10  Alexander Monakov  <amonakov@ispras.ru>
13342
13343	PR target/82418
13344	* config/i386/i386.md (<s>mul<mode>3_highpart): Use DWIH mode iterator
13345	instead of SWI48.
13346
133472018-08-10  Martin Liska  <mliska@suse.cz>
13348
13349	PR target/83610
13350	* builtin-types.def (BT_FN_LONG_LONG_LONG_DOUBLE): Add new
13351	function type.
13352	* builtins.c (expand_builtin_expect_with_probability):
13353	New function.
13354	(expand_builtin_expect_with_probability): New function.
13355	(build_builtin_expect_predicate): Add new argumnet probability
13356	for BUILT_IN_EXPECT_WITH_PROBABILITY.
13357	(fold_builtin_expect):
13358	(fold_builtin_2):
13359	(fold_builtin_3):
13360	* builtins.def (BUILT_IN_EXPECT_WITH_PROBABILITY):
13361	* builtins.h (fold_builtin_expect): Set new argument.
13362	* doc/extend.texi: Document __builtin_expect_with_probability.
13363	* doc/invoke.texi: Likewise.
13364	* gimple-fold.c (gimple_fold_call): Pass new argument.
13365	* ipa-fnsummary.c (find_foldable_builtin_expect): Handle
13366	also BUILT_IN_EXPECT_WITH_PROBABILITY.
13367	* predict.c (get_predictor_value): New function.
13368	(expr_expected_value): Add new argument probability. Assume
13369	that predictor and probability are always non-null.
13370	(expr_expected_value_1): Likewise.  For __builtin_expect and
13371	__builtin_expect_with_probability set probability.  Handle
13372	combination in binary expressions.
13373	(tree_predict_by_opcode): Simplify code by simply calling
13374	get_predictor_value.
13375	(pass_strip_predict_hints::execute): Add handling of
13376	BUILT_IN_EXPECT_WITH_PROBABILITY.
13377	* predict.def (PRED_BUILTIN_EXPECT_WITH_PROBABILITY): Add
13378	new predictor.
13379	* tree.h (DECL_BUILT_IN_P): New function.
13380
133812018-08-10  Martin Liska  <mliska@suse.cz>
13382
13383	PR tree-optimization/85799
13384	* passes.def: Add argument for pass_strip_predict_hints.
13385	* predict.c (class pass_strip_predict_hints): Add new argument
13386	early_p.
13387	(strip_predictor_early): New function.
13388	(pass_strip_predict_hints::execute): Call the function to
13389	strip predictors.
13390	(strip_predict_hints): New function.
13391	* predict.def: Fix comment.
13392
133932018-08-10  Thomas Preud'homme  <thomas.preudhomme@linaro.org>
13394
13395	* Makefile.in: Clarify which tm.texi to copy over to assert the
13396	right to grant a GFDL license for all.
13397
133982018-08-09  Jeff Law  <law@redhat.com>
13399
13400	* config/m68k/m68k.c (m68k_adjust_decorated_operand): Remove
13401	unused variable.
13402
134032018-08-09  Andreas Schwab  <schwab@linux-m68k.org>
13404
13405	* config/m68k/m68k-protos.h (m68k_final_prescan_insn): Remove
13406	prototype.
13407
134082018-08-09  Richard Sandiford  <richard.sandiford@arm.com>
13409
13410	* tree-vect-loop.c (vectorizable_reduction): Allow inner-loop
13411	reductions for variable-length vectors.
13412
134132018-08-09  David Malcolm  <dmalcolm@redhat.com>
13414
13415	PR other/84889
13416	* common.opt (fdiagnostics-show-line-numbers): New option.
13417	* diagnostic-show-locus.c (class layout): Add fields
13418	"m_show_line_numbers_p" and "m_linenum_width";
13419	(num_digits): New function.
13420	(test_num_digits): New function.
13421	(layout::layout): Initialize new fields.  Update m_x_offset
13422	logic to handle any left margin.
13423	(layout::print_source_line): Print line number when requested.
13424	(layout::start_annotation_line): New member function.
13425	(layout::print_annotation_line): Call it.
13426	(layout::print_leading_fixits): Likewise.
13427	(layout::print_trailing_fixits): Likewise.  Update calls to
13428	move_to_column for new parameter.
13429	(layout::get_x_bound_for_row): Add "add_left_margin" param and use
13430	it to potentially call start_annotation_line.
13431	(layout::show_ruler): Call start_annotation_line.
13432	(selftest::test_line_numbers_multiline_range): New selftest.
13433	(selftest::diagnostic_show_locus_c_tests): Call test_num_digits
13434	and selftest::test_line_numbers_multiline_range.
13435	* diagnostic.c (diagnostic_initialize): Initialize
13436	show_line_numbers_p.
13437	* diagnostic.h (struct diagnostic_context): Add field
13438	"show_line_numbers_p".
13439	* doc/invoke.texi (Diagnostic Message Formatting Options): Add
13440	-fno-diagnostics-show-line-numbers.
13441	* dwarf2out.c (gen_producer_string): Add
13442	OPT_fdiagnostics_show_line_numbers to the ignored options.
13443	* lto-wrapper.c (merge_and_complain): Likewise to the "pick
13444	one setting" options.
13445	(append_compiler_options): Likewise to the dropped options.
13446	(append_diag_options): Likewise to the passed-on options.
13447	* opts.c (common_handle_option): Handle the new option.
13448	* toplev.c (general_init): Set up global_dc->show_line_numbers_p.
13449
134502018-08-09  Kelvin Nilsen  <kelvin@gcc.gnu.org>
13451
13452	* doc/extend.texi (PowerPC AltiVec Built-in Functions Available on
13453	ISA 2.07): Correct spelling of bcdsub to be __builtin_bcdsub.  Add
13454	third argument of type "const signed char" to descriptions of
13455	__builtin_bcdadd, __builtin_bcdadd_lt, __builtin_bcdadd_eq,
13456	__builtin_bcdadd_gt, __builtin_bcdadd_ov, __builtin_bcdsub,
13457	__builtin_bcdsub_lt, __builtin_bcdsub_eq, __builtin_bcdsub_gt,
13458	__builtin_bcdsub_ov functions.
13459
134602018-08-09  Richard Sandiford  <richard.sandiford@arm.com>
13461
13462	PR tree-optimization/86858
13463	* tree-vect-loop.c (vect_is_simple_reduction): Restore
13464	flow_bb_inside_loop_p calls.
13465
134662018-08-09  Richard Sandiford  <richard.sandiford@arm.com>
13467
13468	PR tree-optimization/86871
13469	* tree-vect-stmts.c (vect_transform_stmt): Use gimple_get_lhs
13470	instead of gimple_assign_lhs.
13471
134722018-08-09  Richard Earnshaw  <rearnsha@arm.com>
13473
13474	PR target/86887
13475	* config/aarch64/aarch64.md (add<mode>3_carryinC_zero): Add missing
13476	register constraint to operand 0.
13477	(add<mode>3_carryinC): Likewise.
13478	(add<mode>3_carryinV_zero, add<mode>3_carryinV): Likewise.
13479
134802018-08-09  Martin Liska  <mliska@suse.cz>
13481
13482	PR c/86895
13483	* common.opt: Remove extra line.
13484
134852018-08-09  Martin Liska  <mliska@suse.cz>
13486
13487	* params.def (PARAM_ALIGN_LOOP_ITERATIONS): Remove double dots
13488	at the end of a line, make first letter capital and end up
13489	a sentence with a dot.
13490	(PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): Likewise.
13491	(PARAM_LOOP_BLOCK_TILE_SIZE): Likewise.
13492	(PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Likewise.
13493	(PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): Likewise.
13494	(PARAM_MAX_ISL_OPERATIONS): Likewise.
13495	(PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): Likewise.
13496	(PARAM_PROFILE_FUNC_INTERNAL_ID): Likewise.
13497	(PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
13498	(PARAM_SLP_MAX_INSNS_IN_BB): Likewise.
13499	(PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
13500	(PARAM_IPA_CP_RECURSION_PENALTY): Likewise.
13501	(PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
13502	(PARAM_IPA_CP_LOOP_HINT_BONUS): Likewise.
13503	(PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Likewise.
13504	(PARAM_TREE_REASSOC_WIDTH): Likewise.
13505	(PARAM_HSA_GEN_DEBUG_STORES): Likewise.
13506	(PARAM_MAX_SPECULATIVE_DEVIRT_MAYDEFS): Likewise.
13507	(PARAM_MAX_VRP_SWITCH_ASSERTIONS): Likewise.
13508
135092018-08-09  Andreas Krebbel  <krebbel@linux.ibm.com>
13510
13511	PR target/84332
13512	* config/s390/s390.c (s390_option_override_internal): Reduce the
13513	stack-clash-protection-probe-interval param if it would be too big
13514	for z900.
13515
135162018-08-08  Andreas Schwab  <schwab@linux-m68k.org>
13517
13518	PR target/46179
13519	* config/m68k/m68k.h (FINAL_PRESCAN_INSN): Don't define.
13520	* config/m68k/m68k.c (handle_move_double): Don't call
13521	m68k_final_prescan_insn.
13522	(m68k_adjust_decorated_operand): Renamed from
13523	m68k_final_prescan_insn, remove first and third operand and
13524	simplify.
13525	(print_operand): Call it.
13526	(print_operand_address): Call it.
13527
135282018-08-08  Nathan Sidwell  <nathan@acm.org>
13529
13530	* diagnostic.c (diagnostic_report_current_module): Use
13531	linemap_included_from & linemap_included_from_linemap.
13532
135332018-08-08  Hongbo Zhang  <hongbo.zhang@linaro.org>
13534
13535	* config/aarch64/aarch64-cores.def: Add phecda core.
13536	* config/aarch64/aarch64-tune.md: Regenerate.
13537	* doc/invoke.texi: Add phecda core.
13538
135392018-08-08  Andreas Krebbel  <krebbel@linux.ibm.com>
13540
13541	PR target/85295
13542	* config/s390/constraints.md ("NxHD0", "NxSD0"): New constraint
13543	definitions.
13544	* config/s390/s390.md ("movti"): Add more alternatives for
13545	constant to GPR copies.
13546
135472018-08-08  Andreas Krebbel  <krebbel@linux.ibm.com>
13548
13549	* config/s390/s390.c: Fix whitespace damage throughout the file.
13550	* config/s390/s390.h: Likewise.
13551	* config/s390/tpf.h: Likewise.
13552
135532018-08-08  Ilya Leoshkevich  <iii@linux.ibm.com>
13554
13555	* config/s390/s390.c (s390_loadrelative_operand_p):
13556	Remove TARGET_CPU_ZARCH usages.
13557	(s390_rtx_costs): Likewise.
13558	(s390_legitimate_constant_p): Likewise.
13559	(s390_cannot_force_const_mem): Likewise.
13560	(legitimate_reload_constant_p): Likewise.
13561	(s390_preferred_reload_class): Likewise.
13562	(legitimize_pic_address): Likewise.
13563	(legitimize_tls_address): Likewise.
13564	(s390_split_branches): Removed.
13565	(s390_add_execute): Removed.
13566	(s390_dump_pool): Remove TARGET_CPU_ZARCH usages.
13567	(s390_mainpool_start): Likewise.
13568	(s390_mainpool_finish): Likewise.
13569	(s390_mainpool_cancel): Removed.
13570	(s390_chunkify_start): Remove TARGET_CPU_ZARCH usages.
13571	(s390_chunkify_cancel): Likewise.
13572	(s390_return_addr_rtx): Likewise.
13573	(s390_register_info): Remove split_branches_pending_p uages.
13574	(s390_optimize_register_info): Likewise.
13575	(s390_init_frame_layout): Remove TARGET_CPU_ZARCH and
13576	split_branches_pending_p usages.
13577	(s390_can_eliminate): Remove TARGET_CPU_ZARCH usages.
13578	(s390_load_got): Likewise.
13579	(s390_expand_split_stack_prologue): Likewise.
13580	(output_asm_nops): Likewise.
13581	(s390_function_profiler): Likewise.
13582	(s390_emit_call): Likewise.
13583	(s390_conditional_register_usage): Likewise.
13584	(s390_optimize_prologue): Likewise.
13585	(s390_reorg): Remove TARGET_CPU_ZARCH and
13586	split_branches_pending_p usages.
13587	(s390_option_override_internal): Remove TARGET_CPU_ZARCH
13588	usages.
13589	(s390_output_indirect_thunk_function): Likewise.
13590	* config/s390/s390.h (TARGET_CPU_ZARCH): Removed.
13591	(TARGET_CPU_ZARCH_P): Removed.
13592	(struct machine_function): Remove split_branches_pending_p.
13593	* config/s390/s390.md: Remove TARGET_CPU_ZARCH usages.
13594
135952018-08-08  Ilya Leoshkevich  <iii@linux.ibm.com>
13596
13597	* common/config/s390/s390-common.c (processor_flags_table):
13598	Remove flags.
13599	* config.gcc: Remove with_arch/with_tune support.
13600	* config/s390/2064.md: Remove cpu attribute comparisons.
13601	* config/s390/driver-native.c (s390_host_detect_local_cpu):
13602	Remove MTN.
13603	* config/s390/linux.h (ASM_SPEC):
13604	Remove -march support.
13605	* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal):
13606	Use a table to get an arch level.
13607	* config/s390/s390-opts.h (enum processor_type):
13608	Remove enum values.
13609	* config/s390/s390.c
13610	(processor_table): Remove entries, add arch_level values.
13611	(s390_issue_rate): Remove cases.
13612	(s390_option_override): Adjust
13613	s390_option_override_internal() call.
13614	(s390_option_override_internal): Remove deprecation warning.
13615	(s390_valid_target_attribute_tree): Adjust
13616	s390_option_override_internal() call.
13617	* config/s390/s390.h (struct s390_processor):
13618	Share with s390-c.c, add arch_level field.
13619	* config/s390/s390.md:
13620	Remove occurrences in cpu attribute.
13621	* config/s390/s390.opt: Remove -march/-mtune support.
13622	* config/s390/tpf.h (ASM_SPEC): Remove -march support.
13623	* doc/invoke.texi: Remove deprecation warning.
13624
136252018-08-08  Luis Machado  <luis.machado@linaro.org>
13626
13627	* config/aarch64/aarch64.c (qdf24xx_vector_cost): New static
13628	global.
13629	(qdf24xx_tunings): Set vector cost structure to
13630	qdf24xx_vector_cost.
13631
13632	* config/aarch64/aarch64.c (qdf24xx_addrcost_table)
13633	<register_sextend>: Set to 3.
13634
136352018-08-07  Richard Sandiford  <richard.sandiford@arm.com>
13636
13637	PR target/86838
13638	* config/aarch64/iterators.md (FRECP, frecp_suffix): Delete.
13639	* config/aarch64/aarch64-simd.md
13640	(aarch64_frecp<FRECP:frecp_suffix><mode>): Fold FRECPE into...
13641	(@aarch64_frecpe<mode>): ...here and the move FRECPX to...
13642	(aarch64_frecpx<mode>): ...this new pattern.
13643	* config/aarch64/aarch64-simd-builtins.def: Remove comment
13644	about aarch64_frecp<FRECP:frecp_suffix><mode>.
13645
136462018-08-07  Martin Liska  <mliska@suse.cz>
13647
13648	PR middle-end/83023
13649	* predict.c (expr_expected_value_1): Handle DECL_IS_MALLOC,
13650	BUILT_IN_REALLOC and DECL_IS_OPERATOR_NEW.
13651	* predict.def (PRED_MALLOC_NONNULL): New predictor.
13652	* doc/extend.texi: Document that malloc attribute adds
13653	hit to compiler.
13654
136552018-08-06  John David Anglin  <danglin@gcc.gnu.org>
13656
13657	PR target/86785
13658	* config/pa/pa.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
13659	Define to speculation_safe_value_not_needed.
13660
136612018-08-06  Jeff Law  <law@redhat.com>
13662
13663	* tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Pass down
13664	the vr_values instance to cprop_into_stmt.
13665	(cprop_into_stmt): Pass vr_values instance down to cprop_operand.
13666	(cprop_operand): Also query EVRP to determine if OP is a constant.
13667
136682018-08-06  Nathan Sidwell  <nathan@acm.org>
13669
13670	* diagnostic.c (diagnostic_report_current_module): Reroll
13671	included-at loop.  Translate text.
13672
136732018-08-06  David Malcolm  <dmalcolm@redhat.com>
13674
13675	* function-tests.c (selftest::test_expansion_to_rtl): Call
13676	free_after_compilation.
13677
136782018-08-06  Alan Hayward  <alan.hayward@arm.com>
13679
13680	* config/aarch64/aarch64.md: Add clobber highs to tls_desc.
13681
136822018-08-06  Andreas Krebbel  <krebbel@linux.ibm.com>
13683
13684	* config/s390/s390.c (s390_loop_unroll_adjust): Prevent small
13685	loops with memory block operations from getting unrolled.
13686
136872018-08-06  Ulrich Weigand  <uweigand@de.ibm.com>
13688
13689	PR target/86807
13690	* config/spu/spu.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
13691	Define to speculation_safe_value_not_needed.
13692
136932018-08-06  Jeff Law  <law@redhat.com>
13694
13695	* reload1.c (forget_old_reloads_1): Adjust CLOBBER_HIGH
13696	assert.
13697
136982018-08-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
13699
13700	PR target/86662
13701	* gcc/tree.c (build_common_tree_nodes): Initialize integer_types array
13702	with all enabled __intN types.
13703
13704	* gcc/testsuite/gcc.target/msp430/pr86662.c: New test.
13705
137062018-08-06  Alan Hayward  <alan.hayward@arm.com>
13707
13708	* alias.c (record_set): Check for clobber high.
13709	* cfgexpand.c (expand_gimple_stmt): Likewise.
13710	* combine-stack-adj.c (single_set_for_csa): Likewise.
13711	* combine.c (find_single_use_1): Likewise.
13712	(set_nonzero_bits_and_sign_copies): Likewise.
13713	(get_combine_src_dest): Likewise.
13714	(is_parallel_of_n_reg_sets): Likewise.
13715	(try_combine): Likewise.
13716	(record_dead_and_set_regs_1): Likewise.
13717	(reg_dead_at_p_1): Likewise.
13718	(reg_dead_at_p): Likewise.
13719	* dce.c (deletable_insn_p): Likewise.
13720	(mark_nonreg_stores_1): Likewise.
13721	(mark_nonreg_stores_2): Likewise.
13722	* df-scan.c (df_find_hard_reg_defs): Likewise.
13723	(df_uses_record): Likewise.
13724	(df_get_call_refs): Likewise.
13725	* dwarf2out.c (mem_loc_descriptor): Likewise.
13726	* haifa-sched.c (haifa_classify_rtx): Likewise.
13727	* ira-build.c (create_insn_allocnos): Likewise.
13728	* ira-costs.c (scan_one_insn): Likewise.
13729	* ira.c (equiv_init_movable_p): Likewise.
13730	(rtx_moveable_p): Likewise.
13731	(interesting_dest_for_shprep): Likewise.
13732	* jump.c (mark_jump_label_1): Likewise.
13733	* postreload-gcse.c (record_opr_changes): Likewise.
13734	* postreload.c (reload_cse_simplify): Likewise.
13735	(struct reg_use): Add source expr.
13736	(reload_combine): Check for clobber high.
13737	(reload_combine_note_use): Likewise.
13738	(reload_cse_move2add): Likewise.
13739	(move2add_note_store): Likewise.
13740	* print-rtl.c (print_pattern): Likewise.
13741	* recog.c (decode_asm_operands): Likewise.
13742	(store_data_bypass_p): Likewise.
13743	(if_test_bypass_p): Likewise.
13744	* regcprop.c (kill_clobbered_value): Likewise.
13745	(kill_set_value): Likewise.
13746	* reginfo.c (reg_scan_mark_refs): Likewise.
13747	* reload1.c (maybe_fix_stack_asms): Likewise.
13748	(eliminate_regs_1): Likewise.
13749	(elimination_effects): Likewise.
13750	(mark_not_eliminable): Likewise.
13751	(scan_paradoxical_subregs): Likewise.
13752	(forget_old_reloads_1): Likewise.
13753	* reorg.c (find_end_label): Likewise.
13754	(try_merge_delay_insns): Likewise.
13755	(redundant_insn): Likewise.
13756	(own_thread_p): Likewise.
13757	(fill_simple_delay_slots): Likewise.
13758	(fill_slots_from_thread): Likewise.
13759	(dbr_schedule): Likewise.
13760	* resource.c (update_live_status): Likewise.
13761	(mark_referenced_resources): Likewise.
13762	(mark_set_resources): Likewise.
13763	* rtl.c (copy_rtx): Likewise.
13764	* rtlanal.c (reg_referenced_p): Likewise.
13765	(single_set_2): Likewise.
13766	(noop_move_p): Likewise.
13767	(note_stores): Likewise.
13768	* sched-deps.c (sched_analyze_reg): Likewise.
13769	(sched_analyze_insn): Likewise.
13770
137712018-08-06  Alan Hayward  <alan.hayward@arm.com>
13772
13773	* cse.c (invalidate_reg): New function extracted from...
13774	(invalidate): ...here.
13775	(canonicalize_insn): Check for clobber high.
13776	(invalidate_from_clobbers): invalidate clobber highs.
13777	(invalidate_from_sets_and_clobbers): Likewise.
13778	(count_reg_usage): Check for clobber high.
13779	(insn_live_p): Likewise.
13780	* cselib.c (cselib_expand_value_rtx_1):Likewise.
13781	(cselib_invalidate_regno): Check for clobber in setter.
13782	(cselib_invalidate_rtx): Pass through setter.
13783	(cselib_invalidate_rtx_note_stores):
13784	(cselib_process_insn): Check for clobber high.
13785	* cselib.h (cselib_invalidate_rtx): Add operand.
13786
137872018-08-06  Alan Hayward  <alan.hayward@arm.com>
13788
13789	* lra-eliminations.c (lra_eliminate_regs_1): Check for clobber high.
13790	(mark_not_eliminable): Likewise.
13791	* lra-int.h (struct lra_insn_reg): Add clobber high marker.
13792	* lra-lives.c (process_bb_lives): Check for clobber high.
13793	* lra.c (new_insn_reg): Remember clobber highs.
13794	(collect_non_operand_hard_regs): Check for clobber high.
13795	(lra_set_insn_recog_data): Likewise.
13796	(add_regs_to_insn_regno_info): Likewise.
13797	(lra_update_insn_regno_info): Likewise.
13798
137992018-08-06  Alan Hayward  <alan.hayward@arm.com>
13800
13801	* rtl.h (reg_is_clobbered_by_clobber_high): Add declarations.
13802	* rtlanal.c (reg_is_clobbered_by_clobber_high): Add function.
13803
138042018-08-06  Alan Hayward  <alan.hayward@arm.com>
13805
13806	* emit-rtl.c (verify_rtx_sharing): Check for CLOBBER_HIGH.
13807	(copy_insn_1): Likewise.
13808	(gen_hard_reg_clobber_high): New gen function.
13809	* genconfig.c (walk_insn_part): Check for CLOBBER_HIGH.
13810	* genemit.c (gen_exp): Likewise.
13811	(gen_emit_seq): Pass through info.
13812	(gen_insn): Check for CLOBBER_HIGH.
13813	(gen_expand): Pass through info.
13814	(gen_split): Likewise.
13815	(output_add_clobbers): Likewise.
13816	* genrecog.c (validate_pattern): Check for CLOBBER_HIGH.
13817	(remove_clobbers): Likewise.
13818	* rtl.h (gen_hard_reg_clobber_high): New declaration.
13819
138202018-08-06  Alan Hayward  <alan.hayward@arm.com>
13821
13822	* doc/rtl.texi (clobber_high): Add.
13823	(parallel): Add in clobber high
13824	* rtl.c (rtl_check_failed_code3): Add function.
13825	* rtl.def (CLOBBER_HIGH): Add expression.
13826	* rtl.h (RTL_CHECKC3): Add macro.
13827	(rtl_check_failed_code3): Add declaration.
13828	(XC3EXP): Add macro.
13829
138302018-08-05  H.J. Lu  <hongjiu.lu@intel.com>
13831
13832	PR target/86386
13833	* config/i386/i386.c (ix86_finalize_stack_frame_flags): Set
13834	cfun->machine->max_used_stack_alignment if needed.
13835
138362018-08-04  Martin Sebor  <msebor@redhat.com>
13837
13838	PR tree-optimization/86571
13839	* gimple-ssa-sprintf.c (format_floating): Extend upper bound of
13840	NaN output to 4.
13841
138422018-08-03  Sandra Loosemore  <sandra@codesourcery.com>
13843
13844	PR target/86799
13845	* config/nios2/nios2.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
13846	Define.
13847
138482018-08-03  Jeff Law  <law@redhat.com>
13849
13850	PR target/86795
13851	* config/mn10300/mn10300.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
13852	Define to speculation_safe_value_not_needed.
13853
138542018-08-03  David Malcolm  <dmalcolm@redhat.com>
13855
13856	* doc/gcov.texi (-x): Remove duplicate "to".
13857	* doc/invoke.texi (-Wnoexcept-type): Remove duplicate "calls".
13858	(-Wif-not-aligned): Remove duplicate "is".
13859	(-flto): Remove duplicate "the".
13860	(MicroBlaze Options): In examples of "-mcpu=cpu-type", remove
13861	duplicate "v5.00.b".
13862	(MSP430 Options): Remove duplicate "and" from the description
13863	of "-mgprel-sec=regexp".
13864	(x86 Options): Remove duplicate copies of "vmldLog102" and
13865	vmlsLog104 from description of "-mveclibabi=type".
13866
138672018-08-03  Richard Sandiford  <richard.sandiford@arm.com>
13868
13869	* internal-fn.h (first_commutative_argument): Declare.
13870	* internal-fn.c (first_commutative_argument): New function.
13871	* tree-vect-slp.c (vect_get_and_check_slp_defs): Remove extra
13872	restrictions for pattern statements.  Use first_commutative_argument
13873	to look for commutative operands in calls to internal functions.
13874
138752018-08-03  Aldy Hernandez  <aldyh@redhat.com>
13876
13877	* Makefile.in (wide-int-range.o): New.
13878	* tree-vrp.c: Move all the wide_int_* functions to...
13879	* wide-int-range.cc: ...here.
13880	* tree-vrp.h: Move all the wide_int_* prototypes to...
13881	* wide-int-range.h: ...here.
13882
138832018-08-03  Tom de Vries  <tdevries@suse.de>
13884
13885	* common/config/nvptx/nvptx-common.c (nvptx_except_unwind_info): Return
13886	UI_NONE.
13887	* config/nvptx/nvptx.c (TARGET_ASM_BYTE_OP): Remove define.
13888	* except.c (output_function_exception_table): Do early exit if
13889	targetm_common.except_unwind_info (&global_options) == UI_NONE.
13890
138912018-08-03  Martin Liska  <mliska@suse.cz>
13892
13893	* predict.c (dump_prediction): Change to 2 digits
13894	in fraction part.
13895
138962018-08-03  Siddhesh Poyarekar  <siddhesh@sourceware.org>
13897
13898	* config/aarch64/falkor.md (falkor_am_1_vxvy_vxvy): Move
13899	neon_dup_q to...
13900	(falkor_am_1_gtov_gtov): ... a new insn reservation.
13901
139022018-07-19  Ilya Leoshkevich  <iii@linux.ibm.com>
13903
13904	* config/nds32/nds32.c (nds32_hard_regno_mode_ok): Replace > with >=.
13905	* df-problems.c (df_remove_dead_eq_notes): Replace > with >=.
13906	* dwarf2out.c (mem_loc_descriptor): Replace > with >=.
13907	* lra-constraints.c (spill_hard_reg_in_range): Replace <= with <.
13908	* lra-remat.c (call_used_input_regno_present_p): Replace <= with <.
13909
139102018-08-02  David Malcolm  <dmalcolm@redhat.com>
13911
13912	* diagnostic-show-locus.c (diagnostic_show_locus): Use
13913	pp_take_prefix when saving the existing prefix.
13914	* diagnostic.c (diagnostic_append_note): Likewise.
13915	* langhooks.c (lhd_print_error_function): Likewise.
13916	* pretty-print.c (pp_set_prefix): Drop the "const" from "prefix"
13917	param's type.  Free the existing prefix.
13918	(pp_take_prefix): New function.
13919	(pretty_printer::pretty_printer): Drop the prefix parameter.
13920	Rename the length parameter to match the comment.
13921	(pretty_printer::~pretty_printer): Free the prefix.
13922	* pretty-print.h (pretty_printer::pretty_printer): Drop the prefix
13923	parameter.
13924	(struct pretty_printer): Drop the "const" from "prefix" field's
13925	type and clarify memory management.
13926	(pp_set_prefix): Drop the "const" from the 2nd param.
13927	(pp_take_prefix): New decl.
13928
139292018-08-02  Aaron Sawdey  <acsawdey@linux.ibm.com>
13930
13931	* config/rs6000/rs6000-string.c (select_block_compare_mode): Move test
13932	for word_mode_ok here instead of passing as argument.
13933	(expand_block_compare): Change select_block_compare_mode() call.
13934	(expand_strncmp_gpr_sequence): New function.
13935	(expand_strn_compare): Make use of expand_strncmp_gpr_sequence.
13936
139372018-08-02  Jeff Law  <law@redhat.com>
13938
13939	PR target/86790
13940	* config/m68k/m68k.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
13941	Define to speculation_safe_value_not_needed.
13942
13943	PR target/86784
13944	* config/h8300/h8300.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
13945	Define to speculation_safe_value_not_needed.
13946
139472018-08-02  Tom de Vries  <tdevries@suse.de>
13948
13949	PR target/86660
13950	* common/config/nvptx/nvptx-common.c (nvptx_except_unwind_info): New
13951	function.  Return UI_TARGET unconditionally.
13952	(TARGET_EXCEPT_UNWIND_INFO): Redefine to nvptx_except_unwind_info.
13953	* config/nvptx/nvptx.c (TARGET_ASM_BYTE_OP): Emit commented out '.byte'.
13954
139552018-08-02  Richard Sandiford  <richard.sandiford@arm.com>
13956
13957	* genemit.c (print_overload_test): Fix typo.
13958
139592018-08-02  Richard Biener  <rguenther@suse.de>
13960
13961	PR tree-optimization/86816
13962	* tree-ssa-tail-merge.c (tail_merge_valueize): New function
13963	which checks for value availability before querying it.
13964	(gvn_uses_equal): Use it.
13965	(same_succ_hash): Likewise.
13966	(gimple_equal_p): Likewise.
13967
139682018-08-02  Nick Clifton  <nickc@redhat.com>
13969
13970	PR target/86813
13971	* config/stormy16/stormy16.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
13972	Define to speculation_safe_value_not_needed.
13973
13974	PR target/86810
13975	* config/v850/v850.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
13976	Define to speculation_safe_value_not_needed.
13977
13978	PR target/86810
13979	* config/v850/v850.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
13980	Define to speculation_safe_value_not_needed.
13981
13982	PR target/86803
13983	* config/rx/rx.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
13984	Define to speculation_safe_value_not_needed.
13985
13986	PR target/86797
13987	* config/msp430/msp430.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
13988	Define to speculation_safe_value_not_needed.
13989
13990	PR target/86791
13991	* config/mcore/mcore.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
13992	Define to speculation_safe_value_not_needed.
13993
13994	PR target/86789
13995	* config/m32r/m32r.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
13996	Define to speculation_safe_value_not_needed.
13997
13998	PR target/86787
13999	* config/iq2000/iq2000.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
14000	Define to speculation_safe_value_not_needed.
14001
14002	PR target/86782
14003	* config/frv/frv.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define to
14004	speculation_safe_value_not_needed.
14005
14006	PR target/86781
14007	* config/fr30/fr30.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define
14008	to speculation_safe_value_not_needed.
14009
140102018-08-02  Richard Sandiford  <richard.sandiford@arm.com>
14011
14012	* doc/md.texi: Expand the documentation of instruction names
14013	to mention port-local uses.  Document '@' in pattern names.
14014	* read-md.h (overloaded_instance, overloaded_name): New structs.
14015	(mapping): Declare.
14016	(md_reader::handle_overloaded_name): New member function.
14017	(md_reader::get_overloads): Likewise.
14018	(md_reader::m_first_overload): New member variable.
14019	(md_reader::m_next_overload_ptr): Likewise.
14020	(md_reader::m_overloads_htab): Likewise.
14021	* read-md.c (md_reader::md_reader): Initialize m_first_overload,
14022	m_next_overload_ptr and m_overloads_htab.
14023	* read-rtl.c (iterator_group): Add "type" and "get_c_token" fields.
14024	(get_mode_token, get_code_token, get_int_token): New functions.
14025	(map_attr_string): Add an optional argument that passes back
14026	the associated iterator.
14027	(overloaded_name_hash, overloaded_name_eq_p, named_rtx_p):
14028	(md_reader::handle_overloaded_name, add_overload_instance): New
14029	functions.
14030	(apply_iterators): Handle '@' names.  Report an error if '@'
14031	is used without iterators.
14032	(initialize_iterators): Initialize the new iterator_group fields.
14033	* genopinit.c (handle_overloaded_code_for)
14034	(handle_overloaded_gen): New functions.
14035	(main): Use them to print declarations of maybe_code_for_* and
14036	maybe_gen_* functions, and inline definitions of code_for_* and gen_*.
14037	* genemit.c (print_overload_arguments, print_overload_test)
14038	(handle_overloaded_code_for, handle_overloaded_gen): New functions.
14039	(main): Use it to print definitions of maybe_code_for_* and
14040	maybe_gen_* functions.
14041	* config/aarch64/aarch64.c (aarch64_split_128bit_move): Use
14042	gen_aarch64_mov{low,high}_di and gen_aarch64_movdi_{low,high}
14043	instead of explicit mode checks.
14044	(aarch64_split_simd_combine): Likewise gen_aarch64_simd_combine.
14045	(aarch64_split_simd_move): Likewise gen_aarch64_split_simd_mov.
14046	(aarch64_emit_load_exclusive): Likewise gen_aarch64_load_exclusive.
14047	(aarch64_emit_store_exclusive): Likewise gen_aarch64_store_exclusive.
14048	(aarch64_expand_compare_and_swap): Likewise
14049	gen_aarch64_compare_and_swap and gen_aarch64_compare_and_swap_lse
14050	(aarch64_gen_atomic_cas): Likewise gen_aarch64_atomic_cas.
14051	(aarch64_emit_atomic_swap): Likewise gen_aarch64_atomic_swp.
14052	(aarch64_constant_pool_reload_icode): Delete.
14053	(aarch64_secondary_reload): Use code_for_aarch64_reload_movcp
14054	instead of aarch64_constant_pool_reload_icode.  Use
14055	code_for_aarch64_reload_mov instead of explicit mode checks.
14056	(rsqrte_type, get_rsqrte_type, rsqrts_type, get_rsqrts_type): Delete.
14057	(aarch64_emit_approx_sqrt): Use gen_aarch64_rsqrte instead of
14058	get_rsqrte_type and gen_aarch64_rsqrts instead of gen_rqrts_type.
14059	(recpe_type, get_recpe_type, recps_type, get_recps_type): Delete.
14060	(aarch64_emit_approx_div): Use gen_aarch64_frecpe instead of
14061	get_recpe_type and gen_aarch64_frecps instead of get_recps_type.
14062	(aarch64_atomic_load_op_code): Delete.
14063	(aarch64_emit_atomic_load_op): Likewise.
14064	(aarch64_gen_atomic_ldop): Use UNSPECV_ATOMIC_* instead of
14065	aarch64_atomic_load_op_code.  Use gen_aarch64_atomic_load
14066	instead of aarch64_emit_atomic_load_op.
14067	* config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>)
14068	(aarch64_reload_movcp<VALL:mode><P:mode>, aarch64_reload_mov<mode>)
14069	(aarch64_movdi_<mode>low, aarch64_movdi_<mode>high)
14070	(aarch64_mov<mode>high_di, aarch64_mov<mode>low_di): Add a '@'
14071	character before the pattern name.
14072	* config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>)
14073	(aarch64_rsqrte<mode>, aarch64_rsqrts<mode>)
14074	(aarch64_simd_combine<mode>, aarch64_frecpe<mode>)
14075	(aarch64_frecps<mode>): Likewise.
14076	* config/aarch64/atomics.md (atomic_compare_and_swap<mode>)
14077	(aarch64_compare_and_swap<mode>, aarch64_compare_and_swap<mode>_lse)
14078	(aarch64_load_exclusive<mode>, aarch64_store_exclusive<mode>)
14079	(aarch64_atomic_swp<mode>, aarch64_atomic_cas<mode>)
14080	(aarch64_atomic_load<atomic_ldop><mode>): Likewise.
14081
140822018-08-02  Richard Sandiford  <richard.sandiford@arm.com>
14083
14084	* config/aarch64/aarch64.c (aarch64_float_const_representable_p):
14085	Allow HFmode constants if TARGET_FP_F16INST.
14086
140872018-08-02  Jackson Woodruff  <jackson.woodruff@arm.com>
14088
14089	PR target/86014
14090	* config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp):
14091	No longer check last store for clobber of address register.
14092
140932018-08-02  Martin Liska  <mliska@suse.cz>
14094
14095	PR gcov-profile/86817
14096	* gcov.c (process_all_functions): New function.
14097	(main): Call it.
14098	(process_file): Move functions processing to
14099	process_all_functions.
14100
141012018-08-02  David Malcolm  <dmalcolm@redhat.com>
14102
14103	* dumpfile.c (dump_user_location_t::dump_user_location_t): Add
14104	"const" to the "gimple *" and "rtx_insn *" parameters.
14105	* dumpfile.h (dump_user_location_t::dump_user_location_t):
14106	Likewise.
14107	(dump_location_t::dump_location_t): Likewise.
14108
141092018-08-01  Martin Sebor  <msebor@redhat.com>
14110
14111	PR tree-optimization/86650
14112	* gimple-pretty-print.c (percent_G_format): Accept a "gimple *"
14113	rather than a "gcall *".  Directly pass the data of interest
14114	to percent_K_format, rather than building a temporary CALL_EXPR
14115	to hold it.
14116	* gimple-fold.c (gimple_fold_builtin_strncpy): Adjust.
14117	(gimple_fold_builtin_strncat): Adjust.
14118	* gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Replace
14119	gcall* argument with gimple*.
14120	* gimple-ssa-warn-restrict.c (check_call): Same.
14121	(wrestrict_dom_walker::before_dom_children): Same.
14122	(builtin_access::builtin_access): Same.
14123	(check_bounds_or_overlap): Same
14124	(maybe_diag_overlap): Same.
14125	(maybe_diag_offset_bounds): Same.
14126	* tree-diagnostic.c (default_tree_printer): Move usage of
14127	EXPR_LOCATION (t) and TREE_BLOCK (t) from within percent_K_format
14128	to this callsite.
14129	* tree-pretty-print.c (percent_K_format): Add argument.
14130	* tree-pretty-print.h: Add argument.
14131	* tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust.
14132	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Adjust.
14133	(maybe_diag_stxncpy_trunc): Same.
14134	(handle_builtin_stxncpy): Same.
14135	(handle_builtin_strcat): Same.
14136
141372018-08-01  Richard Sandiford  <richard.sandiford@arm.com>
14138
14139	* match.pd: Optimise pointer range checks.
14140
141412018-08-01  Richard Sandiford  <richard.sandiford@arm.com>
14142
14143	PR tree-optimization/86758
14144	* tree-vect-stmts.c (vectorizable_simd_clone_call): Don't try
14145	to remove pattern statements.
14146
141472018-08-01  Richard Sandiford  <richard.sandiford@arm.com>
14148
14149	* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Use the
14150	result of dfs_enumerate_from when constructing stmt_vec_infos,
14151	instead of additionally calling get_loop_body.
14152
141532018-08-01  Richard Sandiford  <richard.sandiford@arm.com>
14154
14155	* tree-vectorizer.h (vect_create_data_ref_ptr): Remove inv_p
14156	parameter.
14157	* tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
14158	When creating an iv, assert that the step is not known to be zero.
14159	(vect_setup_realignment): Update call accordingly.
14160	* tree-vect-stmts.c (vectorizable_store): Likewise.
14161	(vectorizable_load): Likewise.  Handle VMAT_INVARIANT separately.
14162
141632018-08-01  Richard Sandiford  <richard.sandiford@arm.com>
14164
14165	* tree-vectorizer.h (vect_stmt_to_vectorize): New function.
14166	* tree-vect-loop.c (vect_update_vf_for_slp): Use it.
14167	(vectorizable_reduction): Likewise.
14168	* tree-vect-slp.c (vect_analyze_slp_instance): Likewise.
14169	(vect_detect_hybrid_slp_stmts): Likewise.
14170	* tree-vect-stmts.c (vect_is_simple_use): Likewise.
14171
141722018-08-01  Aldy Hernandez  <aldyh@redhat.com>
14173
14174	* tree-vrp (zero_nonzero_bits_from_bounds): Rename to...
14175	(wide_int_set_zero_nonzero_bits): ...this.
14176	(zero_nonzero_bits_from_vr): Rename to...
14177	(vrp_set_zero_nonzero_bits): ...this.
14178	(extract_range_from_multiplicative_op_1): Abstract wide int
14179	code...
14180	(wide_int_range_multiplicative_op): ...here.
14181	(extract_range_from_binary_expr_1): Extract wide int binary
14182	operations into their own functions.
14183	(wide_int_range_lshift): New.
14184	(wide_int_range_can_optimize_bit_op): New.
14185	(wide_int_range_shift_undefined_p): New.
14186	(wide_int_range_bit_xor): New.
14187	(wide_int_range_bit_ior): New.
14188	(wide_int_range_bit_and): New.
14189	(wide_int_range_trunc_mod): New.
14190	(extract_range_into_wide_ints): New.
14191	(vrp_shift_undefined_p): New.
14192	(extract_range_from_multiplicative_op): New.
14193	(vrp_can_optimize_bit_op): New.
14194	* tree-vrp.h (value_range::dump): New.
14195	(wide_int_range_multiplicative_op): New.
14196	(wide_int_range_lshift):New.
14197	(wide_int_range_shift_undefined_p): New.
14198	(wide_int_range_bit_xor): New.
14199	(wide_int_range_bit_ior): New.
14200	(wide_int_range_bit_and): New.
14201	(wide_int_range_trunc_mod): New.
14202	(zero_nonzero_bits_from_bounds): Rename to...
14203	(wide_int_set_zero_nonzero_bits): ...this.
14204	(zero_nonzero_bits_from_vr): Rename to...
14205	(vrp_set_zero_nonzero_bits): ...this.
14206	(range_easy_mask_min_max): Rename to...
14207	(wide_int_range_can_optimize_bit_op): this.
14208	* vr-values.c (simplify_bit_ops_using_ranges): Rename
14209	zero_nonzero_bits_from_vr into vrp_set_zero_nonzero_bits.
14210
142112018-08-01  Richard Sandiford  <richard.sandiford@arm.com>
14212
14213	* tree-vectorizer.h (vect_orig_stmt): New function.
14214	* tree-vect-data-refs.c (vect_preserves_scalar_order_p): Use it.
14215	* tree-vect-loop.c (vect_model_reduction_cost): Likewise.
14216	(vect_create_epilog_for_reduction): Likewise.
14217	(vectorizable_live_operation): Likewise.
14218	* tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Likewise.
14219	(vect_detect_hybrid_slp_stmts, vect_schedule_slp): Likewise.
14220	* tree-vect-stmts.c (vectorizable_call): Likewise.
14221	(vectorizable_simd_clone_call, vect_remove_stores): Likewise.
14222
142232018-08-01  Richard Sandiford  <richard.sandiford@arm.com>
14224
14225	* tree-vectorizer.h (vect_transform_stmt): Remove grouped_store
14226	argument.
14227	* tree-vect-stmts.c (vect_transform_stmt): Likewise.
14228	* tree-vect-loop.c (vect_transform_loop_stmt): Update call accordingly.
14229	(vect_transform_loop): Likewise.
14230	* tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
14231
142322018-08-01  Richard Sandiford  <richard.sandiford@arm.com>
14233
14234	* tree-vectorizer.h (vect_schedule_slp): Return void.
14235	* tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
14236	(vect_schedule_slp): Likewise.
14237
142382018-08-01  Richard Sandiford  <richard.sandiford@arm.com>
14239
14240	* tree-vect-loop.c (vect_transform_loop_stmt): Remove slp_scheduled
14241	argument.
14242	(vect_transform_loop): Update calls accordingly.  Schedule SLP
14243	instances before the main loop, if any exist.
14244
142452018-08-01  Richard Sandiford  <richard.sandiford@arm.com>
14246
14247	PR tree-optimization/86749
14248	* tree-vect-patterns.c (vect_determine_min_output_precision_1):
14249	If the lhs is used in a COND_EXPR, check that it is being used
14250	as the "then" or "else" value.
14251
142522018-08-01  Tom de Vries  <tdevries@suse.de>
14253
14254	PR target/86800
14255	* config/nvptx/nvptx.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define to
14256	speculation_safe_value_not_needed.
14257
142582018-08-01  Richard Biener  <rguenther@suse.de>
14259
14260	* tree-ssa-sccvn.c (visit_phi): Compare invariant addresses
14261	as base and offset.
14262
142632018-08-01  Martin Liska  <mliska@suse.cz>
14264
14265	* value-prof.c (gimple_divmod_fixed_value_transform): Unify
14266	format how successful transformation is dumped.
14267	(gimple_mod_pow2_value_transform): Likewise.
14268	(gimple_mod_subtract_transform): Likewise.
14269	(gimple_stringops_transform): Likewise.
14270
142712018-08-01  Martin Liska  <mliska@suse.cz>
14272
14273	PR value-prof/35543
14274	* value-prof.c (interesting_stringop_to_profile_p):
14275	Simplify the code and add BUILT_IN_MEMMOVE.
14276	(gimple_stringops_transform): Likewise.
14277
142782018-08-01  Sam Tebbs  <sam.tebbs@arm.com>
14279
14280	* config/aarch64/aarch64-simd.md
14281	(*aarch64_get_lane_zero_extendsi<mode>): Rename to...
14282	(*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): ... This and
14283	use GPI iterator instead of SI mode.
14284
142852018-08-01  Richard Earnshaw  <rearnsha@arm.com>
14286
14287	* config/rs6000/rs6000.md (speculation_barrier): Renamed from
14288	rs6000_speculation_barrier.
14289	* config/rs6000/rs6000.c (rs6000_expand_builtin): Adjust for
14290	new barrier pattern name.
14291
142922018-08-01  Richard Earnshaw  <rearnsha@arm.com>
14293
14294	* config/i386/i386.md (unspecv): Add UNSPECV_SPECULATION_BARRIER.
14295	(speculation_barrier): New insn.
14296
142972018-08-01  Richard Biener  <rguenther@suse.de>
14298
14299	PR bootstrap/86724
14300	* graphite.h: Include isl/id.h and isl/space.h to allow build
14301	with ISL 0.20.
14302
143032018-08-01  Jan Willem Jagersma  <jwjagersma@gmail.com>
14304
14305	PR target/86651
14306	* dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO
14307	mode for COFF targets.
14308	* defaults.h (TARGET_COFF): Define.
14309	* config/i386/djgpp.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END,
14310	TARGET_COFF): Define.
14311	(i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): Declare.
14312	* config/i386/djgpp.c (saved_debug_info_level): New static variable.
14313	(i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): New functions.
14314
143152018-07-31  Alexandre Oliva  <oliva@adacore.com>
14316
14317	* gimple-streamer-in.c (input_bb): Restore BB discriminator.
14318	* gimple-streamer-out.c (output_bb): Save it.
14319	* lto-streamer-in.c (input_struct_function_base): Restore
14320	instance discriminator if available.  Create map on demand.
14321	* lto-streamer-out.c (output_struct_function_base): Save it if
14322	available.
14323	* final.c (decl_to_instance_map): Document LTO strategy.
14324
143252018-07-31  Alexandre Oliva  <oliva@adacore.com>
14326	    Olivier Hainque  <hainque@adacore.com>
14327
14328	* debug.h (decl_to_instance_map_t): New type.
14329	(decl_to_instance_map): Declare.
14330	(maybe_create_decl_to_instance_map): New inline function.
14331	* final.c (bb_discriminator, last_bb_discriminator): New statics,
14332	to track basic block discriminators.
14333	(final_start_function_1): Initialize them.
14334	(final_scan_insn_1): On NOTE_INSN_BASIC_BLOCK, track
14335	bb_discriminator.
14336	(decl_to_instance_map): New variable.
14337	(map_decl_to_instance, maybe_set_discriminator): New functions.
14338	(notice_source_line): Set discriminator.
14339
143402018-07-31  Ian Lance Taylor  <iant@golang.org>
14341
14342	* targhooks.c (default_have_speculation_safe_value): Add
14343	ATTRIBUTE_UNUSED.
14344
143452018-07-31  David Malcolm  <dmalcolm@redhat.com>
14346
14347	* dump-context.h: Include "pretty-print.h".
14348	(dump_context::refresh_dumps_are_enabled): New decl.
14349	(dump_context::emit_item): New decl.
14350	(class dump_context): Add fields "m_test_pp" and
14351	"m_test_pp_flags".
14352	(temp_dump_context::temp_dump_context): Add param "test_pp_flags".
14353	(temp_dump_context::get_dumped_text): New decl.
14354	(class temp_dump_context): Add field "m_pp".
14355	* dumpfile.c (refresh_dumps_are_enabled): Convert to...
14356	(dump_context::refresh_dumps_are_enabled): ...and add a test for
14357	m_test_pp.
14358	(set_dump_file): Update for above change.
14359	(set_alt_dump_file): Likewise.
14360	(dump_loc): New overload, taking a pretty_printer *.
14361	(dump_context::dump_loc): Call end_any_optinfo.  Dump the location
14362	to any test pretty-printer.
14363	(make_item_for_dump_gimple_stmt): New function, adapted from
14364	optinfo::add_gimple_stmt.
14365	(dump_context::dump_gimple_stmt): Call it, and use the result,
14366	eliminating the direct usage of dump_file and alt_dump_file in
14367	favor of indirectly using them via emit_item.
14368	(make_item_for_dump_gimple_expr): New function, adapted from
14369	optinfo::add_gimple_expr.
14370	(dump_context::dump_gimple_expr): Call it, and use the result,
14371	eliminating the direct usage of dump_file and alt_dump_file in
14372	favor of indirectly using them via emit_item.
14373	(make_item_for_dump_generic_expr): New function, adapted from
14374	optinfo::add_tree.
14375	(dump_context::dump_generic_expr): Call it, and use the result,
14376	eliminating the direct usage of dump_file and alt_dump_file in
14377	favor of indirectly using them via emit_item.
14378	(make_item_for_dump_printf_va): New function, adapted from
14379	optinfo::add_printf_va.
14380	(make_item_for_dump_printf): New function.
14381	(dump_context::dump_printf_va): Call make_item_for_dump_printf_va,
14382	and use the result, eliminating the direct usage of dump_file and
14383	alt_dump_file in favor of indirectly using them via emit_item.
14384	(make_item_for_dump_dec): New function.
14385	(dump_context::dump_dec): Call it, and use the result,
14386	eliminating the direct usage of dump_file and alt_dump_file in
14387	favor of indirectly using them via emit_item.
14388	(make_item_for_dump_symtab_node): New function, adapted from
14389	optinfo::add_symtab_node.
14390	(dump_context::dump_symtab_node): Call it, and use the result,
14391	eliminating the direct usage of dump_file and alt_dump_file in
14392	favor of indirectly using them via emit_item.
14393	(dump_context::begin_scope): Reimplement, avoiding direct usage
14394	of dump_file and alt_dump_file in favor of indirectly using them
14395	via emit_item.
14396	(dump_context::emit_item): New member function.
14397	(temp_dump_context::temp_dump_context): Add param "test_pp_flags".
14398	Set up test pretty-printer on the underlying context.  Call
14399	refresh_dumps_are_enabled.
14400	(temp_dump_context::~temp_dump_context): Call
14401	refresh_dumps_are_enabled.
14402	(temp_dump_context::get_dumped_text): New member function.
14403	(selftest::verify_dumped_text): New function.
14404	(ASSERT_DUMPED_TEXT_EQ): New macro.
14405	(selftest::test_capture_of_dump_calls): Run all tests twice, with
14406	and then without optinfo enabled.  Add uses of
14407	ASSERT_DUMPED_TEXT_EQ to all tests.  Add test of nested scopes.
14408	* dumpfile.h: Update comment for the dump_* API.
14409	* optinfo-emit-json.cc
14410	(selftest::test_building_json_from_dump_calls): Update for new
14411	param for temp_dump_context ctor.
14412	* optinfo.cc (optinfo_item::optinfo_item): Remove "owned" param
14413	and "m_owned" field.
14414	(optinfo_item::~optinfo_item): Likewise.
14415	(optinfo::add_item): New member function.
14416	(optinfo::emit): Update comment.
14417	(optinfo::add_string): Delete.
14418	(optinfo::add_printf): Delete.
14419	(optinfo::add_printf_va): Delete.
14420	(optinfo::add_gimple_stmt): Delete.
14421	(optinfo::add_gimple_expr): Delete.
14422	(optinfo::add_tree): Delete.
14423	(optinfo::add_symtab_node): Delete.
14424	(optinfo::add_dec): Delete.
14425	* optinfo.h (class dump_context): New forward decl.
14426	(optinfo::add_item): New decl.
14427	(optinfo::add_string): Delete.
14428	(optinfo::add_printf): Delete.
14429	(optinfo::add_printf_va): Delete.
14430	(optinfo::add_gimple_stmt): Delete.
14431	(optinfo::add_gimple_expr): Delete.
14432	(optinfo::add_tree): Delete.
14433	(optinfo::add_symtab_node): Delete.
14434	(optinfo::add_dec): Delete.
14435	(optinfo::add_poly_int): Delete.
14436	(optinfo_item::optinfo_item): Remove "owned" param.
14437	(class optinfo_item): Remove field "m_owned".
14438
144392018-07-31  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
14440
14441	PR middle-end/86705
14442	* gcc/cfgexpand.c (set_parm_rtl): Use the alignment of Pmode when
14443	MAX_SUPPORTED_STACK_ALIGNMENT would otherwise be exceeded by the
14444	requested variable alignment.
14445	(expand_one_ssa_partition): Likewise.
14446	(expand_one_var): Likewise.
14447
144482018-07-31  Richard Earnshaw  <rearnsha@arm.com>
14449
14450	* config/pdp11/pdp11.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine
14451	to speculation_safe_value_not_needed.
14452
144532018-07-31  Richard Earnshaw  <rearnsha@arm.com>
14454
14455	* targhooks.h (speculation_safe_value_not_needed): New prototype.
14456	* targhooks.c (speculation_safe_value_not_needed): New function.
14457	* target.def (have_speculation_safe_value): Update documentation.
14458	* doc/tm.texi: Regenerated.
14459
144602018-07-31  Richard Earnshaw  <rearnsha@arm.com>
14461
14462	* config/aarch64/iterators.md (ALLI_TI): New iterator.
14463	* config/aarch64/aarch64.md (despeculate_copy<ALLI_TI:mode>): New
14464	expand.
14465	(despeculate_copy<ALLI:mode>_insn): New insn.
14466	(despeculate_copyti_insn): New insn.
14467	(despeculate_simple<ALLI:mode>): New insn
14468	(despeculate_simpleti): New insn.
14469	* config/aarch64/aarch64.c (aarch64_speculation_safe_value): New
14470	function.
14471	(TARGET_SPECULATION_SAFE_VALUE): Redefine to
14472	aarch64_speculation_safe_value.
14473	(aarch64_print_operand): Handle const0_rtx in modifier 'H'.
14474
144752018-07-31  Richard Earnshaw  <rearnsha@arm.com>
14476
14477	* config/aarch64/aarch64-speculation.cc: New file.
14478	* config/aarch64/aarch64-passes.def (pass_track_speculation): Add
14479	before pass_reorder_blocks.
14480	* config/aarch64/aarch64-protos.h (make_pass_track_speculation): Add
14481	prototype.
14482	* config/aarch64/aarch64.c (aarch64_conditional_register_usage): Fix
14483	X14 and X15 when tracking speculation.
14484	* config/aarch64/aarch64.md (register name constants): Add
14485	SPECULATION_TRACKER_REGNUM and SPECULATION_SCRATCH_REGNUM.
14486	(unspec): Add UNSPEC_SPECULATION_TRACKER.
14487	(speculation_barrier): New insn attribute.
14488	(cmp<mode>): Allow SP in comparisons.
14489	(speculation_tracker): New insn.
14490	(speculation_barrier): Add speculation_barrier attribute.
14491	* config/aarch64/t-aarch64: Add make rule for aarch64-speculation.o.
14492	* config.gcc (aarch64*-*-*): Add aarch64-speculation.o to extra_objs.
14493	* doc/invoke.texi (AArch64 Options): Document -mtrack-speculation.
14494
144952018-07-31  Richard Earnshaw  <rearnsha@arm.com>
14496
14497	* config/aarch64/aarch64.md (cb<optab><mode>1): Disable when
14498	aarch64_track_speculation is true.
14499	(tb<optab><mode>1): Likewise.
14500	* config/aarch64/aarch64.c (aarch64_split_compare_regs): Do not
14501	generate CB[N]Z when tracking speculation.
14502	(aarch64_split_compare_and_swap): Likewise.
14503	(aarch64_split_atomic_op): Likewise.
14504
145052018-07-31  Richard Earnshaw  <rearnsha@arm.com>
14506
14507	* config/aarch64/aarch64.opt (mtrack-speculation): New target option.
14508
145092018-07-31  Richard Earnshaw  <rearnsha@arm.com>
14510
14511	* config/aarch64.md (unspecv): Add UNSPECV_SPECULAION_BARRIER.
14512	(speculation_barrier): New insn.
14513
145142018-07-31  Richard Earnshaw  <rearnsha@arm.com>
14515
14516	* config/arm/unspecs.md (unspecv): Add VUNSPEC_SPECULATION_BARRIER.
14517	* config/arm/arm.md (speculation_barrier): New expand.
14518	(speculation_barrier_insn): New pattern.
14519
145202018-07-31  Richard Earnshaw  <rearnsha@arm.com>
14521
14522	* builtin-types.def (BT_FN_PTR_PTR_VAR): New function type.
14523	(BT_FN_I1_I1_VAR, BT_FN_I2_I2_VAR, BT_FN_I4_I4_VAR): Likewise.
14524	(BT_FN_I8_I8_VAR, BT_FN_I16_I16_VAR): Likewise.
14525	* builtin-attrs.def (ATTR_NOVOPS_NOTHROW_LEAF_LIST): New attribute
14526	list.
14527	* builtins.def (BUILT_IN_SPECULATION_SAFE_VALUE_N): New builtin.
14528	(BUILT_IN_SPECULATION_SAFE_VALUE_PTR): New internal builtin.
14529	(BUILT_IN_SPECULATION_SAFE_VALUE_1): Likewise.
14530	(BUILT_IN_SPECULATION_SAFE_VALUE_2): Likewise.
14531	(BUILT_IN_SPECULATION_SAFE_VALUE_4): Likewise.
14532	(BUILT_IN_SPECULATION_SAFE_VALUE_8): Likewise.
14533	(BUILT_IN_SPECULATION_SAFE_VALUE_16): Likewise.
14534	* builtins.c (expand_speculation_safe_value): New function.
14535	(expand_builtin): Call it.
14536	* doc/cpp.texi: Document predefine __HAVE_SPECULATION_SAFE_VALUE.
14537	* doc/extend.texi: Document __builtin_speculation_safe_value.
14538	* doc/md.texi: Document "speculation_barrier" pattern.
14539	* doc/tm.texi.in: Pull in TARGET_SPECULATION_SAFE_VALUE and
14540	TARGET_HAVE_SPECULATION_SAFE_VALUE.
14541	* doc/tm.texi: Regenerated.
14542	* target.def (have_speculation_safe_value, speculation_safe_value): New
14543	hooks.
14544	* targhooks.c (default_have_speculation_safe_value): New function.
14545	(default_speculation_safe_value): New function.
14546	* targhooks.h (default_have_speculation_safe_value): Add prototype.
14547	(default_speculation_safe_value): Add prototype.
14548
145492018-07-31  David Malcolm  <dmalcolm@redhat.com>
14550
14551	* dump-context.h (dump_context::dump_loc): New decl.
14552	* dumpfile.c (dump_context::dump_loc): New member function.
14553	(dump_context::dump_gimple_stmt_loc): Reimplement using dump_loc
14554	and dump_gimple_stmt.
14555	(dump_context::dump_gimple_expr_loc): Likewise, using
14556	dump_gimple_expr.
14557	(dump_context::dump_generic_expr_loc): Likewise, using
14558	dump_generic_expr.
14559	(dump_context::dump_printf_loc_va): Likewise, using
14560	dump_printf_va.
14561	(dump_context::begin_scope): Explicitly using the global function
14562	"dump_loc", rather than the member function.
14563
145642018-07-31  Martin Sebor  <msebor@redhat.com>
14565
14566	PR tree-optimization/86741
14567	* tree-vrp.c (vrp_prop::check_mem_ref): Avoid incomplete types.
14568
145692018-07-31  Andreas Krebbel  <krebbel@linux.ibm.com>
14570
14571	* config/s390/s390.c (s390_expand_setmem): Make the unrolling to
14572	depend on whether prefetch instructions will be emitted or not.
14573	Use TARGET_SETMEM_PFD for checking whether prefetch instructions
14574	will be emitted or not.
14575	* config/s390/s390.h (TARGET_SETMEM_PREFETCH_DISTANCE)
14576	(TARGET_SETMEM_PFD): New macros.
14577
145782018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14579
14580	* tree-vectorizer.h (stmt_vec_info): Turn back into a typedef.
14581	(NULL_STMT_VEC_INFO): Delete.
14582	(stmt_vec_info::operator*): Likewise.
14583	(stmt_vec_info::operator gimple *): Likewise.
14584	* tree-vect-loop.c (vectorizable_reduction): Use NULL instead
14585	of NULL_STMT_VEC_INFO.
14586	* tree-vect-patterns.c (vect_init_pattern_stmt): Likewise.
14587	(vect_reassociating_reduction_p): Likewise.
14588	* tree-vect-stmts.c (vect_build_gather_load_calls): Likewise.
14589	(vectorizable_store): Likewise.
14590	* tree-vectorizer.c (vec_info::set_vinfo_for_stmt): Likewise.
14591	(vec_info::free_stmt_vec_infos): Likewise.
14592
145932018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14594
14595	* tree-vectorizer.h (vect_stmt_in_region_p): Delete.
14596	* tree-vectorizer.c (vect_stmt_in_region_p): Likewise.
14597
145982018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14599
14600	* tree-vectorizer.h (vec_info::new_vinfo_for_stmt)
14601	(vec_info::set_vinfo_for_stmt, vec_info::free_stmt_vec_infos)
14602	(vec_info::free_stmt_vec_info): New private member functions.
14603	(set_stmt_vec_info_vec, free_stmt_vec_infos, vinfo_for_stmt)
14604	(set_vinfo_for_stmt, new_stmt_vec_info, free_stmt_vec_info): Delete.
14605	* tree-parloops.c (gather_scalar_reductions): Remove calls to
14606	set_stmt_vec_info_vec and free_stmt_vec_infos.
14607	* tree-vect-loop.c (_loop_vec_info): Remove call to
14608	set_stmt_vec_info_vec.
14609	* tree-vect-stmts.c (new_stmt_vec_info, set_stmt_vec_info_vec)
14610	(free_stmt_vec_infos, free_stmt_vec_info): Delete in favor of...
14611	* tree-vectorizer.c (vec_info::new_stmt_vec_info)
14612	(vec_info::set_vinfo_for_stmt, vec_info::free_stmt_vec_infos)
14613	(vec_info::free_stmt_vec_info): ...these new functions.  Remove
14614	assignments in {vec_info::,}new_stmt_vec_info that are redundant
14615	with the clearing in the xcalloc.
14616	(stmt_vec_info_vec): Delete.
14617	(vec_info::vec_info): Don't call set_stmt_vec_info_vec.
14618	(vectorize_loops): Likewise.
14619	(vec_info::~vec_info): Remove argument from call to
14620	free_stmt_vec_infos.
14621	(vec_info::add_stmt): Remove vinfo argument from call to
14622	new_stmt_vec_info.
14623
146242018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14625
14626	* tree-vectorizer.h (free_stmt_vec_info): Take a stmt_vec_info
14627	rather than a gimple stmt.
14628	* tree-vect-stmts.c (free_stmt_vec_info): Likewise.  Don't free
14629	information for pattern statements when passed the original
14630	statement; instead wait to be passed the pattern statement itself.
14631	Don't call set_vinfo_for_stmt here.
14632	(free_stmt_vec_infos): Update call to free_stmt_vec_info.
14633	* tree-vect-loop.c (_loop_vec_info::~loop_vec_info): Don't free
14634	stmt_vec_infos here.
14635	* tree-vect-slp.c (_bb_vec_info::~bb_vec_info): Likewise.
14636	* tree-vectorizer.c (vec_info::remove_stmt): Nullify the statement's
14637	stmt_vec_infos entry.
14638
146392018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14640
14641	* tree-vectorizer.h (vec_info::replace_stmt): Declare.
14642	* tree-vectorizer.c (vec_info::replace_stmt): New function.
14643	* tree-vect-slp.c (vect_remove_slp_scalar_calls): Use it.
14644	* tree-vect-stmts.c (vectorizable_call): Likewise.
14645	(vectorizable_simd_clone_call): Likewise.
14646
146472018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14648
14649	* tree-vectorizer.h (vec_info::remove_stmt): Declare.
14650	* tree-vectorizer.c (vec_info::remove_stmt): New function.
14651	* tree-vect-loop-manip.c (vect_set_loop_condition): Use it.
14652	* tree-vect-loop.c (vect_transform_loop): Likewise.
14653	* tree-vect-slp.c (vect_schedule_slp): Likewise.
14654	* tree-vect-stmts.c (vect_remove_stores): Likewise.
14655
146562018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14657
14658	* tree-vectorizer.h (vec_info::lookup_dr): New member function.
14659	(vect_dr_stmt): Delete.
14660	* tree-vectorizer.c (vec_info::lookup_dr): New function.
14661	* tree-vect-loop-manip.c (vect_update_inits_of_drs): Use it instead
14662	of DR_VECT_AUX.
14663	* tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr)
14664	(vect_analyze_data_ref_dependence, vect_record_base_alignments)
14665	(vect_verify_datarefs_alignment, vect_peeling_supportable)
14666	(vect_analyze_data_ref_accesses, vect_prune_runtime_alias_test_list)
14667	(vect_analyze_data_refs): Likewise.
14668	(vect_slp_analyze_data_ref_dependence): Likewise.  Take a vec_info
14669	argument.
14670	(vect_find_same_alignment_drs): Likewise.
14671	(vect_slp_analyze_node_dependences): Update calls accordingly.
14672	(vect_analyze_data_refs_alignment): Likewise.  Use vec_info::lookup_dr
14673	instead of DR_VECT_AUX.
14674	(vect_get_peeling_costs_all_drs): Take a loop_vec_info instead
14675	of a vector data references.  Use vec_info::lookup_dr instead of
14676	DR_VECT_AUX.
14677	(vect_peeling_hash_get_lowest_cost): Update calls accordingly.
14678	(vect_enhance_data_refs_alignment): Likewise.  Use vec_info::lookup_dr
14679	instead of DR_VECT_AUX.
14680
146812018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14682
14683	* tree-vectorizer.h (_loop_vec_info::unaligned_dr): Change to
14684	dr_vec_info.
14685	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Update
14686	accordingly.
14687	* tree-vect-loop.c (vect_analyze_loop_2): Likewise.
14688	* tree-vect-loop-manip.c (get_misalign_in_elems): Likewise.
14689	(vect_gen_prolog_loop_niters): Likewise.
14690
146912018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14692
14693	* tree-vectorizer.h (set_dr_misalignment, dr_misalignment)
14694	(DR_TARGET_ALIGNMENT, aligned_access_p, known_alignment_for_access_p)
14695	(vect_known_alignment_in_bytes, vect_dr_behavior)
14696	(vect_get_scalar_dr_size): Take references as dr_vec_infos
14697	instead of data_references.  Update calls to other routines for
14698	which the same change has been made.
14699	* tree-vect-data-refs.c (vect_preserves_scalar_order_p): Take
14700	dr_vec_infos instead of stmt_vec_infos.
14701	(vect_analyze_data_ref_dependence): Update call accordingly.
14702	(vect_slp_analyze_data_ref_dependence)
14703	(vect_record_base_alignments): Use DR_VECT_AUX.
14704	(vect_calculate_target_alignment, vect_compute_data_ref_alignment)
14705	(vect_update_misalignment_for_peel, verify_data_ref_alignment)
14706	(vector_alignment_reachable_p, vect_get_data_access_cost)
14707	(vect_peeling_supportable, vect_analyze_group_access_1)
14708	(vect_analyze_group_access, vect_analyze_data_ref_access)
14709	(vect_vfa_segment_size, vect_vfa_access_size, vect_vfa_align)
14710	(vect_compile_time_alias, vect_small_gap_p)
14711	(vectorizable_with_step_bound_p, vect_duplicate_ssa_name_ptr_info):
14712	(vect_supportable_dr_alignment): Take references as dr_vec_infos
14713	instead of data_references.  Update calls to other routines for
14714	which the same change has been made.
14715	(vect_verify_datarefs_alignment, vect_get_peeling_costs_all_drs)
14716	(vect_find_same_alignment_drs, vect_analyze_data_refs_alignment)
14717	(vect_slp_analyze_and_verify_node_alignment)
14718	(vect_analyze_data_ref_accesses, vect_prune_runtime_alias_test_list)
14719	(vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr)
14720	(vect_setup_realignment): Use dr_vec_infos.  Update calls after
14721	above changes.
14722	(_vect_peel_info::dr): Replace with...
14723	(_vect_peel_info::dr_info): ...this new field.
14724	(vect_peeling_hash_get_most_frequent)
14725	(vect_peeling_hash_choose_best_peeling): Update accordingly.
14726	(vect_peeling_hash_get_lowest_cost):
14727	(vect_enhance_data_refs_alignment): Likewise.  Update calls to other
14728	routines for which the same change has been made.
14729	(vect_peeling_hash_insert): Likewise.  Take a dr_vec_info instead of a
14730	data_reference.
14731	* tree-vect-loop-manip.c (get_misalign_in_elems)
14732	(vect_gen_prolog_loop_niters): Use dr_vec_infos.  Update calls after
14733	above changes.
14734	* tree-vect-loop.c (vect_analyze_loop_2): Likewise.
14735	* tree-vect-stmts.c (vect_get_store_cost, vect_get_load_cost)
14736	(vect_truncate_gather_scatter_offset, compare_step_with_zero)
14737	(get_group_load_store_type, get_negative_load_store_type)
14738	(vect_get_data_ptr_increment, vectorizable_store)
14739	(vectorizable_load): Likewise.
14740	(ensure_base_align): Take a dr_vec_info instead of a data_reference.
14741	Update calls to other routines for which the same change has been made.
14742
147432018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14744
14745	* tree-vectorizer.h (vec_info::move_dr): New member function.
14746	(dataref_aux): Rename to...
14747	(dr_vec_info): ...this and add "dr" and "stmt" fields.
14748	(_stmt_vec_info::dr_aux): Update accordingly.
14749	(_stmt_vec_info::data_ref_info): Delete.
14750	(STMT_VINFO_GROUPED_ACCESS, DR_GROUP_FIRST_ELEMENT)
14751	(DR_GROUP_NEXT_ELEMENT, DR_GROUP_SIZE, DR_GROUP_STORE_COUNT)
14752	(DR_GROUP_GAP, DR_GROUP_SAME_DR_STMT, REDUC_GROUP_FIRST_ELEMENT):
14753	(REDUC_GROUP_NEXT_ELEMENT, REDUC_GROUP_SIZE): Use dr_aux.dr instead
14754	of data_ref.
14755	(STMT_VINFO_DATA_REF): Likewise.  Turn into an lvalue.
14756	(STMT_VINFO_DR_INFO): New macro.
14757	(DR_VECT_AUX): Use STMT_VINFO_DR_INKFO and vect_dr_stmt.
14758	(set_dr_misalignment): Update after rename of dataref_aux.
14759	(vect_dr_stmt): Move earlier in file.  Return dr_aux.stmt.
14760	* tree-vect-stmts.c (new_stmt_vec_info): Remove redundant
14761	initialization of STMT_VINFO_DATA_REF.
14762	* tree-vectorizer.c (vec_info::move_dr): New function.
14763	* tree-vect-patterns.c (vect_recog_bool_pattern)
14764	(vect_recog_mask_conversion_pattern)
14765	(vect_recog_gather_scatter_pattern): Use it.
14766	* tree-vect-data-refs.c (vect_analyze_data_refs): Initialize
14767	the "dr" and "stmt" fields of dr_vec_info instead of
14768	STMT_VINFO_DATA_REF.
14769
147702018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14771
14772	* tree-vectorizer.h (_stmt_vec_info::pattern_stmt_p): New field.
14773	(is_pattern_stmt_p): Use it.
14774	* tree-vect-patterns.c (vect_init_pattern_stmt): Set pattern_stmt_p
14775	on pattern statements.
14776
147772018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14778
14779	* tree-vect-patterns.c (vect_mark_pattern_stmts): Take the
14780	original stmt as a stmt_vec_info rather than a gimple stmt.
14781	(vect_pattern_recog_1): Take the statement directly as a
14782	stmt_vec_info, rather than via a gimple_stmt_iterator.
14783	Update call to vect_mark_pattern_stmts.
14784	(vect_pattern_recog): Update calls accordingly.
14785
147862018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14787
14788	* tree-vectorizer.h (vect_get_vec_defs_for_stmt_copy)
14789	(vect_get_vec_def_for_stmt_copy): Take a vec_info rather than
14790	a vect_def_type for the first argument.
14791	* tree-vect-stmts.c (vect_get_vec_defs_for_stmt_copy): Likewise.
14792	(vect_get_vec_def_for_stmt_copy): Likewise.  Return the original
14793	operand if it isn't defined by a vectorized statement.
14794	(vect_build_gather_load_calls): Remove the mask_dt argument and
14795	update calls to vect_get_vec_def_for_stmt_copy.
14796	(vectorizable_bswap): Likewise the dt argument.
14797	(vectorizable_call): Update calls to vectorizable_bswap and
14798	vect_get_vec_def_for_stmt_copy.
14799	(vectorizable_simd_clone_call, vectorizable_assignment)
14800	(vectorizable_shift, vectorizable_operation, vectorizable_condition)
14801	(vectorizable_comparison): Update calls to
14802	vect_get_vec_def_for_stmt_copy.
14803	(vectorizable_store): Likewise.  Remove now-unnecessary calls to
14804	vect_is_simple_use.
14805	(vect_get_loop_based_defs): Remove dt argument and update call
14806	to vect_get_vec_def_for_stmt_copy.
14807	(vectorizable_conversion): Update calls to vect_get_loop_based_defs
14808	and vect_get_vec_def_for_stmt_copy.
14809	(vectorizable_load): Update calls to vect_build_gather_load_calls
14810	and vect_get_vec_def_for_stmt_copy.
14811	* tree-vect-loop.c (vect_create_epilog_for_reduction)
14812	(vectorizable_reduction, vectorizable_live_operation): Update calls
14813	to vect_get_vec_def_for_stmt_copy.
14814
148152018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14816
14817	* tree-vect-data-refs.c (vect_record_base_alignment): Replace vec_info
14818	and gimple stmt arguments with a stmt_vec_info.
14819	(vect_record_base_alignments): Update calls accordingly.
14820	* tree-vect-slp.c (vect_record_max_nunits): Replace vec_info
14821	and gimple stmt arguments with a stmt_vec_info.
14822	(vect_build_slp_tree_1): Remove vinfo argument and update call
14823	to vect_record_max_nunits.
14824	(vect_build_slp_tree_2): Update calls to vect_build_slp_tree_1
14825	and vect_record_max_nunits.
14826
148272018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14828
14829	* tree-vectorizer.h (nested_in_vect_loop_p): Move further down
14830	file and take a stmt_vec_info instead of a gimple stmt.
14831	(supportable_widening_operation, vect_finish_replace_stmt)
14832	(vect_finish_stmt_generation, vect_get_store_rhs)
14833	(vect_get_vec_def_for_operand_1, vect_get_vec_def_for_operand)
14834	(vect_get_vec_defs, vect_init_vector, vect_transform_stmt)
14835	(vect_remove_stores, vect_analyze_stmt, vectorizable_condition)
14836	(vect_get_smallest_scalar_type, vect_check_gather_scatter)
14837	(vect_create_data_ref_ptr, bump_vector_ptr)
14838	(vect_permute_store_chain, vect_setup_realignment)
14839	(vect_transform_grouped_load, vect_record_grouped_load_vectors)
14840	(vect_create_addr_base_for_vector_ref, vectorizable_live_operation)
14841	(vectorizable_reduction, vectorizable_induction)
14842	(get_initial_def_for_reduction, is_simple_and_all_uses_invariant)
14843	(vect_get_place_in_interleaving_chain): Take stmt_vec_infos rather
14844	than gimple stmts as arguments.
14845	* tree-vect-data-refs.c (vect_get_smallest_scalar_type)
14846	(vect_preserves_scalar_order_p, vect_slp_analyze_node_dependences)
14847	(can_group_stmts_p, vect_check_gather_scatter)
14848	(vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr)
14849	(bump_vector_ptr, vect_permute_store_chain, vect_setup_realignment)
14850	(vect_permute_load_chain, vect_shift_permute_load_chain)
14851	(vect_transform_grouped_load)
14852	(vect_record_grouped_load_vectors): Likewise.
14853	* tree-vect-loop.c (vect_fixup_reduc_chain)
14854	(get_initial_def_for_reduction, vect_create_epilog_for_reduction)
14855	(vectorize_fold_left_reduction, is_nonwrapping_integer_induction)
14856	(vectorizable_reduction, vectorizable_induction)
14857	(vectorizable_live_operation, vect_loop_kill_debug_uses): Likewise.
14858	* tree-vect-patterns.c (type_conversion_p, adjust_bool_stmts)
14859	(vect_get_load_store_mask): Likewise.
14860	* tree-vect-slp.c (vect_get_place_in_interleaving_chain)
14861	(vect_analyze_slp_instance, vect_mask_constant_operand_p): Likewise.
14862	* tree-vect-stmts.c (vect_mark_relevant)
14863	(is_simple_and_all_uses_invariant)
14864	(exist_non_indexing_operands_for_use_p, process_use)
14865	(vect_init_vector_1, vect_init_vector, vect_get_vec_def_for_operand_1)
14866	(vect_get_vec_def_for_operand, vect_get_vec_defs)
14867	(vect_finish_stmt_generation_1, vect_finish_replace_stmt)
14868	(vect_finish_stmt_generation, vect_truncate_gather_scatter_offset)
14869	(compare_step_with_zero, vect_get_store_rhs, get_group_load_store_type)
14870	(get_negative_load_store_type, get_load_store_type)
14871	(vect_check_load_store_mask, vect_check_store_rhs)
14872	(vect_build_gather_load_calls, vect_get_strided_load_store_ops)
14873	(vectorizable_bswap, vectorizable_call, vectorizable_simd_clone_call)
14874	(vect_create_vectorized_demotion_stmts, vectorizable_conversion)
14875	(vectorizable_assignment, vectorizable_shift, vectorizable_operation)
14876	(get_group_alias_ptr_type, vectorizable_store, hoist_defs_of_uses)
14877	(vectorizable_load, vectorizable_condition, vectorizable_comparison)
14878	(vect_analyze_stmt, vect_transform_stmt, vect_remove_stores)
14879	(supportable_widening_operation): Likewise.
14880
148812018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14882
14883	* tree-vect-data-refs.c (vect_describe_gather_scatter_call): Take
14884	a stmt_vec_info instead of a gcall.
14885	(vect_check_gather_scatter): Update call accordingly.
14886	* tree-vect-loop-manip.c (iv_phi_p): Take a stmt_vec_info instead
14887	of a gphi.
14888	(vect_can_advance_ivs_p, vect_update_ivs_after_vectorizer)
14889	(slpeel_update_phi_nodes_for_loops):): Update calls accordingly.
14890	* tree-vect-loop.c (vect_transform_loop_stmt): Take a stmt_vec_info
14891	instead of a gimple stmt.
14892	(vect_transform_loop): Update calls accordingly.
14893	* tree-vect-slp.c (vect_split_slp_store_group): Take and return
14894	stmt_vec_infos instead of gimple stmts.
14895	(vect_analyze_slp_instance): Update use accordingly.
14896	* tree-vect-stmts.c (read_vector_array, write_vector_array)
14897	(vect_clobber_variable, vect_stmt_relevant_p, permute_vec_elements)
14898	(vect_use_strided_gather_scatters_p, vect_build_all_ones_mask)
14899	(vect_build_zero_merge_argument, vect_get_gather_scatter_ops)
14900	(vect_gen_widened_results_half, vect_get_loop_based_defs)
14901	(vect_create_vectorized_promotion_stmts, can_vectorize_live_stmts):
14902	Take a stmt_vec_info instead of a gimple stmt and pass stmt_vec_infos
14903	down to subroutines.
14904
149052018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14906
14907	* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Change the type
14908	of the worklist from a vector of gimple stmts to a vector of
14909	stmt_vec_infos.
14910	* tree-vect-stmts.c (vect_mark_relevant, process_use)
14911	(vect_mark_stmts_to_be_vectorized): Likewise
14912
149132018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14914
14915	* tree-vect-loop.c (vect_analyze_loop_operations): Look up the
14916	statement before passing it to vect_analyze_stmt.
14917	(vect_create_epilog_for_reduction): Use a stmt_vec_info to walk
14918	the chain of phi vector definitions.  Track the exit phi via its
14919	stmt_vec_info.
14920	(vectorizable_reduction): Set cond_stmt_vinfo directly from the
14921	STMT_VINFO_REDUC_DEF.
14922	* tree-vect-slp.c (vect_get_place_in_interleaving_chain): Use
14923	stmt_vec_infos to handle the statement chains.
14924	(vect_get_slp_defs): Record the first statement in the node
14925	using a stmt_vec_info.
14926	* tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Look up
14927	statements here and pass their stmt_vec_info down to subroutines.
14928	(vect_init_vector_1): Hoist call to vinfo_for_stmt and pass it
14929	down to vect_finish_stmt_generation.
14930	(vect_init_vector, vect_get_vec_defs, vect_finish_replace_stmt)
14931	(vect_finish_stmt_generation): Call vinfo_for_stmt and pass
14932	stmt_vec_infos to subroutines.
14933	(vect_remove_stores): Use stmt_vec_infos to handle the statement
14934	chains.
14935
149362018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14937
14938	* tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
14939	(vect_check_gather_scatter, vect_create_data_ref_ptr, bump_vector_ptr)
14940	(vect_permute_store_chain, vect_setup_realignment)
14941	(vect_permute_load_chain, vect_shift_permute_load_chain)
14942	(vect_transform_grouped_load): Use stmt_vec_info rather than gimple
14943	stmts internally, and when passing values to other vectorizer routines.
14944	* tree-vect-loop-manip.c (vect_can_advance_ivs_p): Likewise.
14945	* tree-vect-loop.c (vect_analyze_scalar_cycles_1)
14946	(vect_analyze_loop_operations, get_initial_def_for_reduction)
14947	(vect_create_epilog_for_reduction, vectorize_fold_left_reduction)
14948	(vectorizable_reduction, vectorizable_induction)
14949	(vectorizable_live_operation, vect_transform_loop_stmt)
14950	(vect_transform_loop): Likewise.
14951	* tree-vect-patterns.c (vect_reassociating_reduction_p)
14952	(vect_recog_widen_op_pattern, vect_recog_mixed_size_cond_pattern)
14953	(vect_recog_bool_pattern, vect_recog_gather_scatter_pattern): Likewise.
14954	* tree-vect-slp.c (vect_analyze_slp_instance): Likewise.
14955	(vect_slp_analyze_node_operations_1): Likewise.
14956	* tree-vect-stmts.c (vect_mark_relevant, process_use)
14957	(exist_non_indexing_operands_for_use_p, vect_init_vector_1)
14958	(vect_mark_stmts_to_be_vectorized, vect_get_vec_def_for_operand)
14959	(vect_finish_stmt_generation_1, get_group_load_store_type)
14960	(get_load_store_type, vect_build_gather_load_calls)
14961	(vectorizable_bswap, vectorizable_call, vectorizable_simd_clone_call)
14962	(vect_create_vectorized_demotion_stmts, vectorizable_conversion)
14963	(vectorizable_assignment, vectorizable_shift, vectorizable_operation)
14964	(vectorizable_store, vectorizable_load, vectorizable_condition)
14965	(vectorizable_comparison, vect_analyze_stmt, vect_transform_stmt)
14966	(supportable_widening_operation): Likewise.
14967	(vect_get_vector_types_for_stmt): Likewise.
14968	* tree-vectorizer.h (vect_dr_behavior): Likewise.
14969
149702018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14971
14972	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence)
14973	(vect_slp_analyze_node_dependences, vect_analyze_data_ref_accesses)
14974	(vect_permute_store_chain, vect_permute_load_chain)
14975	(vect_shift_permute_load_chain, vect_transform_grouped_load): Avoid
14976	repeated stmt_vec_info lookups.
14977	* tree-vect-loop-manip.c (vect_can_advance_ivs_p): Likewise.
14978	(vect_update_ivs_after_vectorizer): Likewise.
14979	* tree-vect-loop.c (vect_is_simple_reduction): Likewise.
14980	(vect_create_epilog_for_reduction, vectorizable_reduction): Likewise.
14981	* tree-vect-patterns.c (adjust_bool_stmts): Likewise.
14982	* tree-vect-slp.c (vect_analyze_slp_instance): Likewise.
14983	(vect_bb_slp_scalar_cost): Likewise.
14984	* tree-vect-stmts.c (get_group_alias_ptr_type): Likewise.
14985
149862018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14987
14988	* tree-vect-data-refs.c (vect_check_gather_scatter): Pass the
14989	gcall rather than the generic gimple stmt to gimple_call_internal_fn.
14990	(vect_get_smallest_scalar_type, can_group_stmts_p): Use dyn_cast
14991	to get gassigns and gcalls, rather than operating on generc gimple
14992	stmts.
14993	* tree-vect-stmts.c (exist_non_indexing_operands_for_use_p)
14994	(vect_mark_stmts_to_be_vectorized, vectorizable_store)
14995	(vectorizable_load, vect_analyze_stmt): Likewise.
14996	* tree-vect-loop.c (vectorizable_reduction): Likewise gphi.
14997
149982018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
14999
15000	* tree-vectorizer.h (get_earlier_stmt, get_later_stmt): Take and
15001	return stmt_vec_infos rather than gimple stmts.  Do not accept
15002	null arguments.
15003	(vect_find_last_scalar_stmt_in_slp): Return a stmt_vec_info instead
15004	of a gimple stmt.
15005	* tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Likewise.
15006	Update use of get_later_stmt.
15007	(vect_get_constant_vectors): Update call accordingly.
15008	(vect_schedule_slp_instance): Likewise
15009	* tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Likewise.
15010	(vect_slp_analyze_instance_dependence): Likewise.
15011	(vect_preserves_scalar_order_p): Update use of get_earlier_stmt.
15012
150132018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15014
15015	* tree-vectorizer.h (stmt_info_for_cost::stmt): Replace with...
15016	(stmt_info_for_cost::stmt_info): ...this new field.
15017	(add_stmt_costs): Update accordingly.
15018	* tree-vect-loop.c (vect_compute_single_scalar_iteration_cost)
15019	(vect_get_known_peeling_cost): Likewise.
15020	(vect_estimate_min_profitable_iters): Likewise.
15021	* tree-vect-stmts.c (record_stmt_cost): Likewise.
15022
150232018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15024
15025	* tree-vectorizer.h (_loop_vec_info::may_misalign_stmts): Change
15026	from an auto_vec<gimple *> to an auto_vec<stmt_vec_info>.
15027	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Update
15028	accordingly.
15029	* tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
15030
150312018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15032
15033	* tree-vectorizer.h (_stmt_vec_info::same_dr_stmt): Change from
15034	a gimple stmt to a stmt_vec_info.
15035	* tree-vect-stmts.c (vectorizable_load): Update accordingly.
15036
150372018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15038
15039	* tree-vectorizer.h (vec_info::grouped_stores): Change from
15040	an auto_vec<gimple *> to an auto_vec<stmt_vec_info>.
15041	(_loop_vec_info::reduction_chains): Likewise.
15042	* tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Update
15043	accordingly.
15044	* tree-vect-slp.c (vect_analyze_slp): Likewise.
15045
150462018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15047
15048	* tree-vectorizer.h (_stmt_vec_info::first_element): Change from
15049	a gimple stmt to a stmt_vec_info.
15050	(_stmt_vec_info::next_element): Likewise.
15051	* tree-vect-data-refs.c (vect_update_misalignment_for_peel)
15052	(vect_slp_analyze_and_verify_node_alignment)
15053	(vect_analyze_group_access_1, vect_analyze_group_access)
15054	(vect_small_gap_p, vect_prune_runtime_alias_test_list)
15055	(vect_create_data_ref_ptr, vect_record_grouped_load_vectors)
15056	(vect_supportable_dr_alignment): Update accordingly.
15057	* tree-vect-loop.c (vect_fixup_reduc_chain): Likewise.
15058	(vect_fixup_scalar_cycles_with_patterns, vect_is_slp_reduction)
15059	(vect_is_simple_reduction, vectorizable_reduction): Likewise.
15060	* tree-vect-patterns.c (vect_reassociating_reduction_p): Likewise.
15061	* tree-vect-slp.c (vect_build_slp_tree_1)
15062	(vect_attempt_slp_rearrange_stmts, vect_supported_load_permutation_p)
15063	(vect_split_slp_store_group, vect_analyze_slp_instance)
15064	(vect_analyze_slp, vect_transform_slp_perm_load): Likewise.
15065	* tree-vect-stmts.c (vect_model_store_cost, vect_model_load_cost)
15066	(get_group_load_store_type, get_load_store_type)
15067	(get_group_alias_ptr_type, vectorizable_store, vectorizable_load)
15068	(vect_transform_stmt, vect_remove_stores): Likewise.
15069
150702018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15071
15072	* tree-vectorizer.h (vect_dr_stmt): Return a stmt_vec_info rather
15073	than a gimple stmt.
15074	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence)
15075	(vect_slp_analyze_data_ref_dependence, vect_record_base_alignments)
15076	(vect_calculate_target_alignmentm, vect_compute_data_ref_alignment)
15077	(vect_update_misalignment_for_peel, vect_verify_datarefs_alignment)
15078	(vector_alignment_reachable_p, vect_get_data_access_cost)
15079	(vect_get_peeling_costs_all_drs, vect_peeling_hash_get_lowest_cost)
15080	(vect_peeling_supportable, vect_enhance_data_refs_alignment)
15081	(vect_find_same_alignment_drs, vect_analyze_data_refs_alignment)
15082	(vect_analyze_group_access_1, vect_analyze_group_access)
15083	(vect_analyze_data_ref_access, vect_analyze_data_ref_accesses)
15084	(vect_vfa_access_size, vect_small_gap_p, vect_analyze_data_refs)
15085	(vect_supportable_dr_alignment): Remove vinfo_for_stmt from the
15086	result of vect_dr_stmt and use the stmt_vec_info instead of
15087	the associated gimple stmt.
15088	* tree-vect-loop-manip.c (get_misalign_in_elems): Likewise.
15089	(vect_gen_prolog_loop_niters): Likewise.
15090	* tree-vect-loop.c (vect_analyze_loop_2): Likewise.
15091
150922018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15093
15094	* tree-vectorizer.h (_slp_tree::stmts): Change from a vec<gimple *>
15095	to a vec<stmt_vec_info>.
15096	* tree-vect-slp.c (vect_free_slp_tree): Update accordingly.
15097	(vect_create_new_slp_node): Take a vec<gimple *> instead of a
15098	vec<stmt_vec_info>.
15099	(_slp_oprnd_info::def_stmts): Change from a vec<gimple *>
15100	to a vec<stmt_vec_info>.
15101	(bst_traits::value_type, bst_traits::value_type): Likewise.
15102	(bst_traits::hash): Update accordingly.
15103	(vect_get_and_check_slp_defs): Change the stmts parameter from
15104	a vec<gimple *> to a vec<stmt_vec_info>.
15105	(vect_two_operations_perm_ok_p, vect_build_slp_tree_1): Likewise.
15106	(vect_build_slp_tree): Likewise.
15107	(vect_build_slp_tree_2): Likewise.  Update uses of
15108	SLP_TREE_SCALAR_STMTS.
15109	(vect_print_slp_tree): Update uses of SLP_TREE_SCALAR_STMTS.
15110	(vect_mark_slp_stmts, vect_mark_slp_stmts_relevant)
15111	(vect_slp_rearrange_stmts, vect_attempt_slp_rearrange_stmts)
15112	(vect_supported_load_permutation_p, vect_find_last_scalar_stmt_in_slp)
15113	(vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations_1)
15114	(vect_slp_analyze_node_operations, vect_slp_analyze_operations)
15115	(vect_bb_slp_scalar_cost, vect_slp_analyze_bb_1)
15116	(vect_get_constant_vectors, vect_get_slp_defs)
15117	(vect_transform_slp_perm_load, vect_schedule_slp_instance)
15118	(vect_remove_slp_scalar_calls, vect_schedule_slp): Likewise.
15119	(vect_analyze_slp_instance): Build up a vec of stmt_vec_infos
15120	instead of gimple stmts.
15121	* tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Change
15122	the stores parameter for a vec<gimple *> to a vec<stmt_vec_info>.
15123	(vect_slp_analyze_instance_dependence): Update uses of
15124	SLP_TREE_SCALAR_STMTS.
15125	(vect_slp_analyze_and_verify_node_alignment): Likewise.
15126	(vect_slp_analyze_and_verify_instance_alignment): Likewise.
15127	* tree-vect-loop.c (neutral_op_for_slp_reduction): Likewise.
15128	(get_initial_defs_for_reduction): Likewise.
15129	(vect_create_epilog_for_reduction): Likewise.
15130	(vectorize_fold_left_reduction): Likewise.
15131	* tree-vect-stmts.c (vect_prologue_cost_for_slp_op): Likewise.
15132	(vect_model_simple_cost, vectorizable_shift, vectorizable_load)
15133	(can_vectorize_live_stmts): Likewise.
15134
151352018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15136
15137	* tree-vectorizer.h (_loop_vec_info::reductions): Change from an
15138	auto_vec<gimple *> to an auto_vec<stmt_vec_info>.
15139	(vect_force_simple_reduction): Take and return stmt_vec_infos rather
15140	than gimple stmts.
15141	* tree-parloops.c (valid_reduction_p): Take a stmt_vec_info instead
15142	of a gimple stmt.
15143	(gather_scalar_reductions): Update after above interface changes.
15144	* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise.
15145	(vect_is_simple_reduction): Take and return stmt_vec_infos rather
15146	than gimple stmts.
15147	(vect_force_simple_reduction): Likewise.
15148	* tree-vect-patterns.c (vect_pattern_recog_1): Update use of
15149	LOOP_VINFO_REDUCTIONS.
15150	* tree-vect-slp.c (vect_analyze_slp_instance): Likewise.
15151
151522018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15153
15154	* tree-vectorizer.h (_stmt_vec_info::reduc_def): Change from
15155	a gimple stmt to a stmt_vec_info.
15156	* tree-vect-loop.c (vect_active_double_reduction_p)
15157	(vect_force_simple_reduction, vectorizable_reduction): Update
15158	accordingly.
15159
151602018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15161
15162	* tree-vectorizer.h (_slp_tree::vec_stmts): Change from a
15163	vec<gimple *> to a vec<stmt_vec_info>.
15164	* tree-vect-loop.c (vect_create_epilog_for_reduction): Change
15165	the reduction_phis argument from a vec<gimple *> to a
15166	vec<stmt_vec_info>.
15167	(vectorizable_reduction): Likewise the phis local variable that
15168	is passed to vect_create_epilog_for_reduction.  Update for new type
15169	of SLP_TREE_VEC_STMTS.
15170	(vectorizable_induction): Update for new type of SLP_TREE_VEC_STMTS.
15171	(vectorizable_live_operation): Likewise.
15172	* tree-vect-slp.c (vect_get_slp_vect_defs): Likewise.
15173	(vect_transform_slp_perm_load, vect_schedule_slp_instance): Likewise.
15174
151752018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15176
15177	* tree-vectorizer.h (_stmt_vec_info::vectorized_stmt): Change from
15178	a gimple stmt to a stmt_vec_info.
15179	(vectorizable_condition, vectorizable_live_operation)
15180	(vectorizable_reduction, vectorizable_induction): Pass back the
15181	vectorized statement as a stmt_vec_info.
15182	* tree-vect-data-refs.c (vect_record_grouped_load_vectors): Update
15183	use of STMT_VINFO_VEC_STMT.
15184	* tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise,
15185	accumulating the inner phis that feed the STMT_VINFO_VEC_STMT
15186	as stmt_vec_infos rather than gimple stmts.
15187	(vectorize_fold_left_reduction): Change vec_stmt from a gimple stmt
15188	to a stmt_vec_info.
15189	(vectorizable_live_operation): Likewise.
15190	(vectorizable_reduction, vectorizable_induction): Likewise,
15191	updating use of STMT_VINFO_VEC_STMT.
15192	* tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Update use
15193	of STMT_VINFO_VEC_STMT.
15194	(vect_build_gather_load_calls, vectorizable_bswap, vectorizable_call)
15195	(vectorizable_simd_clone_call, vectorizable_conversion)
15196	(vectorizable_assignment, vectorizable_shift, vectorizable_operation)
15197	(vectorizable_store, vectorizable_load, vectorizable_condition)
15198	(vectorizable_comparison, can_vectorize_live_stmts): Change vec_stmt
15199	from a gimple stmt to a stmt_vec_info.
15200	(vect_transform_stmt): Update use of STMT_VINFO_VEC_STMT.  Pass a
15201	pointer to a stmt_vec_info to the vectorizable_* routines.
15202
152032018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15204
15205	* tree-vectorizer.h (_stmt_vec_info::related_stmt): Change from
15206	a gimple stmt to a stmt_vec_info.
15207	(is_pattern_stmt_p): Update accordingly.
15208	* tree-vect-data-refs.c (vect_preserves_scalar_order_p): Likewise.
15209	(vect_record_grouped_load_vectors): Likewise.
15210	* tree-vect-loop.c (vect_determine_vf_for_stmt): Likewise.
15211	(vect_fixup_reduc_chain, vect_update_vf_for_slp): Likewise.
15212	(vect_model_reduction_cost): Likewise.
15213	(vect_create_epilog_for_reduction): Likewise.
15214	(vectorizable_reduction, vectorizable_induction): Likewise.
15215	* tree-vect-patterns.c (vect_init_pattern_stmt): Likewise.
15216	Return the stmt_vec_info for the pattern statement.
15217	(vect_set_pattern_stmt): Update use of STMT_VINFO_RELATED_STMT.
15218	(vect_split_statement, vect_mark_pattern_stmts): Likewise.
15219	* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
15220	(vect_detect_hybrid_slp, vect_get_slp_defs): Likewise.
15221	* tree-vect-stmts.c (vect_mark_relevant): Likewise.
15222	(vect_get_vec_def_for_operand_1, vectorizable_call): Likewise.
15223	(vectorizable_simd_clone_call, vect_analyze_stmt, new_stmt_vec_info)
15224	(free_stmt_vec_info, vect_is_simple_use): Likewise.
15225
152262018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15227
15228	* tree-vectorizer.h (vect_finish_replace_stmt): Return a stmt_vec_info
15229	(vect_finish_stmt_generation): Likewise.
15230	* tree-vect-stmts.c (vect_finish_stmt_generation_1): Likewise.
15231	(vect_finish_replace_stmt, vect_finish_stmt_generation): Likewise.
15232	(vect_build_gather_load_calls): Use the return value of the above
15233	functions instead of a separate call to vinfo_for_stmt.  Use narrow
15234	scopes for the input gimple stmt and wider scopes for the associated
15235	stmt_vec_info.  Use vec_info::lookup_def when setting these
15236	stmt_vec_infos from an SSA_NAME definition.
15237	(vectorizable_bswap, vectorizable_call, vectorizable_simd_clone_call)
15238	(vect_create_vectorized_demotion_stmts, vectorizable_conversion)
15239	(vectorizable_assignment, vectorizable_shift, vectorizable_operation)
15240	(vectorizable_store, vectorizable_load, vectorizable_condition)
15241	(vectorizable_comparison): Likewise.
15242	* tree-vect-loop.c (vectorize_fold_left_reduction): Likewise.
15243	(vectorizable_reduction): Likewise.
15244
152452018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15246
15247	* tree-vectorizer.h (vect_is_simple_use): Add an optional
15248	stmt_vec_info * parameter before the optional gimple **.
15249	* tree-vect-stmts.c (vect_is_simple_use): Likewise.
15250	(process_use, vect_get_vec_def_for_operand_1): Update callers.
15251	(vect_get_vec_def_for_operand, vectorizable_shift): Likewise.
15252	* tree-vect-loop.c (vectorizable_reduction): Likewise.
15253	(vectorizable_live_operation): Likewise.
15254	* tree-vect-patterns.c (type_conversion_p): Likewise.
15255	(vect_look_through_possible_promotion): Likewise.
15256	(vect_recog_rotate_pattern): Likewise.
15257	* tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
15258
152592018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15260
15261	* tree-vectorizer.h (stmt_vec_info): Temporarily change from
15262	a typedef to a wrapper class.
15263	(NULL_STMT_VEC_INFO): New macro.
15264	(vec_info::stmt_infos): Change to vec<stmt_vec_info>.
15265	(stmt_vec_info::operator*): New function.
15266	(stmt_vec_info::operator gimple *): Likewise.
15267	(set_vinfo_for_stmt): Use NULL_STMT_VEC_INFO.
15268	(add_stmt_costs): Likewise.
15269	* tree-vect-loop-manip.c (iv_phi_p): Likewise.
15270	* tree-vect-loop.c (vect_compute_single_scalar_iteration_cost)
15271	(vect_get_known_peeling_cost): Likewise.
15272	(vect_estimate_min_profitable_iters): Likewise.
15273	* tree-vect-patterns.c (vect_init_pattern_stmt): Likewise.
15274	* tree-vect-slp.c (vect_remove_slp_scalar_calls): Likewise.
15275	* tree-vect-stmts.c (vect_build_gather_load_calls): Likewise.
15276	(vectorizable_store, free_stmt_vec_infos): Likewise.
15277	(new_stmt_vec_info): Change return type of xcalloc to
15278	_stmt_vec_info *.
15279
152802018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15281
15282	* tree-vectorizer.h (vec_info::lookup_single_use): Declare.
15283	* tree-vectorizer.c (vec_info::lookup_single_use): New function.
15284	* tree-vect-loop.c (vectorizable_reduction): Use it instead of
15285	a single_imm_use-based sequence.
15286	* tree-vect-stmts.c (supportable_widening_operation): Likewise.
15287
152882018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15289
15290	* tree-vectorizer.h (vec_info::lookup_def): Declare.
15291	* tree-vectorizer.c (vec_info::lookup_def): New function.
15292	* tree-vect-patterns.c (vect_get_internal_def): Use it.
15293	(vect_widened_op_tree): Likewise.
15294	* tree-vect-stmts.c (vect_is_simple_use): Likewise.
15295	* tree-vect-loop.c (vect_analyze_loop_operations): Likewise.
15296	(vectorizable_reduction): Likewise.
15297	(vect_valid_reduction_input_p): Take a stmt_vec_info instead
15298	of a gimple *.
15299	(vect_is_slp_reduction): Update calls accordingly.  Use
15300	vec_info::lookup_def.
15301	(vect_is_simple_reduction): Likewise
15302	* tree-vect-slp.c (vect_detect_hybrid_slp_1): Use vec_info::lookup_def.
15303
153042018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15305
15306	* tree-vectorizer.h (vec_info::lookup_stmt): Declare.
15307	* tree-vectorizer.c (vec_info::lookup_stmt): New function.
15308	* tree-vect-loop.c (vect_determine_vf_for_stmt): Use it instead
15309	of vinfo_for_stmt.
15310	(vect_determine_vectorization_factor, vect_analyze_scalar_cycles_1)
15311	(vect_compute_single_scalar_iteration_cost, vect_analyze_loop_form)
15312	(vect_update_vf_for_slp, vect_analyze_loop_operations)
15313	(vect_is_slp_reduction, vectorizable_induction)
15314	(vect_transform_loop_stmt, vect_transform_loop): Likewise.
15315	* tree-vect-patterns.c (vect_init_pattern_stmt):
15316	(vect_determine_min_output_precision_1, vect_determine_precisions)
15317	(vect_pattern_recog): Likewise.
15318	* tree-vect-stmts.c (vect_analyze_stmt, vect_transform_stmt): Likewise.
15319	* config/powerpcspe/powerpcspe.c (rs6000_density_test): Likewise.
15320	* config/rs6000/rs6000.c (rs6000_density_test): Likewise.
15321	* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
15322	(vect_detect_hybrid_slp_1, vect_detect_hybrid_slp_2)
15323	(vect_detect_hybrid_slp): Likewise.  Change the walk_stmt_info
15324	info field from a loop to a loop_vec_info.
15325
153262018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15327
15328	* tree-vectorizer.h (stmt_vec_info): Move typedef earlier in file.
15329	(vec_info::add_stmt): Declare.
15330	* tree-vectorizer.c (vec_info::add_stmt): New function.
15331	* tree-vect-data-refs.c (vect_create_data_ref_ptr): Use it.
15332	* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise.
15333	(vect_create_epilog_for_reduction, vectorizable_reduction): Likewise.
15334	(vectorizable_induction): Likewise.
15335	* tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise.
15336	* tree-vect-stmts.c (vect_finish_stmt_generation_1): Likewise.
15337	(vectorizable_simd_clone_call, vectorizable_store): Likewise.
15338	(vectorizable_load): Likewise.
15339	* tree-vect-patterns.c (vect_init_pattern_stmt): Likewise.
15340	(vect_recog_bool_pattern, vect_recog_mask_conversion_pattern)
15341	(vect_recog_gather_scatter_pattern): Likewise.
15342	(append_pattern_def_seq): Likewise.  Remove a check that is
15343	performed by add_stmt itself.
15344
153452018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15346
15347	* tree-vect-loop.c (vectorizable_reduction): Fix an instance in
15348	which make_ssa_name was called with new_stmt before new_stmt
15349	had been created.
15350
153512018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15352
15353	* tree-vect-loop.c (vect_valid_reduction_input_p): New function,
15354	split out from...
15355	(vect_is_slp_reduction): ...here...
15356	(vect_is_simple_reduction): ...and here.  Remove repetition of tests
15357	that are already known to be false.
15358
153592018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15360
15361	* tree-vectorizer.h (vect_free_slp_instance): Add a final_p parameter.
15362	* tree-vect-slp.c (vect_free_slp_tree): Likewise.  Don't update
15363	STMT_VINFO_NUM_SLP_USES when it's true.
15364	(vect_free_slp_instance): Add a final_p parameter and pass it to
15365	vect_free_slp_tree.
15366	(vect_build_slp_tree_2): Update call to vect_free_slp_instance.
15367	(vect_analyze_slp_instance): Likewise.
15368	(vect_slp_analyze_operations): Likewise.
15369	(vect_slp_analyze_bb_1): Likewise.
15370	* tree-vectorizer.c (vec_info): Likewise.
15371	* tree-vect-loop.c (vect_transform_loop): Likewise.
15372
153732018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15374
15375	* tree-vect-loop.c (vectorizable_reduction): Assert that the
15376	function is not called for second and subsequent members of
15377	a reduction group.
15378
153792018-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15380
15381	* tree-vect-loop.c (get_initial_def_for_reduction): Move special
15382	cases for nested loops from here to ...
15383	(vect_create_epilog_for_reduction): ...here.  Only call
15384	vect_is_simple_use for inner-loop reductions.
15385
153862018-07-31  Martin Liska  <mliska@suse.cz>
15387
15388	PR gcov-profile/85338
15389	PR gcov-profile/85350
15390	PR gcov-profile/85372
15391	* profile.c (struct location_triplet): New.
15392	(struct location_triplet_hash): Likewise.
15393	(output_location): Do not output a BB that
15394	is already recorded for a line.
15395	(branch_prob): Use streamed_locations.
15396
153972018-07-31  Martin Liska  <mliska@suse.cz>
15398
15399	PR gcov-profile/85370
15400	* coverage.c (coverage_begin_function): Do not mark target
15401	clones as artificial functions.
15402
154032018-07-31  Martin Liska  <mliska@suse.cz>
15404
15405	PR gcov-profile/83813
15406	PR gcov-profile/84758
15407	PR gcov-profile/85217
15408	PR gcov-profile/85332
15409	* profile.c (branch_prob): Do not record GOTO expressions
15410	for GIMPLE statements which locations are already streamed.
15411
154122018-07-31  Olivier Hainque  <hainque@adacore.com>
15413
15414	* gcc.c (handle_spec_function): Accept a soft_matched_part
15415	argument, as do_spec_1.  Pass it down to ...
15416	(eval_spec_function): Accept a soft_matched_part argument,
15417	and pass it down to ...
15418	(do_spec_2): Accept a soft_matched_part argument, and pass
15419	it down to do_spec_1.
15420	(do_spec_1): Pass soft_matched_part to handle_spec_function.
15421	(handle_braces): Update call to handle_spec_function.
15422	(driver::set_up_specs): Update calls to do_spec_2.
15423	(compare_debug_dump_opt_spec_function): Likewise.
15424	(compare_debug_self_opt_spec_function): Likewise.
15425
154262018-07-31  Olivier Hainque  <hainque@adacore.com>
15427
15428	* common.opt (nolibc): New option.
15429	* doc/invoke.texi (Link Options): Document it.
15430	* gcc.c (LINK_GCC_C_SEQUENCE_SPEC): Honor nolibc.
15431	* config/alpha/linux.h: Likewise.
15432	* config/arc/elf.h: Likewise.
15433	* config/arm/uclinux-elf.h: Likewise.
15434	* config/arm/unknown-elf.h: Likewise.
15435	* config/avr/avrlibc.h: Likewise.
15436	* config/bfin/bfin.h: Likewise.
15437	* config/bfin/linux.h: Likewise.
15438	* config/bfin/uclinux.h: Likewise.
15439	* config/darwin.h: Likewise.
15440	* config/darwin10.h: Likewise.
15441	* config/darwin12.h: Likewise.
15442	* config/gnu-user.h: Likewise.
15443	* config/lm32/uclinux-elf.h: Likewise.
15444	* config/pa/pa-hpux11.h: Likewise.
15445	* config/pa/pa64-hpux.h: Likewise.
15446	* config/sparc/sparc.h: Likewise.
15447
154482018-07-31  Olivier Hainque  <hainque@adacore.com>
15449
15450	* gcc.c (getenv_spec_function): Prepend '/' to value for allowed
15451	undefined variables.
15452
154532018-07-30  Segher Boessenkool  <segher@kernel.crashing.org>
15454
15455	PR target/86640
15456	* config/arm/arm.c (arm_block_set_aligned_vect): Use gen_int_mode
15457	instead of GEN_INT.
15458
154592018-07-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15460
15461	* tree-ssa-forwprop.c (simplify_builtin_call): Don't create a not NUL
15462	terminated string literal.
15463
154642018-07-30  Segher Boessenkool  <segher@kernel.crashing.org>
15465
15466	PR rtl-optimization/85160
15467	* combine.c (is_just_move): New function.
15468	(try_combine): Allow combining two instructions into two if neither of
15469	the original instructions was a move.
15470
154712018-07-30  Alexander Monakov  <amonakov@ispras.ru>
15472
15473	PR target/86673
15474	* doc/extend.texi (Global Register Variables): Discourage use of type
15475	qualifiers.
15476	(Local Register Variables): Likewise.
15477
154782018-07-30  Richard Sandiford  <richard.sandiford@arm.com>
15479
15480	PR tree-optimization/86506
15481	* hwint.h (ceil_log2): Resync with hwint.c implementation.
15482
154832018-07-30  Ilya Leoshkevich  <iii@linux.ibm.com>
15484
15485	PR target/86547
15486	* lra-constraints.c (spill_hard_reg_in_range): When selecting the
15487	hard_regno, make sure no insn between `from` and `to` clobbers it.
15488
154892018-07-30  Cesar Philippidis  <cesar@codesourcery.com>
15490	    Tom de Vries  <tdevries@suse.de>
15491
15492	* config/nvptx/nvptx.c (PTX_GANG_DEFAULT): Rename to ...
15493	(PTX_DEFAULT_RUNTIME_DIM): ... this.
15494	(nvptx_goacc_validate_dims): Set default worker and gang dims to
15495	PTX_DEFAULT_RUNTIME_DIM.
15496	(nvptx_dim_limit): Ignore GOMP_DIM_WORKER.
15497
154982018-07-29  John David Anglin  <danglin@gcc.gnu.org>
15499
15500	* config/pa/pa.c (pa_output_addr_vec): Align address table.
15501	* config/pa/pa.h (JUMP_TABLES_IN_TEXT_SECTION): Revise comment.
15502	* config/pa/pa32-linux.h (JUMP_TABLES_IN_TEXT_SECTION): Define.
15503
155042018-07-27  Michael Meissner  <meissner@linux.ibm.com>
15505
15506	* config/rs6000/constraints.md (wG constraint): Delete, no longer
15507	used.
15508	* config/rs6000/predicates.md (p9_fusion_reg_operand): Rename
15509	predicate to reflect toc fusion has been deleted.
15510	(toc_fusion_mem_raw): Delete, no longer used.
15511	(toc_fusion_mem_wrapped): Likewise.
15512	* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete toc
15513	fusion mask bit.
15514	* config/rs6000/rs6000-protos.h (fusion_wrap_memory_address):
15515	Delete, no longer used.
15516	* config/rs6000/rs6000.c (struct rs6000_reg_addr): Delete fields
15517	meant to be used for toc fusion.
15518	(rs6000_debug_print_mode): Delete toc fusion debugging.
15519	(rs6000_debug_reg_global): Likewise.
15520	(rs6000_init_hard_regno_mode_ok): Delete setting up fields for toc
15521	fusion and secondary reload support that were never used.
15522	(rs6000_option_override_internal): Delete TOC fusion, that was only
15523	partially defined, and it did not work unless you also used the
15524	-mcmodel= switch.
15525	(rs6000_legitimate_address_p): Delete TOC fusion support.
15526	(rs6000_opt_masks): Likewise.
15527	(fusion_wrap_memory_address): Delete function, no longer used.
15528	(fusion_split_address); Delete TOC fusion support.
15529	* config/rs6000/rs6000.h (TARGET_TOC_FUSION_INT): Delete, no
15530	longer used with toc fusion being deleted.
15531	(TARGET_TOC_FUSION_FP): Likewise.
15532	* config/rs6000/rs6000.md (UNSPEC_FUSION_ADDIS): Delete TOC fusion
15533	UNSPEC.
15534	(toc fusion spliter): Delete TOC fusion support.
15535	(toc_fusionload_<mode>): Likewise.
15536	(toc_fusionload_di): Likewise.
15537	(fusion_gpr_load_<mode>): Delete generator function, this insn no
15538	longer needs to be named.  Rename predicate to delete TOC fusion.
15539	(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
15540	(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise.
15541	(fusion_vsx_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
15542	(fusion_vsx_<P:mode>_<GPR_FUSION:mode>_store): Likewise.
15543	(p9 fusion peephole2s): Rename predicate to delete TOC fusion.
15544
155452018-07-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
15546
15547	* doc/extend.texi (Basic PowerPC Built-in Functions Available on
15548	ISA 2.05):  Replace __uint128_t with __uint128 and __int128_t with
15549	__int128 in built-in function prototypes.
15550	(PowerPC AltiVec Built-in Functions on ISA 2.07): Likewise.
15551	(PowerPC AltiVec Built-in Functions on ISA 3.0): Likewise.
15552
155532018-07-27  Martin Sebor  <msebor@redhat.com>
15554
15555	PR tree-optimization/86696
15556	* tree-ssa-strlen.c (get_min_string_length): Handle all integer
15557	types, including enums.
15558	(handle_char_store): Be prepared for the above function to fail.
15559
155602018-07-26  Qing Zhao  <qing.zhao@oracle.com>
15561
15562	* builtins.c (inline_expand_builtin_string_cmp): Disable inlining
15563	when optimization level is lower than 2 or optimize for size.
15564
155652018-07-26  Martin Sebor  <msebor@redhat.com>
15566
15567	PR tree-optimization/86043
15568	PR tree-optimization/86042
15569	* tree-ssa-strlen.c (handle_builtin_memcpy): Handle strict overlaps.
15570	(get_string_cst_length): Rename...
15571	(get_min_string_length): ...to this.  Add argument.
15572	(handle_char_store): Extend to handle multi-character stores by
15573	MEM_REF.
15574	* tree.c (initializer_zerop): Use new argument.  Handle MEM_REF.
15575	* tree.h (initializer_zerop): Add argument.
15576
155772018-07-26  Jakub Jelinek  <jakub@redhat.com>
15578
15579	PR middle-end/86660
15580	* omp-low.c (scan_sharing_clauses): Don't ignore map clauses for
15581	declare target to variables if they have always,{to,from,tofrom} map
15582	kinds.
15583
155842018-07-26  Martin Liska  <mliska@suse.cz>
15585
15586	PR lto/86548
15587	* lto-wrapper.c: Add linker_output as prefix
15588	for ltrans_output_file.
15589
155902018-07-26  Segher Boessenkool  <segher@kernel.crashing.org>
15591
15592	PR rtl-optimization/85805
15593	* combine.c (reg_nonzero_bits_for_combine): Only use the last set
15594	value for hard registers if that was written in the same mode.
15595
155962018-07-26  Martin Liska  <mliska@suse.cz>
15597
15598	PR gcov-profile/86536
15599	* gcov.c (format_gcov): Use printf format %.*f directly
15600	and do not handle special values.
15601
156022018-07-25  Claudiu Zissulescu  <claziss@synopsys.com>
15603
15604	* common/config/arc/arc-common.c (arc_option_optimization_table):
15605	Update default optimizations for size.
15606
156072018-07-25  Claudiu Zissulescu  <claziss@synopsys.com>
15608
15609	* config/arc/arc.md (movsf_insn): Add short instruction selection.
15610	* config/arc/constraints.md (CfZ): New constraint.
15611	* config/arc/fpu.md (addssf3_fpu): Use CfZ constraint.
15612	(subsf3_fpu): Likewise.
15613	(cmpsf_fpu): Likewise.
15614	(cmpsf_fpu_uneq): Likewise.
15615
156162018-07-25  Claudiu Zissulescu  <claziss@synopsys.com>
15617
15618	* config/arc/arc.c (compact_memory_operand_p): Check for uncached
15619	accesses as well.
15620	(arc_is_uncached_mem_p): uncached applies to both the variable and
15621	the pointer.
15622
156232018-07-25  Claudiu Zissulescu  <claziss@synopsys.com>
15624
15625	* config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add additional
15626	register names.
15627
156282018-07-25  David Malcolm  <dmalcolm@redhat.com>
15629
15630	* optinfo-emit-json.cc (class optrecord_json_writer): Convert
15631	field "m_scopes" from vec to auto_vec.
15632
156332018-07-25  Martin Liska  <mliska@suse.cz>
15634
15635	* config/powerpcspe/powerpcspe-protos.h (rs6000_loop_align): Fix
15636	return type.
15637
156382018-07-25  Richard Biener  <rguenther@suse.de>
15639
15640	PR debug/86654
15641	* dwarf2out.c (dwarf2out_decl): Do not handle nested functions
15642	special wrt context_die late.
15643	(gen_subprogram_die): Re-use DIEs in local scope.
15644
156452018-07-25  Richard Sandiford  <richard.sandiford@arm.com>
15646
15647	PR tree-optimization/86644
15648	* hwint.c (ceil_log2): Fix comment.  Return 0 for 0.
15649
156502018-07-25  Martin Liska  <mliska@suse.cz>
15651
15652	PR middle-end/86645
15653	* dumpfile.c: And excluded values with TDF_ALL_VALUES.
15654	* dumpfile.h (enum dump_flag): Defince TDF_ALL_VALUES.
15655
156562018-07-25  Martin Liska  <mliska@suse.cz>
15657
15658	PR sanitizer/79635
15659	* params.def: Explain ASan abbreviation and provide
15660	a documentation link.
15661
156622018-07-24  Martin Sebor  <msebor@redhat.com>
15663
15664	PR tree-optimization/86622
15665	PR tree-optimization/86532
15666	* builtins.h (string_length): Declare.
15667	* builtins.c (c_strlen): Correct handling of non-constant offsets.
15668	(check_access): Be prepared for non-constant length ranges.
15669	(string_length): Make extern.
15670	* expr.c (string_constant): Only handle the minor non-constant
15671	array index.  Use string_constant to compute the length of
15672	a generic string constant.
15673
156742018-07-24  Richard Sandiford  <richard.sandiford@arm.com>
15675
15676	PR tree-optimization/86618
15677	* tree-vect-stmts.c (vectorizable_call): Don't take the address
15678	of LOOP_VINFO_MASKS (loop_vinfo) when loop_vinfo is null.
15679
156802018-07-24  David Malcolm  <dmalcolm@redhat.com>
15681
15682	PR tree-optimization/86636
15683	* json.cc (json::object::set): Fix comment.  Add assertions.
15684	(json::array::append): Move here from json.h.  Add comment and an
15685	assertion.
15686	(json::string::string): Likewise.
15687	* json.h (json::array::append): Move to json.cc.
15688	(json::string::string): Likewise.
15689	* optinfo-emit-json.cc
15690	(optrecord_json_writer::impl_location_to_json): Assert that we
15691	aren't attempting to write out UNKNOWN_LOCATION, or an ad-hoc
15692	wrapper around it.  Expand the location once, rather than three
15693	times.
15694	(optrecord_json_writer::inlining_chain_to_json): Fix the check for
15695	UNKNOWN_LOCATION, to use LOCATION_LOCUS to look through ad-hoc
15696	wrappers.
15697	(optrecord_json_writer::optinfo_to_json): Likewise, in four
15698	places.  Fix some overlong lines.
15699
157002018-07-24  Matthew Malcomson  <matthew.malcomson@arm.com>
15701
15702	* config/aarch64/aarch64-simd.md
15703	(aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Split into...
15704	(aarch64_<ANY_EXTEND:su>subw<mode>): ... This...
15705	(aarch64_<ANY_EXTEND:su>addw<mode>): ... And this.
15706	(aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>_internal): Split into...
15707	(aarch64_<ANY_EXTEND:su>subw<mode>_internal): ... This...
15708	(aarch64_<ANY_EXTEND:su>addw<mode>_internal): ... And this.
15709	(aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Split into...
15710	(aarch64_<ANY_EXTEND:su>subw2<mode>_internal): ... This...
15711	(aarch64_<ANY_EXTEND:su>addw2<mode>_internal): ... And this.
15712
157132018-07-24  Jakub Jelinek  <jakub@redhat.com>
15714
15715	PR middle-end/86627
15716	* expmed.c (expand_divmod): Punt if d == HOST_WIDE_INT_MIN
15717	and size > HOST_BITS_PER_WIDE_INT.  For size > HOST_BITS_PER_WIDE_INT
15718	and abs_d == d, do the power of two handling if profitable.
15719
157202018-07-24  Richard Biener  <rguenther@suse.de>
15721
15722	* match.pd: Add BIT_FIELD_REF canonicalizations.
15723
157242018-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15725
15726	PR c/86617
15727	* genmatch.c (dt_operand::gen_match_op): Avoid folding volatile values.
15728
157292018-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15730
15731	* gimple-fold.c (gimple_fold_builtin_printf): Don't create a not NUL
15732	terminated STRING_CST object.
15733
157342018-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15735
15736	hsa-dump.c (dump_hsa_symbol): Avoid out of scope access to buf.
15737
157382018-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
15739
15740	* config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Adjust.
15741	* config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Delete.
15742	* config/rs6000/rs6000.c (rs6000_expand_vector_init): Always force
15743	the elements into a register.
15744	(rs6000_split_v4si_init_di_reg): Delete.
15745	(rs6000_split_v4si_init): Delete.
15746	* config/rs6000/vsx.md (unspec): Delete UNSPEC_VSX_VEC_INIT.
15747	(vsx_init_v4si): Rewrite as a define_expand.
15748
157492018-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
15750
15751	* config/rs6000/rs6000.md (splitters for rldimi and rlwimi with the
15752	zero_extend argument from memory): New.
15753
157542018-07-22  Martin Sebor  <msebor@redhat.com>
15755
15756	PR bootstrap/86621
15757	* gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Avoid
15758	diagnosing calls with unknown arguments unless -Walloca-larger-than
15759	is restricted to less than PTRDIFF_MAX bytes.
15760
157612018-07-22  Gerald Pfeifer  <gerald@pfeifer.com>
15762
15763	* doc/gcov.texi (Invoking Gcov): Editorial changes.
15764
157652018-07-20  David Malcolm  <dmalcolm@redhat.com>
15766
15767	* pretty-print.c (text_info::set_location): Remove redundant
15768	"line_table" parameter from call to rich_location::set_range.
15769
157702018-07-20  Martin Sebor  <msebor@redhat.com>
15771
15772	PR middle-end/82063
15773	* builtins.c (expand_builtin_alloca): Adjust.
15774	* calls.c (alloc_max_size): Simplify.
15775	* cgraphunit.c (cgraph_node::expand): Adjust.
15776	* common.opt (larger_than_size, warn_frame_larger_than): Remove
15777	variables.
15778	(frame_larger_than_size): Same.
15779	(-Wframe-larger-than, -Wlarger-than, -Wstack-usage): Change options
15780	to take a HOST_WIDE_INT argument and accept a byte-size suffix.
15781	Initialize.
15782	* doc/invoke.texi (GCC Command Options): Document option arguments.
15783	Explain byte-size arguments and suffixes.
15784	(-Wvla-larger-than, -Wno-alloc-size-larger-than): Update.
15785	(-Wno-alloca-larger-than, -Wno-vla-larger-than): Same.
15786	(-Wframe-larger-than, -Wlarger-than, -Wstack-usage): Same.
15787	* doc/options.texi (UInteger): Expand.
15788	(Host_Wide_Int, ByteSize): Document new properties.
15789	* final.c (final_start_function_1): Include sizes in an error message.
15790	* function.c (frame_offset_overflow): Same.
15791	* gimple-ssa-warn-alloca.c (pass_walloca::gate): Adjust.
15792	(alloca_call_type_by_arg): Change function argument to HOST_WIDE_INT.
15793	Diagnose unbounded alloca calls only for limits of less than
15794	PTRDIFF_MAX.
15795	(alloca_call_type): Adjust.  Diagnose possibly out-of-bounds alloca
15796	calls and VLA size only for limits of less than	PTRDIFF_MAX.  Same
15797	for alloca(0).
15798	(pass_walloca::execute): Adjust.  Diagnose alloca calls in loops
15799	only for limits of less than PTRDIFF_MAX.
15800	* langhooks-def.h (lhd_handle_option): Change function argument
15801	to HOST_WIDE_INT.
15802	* langhooks.c (lhd_handle_option): Same.
15803	* langhooks.h (handle_option): Same.
15804	* opt-functions.awk (switch_bit_fields): Handle Host_Wide_Int and
15805	ByteSize flags.
15806	(var_type, var_type_struct): Same.
15807	(var_set): Handle ByteSize flag.
15808	* optc-gen.awk: Add comments to output to ease debugging.  Make
15809	use of HOST_WIDE_INT where appropriate.
15810	* opts-gen-save.awk:  Use %lx to format unsigned long.
15811	* opth-gen.awk: Change function argument to HOST_WIDE_INT.
15812	* opts-common.c (integral_argument): Return HOST_WIDE_INT and add
15813	arguments.  Parse bytes-size suffixes.
15814	(enum_arg_to_value): Change function argument to HOST_WIDE_INT.
15815	(enum_value_to_arg): Same.
15816	(decode_cmdline_option): Handle cl_host_wide_int.  Adjust.
15817	(handle_option): Adjust.
15818	(generate_option): Change function argument to HOST_WIDE_INT.
15819	(cmdline_handle_error): Adjust.
15820	(read_cmdline_option): Change function argument to HOST_WIDE_INT.
15821	(set_option): Change function argument to HOST_WIDE_INT.
15822	(option_enabled): Handle cl_host_wide_int.
15823	(get_option_state): Handle CLVC_SIZE.
15824	(control_warning_option): Same.
15825	* opts.c (common_handle_option): Change function argument to
15826	HOST_WIDE_INT.  Remove handling of OPT_Walloca_larger_than_ and
15827	OPT_Wvla_larger_than_.
15828	* opts.h (enum cl_var_type): Add an enumerator.
15829	* stor-layout.c (layout_decl): Print a more meaningful warning.
15830	* toplev.c (output_stack_usage): Adjust.
15831
158322018-07-20  Qing Zhao  <qing.zhao@oracle.com>
15833
15834	* builtins.c (expand_builtin_memcmp): Delete the last parameter for
15835	call to inline_expand_builtin_string_cmp.
15836	(expand_builtin_strcmp): Likewise.
15837	(expand_builtin_strncmp): Likewise.
15838	(inline_string_cmp): Delete the last parameter, change char_type_node
15839	to unsigned_char_type_node for strcmp/strncmp, add conversions to the
15840	two operands.
15841	(inline_expand_builtin_string_cmp): Delete the last parameter, give up
15842	the inlining expansion on target where the type of the call has same or
15843	narrower precision than unsigned char.
15844
158452018-07-20  David Malcolm  <dmalcolm@redhat.com>
15846
15847	* Makefile.in (OBJS): Add json.o and optinfo-emit-json.o.
15848	(CFLAGS-optinfo-emit-json.o): Define TARGET_NAME.
15849	* common.opt (fsave-optimization-record): New option.
15850	* coretypes.h (struct kv_pair): Move here from dumpfile.c.
15851	* doc/invoke.texi (-fsave-optimization-record): New option.
15852	* dumpfile.c: Include "optinfo-emit-json.h".
15853	(struct kv_pair): Move to coretypes.h.
15854	(optgroup_options): Make non-static.
15855	(dump_context::end_scope): Call
15856	optimization_records_maybe_pop_dump_scope.
15857	* dumpfile.h (optgroup_options): New decl.
15858	* json.cc: New file.
15859	* json.h: New file.
15860	* optinfo-emit-json.cc: New file.
15861	* optinfo-emit-json.h: New file.
15862	* optinfo.cc: Include "optinfo-emit-json.h".
15863	(optinfo::emit): Call optimization_records_maybe_record_optinfo.
15864	(optinfo_enabled_p): Check optimization_records_enabled_p.
15865	(optinfo_wants_inlining_info_p): Likewise.
15866	* optinfo.h: Update comment.
15867	* profile-count.c (profile_quality_as_string): New function.
15868	* profile-count.h (profile_quality_as_string): New decl.
15869	(profile_count::quality): New accessor.
15870	* selftest-run-tests.c (selftest::run_tests): Call json_cc_tests
15871	and optinfo_emit_json_cc_tests.
15872	* selftest.h (selftest::json_cc_tests): New decl.
15873	(selftest::optinfo_emit_json_cc_tests): New decl.
15874	* toplev.c: Include "optinfo-emit-json.h".
15875	(compile_file): Call optimization_records_finish.
15876	(do_compile): Call optimization_records_start.
15877	* tree-ssa-live.c: Include optinfo.h.
15878	(remove_unused_scope_block_p): Retain inlining information if
15879	optinfo_wants_inlining_info_p returns true.
15880
158812018-07-20  Richard Biener  <rguenther@suse.de>
15882
15883	PR debug/86585
15884	* dwarf2out.c (dwarf2out_die_ref_for_decl): Test in_lto_p
15885	to cover -flto-partition=none.
15886
158872018-07-20  Martin Liska  <mliska@suse.cz>
15888
15889	* tree.h (DECL_LOCATION_RANGE): Remove unused macro.
15890	(get_decl_source_range): Remove unused function.
15891
158922018-07-20  Richard Biener  <rguenther@suse.de>
15893
15894	* tree-ssa-sccvn.h (struct vn_nary_op_s): Add next member.
15895	(struct vn_phi_s): Likewise.
15896	(struct vn_reference_s): Likewise.
15897	* tree-ssa-sccvn.c (vn_nary_op_hasher::equal): Add shortcut
15898	for searching the slot of an entry known to be in the hash itself.
15899	(vn_phi_hasher::equal): Likewise.
15900	(vn_reference_hasher::equal): Likewise.
15901	(last_inserted_ref, last_inserted_phi, last_inserted_nary): New
15902	globals.
15903	(optimistic_info, current_info): Remove, keeping only valid_info.
15904	(vn_reference_lookup_1): Remove fallback lookup.
15905	(vn_reference_lookup_2): Likewise.
15906	(vn_nary_op_lookup_1): Likewise.
15907	(vn_phi_lookup): Likewise.
15908	(vn_nary_build_or_lookup_1): Make sure to not chain the built
15909	hash element.
15910	(vn_reference_insert): Adjust, chain the inserted hash element
15911	at last_inserted_ref.
15912	(vn_reference_insert_pieces): Likewise.
15913	(visit_reference_op_call): Likewise.
15914	(vn_nary_op_insert_into): Chain the inserted hash element at
15915	last_inserted_nary.
15916	(vn_nary_op_insert_pieces): Adjust.
15917	(vn_nary_op_insert): Likewise.
15918	(vn_nary_op_insert_stmt): Likewise.
15919	(vn_phi_insert): Adjust, chain the inserted hash element at
15920	last_inserted_phi.
15921	(process_scc): Remove clearing and copying the optimistic
15922	table.  Instead remove elements inserted during an optimistic
15923	iteration from the single table we maintain.
15924	(init_scc_vn): Adjust.
15925	(free_scc_vn): Likewise.
15926	(sccvn_dom_walker::record_cond): Likewise.
15927	(sccvn_dom_walker::after_dom_children): Likewise.
15928
159292018-07-19  Martin Sebor  <msebor@redhat.com>
15930
15931	PR tree-optimization/84047
15932	PR tree-optimization/83776
15933	* tree-vrp.c (vrp_prop::check_mem_ref): New function.
15934	(check_array_bounds): Call it.
15935
159362018-07-19  Martin Sebor  <msebor@redhat.com>
15937
15938	* align.h (align_flags): Use member initialization.
15939
159402018-07-19  David Malcolm  <dmalcolm@redhat.com>
15941
15942	* Makefile.in (OBJS): Add optinfo.o.
15943	* coretypes.h (class symtab_node): New forward decl.
15944	(struct cgraph_node): New forward decl.
15945	(class varpool_node): New forward decl.
15946	* dump-context.h: New file.
15947	* dumpfile.c: Include "optinfo.h", "dump-context.h", "cgraph.h",
15948	"tree-pass.h".
15949	(refresh_dumps_are_enabled): Use optinfo_enabled_p.
15950	(set_dump_file): Call dumpfile_ensure_any_optinfo_are_flushed.
15951	(set_alt_dump_file): Likewise.
15952	(dump_context::~dump_context): New dtor.
15953	(dump_gimple_stmt): Move implementation to...
15954	(dump_context::dump_gimple_stmt): ...this new member function.
15955	Add the stmt to any pending optinfo, creating one if need be.
15956	(dump_gimple_stmt_loc): Move implementation to...
15957	(dump_context::dump_gimple_stmt_loc): ...this new member function.
15958	Start a new optinfo and add the stmt to it.
15959	(dump_gimple_expr): Move implementation to...
15960	(dump_context::dump_gimple_expr): ...this new member function.
15961	Add the stmt to any pending optinfo, creating one if need be.
15962	(dump_gimple_expr_loc): Move implementation to...
15963	(dump_context::dump_gimple_expr_loc): ...this new member function.
15964	Start a new optinfo and add the stmt to it.
15965	(dump_generic_expr): Move implementation to...
15966	(dump_context::dump_generic_expr): ...this new member function.
15967	Add the tree to any pending optinfo, creating one if need be.
15968	(dump_generic_expr_loc): Move implementation to...
15969	(dump_context::dump_generic_expr_loc): ...this new member
15970	function.  Add the tree to any pending optinfo, creating one if
15971	need be.
15972	(dump_printf): Move implementation to...
15973	(dump_context::dump_printf_va): ...this new member function.  Add
15974	the text to any pending optinfo, creating one if need be.
15975	(dump_printf_loc): Move implementation to...
15976	(dump_context::dump_printf_loc_va): ...this new member function.
15977	Start a new optinfo and add the stmt to it.
15978	(dump_dec): Move implementation to...
15979	(dump_context::dump_dec): ...this new member function.  Add the
15980	value to any pending optinfo, creating one if need be.
15981	(dump_context::dump_symtab_node): New member function.
15982	(dump_context::get_scope_depth): New member function.
15983	(dump_context::begin_scope): New member function.
15984	(dump_context::end_scope): New member function.
15985	(dump_context::ensure_pending_optinfo): New member function.
15986	(dump_context::begin_next_optinfo): New member function.
15987	(dump_context::end_any_optinfo): New member function.
15988	(dump_context::s_current): New global.
15989	(dump_context::s_default): New global.
15990	(dump_scope_depth): Delete global.
15991	(dumpfile_ensure_any_optinfo_are_flushed): New function.
15992	(dump_symtab_node): New function.
15993	(get_dump_scope_depth): Reimplement in terms of dump_context.
15994	(dump_begin_scope): Likewise.
15995	(dump_end_scope): Likewise.
15996	(selftest::temp_dump_context::temp_dump_context): New ctor.
15997	(selftest::temp_dump_context::~temp_dump_context): New dtor.
15998	(selftest::verify_item): New function.
15999	(ASSERT_IS_TEXT): New macro.
16000	(ASSERT_IS_TREE): New macro.
16001	(ASSERT_IS_GIMPLE): New macro.
16002	(selftest::test_capture_of_dump_calls): New test.
16003	(selftest::dumpfile_c_tests): Call it.
16004	* dumpfile.h (dump_printf, dump_printf_loc, dump_basic_block)
16005	(dump_generic_expr_loc, dump_generic_expr, dump_gimple_stmt_loc)
16006	(dump_gimple_stmt, dump_dec): Gather these related decls and add a
16007	descriptive comment.
16008	(dump_function, print_combine_total_stats, enable_rtl_dump_file)
16009	(dump_node, dump_bb): Move these unrelated decls.
16010	(class dump_manager): Add leading comment.
16011	* optinfo.cc: New file.
16012	* optinfo.h: New file.
16013
160142018-07-19  Michael Collison  <michael.collison@arm.com>
16015	    Richard Henderson  <rth@redhat.com>
16016
16017	* config/aarch64/aarch64.md (subv<GPI>4, usubv<GPI>4): New patterns.
16018	(subti): Handle op1 zero.
16019	(subvti4, usub4ti4): New.
16020	(*sub<GPI>3_compare1_imm): New.
16021	(sub<GPI>3_carryinCV): New.
16022	(*sub<GPI>3_carryinCV_z1_z2, *sub<GPI>3_carryinCV_z1): New.
16023	(*sub<GPI>3_carryinCV_z2, *sub<GPI>3_carryinCV): New.
16024
160252018-07-19  Michael Collison  <michael.collison@arm.com>
16026	    Richard Henderson  <rth@redhat.com>
16027
16028	* config/aarch64/aarch64.md: (addv<GPI>4, uaddv<GPI>4): New.
16029	(addti3): Create simpler code if low part is already known to be 0.
16030	(addvti4, uaddvti4): New.
16031	(*add<GPI>3_compareC_cconly_imm): New.
16032	(*add<GPI>3_compareC_cconly): New.
16033	(*add<GPI>3_compareC_imm): New.
16034	(*add<GPI>3_compareC): Rename from add<GPI>3_compare1; do not
16035	handle constants within this pattern..
16036	(*add<GPI>3_compareV_cconly_imm): New.
16037	(*add<GPI>3_compareV_cconly): New.
16038	(*add<GPI>3_compareV_imm): New.
16039	(add<GPI>3_compareV): New.
16040	(add<GPI>3_carryinC, add<GPI>3_carryinV): New.
16041	(*add<GPI>3_carryinC_zero, *add<GPI>3_carryinV_zero): New.
16042	(*add<GPI>3_carryinC, *add<GPI>3_carryinV): New.
16043	((*add<GPI>3_compareC_cconly_imm): Replace 'ne' operator
16044	with 'comparison' operator.
16045	(*add<GPI>3_compareV_cconly_imm): Ditto.
16046	(*add<GPI>3_compareV_cconly): Ditto.
16047	(*add<GPI>3_compareV_imm): Ditto.
16048	(add<GPI>3_compareV): Ditto.
16049	(add<mode>3_carryinC): Ditto.
16050	(*add<mode>3_carryinC_zero): Ditto.
16051	(*add<mode>3_carryinC): Ditto.
16052	(add<mode>3_carryinV): Ditto.
16053	(*add<mode>3_carryinV_zero): Ditto.
16054	(*add<mode>3_carryinV): Ditto.
16055
160562018-07-19  Michael Collison  <michael.collison@arm.com>
16057	    Richard Henderson  <rth@redhat.com>
16058
16059	* config/aarch64/aarch64-modes.def (CC_V): New.
16060	* config/aarch64/aarch64-protos.h
16061	(aarch64_addti_scratch_regs): Declare
16062	(aarch64_subvti_scratch_regs): Declare.
16063	(aarch64_expand_subvti): Declare.
16064	(aarch64_gen_unlikely_cbranch): Declare
16065	* config/aarch64/aarch64.c (aarch64_select_cc_mode): Test
16066	for signed overflow using CC_Vmode.
16067	(aarch64_get_condition_code_1): Handle CC_Vmode.
16068	(aarch64_gen_unlikely_cbranch): New function.
16069	(aarch64_addti_scratch_regs): New function.
16070	(aarch64_subvti_scratch_regs): New function.
16071	(aarch64_expand_subvti): New function.
16072
160732018-07-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
16074
16075	* config/aarch64/aarch64-option-extensions.def: New entry for profile
16076	extension.
16077	* config/aarch64/aarch64.h (AARCH64_FL_PROFILE): New.
16078	* doc/invoke.texi (aarch64-feature-modifiers): New entry for profile
16079	extension.
16080
160812018-07-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
16082
16083	PR target/83009
16084	* config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make
16085	address check not strict.
16086
160872018-07-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
16088
16089	* config/aarch64/aarch64-simd.md (aarch64_simd_mov<VQ:mode>): Replace
16090	Umq with Umn.
16091	(store_pair_lanes<mode>): Likewise.
16092	* config/aarch64/aarch64-protos.h (aarch64_addr_query_type): Add new
16093	enum value 'ADDR_QUERY_LDP_STP_N'.
16094	* config/aarch64/aarch64.c (aarch64_addr_query_type): Likewise.
16095	(aarch64_print_address_internal): Add declaration.
16096	(aarch64_print_ldpstp_address): Remove.
16097	(aarch64_classify_address): Adapt mode for 'ADDR_QUERY_LDP_STP_N'.
16098	(aarch64_print_operand): Change printing of 'y'.
16099	* config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Use
16100	new enum value 'ADDR_QUERY_LDP_STP_N', don't hardcode mode and use
16101	'true' rather than '1'.
16102	* config/aarch64/constraints.md (Uml): Likewise.
16103	(Uml): Rename to Umn.
16104	(Umq): Remove.
16105
161062018-07-19  Richard Biener  <rguenther@suse.de>
16107
16108	* tree-ssa-sccvn.h (struct vn_phi_s): Make phiargs member
16109	a trailing array.
16110	* tree-ssa-sccvn.c: Remove alloc-pool.h use.
16111	(vn_phi_hasher): Derive from nofree_ptr_hash and remove remove method.
16112	(vn_reference_hasher): Likewise.
16113	(struct vn_tables_s): Remove obstack and alloc-pool members.
16114	(vn_tables_obstack, vn_tables_insert_obstack): New global obstacks.
16115	(vn_nary_build_or_lookup_1): Manually build in vn_tables_insert_obstack.
16116	(vn_reference_insert): Allocate from obstack instead of from alloc-pool.
16117	(vn_reference_insert_pieces): Likewise.
16118	(alloc_vn_nary_op_noinit): Adjust.
16119	(vn_nary_op_insert_stmt): Allocate phiargs in-place.
16120	(vn_phi_eq): Adjust.
16121	(shared_lookup_phiargs): Remove.
16122	(vn_phi_lookup): Allocate temporary vn_phi_s on the stack.
16123	(vn_phi_insert): Allocate from obstack instead of from alloc-pool.
16124	(visit_reference_op_call): Likewise.
16125	(copy_nary, copy_phi, copy_reference): Remove.
16126	(process_scc): Rewind the obstack when iterating.  Do not
16127	copy the elements to valid_info but just move them from one
16128	hashtable to the other.
16129	(allocate_vn_table): Adjust.
16130	(free_vn_table): Likewise.
16131	(init_scc_vn): Likewise.
16132	(free_scc_vn): Likewise.
16133
161342018-07-19  H.J. Lu  <hongjiu.lu@intel.com>
16135
16136	PR target/86560
16137	* config/i386/i386.c (rest_of_insert_endbranch): Lookup
16138	indirect_return as function type attribute.
16139	(ix86_attribute_table): Change indirect_return to function
16140	type attribute.
16141	* doc/extend.texi: Update indirect_return attribute.
16142
161432018-07-19  Aldy Hernandez  <aldyh@redhat.com>
16144
16145	* wide-int.h (widest2_int): New.
16146	* gimple-fold.c (arith_overflowed_p): Use it.
16147	* tree.h (widest2_int_cst): New.
16148	* tree-vrp.c (wide_int_binop_overflow): Rename from
16149	vrp_int_const_binop.
16150	Rewrite to work on trees.
16151	(extract_range_from_multiplicative_op_1): Abstract code to...
16152	(wide_int_range_min_max): ...here.
16153	(wide_int_range_cross_product): ...and here.
16154	(extract_range_from_binary_expr_1): Abstract overflow code to...
16155	(wide_int_range_mult_wrapping): ...here.
16156	* tree-vrp.h (wide_int_range_cross_product): New.
16157	(wide_int_range_mult_wrapping): New.
16158
161592018-07-19  Andrew Senkevich  <andrew.senkevich@intel.com>
16160	    Julia Koval  <julia.koval@intel.com>
16161
16162	* config/i386/x86-tune-costs.h (skylake_memcpy,
16163	skylake_memset): Replace rep_prefix with unrolling for size 512.
16164
161652018-07-18  Kugan Vivekanandarajah  <kuganv@linaro.org>
16166
16167	PR middle-end/86544
16168	* tree-ssa-phiopt.c (cond_removal_in_popcount_pattern): Handle
16169	comparision with EQ_EXPR in last stmt.
16170
161712018-07-18  Kelvin Nilsen  <kelvin@gcc.gnu.org>
16172
16173	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Rename
16174	this subsection to "PowerPC AltiVec/VSX Built-in Functions".
16175	(PowerPC AltiVec/VSX Built-in Functions): New name for subsection
16176	previously known as "PowerPC AltiVec Built-in Functions".  Move
16177	some material to new subsubsections "PowerPC AltiVec Built-in
16178	Functions on ISA 2.06" and "PowerPC AltiVec Built-in Functions on
16179	ISA 2.07".
16180	(PowerPC Altivec Built-in Functions on ISA 2.05): New subsubsection.
16181	(PowerPC Altivec Built-in Functions on ISA 2.06): Likewise.
16182	(PowerPC Altivec Built-in Functions on ISA 2.07): Likewise.
16183	(PowerPC Altivec Built-in Functions on ISA 3.0): Likewise.
16184
161852018-07-18  Richard Biener  <rguenther@suse.de>
16186
16187	PR tree-optimization/86557
16188	* tree-vect-patterns.c (vect_recog_divmod_pattern): Also handle
16189	EXACT_DIV_EXPR.
16190
161912018-07-18  Ilya Leoshkevich  <iii@linux.ibm.com>
16192
16193	* config/s390/s390.c (s390_function_profiler): Generate CFI.
16194
161952018-07-17  Jeff Law  <law@redhat.com>
16196
16197	* config/arm/arm.c (get_label_padding): Update for recent
16198	changes to label_to_alignment.
16199
16200	PR tree-optimization/86010
16201	* tree-ssa-dse.c (compute_trims): Fix typo/thinko.
16202
16203	* config/mips/mips.c (vr4130_align_insns): Update for recent
16204	changes to label_to_alignment.
16205
16206	* config/frv/frv.c (frv_label_align): Update for recent changes
16207	to label_to_alignment.
16208
16209	* config/nios2/nios2.c (nios2_label_align): Update for recent
16210	changes which dropped ALIGN_LABELS_LOG.
16211
162122018-07-17  Andreas Schwab  <schwab@linux-m68k.org>
16213
16214	* config/m68k/m68k.md (umulsi3_highpart+1, const_umulsi3_highpart)
16215	(smulsi3_highpart+1, const_smulsi3_highpart): Add CC_STATUS_INIT.
16216
162172018-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
16218
16219	* config/arc/arc.c (arc_label_align): Use align_labels instead of
16220	deprecated align_labels_log.
16221
162222018-07-17  Richard Biener  <rguenther@suse.de>
16223
16224	PR lto/86456
16225	* dwarf2out.c (init_sections_and_labels): Always generate
16226	a debug_line_str_section for early LTO debug.
16227	(dwarf2out_finish): Reset debug_line_str_hash output early.
16228	Bump counter for extra dwarf5 .debug_loc labels to not conflict
16229	with fat LTO part.
16230	(dwarf2out_early_finish): Output debug_line_str.
16231
162322018-07-17  Robin Dapp  <rdapp@linux.ibm.com>
16233
16234	* config/s390/s390.c (preferred_la_operand_p): Do not use LA with
16235	index register on z196 or later.
16236
162372018-07-17  Robin Dapp  <rdapp@linux.ibm.com>
16238
16239	* config/s390/s390.c (s390_default_align): Set default function
16240	alignment to 16.
16241	(s390_override_options_after_change): Call s390_default align.
16242	(s390_option_override_internal): Call s390_default_align.
16243	(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
16244
162452018-07-17  Jakub Jelinek  <jakub@redhat.com>
16246
16247	PR middle-end/86542
16248	* omp-low.c (create_task_copyfn): Copy over also fields corresponding
16249	to _looptemp_ clauses, other than the first two.
16250
162512018-07-17  Martin Liska  <mliska@suse.cz>
16252
16253	* opts.c: Do not enable OPT_falign_* for -Os.
16254
162552018-07-17  Martin Liska  <mliska@suse.cz>
16256
16257	* align.h (MAX_CODE_ALIGN): New.
16258	(MAX_CODE_ALIGN_VALUE): New.
16259	* common/config/i386/i386-common.c (ix86_handle_option):
16260	(MAX_CODE_ALIGN): Moved to align.h.
16261	* final.c (MAX_CODE_ALIGN): Likewise.
16262	* opts.c (parse_and_check_align_values):
16263	(MAX_CODE_ALIGN): Likewise.
16264	(MAX_CODE_ALIGN_VALUE): Likewise.
16265
162662018-07-17  Martin Liska  <mliska@suse.cz>
16267
16268	* config/i386/att.h (ASM_OUTPUT_ALIGN): Fix spacing
16269	in order to fulfil coding style.
16270	* config/i386/cygming.h (ASM_OUTPUT_ALIGN): Likewise.
16271	* config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
16272	* config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
16273	* config/iq2000/iq2000.h (ASM_OUTPUT_ALIGN): Likewise.
16274	* config/pa/pa.h (ASM_OUTPUT_ALIGN): Likewise.
16275	* config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): Likewise.
16276	* config/sparc/sparc.h (ASM_OUTPUT_ALIGN): Likewise.
16277	* config/visium/visium.h (ASM_OUTPUT_ALIGN): Likewise.
16278	(ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
16279
162802018-07-17  Martin Liska  <mliska@suse.cz>
16281
16282	* align.h: New file.
16283	* config/alpha/alpha.c (alpha_align_insns_1): Use align_functions
16284	directly.
16285	* config/i386/i386.c (ix86_avoid_jump_mispredicts): Use new return type
16286	align_flags of label_to_alignment.
16287	* config/m32r/m32r.h (LOOP_ALIGN): Wrap returned values into
16288	align_flags class.
16289	* config/m68k/m68k.c: Do not use removed align_labels_value and
16290	align_loops_value.
16291	* config/nds32/nds32.h (JUMP_ALIGN): Wrap result into align_flags class.
16292	(LOOP_ALIGN): Likewise.
16293	(LABEL_ALIGN): Likewise.
16294	* config/powerpcspe/powerpcspe.c (TARGET_ASM_LOOP_ALIGN_MAX_SKIP):
16295	Remove not used macro.
16296	(rs6000_loop_align): Change return type to align_flags.
16297	(rs6000_loop_align_max_skip): Remove.
16298	* config/rs6000/rs6000-protos.h (rs6000_loop_align):
16299	Change return type to align_flags.
16300	* config/rs6000/rs6000.c (TARGET_ASM_LOOP_ALIGN_MAX_SKIP):
16301	Remove not used macro.
16302	(rs6000_loop_align):  Change return type to align_flags.
16303	(rs6000_loop_align_max_skip): Remove.
16304	* config/rx/rx.h (JUMP_ALIGN): Wrap integer values
16305	* config/rx/rx-protos.h (rx_align_for_label): Make it
16306	static function.
16307	* config/rx/rx.c (rx_align_for_label): Change return type
16308	to align_flags.
16309	(rx_max_skip_for_label): Remove TARGET_ASM_*_ALIGN_MAX_SKIP
16310	macro definitions.
16311	into align_flags class.
16312	(LABEL_ALIGN): Likewise.
16313	(LOOP_ALIGN): Likewise.
16314	* config/s390/s390.c (s390_label_align): Use align_flags
16315	class member.
16316	(s390_asm_output_function_label): Likewise.
16317	* config/sh/sh.c (sh_override_options_after_change):
16318	Use align_flags class directly without macros.
16319	(find_barrier): Likewise.
16320	(barrier_align): Likewise.
16321	(sh_loop_align): Likewise.
16322	* config/spu/spu.c (spu_option_override):
16323	Use align_flags_tuple::get_value instead of removed macros.
16324	(spu_sched_init): Likewise.
16325	* config/spu/spu.h (GTY): Likewise.
16326	* config/visium/visium.c (visium_option_override):
16327	Set "8" as default secondary alignment.
16328	* config/visium/visium.h (SUBALIGN_LOG): Define to 3
16329	in order to guarantee secondary alignment of 8.
16330	* coretypes.h: Include align.h header file.
16331	* doc/tm.texi: Remove TARGET_ASM_JUMP_ALIGN_MAX_SKIP,
16332	TARGET_ASM_LOOP_ALIGN_MAX_SKIP, TARGET_ASM_LABEL_ALIGN_MAX_SKIP
16333	and TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP macros.
16334	* doc/tm.texi.in: Likewise.
16335	* final.c (struct label_alignment): Remove not used structure.
16336	(LABEL_ALIGN): Change type to align_flags.
16337	(LOOP_ALIGN): Likewise.
16338	(JUMP_ALIGN): Likewise.
16339	(default_loop_align_max_skip): Remove.
16340	(default_label_align_max_skip): Likewise.
16341	(default_jump_align_max_skip): Likewise.
16342	(default_label_align_after_barrier_max_skip):
16343	(LABEL_TO_ALIGNMENT): Change to access label_align vector.
16344	(LABEL_TO_MAX_SKIP): Remove.
16345	(label_to_alignment): Return align_flags type instead of integer.
16346	(label_to_max_skip): Remove.
16347	(align_fuzz): Use align_flags type.
16348	(compute_alignments): Use align_flags type and use align_flags::max
16349	to combine multiple alignments.
16350	(grow_label_align): Grow vec instead of C array.
16351	(update_alignments): Assign just LABEL_TO_ALIGNMENT.
16352	(shorten_branches):  Use align_flags type and use align_flags::max
16353	to combine multiple alignments.
16354	(final_scan_insn_1): Remove usage of secondary alignment that comes
16355	from label alignment, but instead use proper secondary alignment
16356	which is computed in grow_label_align.
16357	* flags.h (struct align_flags_tuple): Move to align.h.
16358	(struct align_flags): Likewise.
16359	(state_align_loops): Rename to align_loops.
16360	(state_align_jumps): Rename to align_jumps.
16361	(state_align_labels): Rename to align_labels.
16362	(state_align_functions): Rename to align_functions.
16363	(align_loops_log): Remove.
16364	(align_jumps_log): Remove.
16365	(align_labels_log): Remove.
16366	(align_functions_log): Remove.
16367	(align_loops_max_skip): Remove.
16368	(align_jumps_max_skip): Remove.
16369	(align_labels_max_skip): Remove.
16370	(align_functions_max_skip): Remove.
16371	(align_loops_value): Remove.
16372	(align_jumps_value): Remove.
16373	(align_labels_value): Remove.
16374	(align_functions_value): Remove.
16375	* output.h (label_to_alignment): Change return type to align_flags.
16376	(label_to_max_skip): Remove.
16377	* target.def: Remove loop_align_max_skip, label_align_max_skip,
16378	jump_align_max_skip macros.
16379	* targhooks.h (default_loop_align_max_skip): Remove.
16380	(default_label_align_max_skip): Likewise.
16381	(default_jump_align_max_skip): Likewise.
16382	(default_label_align_after_barrier_max_skip): Remove.
16383	* toplev.c (read_log_maxskip): Use ::normalize function.
16384	(parse_N_M): Remove not used argument and also call ::normalize.
16385	(parse_alignment_opts): Do not pass unused arguments.
16386	* varasm.c (assemble_start_function): Use directly align_functions
16387	instead of removed macros.
16388	* system.h: Do not poison removed macros.
16389
163902018-07-17  Jakub Jelinek  <jakub@redhat.com>
16391
16392	PR middle-end/86539
16393	* gimplify.c (gimplify_omp_for): Ensure taskloop firstprivatized init
16394	and cond temporaries don't have reference type if iterator has
16395	pointer type.  For init use &for_pre_body instead of pre_p if
16396	for_pre_body is non-empty.
16397
163982018-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
16399
16400	* config/rs6000/rs6000.md (trunc<mode>sf2): Expand truncates of
16401	double-double modes to SFmode directly directly.
16402	(trunc<mode>sf2_fprs): Delete.
16403
164042018-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
16405
16406	* config/rs6000/rs6000.c (init_float128_ibm): Use the correct names
16407	for conversions between IFmode and the decimal floating point modes.
16408	(init_float128_ieee): Use the correct names for conversions between
16409	KFmode and the decimal floating point modes.
16410
164112018-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
16412
16413	* config/rs6000/rs6000.c (init_float128_ibm): Use more correct names
16414	for the conversions between TDmode and IFmode.
16415	(init_float128_ieee): Use more correct names for the conversions
16416	between TDmode and KFmode.
16417
164182018-07-16  Jakub Jelinek  <jakub@redhat.com>
16419
16420	PR tree-optimization/86526
16421	* builtins.c (expand_builtin_memcmp): Formatting fixes.
16422	(inline_expand_builtin_string_cmp): Likewise.
16423	(inline_string_cmp): Likewise.  Use c_readstr instead of
16424	builtin_memcpy_read_str.  Add unit_mode temporary.
16425
164262018-07-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16427
16428	PR middle-end/86528
16429	* builtins.c (check_access): Bail out if range[0] is no INTEGER_CST.
16430	* expr.c (string_constant): Fix the element size of ARRAY_TYPE.
16431
164322018-07-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
16433
16434	* doc/extend.texi (PowerPC AltiVec Built-in Functions):
16435	Alphabetize prototypes of built-in functions, separating out
16436	built-in functions that are listed in this section but should be
16437	described elsewhere.
16438
164392018-07-16  Uros Bizjak  <ubizjak@gmail.com>
16440
16441	PR target/86511
16442	* expmed.c (emit_store_flag): Do not emit setcc followed by a
16443	conditional move when trapping comparison was split to a
16444	non-trapping one (and vice versa).
16445
164462018-07-16  Ilya Leoshkevich  <iii@linux.ibm.com>
16447
16448	* config/s390/s390.c (s390_function_profiler): Generate nops
16449	instead of profiler call sequences.
16450	* config/s390/s390.opt: Add the new option.
16451
164522018-07-16  Ilya Leoshkevich  <iii@linux.ibm.com>
16453
16454	* config/s390/s390.c (s390_function_profiler): Generate
16455	__mcount_loc section.
16456	* config/s390/s390.opt: Add the new option.
16457
164582018-07-16  Ilya Leoshkevich  <iii@linux.ibm.com>
16459
16460	* common.opt: Add the new warning.
16461	* config/s390/s390.c (s390_function_profiler): Emit "brasl
16462	%r0,__fentry__" when -mfentry is specified.
16463	(s390_option_override_internal): Disallow -mfentry for 31-bit
16464	CPUs.
16465	* config/s390/s390.opt: Add the new option.
16466
164672018-07-16  Richard Biener  <rguenther@suse.de>
16468
16469	PR lto/86523
16470	* dwarf2out.c (dwarf2out_register_external_die): Assign DIE parents
16471	for function-local FUNCTION_DECL and RESULT_DECL immediately.
16472
164732018-07-16  Martin Liska  <mliska@suse.cz>
16474
16475	PR ipa/86529
16476	* ipa-pure-const.c (malloc_candidate_p): Revert ::get
16477	to ::get_create.
16478
164792017-07-16  Claudiu Zissulescu  <claziss@synopsys.com>
16480
16481	* config/arc/arcHS.md: Update ARCHS scheduling rules.
16482
164832017-07-16  Claudiu Zissulescu  <claziss@synopsys.com>
16484
16485	* config/arc/arc-arch.h (arc_tune_attr): Add new tune parameters
16486	for ARCHS4x.
16487	* config/arc/arc-cpus.def (hs4x): New cpu.
16488	(hs4xd): Likewise.
16489	* config/arc/arc-tables.opt: Regenerate.
16490	* config/arc/arc.c (arc_sched_issue_rate): New function.
16491	(TARGET_SCHED_ISSUE_RATE): Define.
16492	(TARGET_SCHED_EXPOSED_PIPELINE): Likewise.
16493	* config/arc/arc.md (attr type): Add fpu_fuse, fpu_sdiv, fpu_ddiv,
16494	fpu_cvt.
16495	(attr tune): Add ARCHS4x tune values.
16496	(attr tune_dspmpy): Define.
16497	(*tst): Correct instruction type.
16498	* config/arc/arcHS.md: Don't use this automaton for ARCHS4x cpus.
16499	* config/arc/arcHS4x.md: New file.
16500	* config/arc/fpu.md: Update instruction type attributes.
16501	* config/arc/t-multilib: Regenerate.
16502
165032018-07-16  Tom de Vries  <tdevries@suse.de>
16504
16505	PR debug/86455
16506	* var-tracking.c (vt_initialize): Fix pre_dec handling.
16507
165082018-07-16  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16509
16510	* config/aarch64/atomics.md (aarch64_store_execlusive<mode>): Add
16511	early clobber.
16512
165132018-07-16  Eric Botcazou  <ebotcazou@adacore.com>
16514
16515	PR tree-optimization/86514
16516	* tree-ssa-reassoc.c (init_range_entry) <CASE_CONVERT>: Return for a
16517	conversion to a boolean type from a type with greater precision.
16518
165192018-07-16  Tom de Vries  <tdevries@suse.de>
16520
16521	* var-tracking.c (vt_initialize): Print adjusted insn slim if
16522	dump_flags request TDF_SLIM.
16523
165242018-07-16  Aldy Hernandez  <aldyh@redhat.com>
16525
16526	* fold-const.c (int_const_binop_1): Abstract...
16527	(wide_int_binop): ...wide int code here.
16528	(poly_int_binop): ...poly int code here.
16529	Abstract the rest of int_const_binop_1 into int_const_binop.
16530	* fold-const.h (wide_int_binop): New.
16531	* tree-vrp.c (vrp_int_const_binop): Call wide_int_binop.
16532	Remove useless PLUS/MINUS_EXPR case.
16533	(zero_nonzero_bits_from_vr): Move wide int code...
16534	(zero_nonzero_bits_from_bounds): ...here.
16535	(extract_range_from_binary_expr_1): Move mask optimization code...
16536	(range_easy_mask_min_max): ...here.
16537	* tree-vrp.h (zero_nonzero_bits_from_bounds): New.
16538	(range_easy_mask_min_max): New.
16539
165402018-07-15  Jeff Law  <law@redhat.com>
16541
16542	PR target/85993
16543	* config/sh/sh.c (output_mi_thunk): Remove dead conditional
16544	block.
16545
165462018-07-14  Jim Wilson  <jimw@sifive.com>
16547
16548	* config/riscv/linux.h (TARGET_ASM_FILE_END): New.
16549
165502018-07-14  Paul Koning  <ni1d@arrl.net>
16551
16552	* config/pdp11/pdp11.c (pdp11_rtx_costs): Bugfixes.
16553
165542018-07-13  Jan Hubicka  <hubicka@ucw.cz>
16555
16556	* lto-streamer-out.c (copy_function_or_variable): Dump info about
16557	copying section.
16558
165592018-07-13  Bill Schmidt  <wschmidt@linux.ibm.com>
16560	    Steve Munroe  <munroesj52@gmail.com>
16561
16562	* config/rs6000/emmintrin.h (_mm_and_si128): New function.
16563	(_mm_andnot_si128): Likewise.
16564	(_mm_or_si128): Likewise.
16565	(_mm_xor_si128): Likewise.
16566
165672018-07-13  Qing Zhao  <qing.zhao@oracle.com>
16568
16569	PR middle-end/78809
16570	* builtins.c (expand_builtin_memcmp): Inline the calls first
16571	when result_eq is false.
16572	(expand_builtin_strcmp): Inline the calls first.
16573	(expand_builtin_strncmp): Likewise.
16574	(inline_string_cmp): New routine. Expand a string compare
16575	call by using a sequence of char comparison.
16576	(inline_expand_builtin_string_cmp): New routine. Inline expansion
16577	a call to str(n)cmp/memcmp.
16578	* doc/invoke.texi (--param builtin-string-cmp-inline-length):
16579	New option.
16580	* params.def (BUILTIN_STRING_CMP_INLINE_LENGTH): New.
16581
165822018-07-13  Richard Earnshaw  <rearnsha@arm.com>
16583
16584	* config/arm/driver-arm.c: Include arm-native.h.
16585	(host_detect_local_cpu): Use auto-generated data tables.
16586	(vendors, arm_cpu_table): Delete.  Move part information to ...
16587	* config/arm/arm-cpus.in: ... here.
16588	* config/arm/parsecpu.awk (gen_native): New function.
16589	(vendor, part): New CPU fields.
16590	(END): Add support for building the native CPU detection tables.
16591	* config/arm/t-arm (arm-native.h): Add build rule.
16592	(driver-arm.o): Add dependency on arm-native.h.
16593
165942018-07-13  Richard Biener  <rguenther@suse.de>
16595
16596	PR middle-end/85974
16597	* match.pd (addr1 - addr2): Allow either of the operand to
16598	have a conversion.
16599
166002018-07-13  Tom de Vries  <tdevries@suse.de>
16601
16602	* tree-inline.c (remap_ssa_name): Save and reuse debug exprs generated
16603	in remap_ssa_name.
16604
166052018-07-13  Jackson Woodruff  <jackson.woodruff@arm.com>
16606
16607	* config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp): Use
16608	arrays instead of numbered variables.
16609
166102018-07-13  Eric Botcazou  <ebotcazou@adacore.com>
16611
16612	* config/sparc/sparc-protos.h (sparc_compute_frame_size): Delete.
16613	* config/sparc/sparc.c (sparc_compute_frame_size): Make static.
16614
166152018-07-13  Richard Biener  <rguenther@suse.de>
16616
16617	PR debug/86452
16618	* dwarf2out.c (gen_type_die_with_usage): Use scope_die_for
16619	instead of get_context_die.
16620
166212018-07-13  Kugan Vivekanandarajah  <kuganv@linaro.org>
16622	    Richard Biener  <rguenther@suse.de>
16623
16624	PR middle-end/86489
16625	* tree-ssa-loop-niter.c (number_of_iterations_popcount): Check
16626	that the loop latch destination where phi is defined.
16627
166282018-07-12  Kito Cheng  <kito.cheng@gmail.com>
16629
16630	* config/riscv/riscv.c (enum riscv_privilege_levels): Add UNKNOWN_MODE.
16631	(riscv_expand_epilogue): Add assertion to check interrupt mode.
16632	(riscv_set_current_function): Extract getting interrupt type to new
16633	function.
16634	(riscv_get_interrupt_type): New function.
16635	(riscv_merge_decl_attributes): New function, checking interrupt type is
16636	same.
16637	(TARGET_MERGE_DECL_ATTRIBUTES): Define.
16638
166392018-07-12  Paul Koning  <ni1d@arrl.net>
16640
16641	* config/pdp11/pdp11.c (pdp11_output_def): Fix typo in .set
16642	directive.
16643
166442018-07-12  Paul Koning  <ni1d@arrl.net>
16645
16646	* doc/rtl.texi (REG_NONNEG): Remove decrement and branch until
16647	zero reference, add doloop_end instead.
16648	* doc/md.texi (decrement_and_branch_until_zero): Remove.
16649	(Looping patterns): Remove decrement_and_branch_until_zero.  Add
16650	detail for doloop_end.
16651
166522018-07-12  Martin Sebor  <msebor@redhat.com>
16653
16654	PR c/86453
16655	* attribs.c (decl_attributes): Reject conflicting attributes before
16656	calling attribute handlers.
16657
166582018-07-12  Jan Hubicka  <hubicka@ucw.cz>
16659
16660	* dumpfile.c (gcc::dump_manager::get_dump_file_name): Add PART
16661	 parameter.
16662	(gcc::dump_manager::get_dump_file_name): likewise.
16663	(dump_begin): Likewise.
16664	* dumpfile.h (dump_begin): Update prototype.
16665	(gcc::dump_manager::get_dump_file_name,
16666	gcc::dump_manager::get_dump_file_name): Update prototype.
16667
166682018-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
16669
16670	* internal-fn.h (vectorizable_internal_fn_p): New function.
16671	* tree-vect-slp.c (compatible_calls_p): Likewise.
16672	(vect_build_slp_tree_1): Remove nops argument.  Handle calls
16673	to internal functions.
16674	(vect_build_slp_tree_2): Update call to vect_build_slp_tree_1.
16675
166762018-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
16677
16678	* fold-const.h (inverse_conditions_p): Declare.
16679	* fold-const.c (inverse_conditions_p): New function.
16680	* match.pd: Use inverse_conditions_p.  Add folds of view_converts
16681	that test the inverse condition of a conditional internal function.
16682	* internal-fn.h (vectorized_internal_fn_supported_p): Declare.
16683	* internal-fn.c (internal_fn_mask_index): Handle conditional
16684	internal functions.
16685	(vectorized_internal_fn_supported_p): New function.
16686	* tree-if-conv.c: Include internal-fn.h and fold-const.h.
16687	(any_pred_load_store): Replace with...
16688	(need_to_predicate): ...this new variable.
16689	(redundant_ssa_names): New variable.
16690	(ifcvt_can_use_mask_load_store): Move initial checks to...
16691	(ifcvt_can_predicate): ...this new function.  Handle tree codes
16692	for which a conditional internal function exists.
16693	(if_convertible_gimple_assign_stmt_p): Use ifcvt_can_predicate
16694	instead of ifcvt_can_use_mask_load_store.  Update after variable
16695	name change.
16696	(predicate_load_or_store): New function, split out from
16697	predicate_mem_writes.
16698	(check_redundant_cond_expr): New function.
16699	(value_available_p): Likewise.
16700	(predicate_rhs_code): Likewise.
16701	(predicate_mem_writes): Rename to...
16702	(predicate_statements): ...this.  Use predicate_load_or_store
16703	and predicate_rhs_code.
16704	(combine_blocks, tree_if_conversion): Update after above name changes.
16705	(ifcvt_local_dce): Handle redundant_ssa_names.
16706	* tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Handle
16707	general conditional functions.
16708	* tree-vect-stmts.c (vectorizable_call): Likewise.
16709
167102018-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
16711	    Alan Hayward  <alan.hayward@arm.com>
16712	    David Sherwood  <david.sherwood@arm.com>
16713
16714	* internal-fn.h (can_interpret_as_conditional_op_p): Declare.
16715	* internal-fn.c (can_interpret_as_conditional_op_p): New function.
16716	* tree-ssa-math-opts.c (convert_mult_to_fma_1): Handle conditional
16717	plus and minus and convert them into IFN_COND_FMA-based sequences.
16718	(convert_mult_to_fma): Handle conditional plus and minus.
16719
167202018-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
16721
16722	* doc/md.texi (cond_fma, cond_fms, cond_fnma, cond_fnms): Document.
16723	* optabs.def (cond_fma_optab, cond_fms_optab, cond_fnma_optab)
16724	(cond_fnms_optab): New optabs.
16725	* internal-fn.def (COND_FMA, COND_FMS, COND_FNMA, COND_FNMS): New
16726	internal functions.
16727	(FMA): Use DEF_INTERNAL_FLT_FN rather than DEF_INTERNAL_FLT_FLOATN_FN.
16728	* internal-fn.h (get_conditional_internal_fn): Declare.
16729	(get_unconditional_internal_fn): Likewise.
16730	* internal-fn.c (cond_ternary_direct): New macro.
16731	(expand_cond_ternary_optab_fn): Likewise.
16732	(direct_cond_ternary_optab_supported_p): Likewise.
16733	(FOR_EACH_COND_FN_PAIR): Likewise.
16734	(get_conditional_internal_fn): New function.
16735	(get_unconditional_internal_fn): Likewise.
16736	* gimple-match.h (gimple_match_op::MAX_NUM_OPS): Bump to 5.
16737	(gimple_match_op::gimple_match_op): Add a new overload for 5
16738	operands.
16739	(gimple_match_op::set_op): Likewise.
16740	(gimple_resimplify5): Declare.
16741	* genmatch.c (decision_tree::gen): Generate simplifications for
16742	5 operands.
16743	* gimple-match-head.c (gimple_simplify): Define an overload for
16744	5 operands.  Handle calls with 5 arguments in the top-level overload.
16745	(convert_conditional_op): Handle conversions from unconditional
16746	internal functions to conditional ones.
16747	(gimple_resimplify5): New function.
16748	(build_call_internal): Pass a fifth operand.
16749	(maybe_push_res_to_seq): Likewise.
16750	(try_conditional_simplification): Try converting conditional
16751	internal functions to unconditional internal functions.
16752	Handle 3-operand unconditional forms.
16753	* match.pd (UNCOND_TERNARY, COND_TERNARY): Operator lists.
16754	Define ternary equivalents of the current rules for binary conditional
16755	internal functions.
16756	* config/aarch64/aarch64.c (aarch64_preferred_else_value): Handle
16757	ternary operations.
16758	* config/aarch64/iterators.md (UNSPEC_COND_FMLA, UNSPEC_COND_FMLS)
16759	(UNSPEC_COND_FNMLA, UNSPEC_COND_FNMLS): New unspecs.
16760	(optab): Handle them.
16761	(SVE_COND_FP_TERNARY): New int iterator.
16762	(sve_fmla_op, sve_fmad_op): New int attributes.
16763	* config/aarch64/aarch64-sve.md (cond_<optab><mode>)
16764	(*cond_<optab><mode>_2, *cond_<optab><mode_4)
16765	(*cond_<optab><mode>_any): New SVE_COND_FP_TERNARY patterns.
16766
167672018-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
16768
16769	* target.def (preferred_else_value): New target hook.
16770	* doc/tm.texi.in (TARGET_PREFERRED_ELSE_VALUE): New hook.
16771	* doc/tm.texi: Regenerate.
16772	* targhooks.h (default_preferred_else_value): Declare.
16773	* targhooks.c (default_preferred_else_value): New function.
16774	* internal-fn.h (conditional_internal_fn_code): Declare.
16775	* internal-fn.c (FOR_EACH_CODE_MAPPING): New macro.
16776	(get_conditional_internal_fn): Use it.
16777	(conditional_internal_fn_code): New function.
16778	* gimple-match.h (gimple_match_cond): New struct.
16779	(gimple_match_op): Add a cond member function.
16780	(gimple_match_op::gimple_match_op): Update all forms to take a
16781	gimple_match_cond.
16782	* genmatch.c (expr::gen_transform): Use the same condition as res_op
16783	for the suboperation, but don't specify a particular else_value.
16784	* tree-ssa-sccvn.c (vn_nary_simplify, vn_reference_lookup_3)
16785	(visit_nary_op, visit_reference_op_load): Pass
16786	gimple_match_cond::UNCOND to the gimple_match_op constructor.
16787	* gimple-match-head.c: Include tree-eh.h
16788	(convert_conditional_op): New function.
16789	(maybe_resimplify_conditional_op): Likewise.
16790	(gimple_resimplify1): Call maybe_resimplify_conditional_op.
16791	(gimple_resimplify2): Likewise.
16792	(gimple_resimplify3): Likewise.
16793	(gimple_resimplify4): Likewise.
16794	(maybe_push_res_to_seq): Return null for conditional operations.
16795	(try_conditional_simplification): New function.
16796	(gimple_simplify): Call it.  Pass conditions to the gimple_match_op
16797	constructor.
16798	* match.pd: Fold VEC_COND_EXPRs of an IFN_COND_* call to a new
16799	IFN_COND_* call.
16800	* config/aarch64/aarch64.c (aarch64_preferred_else_value): New
16801	function.
16802	(TARGET_PREFERRED_ELSE_VALUE): Redefine.
16803
168042018-07-12  Jan Hubicka  <hubicka@ucw.cz>
16805
16806	* lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream
16807	DECL_FCONTEXT
16808	(hash_tree): Do not hash DECL_FCONTEXT
16809	* tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
16810	Do not stream DECL_FCONTEXT.
16811	* tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
16812	* tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT.
16813
168142018-07-12  Richard Biener  <rguenther@suse.de>
16815
16816	PR debug/86462
16817	* dwarf2out.c (gen_block_die): Only output blocks when they have
16818	at least one !DECL_IGNORED_P variable.
16819
168202018-07-12  Richard Biener  <rguenther@suse.de>
16821
16822	PR target/84829
16823	* config/gnu-user.h (GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC):
16824	Remove -mieee-fp handling.
16825
168262018-07-12  Richard Biener  <rguenther@suse.de>
16827
16828	* tree-ssa-sccvn.c (vn_lookup_simplify_result): Remove bogus
16829	left-over from last patch.
16830
168312018-07-12  Jakub Jelinek  <jakub@redhat.com>
16832
16833	PR tree-optimization/86492
16834	* gimple-ssa-store-merging.c
16835	(imm_store_chain_info::coalesce_immediate_stores): Call
16836	check_no_overlap even for the merge_overlapping case.  Formatting fix.
16837
168382018-07-12  Richard Biener  <rguenther@suse.de>
16839
16840	PR middle-end/86479
16841	* fold-const.c (fold_binary_op_with_conditional_arg): Do not
16842	move possibly trapping operations into the conditional.
16843
168442018-07-12  Richard Biener  <rguenther@suse.de>
16845
16846	* tree-ssa-sccvn.c (mprts_hook_cnt): Remove.
16847	(vn_lookup_simplify_result): Remove recursion limit applied
16848	here.
16849	(vn_nary_build_or_lookup_1): Adjust.
16850	(try_to_simplify): Likewise.
16851	* gimple-match-head.c (gimple_resimplify1): Instead apply one
16852	here.
16853	(gimple_resimplify2): Likewise.
16854	(gimple_resimplify3): Likewise.
16855	(gimple_resimplify4): Likewise.
16856
168572018-07-11  Jakub Jelinek  <jakub@redhat.com>
16858
16859	* config/i386/avx512bitalgintrin.h (_mm512_mask_bitshuffle_epi64_mask):
16860	Use __mmask64 type instead of __mmask8 for __M argument.
16861	* config/i386/avx512fintrin.h (_mm512_mask_xor_epi64,
16862	_mm512_maskz_xor_epi64): Use __mmask8 type instead of __mmask16 for
16863	__U argument.
16864	(_mm512_mask_cmpneq_epi64_mask): Use __mmask8 type instead of
16865	__mmask16 for __M argument.
16866	(_mm512_maskz_insertf32x4, _mm512_maskz_inserti32x4,
16867	_mm512_mask_insertf32x4, _mm512_mask_inserti32x4): Cast last argument
16868	to __mmask16 instead of __mmask8.
16869	* config/i386/avx512vlintrin.h (_mm_mask_add_ps, _mm_maskz_add_ps,
16870	_mm256_mask_add_ps, _mm256_maskz_add_ps, _mm_mask_sub_ps,
16871	_mm_maskz_sub_ps, _mm256_mask_sub_ps, _mm256_maskz_sub_ps,
16872	_mm256_maskz_cvtepi32_ps, _mm_maskz_cvtepi32_ps): Use __mmask8 type
16873	instead of __mmask16 for __U argument.
16874	* config/i386/avx512vlbwintrin.h (_mm_mask_cmp_epi8_mask): Use
16875	__mmask16 instead of __mmask8 for __U argument.
16876	(_mm256_mask_cmp_epi8_mask): Use __mmask32 instead of __mmask16 for
16877	__U argument.
16878	(_mm256_cmp_epi8_mask): Use __mmask32 return type instead of
16879	__mmask16.
16880	(_mm_mask_cmp_epu8_mask): Use __mmask16 instead of __mmask8 for __U
16881	argument.
16882	(_mm256_mask_cmp_epu8_mask): Use __mmask32 instead of __mmask16 for
16883	__U argument.
16884	(_mm256_cmp_epu8_mask): Use __mmask32 return type instead of
16885	__mmask16.
16886	(_mm_mask_cmp_epi16_mask): Cast last argument to __mmask8 instead
16887	of __mmask16.
16888	(_mm256_mask_cvtepi8_epi16): Use __mmask16 instead of __mmask32 for
16889	__U argument.
16890	(_mm_mask_cvtepi8_epi16): Use __mmask8 instead of __mmask32 for
16891	__U argument.
16892	(_mm256_mask_cvtepu8_epi16): Use __mmask16 instead of __mmask32 for
16893	__U argument.
16894	(_mm_mask_cvtepu8_epi16): Use __mmask8 instead of __mmask32 for
16895	__U argument.
16896	(_mm256_mask_cmpneq_epu8_mask, _mm256_mask_cmplt_epu8_mask,
16897	_mm256_mask_cmpge_epu8_mask, _mm256_mask_cmple_epu8_mask): Change
16898	return type as well as __M argument type and all casts from __mmask8
16899	to __mmask32.
16900	(_mm256_mask_cmpneq_epu16_mask, _mm256_mask_cmplt_epu16_mask,
16901	_mm256_mask_cmpge_epu16_mask, _mm256_mask_cmple_epu16_mask): Change
16902	return type as well as __M argument type and all casts from __mmask8
16903	to __mmask16.
16904	(_mm256_mask_cmpneq_epi8_mask, _mm256_mask_cmplt_epi8_mask,
16905	_mm256_mask_cmpge_epi8_mask, _mm256_mask_cmple_epi8_mask): Change
16906	return type as well as __M argument type and all casts from __mmask8
16907	to __mmask32.
16908	(_mm256_mask_cmpneq_epi16_mask, _mm256_mask_cmplt_epi16_mask,
16909	_mm256_mask_cmpge_epi16_mask, _mm256_mask_cmple_epi16_mask): Change
16910	return type as well as __M argument type and all casts from __mmask8
16911	to __mmask16.
16912	* config/i386/avx512vbmi2vlintrin.h (_mm_mask_shrdi_epi32,
16913	_mm_mask_shldi_epi32): Cast last argument to __mmask8 instead of
16914	__mmask16.
16915
169162018-07-11  Grazvydas Ignotas  <notasas@gmail.com>
16917
16918	* config/i386/avx512bwintrin.h: (_mm512_mask_cmp_epi8_mask,
16919	_mm512_mask_cmp_epu8_mask): Use __mmask64 type instead of __mmask32
16920	for __U argument.
16921
169222018-07-11  Paul Koning  <ni1d@arrl.net>
16923
16924	* doc/md.texi (define_subst): Document how multiple occurrences of
16925	the same argument in the replacement pattern are handled.
16926
169272018-07-11  Paul Koning  <ni1d@arrl.net>
16928
16929	* doc/extend.texi (Common Variable Attributes): Move "mode" into
16930	alphabetical order.
16931	(Common Type Attributes): Add "mode" attribute.
16932
169332018-07-11  Jan Hubicka  <hubicka@ucw.cz>
16934
16935	* lto-streamer-out.c (DFS::DFS_write_tree_body): Do not
16936	stream DECL_ORIGINAL_TYPE.
16937	(DFS::DFS_write_tree_body): Drop hack handling local external decls.
16938	(hash_tree): Do not walk DECL_ORIGINAL_TYPE.
16939	* tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
16940	Do not walk original type.
16941	* tree-streamer-out.c (streamer_write_chain): Drop hack handling
16942	external decls.
16943	(write_ts_decl_non_common_tree_pointers): Do not stream
16944	DECL_ORIGINAL_TYPE
16945	* tree.c (free_lang_data_in_decl): Clear DECL_ORIGINAL_TYPE.
16946	(find_decls_types_r): Do not walk DEC_ORIGINAL_TYPE.
16947
169482018-07-11  Aldy Hernandez  <aldyh@redhat.com>
16949
16950	* tree-ssa-threadupdate.c (thread_through_all_blocks): Do not jump
16951	thread twice from the same starting edge.
16952
169532018-07-11  Aldy Hernandez  <aldyh@redhat.com>
16954
16955	* vr-values.c (gimple_stmt_nonzero_p): Abstract common code to...
16956	* gimple.c (gimple_call_nonnull_result_p): ...here...
16957	(gimple_call_nonnull_arg): ...and here.
16958	* gimple.h (gimple_call_nonnull_result_p): New.
16959	(gimple_call_nonnull_arg): New.
16960
169612018-07-11  Richard Earnshaw  <rearnsha@arm.com>
16962
16963	* config/arm/arm-cpus.in: Move information from fpu field of each
16964	cpu definition to the isa field.
16965	* config/arm/parsecpu.awk (fpu): Delete match rule.
16966	(gen_comm_data): Don't add bits from the CPU's FPU entry.
16967
169682018-07-11  Richard Biener  <rguenther@suse.de>
16969
16970	PR debug/86457
16971	* dwarf2out.c (init_sections_and_labels): Use
16972	output_asm_line_debug_info consistently.
16973	(dwarf2out_early_finish): Likewise.
16974	(dwarf2out_finish): Remove DW_AT_stmt_list from early generated
16975	type units.
16976
169772018-07-11  Richard Biener  <rguenther@suse.de>
16978
16979	* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1):
16980	Rework father_bb setting in a way to avoid propagating constants
16981	multiple times on a loop body.
16982
169832018-07-10  Mark Wielaard  <mark@klomp.org>
16984
16985	PR debug/86459
16986	* dwarf2out.c (output_macinfo_op): Fix dwarf_FORM typo in gcc_assert.
16987
169882018-07-10  Richard Biener  <rguenther@suse.de>
16989
16990	* hash-map.h (hash_map::iterator::operator*): Return
16991	references to key and value.
16992
169932018-07-10  Jakub Jelinek  <jakub@redhat.com>
16994
16995	PR c++/86443
16996	* gimplify.c (find_combined_omp_for): Add DATA argument, in addition
16997	to finding the inner OMP_FOR/OMP_SIMD stmt find non-trivial wrappers,
16998	BLOCKs with BLOCK_VARs, OMP_PARALLEL in between, OMP_FOR in between.
16999	(gimplify_omp_for): For composite loops, move outer
17000	OMP_{DISTRIBUTE,TASKLOOP,FOR,PARALLEL} right around innermost
17001	OMP_FOR/OMP_SIMD if there are any non-trivial wrappers.  For class
17002	iterators add any needed clauses.  Allow OMP_FOR_ORIG_DECLS to contain
17003	TREE_LIST for both the original class iterator and the "last" helper
17004	var.  Gimplify OMP_FOR_PRE_BODY before the outermost composite
17005	loop, remember has_decl_expr from outer composite loops for the
17006	innermost OMP_SIMD in TREE_PRIVATE bit on OMP_FOR_INIT.
17007
170082018-07-09  Martin Sebor  <msebor@redhat.com>
17009
17010	PR middle-end/77357
17011	PR middle-end/86428
17012	* builtins.c (c_strlen): Avoid out-of-bounds warnings when
17013	accessing implicitly initialized array elements.
17014	* expr.c (string_constant): Handle string initializers of
17015	character arrays within aggregates.
17016	* gimple-fold.c (fold_array_ctor_reference): Add argument.
17017	Store element offset.  As a special case, handle zero size.
17018	(fold_nonarray_ctor_reference): Same.
17019	(fold_ctor_reference): Add argument.  Store subobject offset.
17020	* gimple-fold.h (fold_ctor_reference): Add argument.
17021
170222018-07-09  Paul Koning  <ni1d@arrl.net>
17023
17024	* config/pdp11/pdp11.c (pdp11_addr_cost): New function.
17025	(pdp11_insn_cost): New function.
17026	(pdp11_md_asm_adjust): New function.
17027	(TARGET_INVALID_WITHIN_DOLOOP): Define.
17028	(pdp11_rtx_costs): Update to match machine better.
17029	(output_addr_const_pdp11): Correct format mismatch warnings.
17030	* config/pdp11/pdp11.h (SLOW_BYTE_ACCESS): Correct definition.
17031	* config/pdp11/pdp11.md: General change to add base_cost and/or
17032	length attributes for use by new pdp11_insn_cost function.
17033	(MIN_BRANCH): Correct definition.
17034	(MIN_SOB): Ditto.
17035	(doloop_end): Use standard pattern name for looping pattern.
17036	(doloop_end_nocc): New.
17037	(movsf): Add another constraint alternative.
17038	(zero_extendqihi2): Add constraint alternatives for not in place
17039	extend.
17040	(zero_extendhisi2): Remove.
17041	(shift patterns): Add CC handling variants.
17042	(bswaphi2): New.
17043	(bswapsi2): New.
17044	(rothi3): New.
17045	(define_peephole2): New peephole to recognize mov that sets CC for
17046	subsequent test.
17047
170482018-07-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17049
17050	* config/sparc/sparc.c (sparc_fold_builtin) <SPARC_BUILTIN_PDIST,
17051	SPARC_BUILTIN_PDISTN>: Adapt for signature change of wi::neg,
17052	wi::add.
17053
170542018-07-09  Jakub Jelinek  <jakub@redhat.com>
17055
17056	PR c/86420
17057	* real.c (real_nextafter): Return true if result is denormal.
17058
170592018-07-09  Martin Liska  <mliska@suse.cz>
17060
17061	* common.opt: Add back wrongly removed attribute.
17062
170632018-07-09  Richard Biener  <rguenther@suse.de>
17064
17065	PR debug/86413
17066	* dwarf2out.c (gen_block_die): For an early generated DIE
17067	always output high/low PC attributes.
17068
170692018-07-09  Tom de Vries  <tdevries@suse.de>
17070
17071	* cfgexpand.c (expand_debug_source_expr): Handle VAR_DECL.
17072	* tree-inline.c (remap_ssa_name): Handle default def ssa_name mapping
17073	onto VAR_DECL with abstract origin.
17074
170752018-07-07  Jim Wilson  <jimw@sifive.com>
17076
17077	* config/riscv/riscv.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): New.
17078
170792018-07-07  Tom de Vries  <tdevries@suse.de>
17080
17081	* tree-dfa.c (dump_enumerated_decls): Handle cfun->cfg == NULL.
17082
170832018-07-07  Aldy Hernandez  <aldyh@redhat.com>
17084
17085	* tree-vrp.c (vrp_int_const_binop): Change overflow type to
17086	overflow_type.
17087	(combine_bound): Use wide-int overflow calculation instead of
17088	rolling our own.
17089	* calls.c (maybe_warn_alloc_args_overflow): Change overflow type to
17090	overflow_type.
17091	* fold-const.c (int_const_binop_2): Same.
17092	(extract_muldiv_1): Same.
17093	(fold_div_compare): Same.
17094	(fold_abs_const): Same.
17095	* match.pd: Same.
17096	* poly-int.h (add): Same.
17097	(sub): Same.
17098	(neg): Same.
17099	(mul): Same.
17100	* predict.c (predict_iv_comparison): Same.
17101	* profile-count.c (slow_safe_scale_64bit): Same.
17102	* simplify-rtx.c (simplify_const_binary_operation): Same.
17103	* tree-chrec.c (tree_fold_binomial): Same.
17104	* tree-data-ref.c (split_constant_offset_1): Same.
17105	* tree-if-conv.c (idx_within_array_bound): Same.
17106	* tree-scalar-evolution.c (iv_can_overflow_p): Same.
17107	* tree-ssa-phiopt.c (minmax_replacement): Same.
17108	* tree-vect-loop.c (is_nonwrapping_integer_induction): Same.
17109	* tree-vect-stmts.c (vect_truncate_gather_scatter_offset): Same.
17110	* vr-values.c (vr_values::adjust_range_with_scev): Same.
17111	* wide-int.cc (wi::add_large): Same.
17112	(wi::mul_internal): Same.
17113	(wi::sub_large): Same.
17114	(wi::divmod_internal): Same.
17115	* wide-int.h: Change overflow type to overflow_type for neg, add,
17116	mul, smul, umul, div_trunc, div_floor, div_ceil, div_round,
17117	mod_trunc, mod_ceil, mod_round, add_large, sub_large,
17118	mul_internal, divmod_internal.
17119	(overflow_type): New enum.
17120	(accumulate_overflow): New.
17121
171222018-07-06  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
17123
17124	* tree-ssa-phiopt.c (cond_removal_in_popcount_pattern): New.
17125	(tree_ssa_phiopt_worker): Call cond_removal_in_popcount_pattern.
17126
171272018-07-06  Kugan Vivekanandarajah  <kuganv@linaro.org>
17128
17129	* tree-ssa-loop-niter.c (number_of_iterations_popcount): If popcount
17130	argument is checked for zero before entering loop, avoid checking again.
17131
171322018-07-06  Kugan Vivekanandarajah  <kuganv@linaro.org>
17133
17134	* gimplify.h (generic_expr_could_trap_p): Set as global function.
17135	* gimplify.h (generic_expr_could_trap_p): Likwise.
17136	* tree-scalar-evolution.c (expression_expensive_p): Handle COND_EXPR.
17137
171382018-07-06  Jakub Jelinek  <jakub@redhat.com>
17139
17140	PR tree-optimization/86401
17141	* fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Move the
17142	((A & N) + B) & M -> (A + B) & M etc. optimization into ...
17143	(fold_bit_and_mask): ... here.  New helper function for match.pd.
17144	* fold-const.h (fold_bit_and_mask): Declare.
17145	* match.pd (((A & N) + B) & M -> (A + B) & M): New optimization.
17146
171472018-07-06  Peter Bergner  <bergner@linux.ibm.com>
17148
17149	PR target/86324
17150	* target.def (translate_mode_attribute): New hook.
17151	* targhooks.h (default_translate_mode_attribute): Declare.
17152	* targhooks.c (default_translate_mode_attribute): New function.
17153	* doc/tm.texi.in (TARGET_TRANSLATE_MODE_ATTRIBUTE): New hook.
17154	* doc/tm.texi: Regenerate.
17155	* config/rs6000/rs6000.c (TARGET_TRANSLATE_MODE_ATTRIBUTE): Define.
17156	(rs6000_translate_mode_attribute): New function.
17157
171582018-07-06  Paul Koning  <ni1d@arrl.net>
17159
17160	* doc/md.texi (define_split): Document DONE and FAIL.
17161	(define_peephole2): Ditto.
17162
171632018-07-05  Jeff Law  <law@redhat.com>
17164
17165	PR tree-optimization/86010
17166	* tree-ssa-dse.c (compute_trims): More aggressively trim at
17167	both the head and tail of mem* and str* calls.
17168
171692018-07-05  Jim Wilson  <jimw@sifive.com>
17170
17171	* config.gcc (riscv*-*-*): When setting xlen, handle riscv-*.
17172
171732018-07-05  Indu Bhagat  <indu.bhagat@oracle.com>
17174
17175	* config/aarch64/aarch64-simd.md: correct flags text for
17176	MIN_EXPR replacement.
17177
171782018-07-05  James Clarke  <jrtc27@jrtc27.com>
17179
17180	* configure: Regenerated.
17181
171822018-07-05  Carl Love  <cel@us.ibm.com>
17183
17184	* config/rs6000/rs6000-c.c: Map ALTIVEC_BUILTIN_VEC_UNPACKH for
17185	float argument to VSX_BUILTIN_DOUBLEH_V4SF.
17186	Map ALTIVEC_BUILTIN_VEC_UNPACKL for float argument to
17187	VSX_BUILTIN_DOUBLEL_V4SF.
17188
171892018-07-05  Martin Sebor  <msebor@redhat.com>
17190
17191	PR c++/86400
17192	* tree-ssa-strlen.c (maybe_set_strlen_range): Use type size rather
17193	than its domain to compute its the upper bound of a char array.
17194
171952018-07-05  Nathan Sidwell  <nathan@acm.org>
17196
17197	Replace NO_IMPLICIT_EXTERN_C with SYSTEM_IMPLICIT_EXTERN_C.
17198	* doc/cpp.texi: Update comment.
17199	* doc/tm.texi: Rebuilt.
17200	* doc/tm.texi.in (NO_IMPLICIT_EXTERN_C): Replace with ...
17201	(SYSTEM_IMPLICIT_EXTERN_C): ... this, opposite sense.
17202	* doc/extend.texi (Backwards Compatibility): Clarify it is system
17203	headers affected by extern "C".
17204	* system.h: Poison NO_IMPLICIT_EXTERN_C.
17205	* config/alpha/alpha.h, config/arm/uclinux-elf.h,
17206	config/bfin/elf.h, config/cris/cris.h, config/darwin.h,
17207	config/dragonfly.h, config/freebsd.h, config/gnu-user.h,
17208	config/i386/cygming.h, config/i386/djgpp.h, config/i386/nto.h,
17209	config/ia64/hpux.h, config/lm32/lm32.h, config/lm32/uclinux-elf.h,
17210	config/lynx.h, config/mips/elf.h, config/mmix/mmix.h,
17211	config/netbsd.h, config/pa/pa-hpux.h, config/powerpcspe/sysv4.h,
17212	config/riscv/elf.h, config/rs6000/sysv4.h, config/rtems.h,
17213	config/s390/tpf.h, config/sh/newlib.h, config/sol2.h,
17214	config/sparc/openbsd64.h, config/sparc/sp-elf.h,
17215	config/sparc/sp64-elf.h, config/spu/spu.h,
17216	config/stormy16/stormy16.h, config/v850/v850.h,
17217	config/visium/visium.h, config/vx-common.h, config/xtensa/elf.h: Don't
17218	define NO_IMPLICIT_EXTERN_C.
17219	* config/rs6000/aix.h: Set SYSTEM_IMPLICIT_EXTERN_C.
17220
172212018-07-05  Tamar Christina  <tamar.christina@arm.com>
17222
17223	PR target/84711
17224	* config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE
17225	instead of GET_MODE_SIZE when comparing Units.
17226
172272018-07-05  Tamar Christina  <tamar.christina@arm.com>
17228
17229	PR target/84711
17230	* rtlanal.c (set_noop_p): Constrain on mode change,
17231	include hard-reg-set.h
17232
172332018-07-05  Tamar Christina  <tamar.christina@arm.com>
17234
17235	* config/aarch64/aarch64.c (aarch64_expand_movmem): Fix mode size.
17236
172372018-07-05  Jakub Jelinek  <jakub@redhat.com>
17238
17239	Revert
17240	2018-07-04  Maxim Ostapenko  <m.ostapenko@samsung.com>
17241
17242	PR sanitizer/84250
17243	* config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static
17244	libasan.
17245	* gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan.
17246
172472018-07-04  Maxim Ostapenko  <m.ostapenko@samsung.com>
17248
17249	PR sanitizer/84250
17250	* config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static
17251	libasan.
17252	* gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan.
17253
172542018-07-04  Eric Botcazou  <ebotcazou@adacore.com>
17255
17256	PR middle-end/86380
17257	* expmed.c (choose_multiplier): Fix incorrect comparison with mask.
17258
172592018-07-04  Aldy Hernandez  <aldyh@redhat.com>
17260
17261	* tree-vrp.c (extract_range_from_binary_expr_1): Initialize
17262	neg_*_op* variables.
17263
172642018-07-04  Martin Liska  <mliska@suse.cz>
17265
17266	* tree-switch-conversion.c: Define
17267	max_ratio_for_speed and max_ratio_for_size constants.
17268
172692018-07-04  Denys Vlasenko  <dvlasenk@redhat.com>
17270	    Martin Liska  <mliska@suse.cz>
17271
17272	PR middle-end/66240
17273	PR target/45996
17274	PR c/84100
17275	* common.opt: Rename align options with 'str_' prefix.
17276	* common/config/i386/i386-common.c (set_malign_value): New
17277	function.
17278	(ix86_handle_option): Use it to set -falign-* options/
17279	* config/aarch64/aarch64-protos.h (struct tune_params): Change
17280	type from int to string.
17281	* config/aarch64/aarch64.c: Update default values from int
17282	to string.
17283	* config/alpha/alpha.c (alpha_override_options_after_change):
17284	Likewise.
17285	* config/arm/arm.c (arm_override_options_after_change_1): Likewise.
17286	* config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print
17287	max skip conditionally.
17288	* config/i386/freebsd.h (SUBALIGN_LOG): New.
17289	(ASM_OUTPUT_MAX_SKIP_ALIGN): Print
17290	max skip conditionally.
17291	* config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print
17292	max skip conditionally.
17293	* config/i386/gnu-user.h (SUBALIGN_LOG): New.
17294	(ASM_OUTPUT_MAX_SKIP_ALIGN): Print
17295	max skip conditionally.
17296	* config/i386/i386.c (struct ptt): Change type from int to
17297	string.
17298	(ix86_default_align): Set default values.
17299	* config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Print
17300	max skip conditionally.
17301	* config/i386/iamcu.h (SUBALIGN_LOG): New.
17302	(ASM_OUTPUT_MAX_SKIP_ALIGN):
17303	* config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN):
17304	* config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print
17305	max skip conditionally.
17306	* config/i386/openbsdelf.h (SUBALIGN_LOG): New.
17307	(ASM_OUTPUT_MAX_SKIP_ALIGN) Print max skip conditionally.:
17308	* config/i386/x86-64.h (SUBALIGN_LOG): New.
17309	(ASM_OUTPUT_MAX_SKIP_ALIGN): Print
17310	max skip conditionally.
17311	(ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
17312	* config/ia64/ia64.c (ia64_option_override): Set default values
17313	for alignment options.
17314	* config/m68k/m68k.c: Handle new str_align_* options.
17315	* config/mips/mips.c (mips_set_compression_mode): Change
17316	type of constants.
17317	(mips_option_override): Set default values for options.
17318	* config/powerpcspe/powerpcspe.c (rs6000_option_override_internal):
17319	Likewise.
17320	* config/rs6000/rs6000.c (rs6000_option_override_internal):
17321	Likewise.
17322	* config/rx/rx.c (rx_option_override): Likewise.
17323	* config/rx/rx.h (JUMP_ALIGN): Use align_jumps_log.
17324	(LABEL_ALIGN): Use align_labels_log.
17325	(LOOP_ALIGN): Use align_loops_align.
17326	* config/s390/s390.c (s390_asm_output_function_label): Use new
17327	macros.
17328	* config/sh/sh.c (sh_override_options_after_change):
17329	Change type of constants.
17330	* config/spu/spu.c (spu_sched_init): Likewise.
17331	* config/sparc/sparc.c (sparc_option_override): Set default
17332	values for options.
17333	* config/visium/visium.c (visium_option_override): Likewise.
17334	* config/visium/visium.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Do not
17335	emit p2align format with last argument if it's not needed.
17336	* doc/invoke.texi: Document extended format of -falign-*.
17337	* final.c: Use align_labels alignment.
17338	* flags.h (struct target_flag_state): Change type to use
17339	align_flags.
17340	(struct align_flags_tuple): New.
17341	(struct align_flags): Likewise.
17342	(align_loops_log): Redefine macro to use new types.
17343	(align_loops_max_skip): Redefine macro to use new types.
17344	(align_jumps_log): Redefine macro to use new types.
17345	(align_jumps_max_skip): Redefine macro to use new types.
17346	(align_labels_log): Redefine macro to use new types.
17347	(align_labels_max_skip): Redefine macro to use new types.
17348	(align_functions_log): Redefine macro to use new types.
17349	(align_loops): Redefine macro to use new types.
17350	(align_jumps): Redefine macro to use new types.
17351	(align_labels): Redefine macro to use new types.
17352	(align_functions): Redefine macro to use new types.
17353	(align_functions_max_skip): Redefine macro to use new types.
17354	(align_loops_value): New macro.
17355	(align_jumps_value): New macro.
17356	(align_labels_value): New macro.
17357	(align_functions_value): New macro.
17358	* function.c (invoke_set_current_function_hook): Propagate
17359	alignment values from flags to global variables default in
17360	topleev.h.
17361	* ipa-icf.c (sem_function::equals_wpa): Use
17362	cl_optimization_option_eq instead of memcmp.
17363	* lto-streamer.h (cl_optimization_stream_out): Support streaming
17364	of string types.
17365	(cl_optimization_stream_in): Likewise.
17366	* optc-save-gen.awk: Support strings in cl_optimization.
17367	* opth-gen.awk: Likewise.
17368	* opts.c (finish_options): Remove error checking of invalid
17369	value ranges.
17370	(MAX_CODE_ALIGN): Remove.
17371	(MAX_CODE_ALIGN_VALUE): Likewise.
17372	(parse_and_check_align_values): New function.
17373	(check_alignment_argument): Likewise.
17374	(common_handle_option): Use check_alignment_argument.
17375	* opts.h (parse_and_check_align_values): Declare.
17376	* toplev.c (init_alignments): Remove.
17377	(read_log_maxskip): New.
17378	(parse_N_M): Likewise.
17379	(parse_alignment_opts): Likewise.
17380	(backend_init_target): Remove usage of init_alignments.
17381	* toplev.h (parse_alignment_opts): Declare.
17382	* tree-streamer-in.c (streamer_read_tree_bitfields): Add new
17383	argument.
17384	* tree-streamer-out.c (streamer_write_tree_bitfields): Likewise.
17385	* tree.c (cl_option_hasher::equal): New.
17386	* varasm.c: Use new global macros.
17387
173882018-07-04  Denys Vlasenko  <dvlasenk@redhat.com>
17389
17390	* config/i386/dragonfly.h: (ASM_OUTPUT_MAX_SKIP_ALIGN):
17391	Use a simpler align directive also if MAXSKIP = ALIGN-1.
17392	* config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
17393	* config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
17394	* config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
17395	* config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
17396	* config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove "If N
17397	is large, do at least 8 byte alignment" code. Add SUBALIGN_LOG
17398	define. Use a simpler align directive also if MAXSKIP = ALIGN-1.
17399	* config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
17400	* config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
17401	* config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
17402	* config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
17403
174042018-07-04  Martin Liska  <mliska@suse.cz>
17405	    Jonathan Wakely  <jwakely@redhat.com>
17406
17407	* coverage.c: Use correct type.
17408	* doc/invoke.texi: Language correction.
17409
174102018-07-03  H.J. Lu  <hongjiu.lu@intel.com>
17411
17412	PR target/85620
17413	* config/i386/i386.c (rest_of_insert_endbranch): Also generate
17414	ENDBRANCH for non-tail call which may return via indirect branch.
17415	* doc/extend.texi: Document indirect_return attribute.
17416
174172018-07-03  Martin Sebor  <msebor@redhat.com>
17418
17419	PR tree-optimization/86274
17420	* gimple-ssa-sprintf.c (fmtresult::type_max_digits): Verify
17421	precondition.
17422	(format_floating): Correct handling of infinities and NaNs.
17423
174242018-07-03  Martin Sebor  <msebor@redhat.com>
17425
17426	* print-tree.c (print_real_cst): New function.
17427	(print_node_brief): Call it.
17428	(print_node): Ditto.
17429
174302018-07-03  Jeff Law  <law@redhat.com>
17431
17432	* config/h8300/h8300.md (logical<mode>3_sn, logical<mode>3): Merge
17433	into a single pattern.
17434
17435	* config/h8300/h8300.md (ors code_iterator): New.
17436	(bsetqi_msx, bnotqi_msx patterns and splitters): Consolidate into
17437	a single pattern and single splitter.
17438	(bsethi_msx, bnothi_msx patterns): Consolidate into a single pattern.
17439	(iorqi3_1, xorqi3_1): Likewise.
17440	(iorqi3, xorqi3 expanders): Similarly.
17441
17442	* config/h8300/h8300.md (movmd_internal_normal): Consolidated with
17443	(movmd_internal) into a single pattern using the P mode iterator.
17444	(movmd splitters): Similarly.
17445	(stpcpy_internal_normal, stpcpy_internal): Similarly for thes patterns.
17446	(movsd splitters): Similarly.
17447
17448	* config/h8300/h8300.c (h8300_insn_length_from_table): Consolidate
17449	ADDB, ADDW and ADDL into a single ADD attribute which selects the
17450	right table based on the size of the operand.
17451	* config/h8300/h8300.md (length_table): Corresponding changes. All
17452	references to "addb", "addw" and "addl" changed to "add".
17453	(btst patterns): Merge two variants into a single pattern.
17454	(tstqi, tsthi): Likewise.
17455	(addhi3_incdec, addsi3_incdec): Likewise.
17456	(subhi3_h8300hs, subsi3_h8300hs): Likewise.
17457	(mulhi3, mulsi3): Likewise.
17458	(udivhi3, udivsi3): Likewise.
17459	(divhi3, divsi3): Likewise.
17460	(andorqi3, andorhi3, andorsi3): Likewise.
17461
174622018-07-03  Uros Bizjak  <ubizjak@gmail.com>
17463
17464	PR target/85694
17465	* config/i386/sse.md (uavg<mode>3_ceil): New expander.
17466	(<sse2_avx2>_uavg<mode>3<mask_name>): Simplify expander.
17467
174682018-07-03  Richard Sandiford  <richard.sandiford@arm.com>
17469
17470	PR tree-optimization/85694
17471	* config/aarch64/iterators.md (HADD, RHADD): New int iterators.
17472	(u): Handle UNSPEC_SHADD, UNSPEC_UHADD, UNSPEC_SRHADD and
17473	UNSPEC_URHADD.
17474	* config/aarch64/aarch64-simd.md (<u>avg<mode>3_floor)
17475	(<u>avg<mode>3_ceil): New patterns.
17476
174772018-07-03  David Malcolm  <dmalcolm@redhat.com>
17478
17479	* gcc.dg/vect/slp-perm-1.c: Remove "note: " prefix from
17480	scan-tree-dump directive.
17481	* gcc.dg/vect/slp-perm-2.c: Likewise.
17482	* gcc.dg/vect/slp-perm-3.c: Likewise.
17483	* gcc.dg/vect/slp-perm-5.c: Likewise.
17484	* gcc.dg/vect/slp-perm-6.c: Likewise.
17485	* gcc.dg/vect/slp-perm-7.c: Likewise.
17486	* gcc.dg/vect/slp-perm-8.c: Likewise.
17487
174882018-07-03  Marek Polacek  <polacek@redhat.com>
17489
17490	PR middle-end/86202
17491	* gimple-fold.c (size_must_be_zero_p): Check the type of the size.
17492
174932018-07-03  Richard Biener  <rguenther@suse.de>
17494
17495	PR ipa/86389
17496	* tree-ssa-structalias.c (find_func_clobbers): Properly
17497	handle indirect calls.
17498
174992018-07-03  Jeff Law  <law@redhat.com>
17500
17501	* config/h8300/h8300.md (HSI, QHSI, QHSIF): New mode iterators.
17502	(shifts): New code iterator.
17503	(movqi, movhi, movsi, movsf expanders): Consolidate into a single
17504	expander.  Fix HImode handling on H8/SX.
17505	(addqi3, addhi3, addsi3 expanders): Consolidate into a single expander.
17506	(subqi3, subhi3, subsi3 expanders): Likewise.
17507	(andqi3, andhi3, andsi3 expanders): Likewise.
17508	(iorqi3, iorhi3, iorsi3 expanders): Likewise.
17509	(xorqi3, xorhi3, xorsi3 expanders): Likewise.
17510	(negqi2, neghi2, negsi2, negsf2 expanders): Likewise.
17511	(one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
17512	(zero_extendqihi2, zero_extendqisi2): Likewise.
17513	(extendqihi2, extendqisi2): Likewise.
17514	(rotlqi3, rotlhi3, rotlsi3): Likewise.
17515	(neghi2_h8300, negsi2_h8300): Likewise for these patterns.
17516	(rotlqi3_1, rotlhi3_1): Likewise.
17517	(logicalhi3_sn, logicalsi3_sn): Likewise.
17518	(logicalhi3, logicalsi3): Likewise.
17519
175202018-07-03  Richard Sandiford  <richard.sandiford@arm.com>
17521
17522	* tree-vect-patterns.c (vect_recog_rotate_pattern)
17523	(vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern)
17524	(vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast)
17525	(adjust_bool_pattern, vect_recog_bool_pattern): Pass the vector
17526	type to append_pattern_def_seq instead of creating a stmt_vec_info
17527	directly.
17528	(build_mask_conversion): Likewise.  Remove vinfo argument.
17529	(vect_add_conversion_to_patterm): Likewise, renaming to...
17530	(vect_add_conversion_to_pattern): ...this.
17531	(vect_recog_mask_conversion_pattern): Update call to
17532	build_mask_conversion.  Pass the vector type to
17533	append_pattern_def_seq here too.
17534	(vect_recog_gather_scatter_pattern): Update call to
17535	vect_add_conversion_to_pattern.
17536
175372018-07-03  Richard Sandiford  <richard.sandiford@arm.com>
17538
17539	* tree-vect-patterns.c (new_pattern_def_seq): Delete.
17540	(vect_recog_dot_prod_pattern, vect_recog_sad_pattern)
17541	(vect_recog_widen_op_pattern, vect_recog_over_widening_pattern)
17542	(vect_recog_rotate_pattern, vect_synth_mult_by_constant): Don't set
17543	STMT_VINFO_PATTERN_DEF_SEQ to null here.
17544	(vect_recog_pow_pattern, vect_recog_vector_vector_shift_pattern)
17545	(vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern): Use
17546	append_pattern_def_seq instead of new_pattern_def_seq.
17547	(vect_recog_divmod_pattern): Do both of the above.
17548	(vect_pattern_recog_1): Assert that STMT_VINO_PATTERN_DEF_SEQ
17549	is null.
17550
175512018-07-03  Richard Sandiford  <richard.sandiford@arm.com>
17552
17553	* tree-vect-patterns.c (vect_recog_dot_prod_pattern):
17554	(vect_recog_sad_pattern, vect_recog_widen_op_pattern)
17555	(vect_recog_widen_mult_pattern, vect_recog_pow_pattern):
17556	(vect_recog_widen_sum_pattern, vect_recog_over_widening_pattern)
17557	(vect_recog_average_pattern, vect_recog_cast_forwprop_pattern)
17558	(vect_recog_widen_shift_pattern, vect_recog_rotate_pattern)
17559	(vect_recog_vector_vector_shift_pattern, vect_synth_mult_by_constant)
17560	(vect_recog_mult_pattern, vect_recog_divmod_pattern)
17561	(vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern)
17562	(vect_recog_mask_conversion_pattern): Replace vec<gimple *>
17563	parameter with a single stmt_vec_info.
17564	(vect_recog_func_ptr): Likewise.
17565	(vect_recog_gather_scatter_pattern): Likewise, folding in...
17566	(vect_try_gather_scatter_pattern): ...this.
17567	(vect_pattern_recog_1): Remove stmts_to_replace and just pass
17568	the stmt_vec_info of the statement to be matched.  Don't clear
17569	STMT_VINFO_RELATED_STMT.
17570	(vect_pattern_recog): Update call accordingly.
17571
175722018-07-03  Richard Sandiford  <richard.sandiford@arm.com>
17573
17574	PR tree-optimization/85694
17575	* doc/md.texi (avgM3_floor, uavgM3_floor, avgM3_ceil)
17576	(uavgM3_ceil): Document new optabs.
17577	* doc/sourcebuild.texi (vect_avg_qi): Document new target selector.
17578	* internal-fn.def (IFN_AVG_FLOOR, IFN_AVG_CEIL): New internal
17579	functions.
17580	* optabs.def (savg_floor_optab, uavg_floor_optab, savg_ceil_optab)
17581	(savg_ceil_optab): New optabs.
17582	* tree-vect-patterns.c (vect_recog_average_pattern): New function.
17583	(vect_vect_recog_func_ptrs): Add it.
17584	* tree-vect-stmts.c (vectorizable_call): Get the type of the zero
17585	constant directly from the associated lhs.
17586
175872018-07-03  Richard Sandiford  <richard.sandiford@arm.com>
17588
17589	* tree-vect-patterns.c (vect_split_statement): New function.
17590	(vect_convert_input): Use it to try to split an existing cast.
17591
175922018-07-03  Richard Sandiford  <richard.sandiford@arm.com>
17593
17594	* poly-int.h (print_hex): New function.
17595	* dumpfile.h (dump_dec, dump_hex): Declare.
17596	* dumpfile.c (dump_dec, dump_hex): New poly_wide_int functions.
17597	* tree-vectorizer.h (_stmt_vec_info): Add min_output_precision,
17598	min_input_precision, operation_precision and operation_sign.
17599	* tree-vect-patterns.c (vect_get_range_info): New function.
17600	(vect_same_loop_or_bb_p, vect_single_imm_use)
17601	(vect_operation_fits_smaller_type): Delete.
17602	(vect_look_through_possible_promotion): Add an optional
17603	single_use_p parameter.
17604	(vect_recog_over_widening_pattern): Rewrite to use new
17605	stmt_vec_info infomration.  Handle one operation at a time.
17606	(vect_recog_cast_forwprop_pattern, vect_narrowable_type_p)
17607	(vect_truncatable_operation_p, vect_set_operation_type)
17608	(vect_set_min_input_precision): New functions.
17609	(vect_determine_min_output_precision_1): Likewise.
17610	(vect_determine_min_output_precision): Likewise.
17611	(vect_determine_precisions_from_range): Likewise.
17612	(vect_determine_precisions_from_users): Likewise.
17613	(vect_determine_stmt_precisions, vect_determine_precisions): Likewise.
17614	(vect_vect_recog_func_ptrs): Put over_widening first.
17615	Add cast_forwprop.
17616	(vect_pattern_recog): Call vect_determine_precisions.
17617
176182018-07-03  Richard Sandiford  <richard.sandiford@arm.com>
17619
17620	* tree-vect-patterns.c (vect_mark_pattern_stmts): Remove pattern
17621	statements that have been replaced by further pattern statements.
17622	(vect_pattern_recog_1): Clear STMT_VINFO_PATTERN_DEF_SEQ on failure.
17623
176242018-07-03  Richard Biener  <rguenther@suse.de>
17625
17626	* tree-vect-stmts.c (vect_is_simple_use): Consolidate dumping,
17627	always set *dt.  Dump vectype in vectype overload.
17628	* dumpfile.h (dump_gimple_expr): New function.
17629	(dump_gimple_expr_loc): Likewise.
17630	* dumpfile.c (dump_gimple_expr): New function.
17631	(dump_gimple_expr_loc): Likewise.
17632
176332018-07-02  Jeff Law  <law@redhat.com>
17634
17635	* config/h8300/h8300.md (movqi_h8300, movqi_h8300hs): Consolidate
17636	the H8/300, H8/300H and H8/S variants into a single pattern.
17637	(movhi_h8300, movqi_h8300hs): Similarly.
17638	(pushqi_h8300hs, pushhi_h8300hs): Consolidate into a single pattern.
17639	(QHI mode iterator): New.
17640
17641	* config/h8300/h8300.md: Remove trailing whitespace.
17642
176432018-07-02  Jim Wilson  <jimw@sifive.com>
17644
17645	* config/riscv/riscv.c (riscv_expand_epilogue): Use emit_jump_insn
17646	instead of emit_insn for interrupt returns.
17647	* config/riscv/riscv.md (riscv_met): Add (return) to rtl.
17648	(riscv_sret, riscv_uret): Likewise.
17649
176502018-07-02  David Malcolm  <dmalcolm@redhat.com>
17651
17652	* pretty-print.c (selftest::test_pp_format): Move save and restore
17653	of quotes to class auto_fix_quotes, and add an instance.
17654	* selftest.c: Include "intl.h".
17655	(selftest::auto_fix_quotes::auto_fix_quotes): New ctor.
17656	(selftest::auto_fix_quotes::~auto_fix_quotes): New dtor.
17657	* selftest.h (selftest::auto_fix_quotes): New class.
17658
176592018-07-02  Richard Henderson  <richard.henderson@linaro.org>
17660
17661	* config/aarch64/aarch64-protos.h, config/aarch64/aarch64.c
17662	(aarch64_sve_prepare_conditional_op): Remove.
17663	* config/aarch64/aarch64-sve.md (cond_<SVE_INT_BINARY><SVE_I>):
17664	Allow aarch64_simd_reg_or_zero as select operand; remove
17665	the aarch64_sve_prepare_conditional_op call.
17666	(cond_<SVE_INT_BINARY_SD><SVE_SDI>): Likewise.
17667	(cond_<SVE_COND_FP_BINARY><SVE_F>): Likewise.
17668	(*cond_<SVE_INT_BINARY><SVE_I>_z): New pattern.
17669	(*cond_<SVE_INT_BINARY_SD><SVE_SDI>_z): New pattern.
17670	(*cond_<SVE_COND_FP_BINARY><SVE_F>_z): New pattern.
17671	(*cond_<SVE_INT_BINARY><SVE_I>_any): New pattern.
17672	(*cond_<SVE_INT_BINARY_SD><SVE_SDI>_any): New pattern.
17673	(*cond_<SVE_COND_FP_BINARY><SVE_F>_any): New pattern
17674	and a splitters to match all of the *_any patterns.
17675	* config/aarch64/predicates.md (aarch64_sve_any_binary_operator): New.
17676
17677	* config/aarch64/iterators.md (SVE_INT_BINARY_REV): Remove.
17678	(SVE_COND_FP_BINARY_REV): Remove.
17679	(sve_int_op_rev, sve_fp_op_rev): New.
17680	* config/aarch64/aarch64-sve.md (*cond_<SVE_INT_BINARY><SVE_I>_0): New.
17681	(*cond_<SVE_INT_BINARY_SD><SVE_SDI>_0): New.
17682	(*cond_<SVE_COND_FP_BINARY><SVE_F>_0): New.
17683	(*cond_<SVE_INT_BINARY><SVE_I>_2): Rename, add movprfx alternative.
17684	(*cond_<SVE_INT_BINARY_SD><SVE_SDI>_2): Similarly.
17685	(*cond_<SVE_COND_FP_BINARY><SVE_F>_2): Similarly.
17686	(*cond_<SVE_INT_BINARY><SVE_I>_3): Similarly; use sve_int_op_rev.
17687	(*cond_<SVE_INT_BINARY_SD><SVE_SDI>_3): Similarly.
17688	(*cond_<SVE_COND_FP_BINARY><SVE_F>_3): Similarly; use sve_fp_op_rev.
17689
17690	* config/aarch64/aarch64-sve.md (cond_<SVE_COND_FP_BINARY><SVE_F>):
17691	Remove match_dup 1 from the inner unspec.
17692	(*cond_<SVE_COND_FP_BINARY><SVE_F>): Likewise.
17693
17694	* config/aarch64/aarch64.md (movprfx): New attr.
17695	(length): Default movprfx to 8.
17696	* config/aarch64/aarch64-sve.md (*mul<SVE_I>3): Add movprfx alt.
17697	(*madd<SVE_I>, *msub<SVE_I): Likewise.
17698	(*<su>mul<SVE_I>3_highpart): Likewise.
17699	(*<SVE_INT_BINARY_SD><SVE_SDI>3): Likewise.
17700	(*v<ASHIFT><SVE_I>3): Likewise.
17701	(*<su><MAXMIN><SVE_I>3): Likewise.
17702	(*<su><MAXMIN><SVE_F>3): Likewise.
17703	(*fma<SVE_F>4, *fnma<SVE_F>4): Likewise.
17704	(*fms<SVE_F>4, *fnms<SVE_F>4): Likewise.
17705	(*div<SVE_F>4): Likewise.
17706
177072018-07-02  Richard Sandiford  <richard.sandiford@arm.com>
17708
17709	* tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix typo
17710	in dump string.
17711
177122018-07-02  Richard Biener  <rguenther@suse.de>
17713
17714	PR tree-optimization/86363
17715	* tree-ssa-sccvn.c (vn_reference_lookup_3): Check the
17716	memset argument refers to a non-variable address.
17717
177182018-07-02  Aldy Hernandez  <aldyh@redhat.com>
17719
17720	* tree-vrp.c (extract_range_from_binary_expr_1): Abstract a lot of the
17721	{PLUS,MINUS}_EXPR code to...
17722	(adjust_symbolic_bound): ...here,
17723	(combine_bound): ...here,
17724	(set_value_range_with_overflow): ...and here.
17725
177262018-07-02  Aldy Hernandez  <aldyh@redhat.com>
17727
17728	* tree-vrp.c (extract_range_from_unary_expr): Abstract ABS_EXPR
17729	code...
17730	(extract_range_from_abs_expr): ...here.
17731
177322018-07-02  Eric Botcazou  <ebotcazou@adacore.com>
17733
17734	* config/i386/i386.c (ix86_finalize_stack_frame_flags): Do not overrule
17735	-fno-omit-frame-pointer when not optimizing.
17736
177372018-07-02  Martin Liska  <mliska@suse.cz>
17738
17739	PR ipa/86279
17740	* ipa-pure-const.c (malloc_candidate_p): Revert usage of ::get.
17741	(propagate_nothrow): Likewise.
17742
177432018-07-02  Martin Liska  <mliska@suse.cz>
17744
17745	PR ipa/86323
17746	* ipa-inline.c (early_inliner): Revert wrongly added ::get call.
17747
177482018-07-02  David Malcolm  <dmalcolm@redhat.com>
17749
17750	* dumpfile.c (dump_generic_expr_loc): Undo removal of this
17751	function in r262149, changing "loc" param from source_location to
17752	const dump_location_t &.
17753	* dumpfile.h (dump_generic_expr_loc): Undo removal of this
17754	declaration, as above.
17755
177562018-07-01  Paul Koning  <ni1d@arrl.net>
17757
17758	* common/config/pdp11/pdp11-common.c (pdp11_handle_option): Handle
17759	-munit-asm, -mgnu-asm, -mdec-asm.
17760	* config/pdp11/pdp11-protos.h (pdp11_gen_int_label): New.
17761	(pdp11_output_labelref): New.
17762	(pdp11_output_def): New.
17763	(pdp11_output_addr_vec_elt): New.
17764	* config/pdp11/pdp11.c: Use tab between opcode and operands.  Use
17765	%# and %@ format codes.
17766	(pdp11_option_override): New.
17767	(TARGET_ASM_FILE_START_FILE_DIRECTIVE): Define.
17768	(pdp11_output_ident): New.
17769	(pdp11_asm_named_section): New.
17770	(pdp11_asm_init_sections): New.
17771	(pdp11_file_start): New.
17772	(pdp11_file_end): New.
17773	(output_ascii): Use .ascii/.asciz for -mdec-asm.
17774	(pdp11_asm_print_operand): Update %# and %$ for -mdec-asm.  Add
17775	%o, like %c but octal.
17776	(pdp11_option_override): New.
17777	* config/pdp11/pdp11.h (TEXT_SECTION_ASM_OP): Update for
17778	-mdec-asm.
17779	(DATA_SECTION_ASM_OP): Ditto.
17780	(READONLY_DATA_SECTION_ASM_OP): New.
17781	(IS_ASM_LOGICAL_LINE_SEPARATOR): New.
17782	(ASM_GENERATE_INTERNAL_LABEL): Use new function.
17783	(ASM_OUTPUT_LABELREF): Ditto.
17784	(ASM_OUTPUT_DEF): Ditto.
17785	(ASM_OUTPUT_EXTERNAL): New.
17786	(ASM_OUTPUT_SOURCE_FILENAME): New.
17787	(ASM_OUTPUT_ADDR_VEC_ELT): Use new function.
17788	(ASM_OUTPUT_SKIP): Update for -mdec-asm.
17789	* config/pdp11/pdp11.md: Use tab between opcode and operands.  Use
17790	%# and %@ format codes.
17791	* config/pdp11/pdp11.opt (mgnu-asm): New.
17792	(mdec-asm): Conflicts with -mgnu-asm and -munix-asm.
17793	(munix-asm): Conflicts with -mdec-asm and -mgnu-asm.
17794	* doc/invoke.txt (PDP-11 Options): Add -mgnu-asm.
17795
177962018-07-01  Aldy Hernandez  <aldyh@redhat.com>
17797
17798	* tree-ssa-threadupdate.c (mark_threaded_blocks): Avoid
17799	dereferencing path[] beyond its length.
17800	(debug_path): New.
17801	(debug_all_paths): New.
17802	(rewire_first_differing_edge): New.
17803	(adjust_paths_after_duplication): New.
17804	(duplicate_thread_path): Call adjust_paths_after_duplication.
17805	Add new argument.
17806	(thread_through_all_blocks): Add new argument to
17807	duplicate_thread_path.
17808
178092018-06-30  Jim Wilson  <jimw@sifive.com>
17810
17811	* config/riscv/predicates.md (p2m1_shift_operand): New.
17812	(high_mask_shift_operand): New.
17813	* config/riscv/riscv.md (lshrsi3_zero_extend_3+1): New combiner
17814	pattern using p2m1_shift_operand.
17815	(lshsi3_zero_extend_3+2): New combiner pattern using
17816	high_mask_shift_operand.
17817
178182018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
17819
17820	* tree-vect-patterns.c (vect_get_external_def_edge): New function,
17821	split out from...
17822	(vect_recog_rotate_pattern): ...here.
17823	(vect_convert_input): Try to insert casts of invariants in the
17824	preheader.
17825	* tree-vect-loop-manip.c (vect_loop_versioning): Don't require the
17826	preheader to be empty.
17827
178282018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
17829
17830	* tree-vect-patterns.c (append_pattern_def_seq): Take an optional
17831	vector type.  If given, install it in the new statement's
17832	STMT_VINFO_VECTYPE.
17833	(vect_element_precision): New function.
17834	(vect_unpromoted_value): New struct.
17835	(vect_unpromoted_value::vect_unpromoted_value): New function.
17836	(vect_unpromoted_value::set_op): Likewise.
17837	(vect_look_through_possible_promotion): Likewise.
17838	(vect_joust_widened_integer, vect_joust_widened_type): Likewise.
17839	(vect_widened_op_tree, vect_convert_input): Likewise.
17840	(vect_convert_inputs, vect_convert_output): Likewise.
17841	(vect_recog_dot_prod_pattern): Use vect_look_through_possible_promotion
17842	to handle the optional cast of the multiplication result and
17843	vect_widened_op_tree to detect the widened multiplication itself.
17844	Do not require the input and output of promotion casts to have
17845	the same sign, but base the signedness of the operation on the
17846	input rather than the result.  If the pattern includes two
17847	promotions, check that those promotions have the same sign.
17848	Do not restrict the MULT_EXPR handling to a double-width result;
17849	handle quadruple-width results and wider.  Use vect_convert_inputs
17850	to convert the inputs to the common type.
17851	(vect_recog_sad_pattern):  Use vect_look_through_possible_promotion
17852	to handle the optional cast of the ABS result.  Also allow a sign
17853	change or a sign extension between the ABS and MINUS.
17854	Use vect_widened_op_tree to detect the widened subtraction and use
17855	vect_convert_inputs to convert the inputs to the common type.
17856	(vect_handle_widen_op_by_const): Delete.
17857	(vect_recog_widen_op_pattern): New function.
17858	(vect_recog_widen_mult_pattern): Use it.
17859	(vect_recog_widen_shift_pattern): Likewise.
17860	(vect_recog_widen_sum_pattern): Use
17861	vect_look_through_possible_promotion to handle the promoted
17862	PLUS_EXPR operand.
17863
178642018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
17865
17866	* gimple-iterator.c (gsi_for_stmt): Add a new overload that takes
17867	the containing gimple_seq *.
17868	* gimple-iterator.h (gsi_for_stmt): Declare it.
17869	* tree-vect-patterns.c (vect_recog_dot_prod_pattern)
17870	(vect_recog_sad_pattern, vect_recog_widen_sum_pattern)
17871	(vect_recog_widen_shift_pattern, vect_recog_rotate_pattern)
17872	(vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern)
17873	(vect_recog_mask_conversion_pattern): Remove STMT_VINFO_IN_PATTERN_P
17874	checks.
17875	(vect_init_pattern_stmt, vect_set_pattern_stmt): New functions,
17876	split out from...
17877	(vect_mark_pattern_stmts): ...here.  Handle cases in which the
17878	statement being replaced is part of an existing pattern
17879	definition sequence, inserting the new pattern statements before
17880	the original one.
17881	(vect_pattern_recog_1): Don't return a bool.  If the statement
17882	is already part of a pattern, instead apply pattern matching
17883	to the pattern definition statements.  Don't clear the
17884	STMT_VINFO_RELATED_STMT if is_pattern_stmt_p.
17885	(vect_pattern_recog): Don't break after the first match;
17886	continue processing the pattern definition statements instead.
17887	Don't bail out for STMT_VINFO_IN_PATTERN_P here.
17888
178892018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
17890
17891	* tree-vect-patterns.c (vect_reassociating_reduction_p): New function.
17892	(vect_recog_dot_prod_pattern, vect_recog_sad_pattern)
17893	(vect_recog_widen_sum_pattern): Use it.
17894
178952018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
17896
17897	* tree-vect-loop.c (vectorizable_reduction): Assert that the
17898	phi is not a pattern statement and has not been replaced by
17899	a pattern statement.
17900	* tree-vect-patterns.c (type_conversion_p): Don't check
17901	STMT_VINFO_IN_PATTERN_P.
17902	(vect_recog_vector_vector_shift_pattern): Likewise.
17903	(vect_recog_dot_prod_pattern): Expect vect_is_simple_use to return
17904	the pattern statement rather than the original statement; check
17905	directly for a WIDEN_MULT_EXPR here.
17906	* tree-vect-slp.c (vect_get_and_check_slp_defs): Expect
17907	vect_is_simple_use to return the pattern statement rather
17908	than the original statement; use is_pattern_stmt_p to check
17909	for such a pattern statement.
17910	* tree-vect-stmts.c (process_use): Expect vect_is_simple_use
17911	to return the pattern statement rather than the original statement;
17912	don't do the same transformation here.
17913	(vect_is_simple_use): If the defining statement has been replaced
17914	by a pattern statement, return the pattern statement instead.
17915	Remove the corresponding (local) transformation from the vectype
17916	overload.
17917
179182018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
17919
17920	* tree-vectorizer.h (vect_is_simple_use): Move the gimple ** to the
17921	end and default to null.
17922	* tree-vect-loop.c (vect_create_epilog_for_reduction)
17923	(vectorizable_reduction): Update calls accordingly, dropping the
17924	gimple ** argument if the passed-back statement isn't needed.
17925	* tree-vect-patterns.c (vect_get_internal_def, type_conversion_p)
17926	(vect_recog_rotate_pattern): Likewise.
17927	(vect_recog_mask_conversion_pattern): Likewise.
17928	* tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
17929	(vect_mask_constant_operand_p): Likewise.
17930	* tree-vect-stmts.c (is_simple_and_all_uses_invariant, process_use):
17931	(vect_model_simple_cost, vect_get_vec_def_for_operand): Likewise.
17932	(get_group_load_store_type, get_load_store_type): Likewise.
17933	(vect_check_load_store_mask, vect_check_store_rhs): Likewise.
17934	(vectorizable_call, vectorizable_simd_clone_call): Likewise.
17935	(vectorizable_conversion, vectorizable_assignment): Likewise.
17936	(vectorizable_shift, vectorizable_operation): Likewise.
17937	(vectorizable_store, vect_is_simple_cond): Likewise.
17938	(vectorizable_condition, vectorizable_comparison): Likewise.
17939	(get_same_sized_vectype, vect_get_mask_type_for_stmt): Likewise.
17940	(vect_is_simple_use): Rename the def_stmt argument to def_stmt_out
17941	and move it to the end.  Cope with null def_stmt_outs.
17942
179432018-06-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17944
17945	* Makefile.in (FLAGS_TO_PASS): Add RANLIB_FOR_TARGET.
17946
179472018-06-29  Jeff Law  <law@redhat.com>
17948
17949	* config/v850/v850.c (v850_legitimate_address_p): Handle large
17950	displacements for TARGET_V850E2V3 and newer.
17951	(TARGET_LRA_P): Remove.  Defaults to LRA now.
17952	* config/v850/v850.md (sign23byte_load): Remove.
17953	(unsign23byte_load, sign23hword_load, unsign23hword_load): Likewise.
17954	(23word_load, 23byte_store, 23hword_store, 23word_store): Likewise.
17955
179562018-06-29  Martin Liska  <mliska@suse.cz>
17957
17958	PR lto/85759
17959	* coverage.c (coverage_init): Mangle full path name.
17960	* doc/invoke.texi: Document the change.
17961	* gcov-io.c (mangle_path): New.
17962	* gcov-io.h (mangle_path): Likewise.
17963	* gcov.c (mangle_name): Use mangle_path for path mangling.
17964
179652018-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17966
17967	* config/arm/arm.c (output_move_double): Don't allow STRD instructions
17968	if starting source register is not even.
17969
179702018-06-29  Martin Liska  <mliska@suse.cz>
17971
17972	PR tree-optimization/86263
17973	* tree-switch-conversion.c (switch_decision_tree::try_switch_expansion):
17974	Make edge redirection.
17975
179762018-06-29  David Malcolm  <dmalcolm@redhat.com>
17977
17978	* dumpfile.c (dump_loc): Add indentation based on scope depth.
17979	(dump_scope_depth): New variable.
17980	(get_dump_scope_depth): New function.
17981	(dump_begin_scope): New function.
17982	(dump_end_scope): New function.
17983	* dumpfile.h (get_dump_scope_depth): New declaration.
17984	(dump_begin_scope): New declaration.
17985	(dump_end_scope): New declaration.
17986	(class auto_dump_scope): New class.
17987	(AUTO_DUMP_SCOPE): New macro.
17988	* tree-vectorizer.h (DUMP_VECT_SCOPE): Reimplement in terms of
17989	AUTO_DUMP_SCOPE.
17990
179912018-06-29  Richard Biener  <rguenther@suse.de>
17992
17993	* tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Assert
17994	compute_all_dependences succeeds.
17995	* tree-vect-loop.c (vect_get_datarefs_in_loop): Fail early if we
17996	exceed --param loop-max-datarefs-for-datadeps.
17997
179982018-06-29  Jakub Jelinek  <jakub@redhat.com>
17999
18000	* config/rs6000/t-rs6000: Append rs6000-modes.h to TM_H.
18001
180022018-06-28  Uros Bizjak  <ubizjak@gmail.com>
18003
18004	PR target/86348
18005	* config/i386/sse.md (*vec_extractv4si_0_zext_sse4): Use
18006	alternative 0 in preferred_for_speed attribute.
18007
180082018-06-28  Paul Koning  <ni1d@arrl.net>
18009
18010	* config/pdp11/pdp11-protos.h (pdp11_shift_length): New function.
18011	* config/pdp11/pdp11.c (pdp11_shift_length): New function.
18012	* config/pdp11/pdp11.h (ADJUST_INSN_LENGTH): Remove.
18013	* config/pdp11/pdp11.md: Correct "length" attribute calculation
18014	for shift insn patterns.
18015
180162018-06-28  David Malcolm  <dmalcolm@redhat.com>
18017
18018	* cgraph.c (cgraph_node::get_body): Replace assignments to
18019	"dump_file" with calls to set_dump_file.
18020	* dumpfile.c (alt_dump_file): Make static, and group with...
18021	(alt_flags): ...this definition.
18022	(dumps_are_enabled): New variable.
18023	(refresh_dumps_are_enabled): New function.
18024	(set_dump_file): New function.
18025	(set_alt_dump_file): New function.
18026	(gcc::dump_manager::dump_start): Replace assignments to
18027	"dump_file" and "alt_dump_file" with calls to set_dump_file and
18028	set_alt_dump_file.
18029	(gcc::dump_manager::dump_finish): Likewise.
18030	* dumpfile.h (alt_dump_file): Delete decl.
18031	(dumps_are_enabled): New variable decl.
18032	(set_dump_file): New function decl.
18033	(dump_enabled_p): Rewrite in terms of new "dumps_are_enabled"
18034	global.
18035	* tree-nested.c (lower_nested_functions): Replace assignments to
18036	"dump_file" with calls to set_dump_file.
18037
180382018-06-28  Eric Botcazou  <ebotcazou@adacore.com>
18039
18040	* tree-cfg.c (verify_gimple_in_cfg): Call verify_location on the
18041	goto_locus of each outgoing edge of each basic block.
18042
180432018-06-28  Richard Biener  <rguenther@suse.de>
18044
18045	* dwarf2out.c (decl_scope_table): Remove.
18046	(push_decl_scope): Likewise.
18047	(pop_decl_scope): Likewise.
18048	(gen_type_die_for_member): Do not call push/pop_decl_scope.
18049	(gen_struct_or_union_type_die): Likewise.
18050	(gen_tagged_type_die): Likewise.
18051	(dwarf2out_init): Do not initialize decl_scope_table.
18052	(dwarf2out_c_finalize): Do not free it.
18053
180542018-06-28  Richard Biener  <rguenther@suse.de>
18055
18056	* dwarf2out.c (gen_subprogram_die): Use is_unit_die when
18057	deciding whether to not re-use a DIE.
18058
180592018-06-28  Richard Biener  <rguenther@suse.de>
18060
18061	* dwarf2out.c (gen_subprogram_die): Always re-use DIEs with an
18062	DW_AT_abstract_origin attribute.
18063
180642018-06-28  Martin Liska  <mliska@suse.cz>
18065
18066	* tree-switch-conversion.c (jump_table_cluster::can_be_handled):
18067	Use newly introduced constants.
18068	* tree-switch-conversion.h (struct jump_table_cluster):
18069	Define max_ratio_for_size and max_ratio_for_speed.
18070
180712018-06-28  Martin Liska  <mliska@suse.cz>
18072
18073	* tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
18074	Add new checking assert to catch invalid state.
18075	(jump_table_cluster::can_be_handled): Handle single case
18076	clusters.
18077	(jump_table_cluster::is_beneficial): Bail out for such case.
18078	(bit_test_cluster::find_bit_tests):
18079	Add new checking assert to catch invalid state.
18080	(bit_test_cluster::can_be_handled): Handle single case
18081	clusters.
18082	(bit_test_cluster::is_beneficial): Bail out for such case.
18083	(switch_decision_tree::analyze_switch_statement):
18084	Fix comment.
18085
180862018-06-28  Martin Liska  <mliska@suse.cz>
18087
18088	* common.opt: Introduce -completion option.
18089	* gcc.c (driver_handle_option): Handle it.
18090	(driver::main): Print completions if completion
18091	is set.
18092	* opt-suggestions.c (option_proposer::get_completions):
18093	New function.
18094	(option_proposer::suggest_completion): Likewise.
18095	(option_proposer::find_param_completions): Likewise.
18096	(verify_autocompletions): Likewise.
18097	(test_completion_valid_options): Likewise.
18098	(test_completion_valid_params): Likewise.
18099	(in_completion_p): Likewise.
18100	(empty_completion_p): Likewise.
18101	(test_completion_partial_match): Likewise.
18102	(test_completion_garbage): Likewise.
18103	(opt_proposer_c_tests): Likewise.
18104	* opt-suggestions.h: Declare new functions.
18105	* opts.c (common_handle_option): Handle OPT__completion_.
18106	* selftest-run-tests.c (selftest::run_tests): Add
18107	opt_proposer_c_tests.
18108	* selftest.c (assert_str_startswith): New.
18109	* selftest.h (assert_str_startswith): Likewise.
18110	(opt_proposer_c_tests): New.
18111	(ASSERT_STR_STARTSWITH): Likewise.
18112
181132018-06-28  Martin Liska  <mliska@suse.cz>
18114
18115	* Makefile.in: Add opt-suggestions.o.
18116	* gcc-main.c: Include opt-suggestions.h.
18117	* gcc.c (driver::driver): Likewise.
18118	(driver::~driver): Remove m_option_suggestions.
18119	(driver::build_option_suggestions): Moved to option_proposer.
18120	(driver::suggest_option): Likewise.
18121	(driver::handle_unrecognized_options): Use option_proposer.
18122	* gcc.h (class driver): Add new memver m_option_proposer.
18123	* opt-suggestions.c: New file.
18124	* opt-suggestions.h: New file.
18125
181262018-06-28  Martin Liska  <mliska@suse.cz>
18127
18128	* vec.h (class auto_string_vec): New (moved from auto_argvec).
18129	(auto_string_vec::~auto_string_vec): Likewise.
18130
181312018-06-28  Eric Botcazou  <ebotcazou@adacore.com>
18132
18133	* tree-inline.h (struct copy_body_data): Move remapping_type_depth and
18134	prevent_decl_creation_for_types fields up and add reset_location field.
18135	* tree-inline.c (remap_gimple_stmt): Force input_location on the new
18136	statement if id->reset_location is true.
18137	(copy_edges_for_bb): Do not set goto_locus on the new edges if
18138	id->reset_location is true.
18139	(copy_phis_for_bb): Force input_location on the arguments if
18140	id->reset_location is true.
18141	(expand_call_inline): Set id->reset_location if DECL_IGNORED_P
18142	is set on the function to be inlined.
18143
181442018-06-27  Stephan Bergmann  <sbergman@redhat.com>
18145
18146	* doc/invoke.texi (Debugging Options): Add -gsplit-dwarf.
18147
181482018-06-27  Dimitar Dimitrov  <dimitar@dinux.eu>
18149
18150	* lra-eliminations.c (update_reg_eliminate): Mark all spanning hard
18151	registers for Pmode.
18152	* lra-lives.c (check_pseudos_live_through_calls): Mark all spanning
18153	hard registers for the clobbered pseudo.
18154
181552018-06-27  Paul Koning  <ni1d@arrl.net>
18156
18157	* common/config/pdp11/pdp11-common.c (pdp11_handle_option): Handle
18158	mutually exclusive options.
18159	* config/pdp11/constraints.md (h): New constraint.
18160	(O): Update definition to match shift code generation.
18161	(D): New constraint.
18162	* config/pdp11/pdp11-modes.def (CCNZ): Define mode.
18163	(CCFP): Remove.
18164	* config/pdp11/pdp11-protos.h (int_no_side_effect_operand): New
18165	function.
18166	(output_jump): Change arguments.
18167	(pdp11_fixed_cc_regs): New function.
18168	(pdp11_cc_mode): Ditto.
18169	(pdp11_expand_shift): Ditto.
18170	(pdp11_assemble_shift): Ditto.
18171	(pdp11_small_shift): Ditto.
18172	(pdp11_branch_cost): Remove.
18173	* config/pdp11/pdp11.c (pdp11_assemble_integer): Remove comments
18174	from output.
18175	(pdp11_register_move_cost): Update for CC registers.
18176	(pdp11_rtx_costs): Add case for LSHIFTRT.
18177	(pdp11_output_jump): Add CCNZ mode conditional branches.
18178	(notice_update_cc_on_set): Remove.
18179	(pdp11_cc_mode): New function.
18180	(simple_memory_operand): Correct pre/post decrement case.
18181	(no_side_effect_operand): New function.
18182	(pdp11_regno_reg_class): Add CC_REGS class.
18183	(pdp11_fixed_cc_regs): New function.
18184	(pdp11_small_shift): New function.
18185	(pdp11_expand_shift): New function to expand shift insns.
18186	(pdp11_assemble_shift): New function to output shifts.
18187	(pdp11_branch_cost): Remove.
18188	(pdp11_modes_tieable_p): Make QI/HI modes tieable.
18189	* config/pdp11/pdp11.h (SIZE_TYPE): Ensure 16-bit type.
18190	(WCHAR_TYPE): Ditto.
18191	(PTRDIFF_TYPE): Ditto.
18192	(ADJUST_INSN_LENGTH): New macro.
18193	(FIXED_REGISTERS): Add CC registers.
18194	(CALL_USED_REGISTERS): Ditto.
18195	(reg_class): Ditto.
18196	(REG_CLASS_NAMES): Ditto.
18197	(REG_CLASS_CONTENTS): Ditto.
18198	(SELECT_CC_MODE): Use new function.
18199	(TARGET_FLAGS_REGNUM): New macro.
18200	(TARGET_FIXED_CONDITION_CODE_REGS): Ditto.
18201	(cc0_reg_rtx): Remove.
18202	(CC_STATUS_MDEP): Remove.
18203	(CC_STATUS_MDEFP_INIT): Remove.
18204	(CC_IN_FPU): Remove.
18205	(NOTICE_UPDATE_CC): Remove.
18206	(REGISTER_NAMES): Add CC registers.
18207	(BRANCH_COST): Change to constant 1.
18208	* config/pdp11/pdp11.md: Rewrite for CCmode condition code
18209	handling.
18210	* config/pdp11/pdp11.opt (mbcopy): Remove.
18211	(mbcopy-builtin): Remove.
18212	(mbranch-cheap): Remove.
18213	(mbranch-expensive): Remove.
18214	* config/pdp11/predicates.md (expand_shift_operand): Update to
18215	match shift code generation.
18216	(ccnz_operator): New predicate.
18217	* doc/invoke.texi (PDP-11 Options): Remove deleted options
18218	-mbcopy, -mbcopy-builtin, -mbranch-cheap, -mbranch-expensive.
18219	Remove non-existent option -mabshi, -mno-abshi.  Document mutually
18220	exclusive options.
18221	* doc/md.texi (PDP-11): Document new D and h constraints.  Update
18222	description of O constraint.
18223
182242018-06-27  Jeff Law  <law@redhat.com>
18225	    Austin Law  <austinklaw@gmail.com>
18226
18227	* config/v850/v850.md (addsi3_set_flags): New pattern.
18228	(subsi3_set_flags, negsi2_set_flags, andsi3_set_flags): Likewise.
18229	(iorsi3_set_flags, xorsi3_set_flags, one_cmplsi2_set_flags): Likewise.
18230	(zero_extendhisi2_v850_set_flags): Likewise.
18231	(zero_extendqisi2_v850_set_flags): Likewise.
18232	(ashlsi3_set_flags, ashlsi3_v850e2_set_flags): Likewise.
18233	(lshrsi3_set_flags, lshrsi3_v850e2_set_flags): Likewise.
18234	(ashrsi3_set_flags, ashrsi3_v850e2_set_flags): Likewise.
18235
18236	* config/v850/v850-protos.h (notice_update_cc): Remove.
18237	* config/v850/v850.c (v850_compare_op0, v850_compare_op1): Remove.
18238	(v850_print_operand): Handle 'D' and "d".
18239	(v850_select_cc_mode): Remove ATTRIBUTE_UNUSED for last argument.
18240	Add handling of arithmetic/logical operations compared against zero.
18241	(v850_gen_float_compare): Remove ATTRIBUTE_UNUSED for last argument.
18242	Do not look at v850_compare_op, instead get mode from last argument.
18243	(v850_gen_compare): Remove
18244	(increment_stack): Use addsi3_clobber_flags to avoid splitting failure
18245	after reload for prologue insns.
18246	(expand_prologue): Account for CLOBBER of CC_REGNUM in various
18247	patterns.
18248	(construct_save_jarl): Likewise.
18249	(TARGET_FLAGS_REGNUM): Define.
18250	* config/v850/v850.h (v850_compare_op0, v850_compare_op1): Remove.
18251	(NOTICE_UPDATE_CC): Remove.
18252	* config/v850/v850.md (v850_tst1): Use (reg:CCZ CC_REGNUM) rather
18253	than cc0.  Conditionalize on reload_completed.
18254	(cmpsi_insn, setfcc_insn): Likewise.
18255	(tst1 splitter): Turn into define_and_split which sets the flags
18256	after reload.
18257	(cstoresi4, cbranchsf4, cbranchdf4, cbranchsi4_insn): Likewise.
18258	(cbranchsi4, branch_normal, branch_invert): Do not expose cc0 here.
18259	(cstoresf4, cstoredf4): Clobber the flags.
18260	(cmpsi, cmpsf, cmpdf): Remove expanders.
18261	(setf_insn): Remove pattern.
18262	(addsi3): Turn into define_and_split which clobbers the flags after
18263	reload and a suitable pattern (addsi3_clobber_flags) for use after
18264	reload.
18265	(subsi3, negsi2, andsi3, iorsi3, xorsi3, one_cmplsi2) Likewise.
18266	(ashlsi3, ashlsi3_v850e2, lshrsi3, lsh4si3_v850e2): Likewise.
18267	(ashrsi3, ashrsi3_v850e2): Likewise.
18268	(bins): Clobber the flags.
18269	(movsicc_normal_cc, movsicc_normal, movsicc_tst1): Likewise.
18270	(movsicc_tst1_revesed, sasf, swap and rotate patterns): Likewise.
18271	(fix_loop_counter, call_internal_short, call_internal_long): Likewise.
18272	(call_value_internal_short, call_value_internal_long): Likewise.
18273	(callt_save_interrupt, callt_return_interrupt): Likewise.
18274	(save_interrupt, return_interrupt): Likewise.
18275	(callt_save_all_interrupt, save_all_interrupt): Likewise.
18276	(_save_all_interrupt, callt_restore_all_interrupt): Likewise.
18277	(restore_all_interrupt, _restore_all_interrupt): Likewise.
18278	(All FP comparisons): Only allow after reload has completed.
18279	(trfsr): Likewise.
18280	(divh, divhu): Tweak output template.
18281	(branch_z_normal, branch_z_invert): Remove
18282	(branch_nz_normal, branch_nz_invert): Likewise.
18283	(extendhisi_insn, extendqisi_insn): Do not clobber flags.
18284
18285	* config/v850/v850-modes.def (CCZ, CCNZ): Add new modes.
18286	* config/v850/v850.c (notice_update_cc): Remove.
18287	* config/v850/v850.h  (CC_OVERFLOW_UNUSABLE): Remove
18288	(CC_NO_CARRY): Likewise.
18289	(NOTICE_UPDATE_CC): Define to nothing.
18290	* config/v850/v850.md: Remove block comment on cc0 handling
18291	Remove "cc" attribute from all patterns.  Remove cc_status handling
18292	from all patterns.  Minor formatting fixes.
18293
182942018-06-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18295
18296	* config/aarch64/aarch64-cores.def (cortex-a76): New entry.
18297	(cortex-a76.cortex-a55): Likewise.
18298	* config/aarch64/aarch64-tune.md: Regenerate.
18299	* doc/invoke.texi (AArch64 Options): Document cortex-a76 and
18300	cortex-a76.cortex-a55.
18301
183022018-06-27  Jeff Law  <law@redhat.com>
18303
18304	* config/v850/t-v850 (MULTILIB_OPTIONS): Remove 8byte-align.
18305	(MULTILIB_DIRNAMES): Similarly.
18306
183072018-06-27  Eric Botcazou  <ebotcazou@adacore.com>
18308
18309	* gimple.h (gimple_return_retbnd): Delete.
18310	(gimple_return_set_retbnd): Likewise.
18311	* cgraphunit.c (cgraph_node::expand_thunk): Remove call to
18312	gimple_return_set_retbnd.
18313	* gimple-pretty-print.c (dump_gimple_return): Remove call to
18314	gimple_return_retbnd and adjust.
18315	* tree-inline.h (struct copy_body_data): Remove retbnd field.
18316	* tree-inline.c (remap_gimple_stmt): Remove handling of retbnd.
18317	Explicitly return NULL in a couple more cases.  Move assertion
18318	on debug statements and remove unreachable code.
18319	(reset_debug_binding): Do not test id->retbnd.
18320	(expand_call_inline): Do not set it.
18321
183222018-06-27  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
18323
18324	* configure.ac: Add --disable-gcov option.
18325	* configure: Regenerate.
18326	* Makefile.in: Honour @enable_gcov@.
18327	* doc/install.texi: Document --disable-gcov.
18328
183292018-06-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18330
18331	* config/arm/arm-cpus.in (cortex-a76): New entry.
18332	(cortex-a76.cortex-a55): Likewise.
18333	* config/arm/arm-tables.opt: Regenerate.
18334	* config/arm/arm-tune.md: Likewise.
18335	* config/arm/driver-arm.c (arm_cpu_table): Add Cortex-A76 entry.
18336	* doc/invoke.texi (ARM Options): Document cortex-a76 and
18337	cortex-a76.cortex-a55.
18338
183392018-06-27  Tamar Christina  <tamar.christina@arm.com>
18340
18341	PR target/85769
18342	* config/aarch64/aarch64.md (*movhf_aarch64): Add dup v0.4h pattern.
18343
183442018-06-27  Siddhesh Poyarekar  <siddhesh@sourceware.org>
18345
18346	* config/aarch64/aarch64.h (CALL_USE_REGISTERS): Fix obsolete
18347	comment.
18348	(EPILOGUE_USES): Likewise.
18349
183502018-06-26  Eric Botcazou  <ebotcazou@adacore.com>
18351
18352	* tree-inline.c (remap_location): New function extracted from...
18353	(copy_edges_for_bb): Add ID parameter.  Remap goto_locus.
18354	(copy_phis_for_bb): ...here.  Call remap_location.
18355	(copy_cfg_body): Adjust call to copy_edges_for_bb.
18356
183572018-06-26  Aaron Sawdey  <acsawdey@linux.ibm.com>
18358
18359	* config/rs6000/rs6000-string.c (expand_block_clear): Don't use
18360	unaligned vsx for 16B memset.
18361
183622018-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
18363
18364	PR target/86285
18365	* config/rs6000/rs6000.c (rs6000_init_builtins): Do not set
18366	ieee128_float_type_node to long_double_type_node unless
18367	TARGET_LONG_DOUBLE_128 is set.
18368
183692018-06-26  David Malcolm  <dmalcolm@redhat.com>
18370
18371	* cfgloop.c (get_loop_location): Convert return type from
18372	location_t to dump_user_location_t, replacing INSN_LOCATION lookups
18373	by implicit construction from rtx_insn *, and using
18374	dump_user_location_t::from_function_decl for the fallback case.
18375	* cfgloop.h (get_loop_location): Convert return type from
18376	location_t to dump_user_location_t.
18377	* cgraphunit.c (walk_polymorphic_call_targets): Update call to
18378	dump_printf_loc to pass in a dump_location_t rather than a
18379	location_t, via the gimple stmt.
18380	* coverage.c (get_coverage_counts): Update calls to
18381	dump_printf_loc to pass in dump_location_t rather than a
18382	location_t.
18383	* doc/optinfo.texi (Dump types): Convert example of
18384	dump_printf_loc from taking "locus" to taking "insn".  Update
18385	description of the "_loc" calls to cover dump_location_t.
18386	* dumpfile.c: Include "backend.h", "gimple.h", "rtl.h", and
18387	"selftest.h".
18388	(dump_user_location_t::dump_user_location_t): New constructors,
18389	from gimple *stmt and rtx_insn *.
18390	(dump_user_location_t::from_function_decl): New function.
18391	(dump_loc): Make static.
18392	(dump_gimple_stmt_loc): Convert param "loc" from location_t to
18393	const dump_location_t &.
18394	(dump_generic_expr_loc): Delete.
18395	(dump_printf_loc): Convert param "loc" from location_t to
18396	const dump_location_t &.
18397	(selftest::test_impl_location): New function.
18398	(selftest::dumpfile_c_tests): New function.
18399	* dumpfile.h: Include "profile-count.h".
18400	(class dump_user_location_t): New class.
18401	(struct dump_impl_location_t): New struct.
18402	(class dump_location_t): New class.
18403	(dump_printf_loc): Convert 2nd param from source_location to
18404	const dump_location_t &.
18405	(dump_generic_expr_loc): Delete.
18406	(dump_gimple_stmt_loc): Convert 2nd param from source_location to
18407	const dump_location_t &.
18408	* gimple-fold.c (fold_gimple_assign): Update call to
18409	dump_printf_loc to pass in a dump_location_t rather than a
18410	location_t, via the gimple stmt.
18411	(gimple_fold_call): Likewise.
18412	* gimple-loop-interchange.cc
18413	(loop_cand::analyze_iloop_reduction_var): Update for change to
18414	check_reduction_path.
18415	(tree_loop_interchange::interchange): Update for change to
18416	find_loop_location.
18417	* graphite-isl-ast-to-gimple.c (scop_to_isl_ast): Update for
18418	change in return-type of find_loop_location.
18419	(graphite_regenerate_ast_isl): Likewise.
18420	* graphite-optimize-isl.c (optimize_isl): Likewise.
18421	* graphite.c (graphite_transform_loops): Likewise.
18422	* ipa-devirt.c (ipa_devirt): Update call to dump_printf_loc to
18423	pass in a dump_location_t rather than a location_t, via the
18424	gimple stmt.
18425	* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
18426	* ipa.c (walk_polymorphic_call_targets): Likewise.
18427	* loop-unroll.c (report_unroll): Convert "locus" param from
18428	location_t to dump_location_t.
18429	(decide_unrolling): Update for change to get_loop_location's
18430	return type.
18431	* omp-grid.c (struct grid_prop): Convert field "target_loc" from
18432	location_t to dump_user_location_t.
18433	(grid_find_single_omp_among_assignments_1): Updates calls to
18434	dump_printf_loc to pass in a dump_location_t rather than a
18435	location_t, via the gimple stmt.
18436	(grid_parallel_clauses_gridifiable): Convert "tloc" from
18437	location_t to dump_location_t.  Updates calls to dump_printf_loc
18438	to pass in a dump_location_t rather than a location_t, via the
18439	gimple stmt.
18440	(grid_inner_loop_gridifiable_p): Likewise.
18441	(grid_dist_follows_simple_pattern): Likewise.
18442	(grid_gfor_follows_tiling_pattern): Likewise.
18443	(grid_target_follows_gridifiable_pattern): Likewise.
18444	(grid_attempt_target_gridification): Convert initialization
18445	of local "grid" from memset to zero-initialization; FIXME: does
18446	this require C++11?  Update call to dump_printf_loc to pass in a
18447	optinfo_location rather than a location_t, via the gimple stmt.
18448	* profile.c (read_profile_edge_counts): Updates call to
18449	dump_printf_loc to pass in a dump_location_t rather than a
18450	location_t
18451	(compute_branch_probabilities): Likewise.
18452	* selftest-run-tests.c (selftest::run_tests): Call
18453	dumpfile_c_tests.
18454	* selftest.h (dumpfile_c_tests): New decl.
18455	* tree-loop-distribution.c (pass_loop_distribution::execute):
18456	Update for change in return type of find_loop_location.
18457	* tree-parloops.c (parallelize_loops): Likewise.
18458	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Convert
18459	"locus" from location_t to dump_user_location_t.
18460	(canonicalize_loop_induction_variables): Likewise.
18461	* tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_loop): Update
18462	for change in return type of find_loop_location.
18463	* tree-ssa-loop-niter.c (number_of_iterations_exit): Update call
18464	to dump_printf_loc to pass in a dump_location_t rather than a
18465	location_t, via the stmt.
18466	* tree-ssa-sccvn.c (eliminate_dom_walker::before_dom_children):
18467	Likewise.
18468	* tree-vect-loop-manip.c (find_loop_location): Convert return
18469	type from source_location to dump_user_location_t.
18470	(vect_do_peeling): Update for above change.
18471	(vect_loop_versioning): Update for change in type of
18472	vect_location.
18473	* tree-vect-loop.c (check_reduction_path): Convert "loc" param
18474	from location_t to dump_user_location_t.
18475	(vect_estimate_min_profitable_iters): Update for change in type
18476	of vect_location.
18477	* tree-vect-slp.c (vect_print_slp_tree): Convert param "loc" from
18478	location_t to dump_location_t.
18479	(vect_slp_bb): Update for change in type of vect_location.
18480	* tree-vectorizer.c (vect_location): Convert from source_location
18481	to dump_user_location_t.
18482	(try_vectorize_loop_1): Update for change in vect_location's type.
18483	(vectorize_loops): Likewise.
18484	(increase_alignment): Likewise.
18485	* tree-vectorizer.h (vect_location): Convert from source_location
18486	to dump_user_location_t.
18487	(find_loop_location): Convert return type from source_location to
18488	dump_user_location_t.
18489	(check_reduction_path): Convert 1st param from location_t to
18490	dump_user_location_t.
18491	* value-prof.c (check_counter): Update call to dump_printf_loc to
18492	pass in a dump_user_location_t rather than a location_t; update
18493	call to error_at for change in type of "locus".
18494	(check_ic_target): Update call to dump_printf_loc to
18495	pass in a dump_user_location_t rather than a location_t, via the
18496	call_stmt.
18497
184982018-06-26  Robin Dapp  <rdapp@linux.vnet.ibm.com>
18499
18500	* config/s390/s390.h (enum processor_flags): Do not use
18501	default tune parameter when -march was specified.
18502
185032018-06-26  Jakub Jelinek  <jakub@redhat.com>
18504
18505	PR target/86314
18506	* config/i386/i386.md (setcc + movzbl to xor + setcc peephole2s):
18507	Check reg_overlap_mentioned_p in addition to reg_set_p with the same
18508	operands.
18509
185102018-06-26  Richard Biener  <rguenther@suse.de>
18511
18512	PR tree-optimization/86287
18513	PR bootstrap/86316
18514	* tree-vect-loop.c (vect_transform_loop_stmt): Fix read-after-free.
18515	(vect_analyze_loop): Initialize n_stmts.
18516
185172018-06-26  Richard Biener  <rguenther@suse.de>
18518
18519	PR middle-end/86271
18520	* fold-const.c (fold_convertible_p): Pointer extension
18521	isn't valid.
18522
185232018-06-26  Alexandre Oliva  <aoliva@redhat.com>
18524
18525	PR debug/86064
18526	* dwarf2out.c (loc_list_has_views): Adjust comments.
18527	(dw_loc_list): Split single cross-partition range with
18528	nonzero locview.
18529
185302018-06-25  Jeff Law  <law@redhat.com>
18531
18532	* common/config/v850/v850-common.c (TARGET_DEFAULT_TARGET_FLAGS): Turn
18533	on -mbig-switch by default.
18534
18535	* config/v850/predicates.md (const_float_1_operand): Fix match_code
18536	test.
18537	(const_float_0_operand): Remove unused predicate.
18538	* config/v850/v850.md (define_constants): Remove UNSPEC_LOOP.
18539	(define_c_enum unspec): Add LOOP, RCP and RSQRT constants.
18540	(recipsf2): New expander.  Original pattern now called
18541	(recipsf2_insn).
18542	(recipdf2, recipdf2_insn): Similarly.
18543	(rsqrtsf2, rsqrtsf2_insn): Similarly
18544	(rsqrtdf2, rsqrtdf2_insn): Similarly
18545
185462018-06-26  Gerald Pfeifer  <gerald@pfeifer.com>
18547
18548	* ginclude/stddef.h: Remove an obsolete comment on FreeBSD 5.
18549	Simplify logic for FreeBSD (twice).
18550
185512018-06-25  Martin Sebor  <msebor@redhat.com>
18552
18553	PR tree-optimization/86204
18554	* tree-ssa-strlen.c (handle_builtin_strlen): Avoid storing
18555	a strnlen result if it's less than the length of the string.
18556
185572018-06-25  Martin Sebor  <msebor@redhat.com>
18558
18559	PR tree-optimization/85700
18560	* gimple-fold.c (gimple_fold_builtin_strncat): Adjust comment.
18561	* tree-ssa-strlen.c (is_strlen_related_p): Handle integer subtraction.
18562	(maybe_diag_stxncpy_trunc): Distinguish strncat from strncpy.
18563
185642018-06-25  Martin Sebor  <msebor@redhat.com>
18565
18566	* doc/extend.texi (Zero-length arrays): Update and clarify.
18567
185682018-06-25  Michael Meissner  <meissner@linux.ibm.com>
18569
18570	* config.gcc (powerpc64le*): Revert January 16th, 2018 patch that
18571	added IEEE/IBM long double multilib support on PowerPC little
18572	endian Linux systems.
18573	* config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Likewise.
18574	(MULTILIB_DEFAULTS): Likewise.
18575	* config/rs6000/rs6000.c (rs6000_option_override_internal):
18576	Likewise.
18577	* config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Likewise.
18578	* config/rs6000/t-ldouble-linux64le-ibm: Delete, no longer used.
18579	* config/rs6000/t-ldouble-linux64le-ieee: Delete, no longer used.
18580
185812018-06-25  Alexander Monakov  <amonakov@ispras.ru>
18582
18583	PR middle-end/86311
18584	* sort.cc (REORDER_23): Avoid memcpy with same destination and source.
18585	(REORDER_45): Likewise.
18586
185872018-06-25  Jeff Law  <law@redhat.com>
18588
18589	* config/v850/v850.md (divmodhi4): Make sure to sign extend the
18590	dividend to 32 bits.  Adjust length.
18591	(udivmodhi4): Cleanup output template.  Fix length.
18592
185932018-06-25  Carl Love  <cel@us.ibm.com>
18594
18595	* config/rs6000/vsx.md: Change word selector to prefered location.
18596
185972018-06-25  Richard Biener  <rguenther@suse.de>
18598
18599	PR tree-optimization/86304
18600	* tree-vectorizer.c (vectorize_loops): Walk over new possibly
18601	epilogue-if-converted loops as well.
18602
186032018-06-25  Jan Hubicka  <hubicka@ucw.cz>
18604
18605	* lto-section-out.c (lto_begin_section): Do not print section
18606	name for noaddr and unnumbered dumps.
18607
186082018-06-25  Richard Biener  <rguenther@suse.de>
18609
18610	* tree-vectorizer.h (struct vec_info_shared): New structure
18611	with parts split out from struct vec_info and loop_nest from
18612	struct _loop_vec_info.
18613	(struct vec_info): Adjust accordingly.
18614	(struct _loop_vec_info): Likewise.
18615	(LOOP_VINFO_LOOP_NEST): Adjust.
18616	(LOOP_VINFO_DATAREFS): Likewise.
18617	(LOOP_VINFO_DDRS): Likewise.
18618	(struct _bb_vec_info): Likewise.
18619	(BB_VINFO_DATAREFS): Likewise.
18620	(BB_VINFO_DDRS): Likewise.
18621	(struct _stmt_vec_info): Add dr_aux member.
18622	(DR_VECT_AUX): Adjust to refer to member of DR_STMTs vinfo.
18623	(DR_MISALIGNMENT_UNINITIALIZED): New.
18624	(set_dr_misalignment): Adjust.
18625	(dr_misalignment): Assert misalign isn't DR_MISALIGNMENT_UNINITIALIZED.
18626	(vect_analyze_loop): Adjust prototype.
18627	(vect_analyze_loop_form): Likewise.
18628	* tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
18629	Compute dependences lazily.
18630	(vect_record_base_alignments): Use shared datarefs/ddrs.
18631	(vect_verify_datarefs_alignment): Likewise.
18632	(vect_analyze_data_refs_alignment): Likewise.
18633	(vect_analyze_data_ref_accesses): Likewise.
18634	(vect_analyze_data_refs): Likewise.
18635	* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Add
18636	constructor parameter for shared part.
18637	(vect_analyze_loop_form): Pass in shared part and adjust.
18638	(vect_analyze_loop_2): Pass in storage for the number of
18639	stmts.  Move loop nest finding to the caller.  Compute
18640	datarefs lazily.
18641	(vect_analyze_loop): Pass in shared part.
18642	(vect_transform_loop): Verify shared datarefs are unchanged.
18643	* tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Add
18644	constructor parameter for shared part.
18645	(vect_slp_analyze_bb_1): Pass in shared part and adjust.
18646	(vect_slp_bb): Verify shared datarefs are unchanged before
18647	transform.
18648	* tree-vect-stmts.c (ensure_base_align): Adjust for DR_AUX
18649	change.
18650	(new_stmt_vec_info): Initialize DR_AUX misalignment to
18651	DR_MISALIGNMENT_UNINITIALIZED.
18652	* tree-vectorizer.c (vec_info::vec_info): Add constructor
18653	parameter for shared part.
18654	(vec_info::~vec_info): Adjust.
18655	(vec_info_shared::vec_info_shared): New.
18656	(vec_info_shared::~vec_info_shared): Likewise.
18657	(vec_info_shared::save_datarefs): Likewise.
18658	(vec_info_shared::check_datarefs): Likewise.
18659	(try_vectorize_loop_1): Construct shared part live for analyses
18660	of a single loop for multiple vector sizes.
18661	* tree-parloops.c (gather_scalar_reductions): Adjust.
18662
186632018-06-25  Richard Biener  <rguenther@suse.de>
18664
18665	* tree-vect-data-refs.c (vect_find_stmt_data_reference): Modify
18666	DR for SIMD lane accesses here and mark DR with (void *)-1 aux.
18667	(vect_analyze_data_refs): Remove similar code from here and
18668	simplify accordingly.
18669
186702018-06-25  Richard Biener  <rguenther@suse.de>
18671
18672	* tree-vect-data-refs.c (vect_check_gather_scatter): Fail
18673	for reverse storage order accesses rather than asserting
18674	they cannot happen here.
18675
186762018-06-25  Tom de Vries  <tdevries@suse.de>
18677
18678	PR debug/86257
18679	* config/i386/i386.md (define_insn "*tls_global_dynamic_64_<mode>"):
18680	Use data16 instead of .byte for insn prefix.
18681
186822018-06-25  Andreas Krebbel  <krebbel@linux.ibm.com>
18683
18684	PR C++/86082
18685	* parser.c (make_char_string_pack): Pass this literal chars
18686	through cpp_interpret_string.
18687	(cp_parser_userdef_numeric_literal): Check the result of
18688	make_char_string_pack.
18689
186902018-06-24  Maya Rashish  <coypu@sdf.org>
18691
18692	* ginclude/stddef.h: Simplify conditions around avoiding
18693	re-definition of __size_t.
18694
186952018-06-22  Jan Hubicka  <hubicka@ucw.cz>
18696
18697	* lto-streamer-out.c (tree_is_indexable): Make LABEL_DECL nonindexable
18698	unless it is forced or nonlocal; assert that we stream no IMPORTED_DECL.
18699
187002018-06-22  Maya Rashish  <coypu@sdf.org>
18701
18702	* doc/invoke.texi (mno-fancy-math-387): Update for changes
18703	made to OpenBSD and NetBSD through the years.
18704
187052018-06-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
18706
18707	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change
18708	behavior of vec_pack (vector double, vector double) to match
18709	behavior of vec_float2 (vector double, vector double).
18710
187112018-06-22  Olivier Hainque  <hainque@adacore.com>
18712
18713	* gimplify.c (gimplify_function_tree): Prevent creation
18714	of a trampoline for the address of the current function
18715	passed to entry/exit instrumentation hooks.
18716
187172018-06-22  Aaron Sawdey  <acsawdey@linux.ibm.com>
18718
18719	PR target/86222
18720	* config/rs6000/rs6000-string.c (expand_strn_compare): Handle -m32
18721	correctly.
18722
187232018-06-22  Martin Liska  <mliska@suse.cz>
18724
18725	PR tree-optimization/86263
18726	* tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
18727	Bail out if is_enabled is false.
18728	* tree-switch-conversion.h (jump_table_cluster::is_enabled):
18729	New declaration.
18730	(jump_table_cluster::is_enabled): New function.
18731
187322018-06-22  Jan Hubicka  <hubicka@ucw.cz>
18733
18734	* lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream
18735	BINFO_BASE_ACCESSES and BINFO_VPTR_FIELD.
18736	* tree-streamer-in.c (streamer_read_tree_bitfields): Likewise.
18737	(lto_input_ts_binfo_tree_pointers): Likewise.
18738	* tree-streamer-out.c (streamer_write_tree_bitfields,
18739	write_ts_binfo_tree_pointers): Likewise.
18740	* tree.c (free_lang_data_in_binfo): Clear BINFO_VPTR_FIELD.
18741
187422018-06-22  Jan Hubicka  <hubicka@ucw.cz>
18743
18744	* tree.c (free_lang_data_in_type): Free all TYPE_VFIELDs.
18745
187462018-06-22  Martin Liska  <mliska@suse.cz>
18747
18748	* symbol-summary.h (get): Make it pure and inline move
18749	functionality from ::get function.
18750	(get): Remove and inline into ::get and ::get_create.
18751	(get_create): Move code from ::get function.
18752
187532018-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18754
18755	PR target/85994
18756	* config/i386/sol2.h (CPP_SPEC): Don't pass -P for
18757	-x assembler-with-cpp.
18758
187592018-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18760
18761	* config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
18762	_FILE_OFFSET_BITS=64 for C++.
18763
187642018-06-21  Michael Meissner  <meissner@linux.ibm.com>
18765
18766	* config/rs6000/rs6000.md (extendtfif2): Add missing 128-bit
18767	conversion insn that shows up when pr85657-3.c is compiled using
18768	IEEE 128-bit long double.
18769	(neg<mode>2_internal): Use the correct mode to check whether the
18770	mode is IBM extended.
18771	* config/rs6000/rs6000.c (init_float128_ieee): Prevent complex
18772	multiply and divide external functions from being created more
18773	than once.
18774
187752018-06-21  Eric Botcazou  <ebotcazou@adacore.com>
18776
18777	* cfgrtl.c (fixup_reorder_chain): Do not emit NOPs in DECL_IGNORED_P
18778	functions.
18779	(rtl_merge_blocks): Likewise.  Do not emit a NOP if the location of
18780	the edge can be forwarded.
18781	(cfg_layout_merge_blocks): Likewise.
18782
187832018-06-21  Eric Botcazou  <ebotcazou@adacore.com>
18784
18785	* except.c (finish_eh_generation): Commit edge insertions only after
18786	the EH edges have been redirected from post-landing to landing pads.
18787
187882018-06-21  Eric Botcazou  <ebotcazou@adacore.com>
18789
18790	* tree-nested.c (get_frame_type): Use create_tmp_var_raw instead of
18791	create_tmp_var_for to create the FRAME decl.
18792	(finalize_nesting_tree_1): Do not unchain the FRAME decl.
18793
187942018-06-21  Eric Botcazou  <ebotcazou@adacore.com>
18795
18796	* tree-inline.c (copy_edges_for_bb): Minor tweak.
18797	(maybe_move_debug_stmts_to_successors): Also reset the locus of the
18798	debug statement when resetting its value.
18799	(expand_call_inline): Copy the locus of the call onto the assignment
18800	of the return value, if any.  Use local variable in more cases.
18801
188022018-06-21  Martin Liska  <mliska@suse.cz>
18803
18804	* ipa-pure-const.c (propagate_nothrow): Use
18805	funct_state_summaries->get.
18806	(dump_malloc_lattice): Likewise.
18807	(propagate_malloc): Likewise.
18808
188092018-06-21  Richard Biener  <rguenther@suse.de>
18810
18811	* lto-streamer-out.c (DFS::DFS_write_tree_body): Update outdated
18812	comment.  Follow BLOCK_ABSTRACT_ORIGIN unconditionally.
18813	* tree-streamer-in.c (lto_input_ts_block_tree_pointers): Update
18814	comment.
18815	* tree-streamer-out.c (write_ts_block_tree_pointers): Stream
18816	BLOCK_ABSTRACT_ORIGIN unconditionally.
18817
188182018-06-21  David Malcolm  <dmalcolm@redhat.com>
18819
18820	* ipa-cp.c (ipcp_driver): Set edge_clone_summaries to NULL after
18821	deleting it.
18822	* ipa-reference.c (ipa_reference_c_finalize): Delete
18823	ipa_ref_opt_sum_summaries and set it to NULL.
18824
188252018-06-21  Tom de Vries  <tdevries@suse.de>
18826
18827	PR tree-optimization/85859
18828	* tree-ssa-tail-merge.c (stmt_local_def): Copy gimple_is_call
18829	test with comment from bb_no_side_effects_p.
18830
188312018-06-21  Richard Biener  <rguenther@suse.de>
18832
18833	PR tree-optimization/86232
18834	* tree-ssa-loop-niter.c (number_of_iterations_popcount): Adjust
18835	max for constant niter.
18836
188372018-06-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>
18838
18839	* config/aarch64/aarch64-simd.md
18840	(*aarch64_crypto_aes<aes_op>v16qi_xor_combine): New.
18841
188422018-06-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>
18843
18844	* config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
18845	Make opernads of the unspec commutative.
18846
188472018-06-21  Richard Biener  <rguenther@suse.de>
18848
18849	* tree-data-ref.c (dr_step_indicator): Handle NULL DR_STEP.
18850	* tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
18851	Avoid calling vect_mark_for_runtime_alias_test with gathers or scatters.
18852	(vect_analyze_data_ref_dependence): Re-order checks to deal with
18853	NULL DR_STEP.
18854	(vect_record_base_alignments): Do not record base alignment
18855	for gathers or scatters.
18856	(vect_compute_data_ref_alignment): Drop return value that is always
18857	true.  Bail out early for gathers or scatters.
18858	(vect_enhance_data_refs_alignment): Bail out early for gathers
18859	or scatters.
18860	(vect_find_same_alignment_drs): Likewise.
18861	(vect_analyze_data_refs_alignment): Remove dead code.
18862	(vect_slp_analyze_and_verify_node_alignment): Likewise.
18863	(vect_analyze_data_refs): For possible gathers or scatters do
18864	not create an alternate DR, just check their possible validity
18865	and mark them.  Adjust DECL_NONALIASED handling to not rely
18866	on DR_BASE_ADDRESS.
18867	* tree-vect-loop-manip.c (vect_update_inits_of_drs): Do not
18868	update inits of gathers or scatters.
18869	* tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
18870	Also copy gather/scatter flag to pattern vinfo.
18871
188722018-06-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
18873
18874	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change
18875	behavior of vec_packsu (vector unsigned long long, vector unsigned
18876	long long) to match behavior of vec_packs with same signature.
18877
188782018-06-20  Chung-Lin Tang  <cltang@codesourcery.com>
18879	    Thomas Schwinge  <thomas@codesourcery.com>
18880	    Cesar Philippidis  <cesar@codesourcery.com>
18881
18882	* gimplify.c (gimplify_scan_omp_clauses): Add support for
18883	OMP_CLAUSE_{IF_PRESENT,FINALIZE}.
18884	(gimplify_adjust_omp_clauses): Likewise.
18885	(gimplify_oacc_declare_1): Add support for GOMP_MAP_RELEASE, remove
18886	support for GOMP_MAP_FORCE_{ALLOC,TO,FROM,TOFROM}.
18887	(gimplify_omp_target_update): Update handling of acc update and
18888	enter/exit data.
18889	* omp-low.c (install_var_field): Remove unused parameter
18890	base_pointers_restrict.
18891	(scan_sharing_clauses): Remove base_pointers_restrict parameter.
18892	Update call to install_var_field. Handle OMP_CLAUSE_{IF_PRESENT,
18893	FINALIZE}
18894	(omp_target_base_pointers_restrict_p): Delete.
18895	(scan_omp_target): Update call to scan_sharing_clauses.
18896	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_{IF_PRESENT,
18897	FINALIZE}.
18898	* tree-nested.c (convert_nonlocal_omp_clauses): Handle
18899	OMP_CLAUSE_{IF_PRESENT,FINALIZE}.
18900	(convert_local_omp_clauses): Likewise.
18901	* tree-pretty-print.c (dump_omp_clause): Likewise.
18902	* tree.c (omp_clause_num_ops): Add entries for 	OMP_CLAUSE_{IF_PRESENT,
18903	FINALIZE}.
18904	(omp_clause_code_name): Likewise.
18905
189062018-06-20  Jakub Jelinek  <jakub@redhat.com>
18907
18908	PR debug/86194
18909	* var-tracking.c (use_narrower_mode_test): Check if shift amount can
18910	be narrowed.
18911
18912	PR tree-optimization/86231
18913	* tree-vrp.c (union_ranges): For (  [  )  ] or (   )[   ] range and
18914	anti-range don't overwrite *vr0min before using it to compute *vr0max.
18915
189162018-06-20  Tom de Vries  <tdevries@suse.de>
18917
18918	PR tree-optimization/86097
18919	* tree-ssa-loop-manip.c (canonicalize_loop_ivs): Also convert *nit to
18920	iv type if signedness of iv type is not the same as that of *nit.
18921
189222018-06-20  Jakub Jelinek  <jakub@redhat.com>
18923
18924	* cfgrtl.c (rtl_verify_edges): Formatting fix.  If bb->preds has any
18925	EDGE_EH edges, verify they are all EDGE_EH.
18926
189272018-06-20  Maya Rashish  <coypu@sdf.org>
18928
18929	* ginclude/stddef.h: Limit #include <machine/ansi.h> to NetBSD.
18930
189312018-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18932
18933	* config/aarch64/aarch64-tuning-flags.def (no_ldp_stp_qregs): New.
18934	* config/aarch64/aarch64.c (xgene1_tunings): Add
18935	AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS to tune_flags.
18936	(aarch64_mode_valid_for_sched_fusion_p):
18937	Allow 16-byte modes.
18938	(aarch64_classify_address): Allow 16-byte modes for load_store_pair_p.
18939	* config/aarch64/aarch64-ldpstp.md: Add peepholes for LDP STP of
18940	128-bit modes.
18941	* config/aarch64/aarch64-simd.md (load_pair<VQ:mode><VQ2:mode>):
18942	New pattern.
18943	(vec_store_pair<VQ:mode><VQ2:mode>): Likewise.
18944	* config/aarch64/iterators.md (VQ2): New mode iterator.
18945
189462018-06-20  Martin Liska  <mliska@suse.cz>
18947
18948	* tree-switch-conversion.c (jump_table_cluster::can_be_handled):
18949	Change default ratio from 10 to 8.
18950
189512018-06-20  Martin Liska  <mliska@suse.cz>
18952
18953	* tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
18954	New.
18955	(bit_test_cluster::find_bit_tests): Likewise.
18956	(switch_decision_tree::analyze_switch_statement): Find clusters.
18957	* tree-switch-conversion.h (struct jump_table_cluster): Document
18958	hierarchy.
18959
189602018-06-20  Martin Liska  <mliska@suse.cz>
18961
18962	* tree-switch-conversion.c (switch_conversion::collect):
18963	Record m_uniq property.
18964	(switch_conversion::expand): Bail out for special conditions.
18965	(group_cluster::~group_cluster): New.
18966	(group_cluster::group_cluster): Likewise.
18967	(group_cluster::dump): Likewise.
18968	(jump_table_cluster::emit): New.
18969	(switch_decision_tree::fix_phi_operands_for_edges): New.
18970	(struct case_node): Remove struct.
18971	(jump_table_cluster::can_be_handled): New.
18972	(case_values_threshold): Moved to header.
18973	(reset_out_edges_aux): Likewise.
18974	(jump_table_cluster::is_beneficial): New.
18975	(bit_test_cluster::can_be_handled): Likewise.
18976	(add_case_node): Remove.
18977	(bit_test_cluster::is_beneficial): New.
18978	(case_bit_test::cmp): New.
18979	(bit_test_cluster::emit): New.
18980	(expand_switch_as_decision_tree_p): Remove.
18981	(bit_test_cluster::hoist_edge_and_branch_if_true): New.
18982	(fix_phi_operands_for_edge): Likewise.
18983	(switch_decision_tree::analyze_switch_statement): New.
18984	(compute_cases_per_edge): Move ...
18985	(switch_decision_tree::compute_cases_per_edge): ... here.
18986	(try_switch_expansion): Likewise.
18987	(switch_decision_tree::try_switch_expansion): Likewise.
18988	(record_phi_operand_mapping): Likewise.
18989	(switch_decision_tree::record_phi_operand_mapping): Likewise.
18990	(emit_case_decision_tree): Likewise.
18991	(switch_decision_tree::emit): Likewise.
18992	(balance_case_nodes): Likewise.
18993	(switch_decision_tree::balance_case_nodes): Likewise.
18994	(dump_case_nodes): Likewise.
18995	(switch_decision_tree::dump_case_nodes): Likewise.
18996	(emit_jump): Likewise.
18997	(switch_decision_tree::emit_jump): Likewise.
18998	(emit_cmp_and_jump_insns): Likewise.
18999	(switch_decision_tree::emit_cmp_and_jump_insns): Likewise.
19000	(emit_case_nodes): Likewise.
19001	(switch_decision_tree::emit_case_nodes): Likewise.
19002	(conditional_probability): Remove.
19003	* tree-switch-conversion.h (enum cluster_type): New.
19004	(PRINT_CASE): New.
19005	(struct cluster): Likewise.
19006	(cluster::cluster): Likewise.
19007	(struct simple_cluster): Likewise.
19008	(simple_cluster::simple_cluster): Likewise.
19009	(struct group_cluster): Likewise.
19010	(struct jump_table_cluster): Likewise.
19011	(struct bit_test_cluster): Likewise.
19012	(struct min_cluster_item): Likewise.
19013	(struct case_tree_node): Likewise.
19014	(case_tree_node::case_tree_node): Likewise.
19015	(jump_table_cluster::case_values_threshold): Likewise.
19016	(struct case_bit_test): Likewise.
19017	(struct switch_decision_tree): Likewise.
19018	(struct switch_conversion): Likewise.
19019	(switch_decision_tree::reset_out_edges_aux): Likewise.
19020
190212018-06-20  Martin Liska  <mliska@suse.cz>
19022
19023	* tree-switch-conversion.c (MAX_CASE_BIT_TESTS): Remove.
19024	(hoist_edge_and_branch_if_true): Likewise.
19025	(expand_switch_using_bit_tests_p): Likewise.
19026	(struct case_bit_test): Likewise.
19027	(case_bit_test_cmp): Likewise.
19028	(emit_case_bit_tests): Likewise.
19029	(switch_conversion::switch_conversion): New class.
19030	(struct switch_conv_info): Remove old struct.
19031	(collect_switch_conv_info): More to ...
19032	(switch_conversion::collect): ... this.
19033	(check_range): Likewise.
19034	(switch_conversion::check_range): Likewise.
19035	(check_all_empty_except_final): Likewise.
19036	(switch_conversion::check_all_empty_except_final): Likewise.
19037	(check_final_bb): Likewise.
19038	(switch_conversion::check_final_bb): Likewise.
19039	(create_temp_arrays): Likewise.
19040	(switch_conversion::create_temp_arrays): Likewise.
19041	(free_temp_arrays): Likewise.
19042	(gather_default_values): Likewise.
19043	(switch_conversion::gather_default_values): Likewise.
19044	(build_constructors): Likewise.
19045	(switch_conversion::build_constructors): Likewise.
19046	(constructor_contains_same_values_p): Likewise.
19047	(switch_conversion::contains_same_values_p): Likewise.
19048	(array_value_type): Likewise.
19049	(switch_conversion::array_value_type): Likewise.
19050	(build_one_array): Likewise.
19051	(switch_conversion::build_one_array): Likewise.
19052	(build_arrays): Likewise.
19053	(switch_conversion::build_arrays): Likewise.
19054	(gen_def_assigns): Likewise.
19055	(switch_conversion::gen_def_assigns): Likewise.
19056	(prune_bbs): Likewise.
19057	(switch_conversion::prune_bbs): Likewise.
19058	(fix_phi_nodes): Likewise.
19059	(switch_conversion::fix_phi_nodes): Likewise.
19060	(gen_inbound_check): Likewise.
19061	(switch_conversion::gen_inbound_check): Likewise.
19062	(process_switch): Use the newly created class.
19063	(switch_conversion::expand): New.
19064	(switch_conversion::~switch_conversion): New.
19065	* tree-switch-conversion.h: New file.
19066
190672018-06-20  Richard Sandiford  <richard.sandiford@arm.com>
19068
19069	* tree-vectorizer.h (NUM_PATTERNS, vect_recog_func_ptr): Move to
19070	tree-vect-patterns.c.
19071	* tree-vect-patterns.c (vect_supportable_direct_optab_p): New function.
19072	(vect_recog_dot_prod_pattern): Use it.  Remove the type_in argument.
19073	(vect_recog_sad_pattern): Likewise.
19074	(vect_recog_widen_sum_pattern): Likewise.
19075	(vect_recog_pow_pattern): Likewise.  Check for a null vectype.
19076	(vect_recog_widen_shift_pattern): Remove the type_in argument.
19077	(vect_recog_rotate_pattern): Likewise.
19078	(vect_recog_mult_pattern): Likewise.
19079	(vect_recog_vector_vector_shift_pattern): Likewise.
19080	(vect_recog_divmod_pattern): Likewise.
19081	(vect_recog_mixed_size_cond_pattern): Likewise.
19082	(vect_recog_bool_pattern): Likewise.
19083	(vect_recog_mask_conversion_pattern): Likewise.
19084	(vect_try_gather_scatter_pattern): Likewise.
19085	(vect_recog_widen_mult_pattern): Likewise.  Check for a null vectype.
19086	(vect_recog_over_widening_pattern): Likewise.
19087	(vect_recog_gather_scatter_pattern): Likewise.
19088	(vect_recog_func_ptr): Move from tree-vectorizer.h
19089	(vect_vect_recog_func_ptrs): Move further down the file.
19090	(vect_recog_func): Likewise.  Remove the third argument.
19091	(NUM_PATTERNS): Define based on vect_vect_recog_func_ptrs.
19092	(vect_pattern_recog_1): Expect the pattern function to do any
19093	necessary target tests.  Also expect it to provide a vector type.
19094	Remove the type_in handling.
19095
190962018-06-20  Richard Sandiford  <richard.sandiford@arm.com>
19097
19098	* tree-vect-patterns.c (vect_pattern_detected): New function.
19099	(vect_recog_dot_prod_patternm, vect_recog_sad_pattern)
19100	(vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern)
19101	(vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern
19102	(vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern)
19103	(vect_recog_mult_pattern, vect_recog_divmod_pattern)
19104	(vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern)
19105	(vect_recog_mask_conversion_pattern)
19106	(vect_try_gather_scatter_pattern): Likewise.
19107
191082018-06-20  Richard Sandiford  <richard.sandiford@arm.com>
19109
19110	* tree-vect-patterns.c (vect_get_internal_def): New function.
19111	(vect_recog_dot_prod_pattern, vect_recog_sad_pattern)
19112	(vect_recog_vector_vector_shift_pattern, check_bool_pattern)
19113	(search_type_for_mask_1): Use it.
19114
191152018-06-20  Richard Sandiford  <richard.sandiford@arm.com>
19116
19117	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Remove
19118	redundant WIDEN_SUM_EXPR handling.
19119	(vect_recog_sad_pattern): Likewise.
19120
191212018-06-20  Richard Sandiford  <richard.sandiford@arm.com>
19122
19123	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Remove
19124	redundant check that the types of a PLUS_EXPR or MULT_EXPR agree.
19125	(vect_recog_sad_pattern): Likewise PLUS_EXPR, ABS_EXPR and MINUS_EXPR.
19126	(vect_recog_widen_mult_pattern): Likewise MULT_EXPR.
19127	(vect_recog_widen_sum_pattern): Likewise PLUS_EXPR.
19128
191292018-06-20  Richard Sandiford  <richard.sandiford@arm.com>
19130
19131	* tree-vect-stmts.c (vectorizable_call): Make sure that we
19132	use the stmt_vec_info of the original bb statement for the
19133	new zero assignment, even if the call is part of a pattern.
19134
191352018-06-20  Richard Sandiford  <richard.sandiford@arm.com>
19136
19137	* tree-vectorizer.h (_stmt_vec_info): Note above pattern_def_seq
19138	that the sequence is attached to the original statement rather
19139	than the pattern statement.
19140	* tree-vect-loop.c (vect_determine_vf_for_stmt): Take the
19141	PATTERN_DEF_SEQ from the original statement rather than
19142	the main pattern statement.
19143	* tree-vect-stmts.c (free_stmt_vec_info): Likewise.
19144	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
19145	(vect_mark_pattern_stmts): Don't copy the PATTERN_DEF_SEQ.
19146
191472018-06-20  Richard Sandiford  <richard.sandiford@arm.com>
19148
19149	* tree-vect-stmts.c (vect_analyze_stmt): Move the handling of pattern
19150	definition statements before the early exit for statements that aren't
19151	live or relevant.
19152	* tree-vect-loop.c (vect_transform_loop_stmt): New function,
19153	split out from...
19154	(vect_transform_loop): ...here.  Process pattern definition
19155	statements without first checking whether the main pattern
19156	statement is live or relevant.
19157
191582018-06-19  Eric Botcazou  <ebotcazou@adacore.com>
19159
19160	* tree-cfgcleanup.c (tree_forwarder_block_p): Do not return false at
19161	-O0 if the locus represent UNKNOWN_LOCATION but have different values.
19162
191632018-06-19  Aaron Sawdey  <acsawdey@linux.ibm.com>
19164
19165	* config/rs6000/rs6000-string.c (select_block_compare_mode): Check
19166	TARGET_EFFICIENT_OVERLAPPING_UNALIGNED here instead of in caller.
19167	(do_and3, do_and3_mask, do_compb3, do_rotl3): New functions.
19168	(expand_block_compare): Change select_block_compare_mode call.
19169	(expand_strncmp_align_check): Use new functions, fix comment.
19170	(emit_final_str_compare_gpr): New function.
19171	(expand_strn_compare): Refactor and clean up code.
19172	* config/rs6000/vsx.md (vsx_mov<mode>_64bit): Remove *.
19173
191742018-06-19  Tony Reix  <tony.reix@atos.com>
19175	    Damien Bergamini  <damien.bergamini@atos.com>
19176	    David Edelsohn  <dje.gcc@gmail.com>
19177
19178	* collect2.c (static_obj): New variable.
19179	(static_libs): New variable.
19180	(is_in_list): Uncomment declaration.
19181	(main): Track AIX libraries linked statically.
19182	(is_in_list): Uncomment definition.
19183	(scan_prog_file): Don't add AIX shared libraries initializer
19184	to constructor list if linking statically.
19185
191862018-06-19  Max Filippov  <jcmvbkbc@gmail.com>
19187
19188	* config/xtensa/xtensa.md (UNSPEC_FRAME_BLOCKAGE): New unspec
19189	constant.
19190	(allocate_stack, frame_blockage, *frame_blockage): New patterns.
19191
191922018-06-19  Jan Hubicka  <hubicka@ucw.cz>
19193
19194	* tree.c (find_decls_types_r): Remove all non-VAR_DECLs from
19195	blocks.
19196
191972018-06-19  Martin Liska  <mliska@suse.cz>
19198
19199	* config/i386/i386.c (ix86_can_inline_p): Do not use
19200	ipa_fn_summaries::get_create.
19201	* ipa-cp.c (ipcp_cloning_candidate_p): Replace get_create with
19202	get.
19203	(devirtualization_time_bonus): Likewise.
19204	(ipcp_propagate_stage): Likewise.
19205	* ipa-fnsummary.c (redirect_to_unreachable): Likewise.
19206	(edge_set_predicate): Likewise.
19207	(evaluate_conditions_for_known_args): Likewise.
19208	(evaluate_properties_for_edge): Likewise.
19209	(ipa_call_summary::reset): Tranform to ...
19210	(ipa_call_summary::~ipa_call_summary): ... this.
19211	(ipa_fn_summary::reset): Transform to ...
19212	(ipa_fn_summary::~ipa_fn_summary): ... this.
19213	(ipa_fn_summary_t::remove): Rename to ...
19214	(ipa_fn_summary_t::remove_callees): ... this.
19215	(ipa_fn_summary_t::duplicate): Use placement new
19216	instead of memory copy.
19217	(ipa_call_summary_t::duplicate): Likewise.
19218	(ipa_call_summary_t::remove): Remove.
19219	(dump_ipa_call_summary): Change get_create to get.
19220	(ipa_dump_fn_summary): Dump only when summary exists.
19221	(analyze_function_body): Use symbol_summary::get instead
19222	of get_create.
19223	(compute_fn_summary): Likewise.
19224	(estimate_edge_devirt_benefit): Likewise.
19225	(estimate_edge_size_and_time): Likewise.
19226	(inline_update_callee_summaries): Likewise.
19227	(remap_edge_change_prob): Likewise.
19228	(remap_edge_summaries): Likewise.
19229	(ipa_merge_fn_summary_after_inlining): Likewise.
19230	(write_ipa_call_summary): Likewise.
19231	(ipa_fn_summary_write): Likewise.
19232	(ipa_free_fn_summary): Likewise.
19233	* ipa-fnsummary.h (struct GTY): Add new ctor and copy ctor.
19234	(struct ipa_call_summary): Likewise.
19235	* ipa-icf.c (sem_function::merge): Use symbol_summary::get instead
19236	of get_create.
19237	* ipa-inline-analysis.c (do_estimate_edge_time): Likewise.
19238	(estimate_size_after_inlining): Likewise.
19239	(estimate_growth): Likewise.
19240	(growth_likely_positive): Likewise.
19241	* ipa-inline-transform.c (clone_inlined_nodes): Likewise.
19242	(inline_call): Likewise.
19243	* ipa-inline.c (caller_growth_limits): Likewise.
19244	(can_inline_edge_p): Likewise.
19245	(can_inline_edge_by_limits_p): Likewise.
19246	(compute_uninlined_call_time): Likewise.
19247	(compute_inlined_call_time): Likewise.
19248	(want_inline_small_function_p): Likewise.
19249	(edge_badness): Likewise.
19250	(update_caller_keys): Likewise.
19251	(update_callee_keys): Likewise.
19252	(inline_small_functions): Likewise.
19253	(inline_to_all_callers_1): Likewise.
19254	(dump_overall_stats): Likewise.
19255	(early_inline_small_functions): Likewise.
19256	(early_inliner): Likewise.
19257	* ipa-profile.c (ipa_propagate_frequency_1): Likewise.
19258	* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
19259	* ipa-pure-const.c (malloc_candidate_p): Likewise.
19260	* ipa-split.c (execute_split_functions): Likewise.
19261	* symbol-summary.h: Likewise.
19262	* tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
19263
192642018-06-19  Richard Biener  <rguenther@suse.de>
19265
19266	* tree-vectorizer.c (try_vectorize_loop_1): Split out of ...
19267	(vectorize_loops): ... here.  Fix dbgcnt handling.
19268	(try_vectorize_loop): Wrap try_vectorize_loop_1.
19269
192702018-06-19  Segher Boessenkool  <segher@kernel.crashing.org>
19271
19272	PR target/86197
19273	* config/rs6000/rs6000.md (rs6000_discover_homogeneous_aggregate): An
19274	ieee128 argument takes up only one (vector) register, not two (floating
19275	point) registers.
19276
192772018-06-19  Eric Botcazou  <ebotcazou@adacore.com>
19278
19279	* gimplify.c (gimplify_init_constructor): Really never clear for an
19280	incomplete constructor if CONSTRUCTOR_NO_CLEARING is set.
19281
192822018-06-19  Richard Biener  <rguenther@suse.de>
19283
19284	PR tree-optimization/86179
19285	* tree-vect-patterns.c (vect_pattern_recog_1): Clean up
19286	after failed recognition.
19287
192882018-06-18  Martin Sebor  <msebor@redhat.com>
19289
19290	PR middle-end/85602
19291	* calls.c (maybe_warn_nonstring_arg): Handle strncat.
19292	* tree-ssa-strlen.c (is_strlen_related_p): Make extern.
19293	Handle integer subtraction.
19294	(maybe_diag_stxncpy_trunc): Handle nonstring source arguments.
19295	* tree-ssa-strlen.h (is_strlen_related_p): Declare.
19296
192972018-06-18  David Malcolm  <dmalcolm@redhat.com>
19298
19299	* config/frv/frv-protos.h (frv_ifcvt_modify_insn): Strengthen 3rd
19300	param from rtx to rtx_insn *.
19301	* config/frv/frv.c (frv_ifcvt_add_insn): Likewise for "insn"
19302	param.
19303	(frv_ifcvt_modify_insn): Likwise.
19304	(frv_ifcvt_modify_final): Likwise for local "existing_insn",
19305	adding an as_a <rtx_insn *> cast.  Likewise for local "insn".
19306	* config/mips/mips.c (r10k_insert_cache_barriers): Add an
19307	as_a <rtx_insn *> cast to local "unprotected_region" once
19308	it's been established that it's not NULL or pc_rtx.
19309	* config/nds32/nds32-relax-opt.c (nds32_group_insns): Strengthen
19310	param "sethi" from rtx to rtx_insn *.
19311	(nds32_group_float_insns): Likewise for param "insn".
19312	* config/vax/vax-protos.h (vax_output_int_add): Likewise for 1st
19313	param.
19314	(vax_output_int_subtract): Likewise.
19315	* config/vax/vax.c (vax_output_int_add): Likewise for param
19316	"insn".
19317	(vax_output_int_subtract): Likewise.
19318	* emit-rtl.c (set_insn_deleted): Likewise, removing cast.
19319	(emit_pattern_after): Likewise for param "after".
19320	(emit_insn_after): Likewise.
19321	(emit_jump_insn_after): Likewise.
19322	(emit_call_insn_after): Likewise.
19323	(emit_debug_insn_after): Likewise.
19324	(emit_pattern_before): Likewise for param "before".
19325	(emit_insn_before): Likewise.
19326	(emit_jump_insn_before): Likewise.
19327	* final.c (get_insn_template): Likewise for param "insn", removing
19328	a cast.
19329	* output.h (get_insn_template): Likewise for 2nd param.
19330	* rtl.h (emit_insn_before): Likewise.
19331	(emit_jump_insn_before): Likewise.
19332	(emit_debug_insn_before_noloc): Likewise.
19333	(emit_insn_after): Likewise.
19334	(emit_jump_insn_after): Likewise.
19335	(emit_call_insn_after): Likewise.
19336	(emit_debug_insn_after): Likewise.
19337	(set_insn_deleted): Likewise for param.
19338
193392018-06-18  Michael Meissner  <meissner@linux.ibm.com>
19340
19341	PR target/85358
19342	* config/rs6000/rs6000-modes.def (toplevel): Rework the 128-bit
19343	floating point modes, so that IFmode is numerically greater than
19344	TFmode, which is greater than KFmode using FRACTIONAL_FLOAT_MODE
19345	to declare the ordering.  This prevents IFmode from being
19346	converted to TFmode when long double is IEEE 128-bit on an ISA 3.0
19347	machine.  Include rs6000-modes.h to share the fractional values
19348	between genmodes* and the rest of the compiler.
19349	(IFmode): Likewise.
19350	(KFmode): Likewise.
19351	(TFmode): Likewise.
19352	* config/rs6000/rs6000-modes.h: New file.
19353	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Change the
19354	meaning of rs6000_long_double_size so that 126..128 selects an
19355	appropriate 128-bit floating point type.
19356	(rs6000_option_override_internal): Likewise.
19357	* config/rs6000/rs6000.h (toplevel): Include rs6000-modes.h.
19358	(TARGET_LONG_DOUBLE_128): Change the meaning of
19359	rs6000_long_double_size so that 126..128 selects an appropriate
19360	128-bit floating point type.
19361	(LONG_DOUBLE_TYPE_SIZE): Update comment.
19362	* config/rs6000/rs6000.md (trunciftf2): Correct the modes of the
19363	source and destination to match the standard usage.
19364	(truncifkf2): Likewise.
19365	(copysign<mode>3, IEEE iterator): Rework copysign of float128 on
19366	ISA 2.07 to use an explicit clobber, instead of passing in a
19367	temporary.
19368	(copysign<mode>3_soft): Likewise.
19369
193702018-06-18  David Malcolm  <dmalcolm@redhat.com>
19371
19372	* tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
19373	Replace dump_printf_loc call with DUMP_VECT_SCOPE.
19374	(vect_slp_analyze_instance_dependence): Likewise.
19375	(vect_enhance_data_refs_alignment): Likewise.
19376	(vect_analyze_data_refs_alignment): Likewise.
19377	(vect_slp_analyze_and_verify_instance_alignment
19378	(vect_analyze_data_ref_accesses): Likewise.
19379	(vect_prune_runtime_alias_test_list): Likewise.
19380	(vect_analyze_data_refs): Likewise.
19381	* tree-vect-loop-manip.c (vect_update_inits_of_drs): Likewise.
19382	* tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
19383	(vect_analyze_scalar_cycles_1): Likewise.
19384	(vect_get_loop_niters): Likewise.
19385	(vect_analyze_loop_form_1): Likewise.
19386	(vect_update_vf_for_slp): Likewise.
19387	(vect_analyze_loop_operations): Likewise.
19388	(vect_analyze_loop): Likewise.
19389	(vectorizable_induction): Likewise.
19390	(vect_transform_loop): Likewise.
19391	* tree-vect-patterns.c (vect_pattern_recog): Likewise.
19392	* tree-vect-slp.c (vect_analyze_slp): Likewise.
19393	(vect_make_slp_decision): Likewise.
19394	(vect_detect_hybrid_slp): Likewise.
19395	(vect_slp_analyze_operations): Likewise.
19396	(vect_slp_bb): Likewise.
19397	* tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
19398	(vectorizable_bswap): Likewise.
19399	(vectorizable_call): Likewise.
19400	(vectorizable_simd_clone_call): Likewise.
19401	(vectorizable_conversion): Likewise.
19402	(vectorizable_assignment): Likewise.
19403	(vectorizable_shift): Likewise.
19404	(vectorizable_operation): Likewise.
19405	* tree-vectorizer.h (DUMP_VECT_SCOPE): New macro.
19406
194072018-06-18  Martin Sebor  <msebor@redhat.com>
19408
19409	PR tree-optimization/81384
19410	* builtin-types.def (BT_FN_SIZE_CONST_STRING_SIZE): New.
19411	* builtins.c (expand_builtin_strnlen): New function.
19412	(expand_builtin): Call it.
19413	(fold_builtin_n): Avoid setting TREE_NO_WARNING.
19414	* builtins.def (BUILT_IN_STRNLEN): New.
19415	* calls.c (maybe_warn_nonstring_arg): Handle BUILT_IN_STRNLEN.
19416	Warn for bounds in excess of maximum object size.
19417	* tree-ssa-strlen.c (maybe_set_strlen_range): Return tree representing
19418	single-value ranges.  Handle strnlen.
19419	(handle_builtin_strlen): Handle strnlen.
19420	(strlen_check_and_optimize_stmt): Same.
19421	* doc/extend.texi (Other Builtins): Document strnlen.
19422
194232018-06-18  Maya Rashish  <coypu@sdf.org>
19424
19425	* config/alpha/openbsd.h (TARGET_DEFAULT): Define.
19426	(LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
19427	(INTMAX_TYPE, UINTMAX_TYPE, WINT_TYPE): Likewise.
19428
19429	* config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Move from
19430	here to ...
19431	* config/alpha/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Here.
19432
194332018-06-18  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19434
19435	* tree.c (escaped_string::escape): Replace cast to char * by
19436	const_cast<char *> (unescaped).
19437
194382018-06-18  Nick Clifton  <nickc@redhat.com>
19439
19440	PR 84195
19441	* tree.c (escaped_string): New class.  Converts an unescaped
19442	string into its escaped equivalent.
19443	(warn_deprecated_use): Use the new class to convert the
19444	deprecation message, if present.
19445	(test_escaped_strings): New self test.
19446	(test_c_tests): Add test_escaped_strings.
19447	* doc/extend.texi (deprecated): Add a note that the
19448	deprecation message is affected by the -fmessage-length
19449	option, and that control characters will be escaped.
19450	(#pragma GCC error): Document this pragma.
19451	(#pragma GCC warning): Likewise.
19452	* doc/invoke.texi (-fmessage-length): Document this option's
19453	effect on the #warning and #error preprocessor directives and
19454	the deprecated attribute.
19455
194562018-06-18  Eric Botcazou  <ebotcazou@adacore.com>
19457
19458	* tree.c (decl_value_expr_lookup): Revert latest change.
19459	(decl_value_expr_insert): Likewise.
19460
194612018-06-17  Eric Botcazou  <ebotcazou@adacore.com>
19462
19463	* gimplify.c (nonlocal_vlas): Delete.
19464	(nonlocal_vla_vars): Likewise.
19465	(gimplify_var_or_parm_decl): Do not add debug VAR_DECLs for non-local
19466	referenced VLAs.
19467	(gimplify_body): Do not create and destroy nonlocal_vlas.
19468	* tree-nested.c: Include diagnostic.h.
19469	(use_pointer_in_frame): Tweak.
19470	(lookup_field_for_decl): Add assertion and declare the transformation.
19471	(convert_nonlocal_reference_op) <PARM_DECL>: Rework and issue an
19472	internal error when the reference is in a wrong context.  Do not
19473	create a debug decl by default.
19474	(note_nonlocal_block_vlas): Delete.
19475	(convert_nonlocal_reference_stmt) <GIMPLE_BIND>: Do not call it.
19476	(convert_local_reference_op) <PARM_DECL>: Skip the frame decl.  Do not
19477	create a debug decl by default.
19478	(convert_gimple_call) <GIMPLE_CALL>: Issue an internal error when the
19479	call is in a wrong context.
19480	(fixup_vla_decls): New function.
19481	(finalize_nesting_tree_1): Adjust comment.  Call fixup_vla_decls if no
19482	debug variables were created.
19483	* tree.c (decl_value_expr_lookup): Add checking assertion.
19484	(decl_value_expr_insert): Likewise.
19485
194862018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
19487
19488	PR middle-end/82479
19489	* ipa-fnsummary.c (will_be_nonconstant_expr_predicate): Handle CALL_EXPR.
19490	* tree-scalar-evolution.c (interpret_expr): Likewise.
19491	(expression_expensive_p): Likewise.
19492	* tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Likewise.
19493	* tree-ssa-loop-niter.c (number_of_iterations_popcount): New.
19494	(number_of_iterations_exit_assumptions): Use number_of_iterations_popcount.
19495	(ssa_defined_by_minus_one_stmt_p): New.
19496
194972018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
19498
19499	PR middle-end/64946
19500	* cfgexpand.c (expand_debug_expr): Hande ABSU_EXPR.
19501	* config/i386/i386.c (ix86_add_stmt_cost): Likewise.
19502	* dojump.c (do_jump): Likewise.
19503	* expr.c (expand_expr_real_2): Check operand type's sign.
19504	* fold-const.c (const_unop): Handle ABSU_EXPR.
19505	(fold_abs_const): Likewise.
19506	* gimple-pretty-print.c (dump_unary_rhs): Likewise.
19507	* gimple-ssa-backprop.c (backprop::process_assign_use): Likesie.
19508	(strip_sign_op_1): Likesise.
19509	* match.pd: Add new pattern to generate ABSU_EXPR.
19510	* optabs-tree.c (optab_for_tree_code): Handle ABSU_EXPR.
19511	* tree-cfg.c (verify_gimple_assign_unary): Likewise.
19512	* tree-eh.c (operation_could_trap_helper_p): Likewise.
19513	* tree-inline.c (estimate_operator_cost): Likewise.
19514	* tree-pretty-print.c (dump_generic_node): Likewise.
19515	* tree-vect-patterns.c (vect_recog_sad_pattern): Likewise.
19516	* tree.def (ABSU_EXPR): New.
19517
195182018-06-16  Jakub Jelinek  <jakub@redhat.com>
19519
19520	PR middle-end/86095
19521	* common.opt (Wunsafe-loop-optimizations): Add Ignore, remove Var,
19522	documented as preserved for backward compatibility only.
19523	* doc/invoke.texi: Remove -Wunsafe-loop-optimizations documentation.
19524
19525	PR rtl-optimization/86108
19526	* bb-reorder.c (create_forwarder_block): Renamed to ...
19527	(create_eh_forwarder_block): ... this.  Split OLD_BB after labels and
19528	jump from new landing pad to the second part.
19529	(sjlj_fix_up_crossing_landing_pad, dw2_fix_up_crossing_landing_pad):
19530	Adjust callers.
19531
195322018-06-15  Jakub Jelinek  <jakub@redhat.com>
19533
19534	PR middle-end/85878
19535	* expr.c (expand_assignment): Remove now redundant COMPLEX_MODE_P
19536	check from first store_expr, use to_mode instead of GET_MODE (to_rtx).
19537	Only call store_expr for halves if the mode is the same.
19538
19539	PR middle-end/86123
19540	* match.pd ((X / Y) == 0 -> X < Y): Don't transform complex divisions.
19541	Fix up comment formatting.
19542
195432018-06-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19544
19545	* typed-splay-tree.h (typed_splay_tree::remove): New function.
19546	(typed_splay_tree::closure,
19547	typed_splay_tree::inner_foreach_fn, typed_splay_tree::m_inner): Deleted.
19548	(typed_splay_tree::typed_splay_tree,
19549	typed_splay_tree::operator =): Declared private.
19550	(typed_splay_tree::splay_tree_key, typed_splay_tree::splay_tree_value,
19551	typed_splay_tree::splay_tree_node_s, typed_splay_tree::KDEL,
19552	typed_splay_tree::VDEL, typed_splay_tree::splay_tree_delete_helper,
19553	typed_splay_tree::rotate_left, typed_splay_tree::rotate_right,
19554	typed_splay_tree::splay_tree_splay,
19555	typed_splay_tree::splay_tree_foreach_helper,
19556	typed_splay_tree::splay_tree_insert,
19557	typed_splay_tree::splay_tree_remove,
19558	typed_splay_tree::splay_tree_lookup,
19559	typed_splay_tree::splay_tree_predecessor,
19560	typed_splay_tree::splay_tree_successor,
19561	typed_splay_tree::splay_tree_min,
19562	typed_splay_tree::splay_tree_max): Took over from splay-tree.c/.h.
19563	(typed_splay_tree::root, typed_splay_tree::comp,
19564	typed_splay_tree::delete_key,
19565	typed_splay_tree::delete_value): New data members.
19566	* typed-splay-tree.c (selftest::test_str_to_int): Add a test for
19567	typed_splay_tree::remove.
19568
195692018-06-15  Matthew Fortune  <matthew.fortune@mips.com>
19570
19571	* config/mips/mips.h (ASM_SPEC): Pass through -mcrc, -mno-crc,
19572	-mginv and -mno-ginv to the assembler.
19573	* config/mips/mips.opt (-mcrc): New option.
19574	(-mginv): Likewise.
19575	* doc/invoke.text (-mcrc): Document.
19576	(-mginv): Likewise.
19577
195782018-06-15  Nick Clifton  <nickc@redhat.com>
19579
19580	PR 84195
19581	* tree.c (escaped_string): New class.  Converts an unescaped
19582	string into its escaped equivalent.
19583	(warn_deprecated_use): Use the new class to convert the
19584	deprecation message, if present.
19585	(test_escaped_strings): New self test.
19586	(test_c_tests): Add test_escaped_strings.
19587	* doc/extend.texi (deprecated): Add a note that the
19588	deprecation message is affected by the -fmessage-length
19589	option, and that control characters will be escaped.
19590	(#pragma GCC error): Document this pragma.
19591	(#pragma GCC warning): Likewise.
19592	* doc/invoke.texi (-fmessage-length): Document this option's
19593	effect on the #warning and #error preprocessor directives and
19594	the deprecated attribute.
19595
195962018-06-15  Richard Biener  <rguenther@suse.de>
19597
19598	* tree-vect-slp.c (vect_slp_bb): Dump MSG_OPTIMIZED_LOCATIONS
19599	here, also noting vector size used.
19600	* tree-vectorizer.c (vectorize_loops): Adjust.  Note vector
19601	size used in MSG_OPTIMIZED_LOCATIONS dump.
19602	(pass_slp_vectorize::execute): Adjust.
19603
196042018-06-15  Claudiu Zissulescu  <claziss@synopsys.com>
19605
19606	PR target/85968
19607	* config/arc/arc.c (arc_return_address_register): Fix
19608	if-condition.
19609
196102018-06-15  Richard Biener  <rguenther@suse.de>
19611
19612	PR middle-end/86159
19613	* tree-cfg.c (gimplify_build3): Do not strip sign conversions,
19614	leave useless conversion stripping to force_gimple_operand_gsi.
19615	(gimplify_build2): Likewise.
19616	(gimplify_build1): Likewise.
19617
196182018-06-15  Richard Biener  <rguenther@suse.de>
19619
19620	PR middle-end/86076
19621	* tree-cfg.c (move_stmt_op): unshare invariant addresses
19622	before adjusting their block.
19623
196242018-06-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
19625
19626	* config.gcc (riscv*-*-elf* | riscv*-*-rtems*): Use custom
19627	multilibs for *-*-rtems*.
19628	* config/riscv/t-rtems: New file.
19629
196302018-06-14  Jakub Jelinek  <jakub@redhat.com>
19631
19632	PR middle-end/86122
19633	* match.pd ((A +- CST1) +- CST2): Punt if last resort
19634	unsigned_type_for returns NULL.
19635
19636	PR target/85945
19637	* lower-subreg.c (find_decomposable_subregs): Don't decompose float
19638	subregs of multi-word pseudos unless the float mode has word size.
19639
196402018-06-14  Richard Biener  <rguenther@suse.de>
19641
19642	PR middle-end/86139
19643	* tree-vect-generic.c (build_word_mode_vector_type): Remove
19644	duplicate and harmful type_hash_canon.
19645	* tree.c (type_hash_canon): Assert we didn't find ourselves.
19646
196472018-06-14  Richard Biener  <rguenther@suse.de>
19648
19649	PR ipa/86124
19650	* tree-ssa-struct-alias.c (create_variable_info_for): Handle
19651	NULL cgraph_node.
19652
196532018-06-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
19654
19655	* config/rtems.h (STDINT_LONG32): Define.
19656
196572018-06-13  Matthew Fortune  <matthew.fortune@mips.com>
19658	    Prachi Godbole  <prachi.godbole@imgtec.com>
19659
19660	* config/mips/mips-cpus.def: Define P6600.
19661	* config/mips/mips-tables.opt: Regenerate.
19662	* config/mips/mips.c (mips_ucbranch_type): New enum.
19663	(mips_rtx_cost_data): Add support for P6600.
19664	(mips_issue_rate): Likewise.
19665	(mips_multipass_dfa_lookahead): Likewise.
19666	(mips_avoid_hazard): Likewise.
19667	(mips_reorg_process_insns): Likewise.
19668	(mips_classify_branch_p6600): New function.
19669	* config/mips/mips.h (TUNE_P6600): New define.
19670	(MIPS_ISA_LEVEL_SPEC): Infer mips64r6 from p6600.
19671	(ENABLE_LD_ST_PAIRS): Enable load/store bonding for p6600.
19672	* config/mips/mips.md: Include p6600.md.
19673	(processor): Add p6600.
19674	* config/mips/p6600.md: New file.
19675	* doc/invoke.texi: Add p6600 to supported architectures.
19676
196772018-06-13  Martin Sebor  <msebor@redhat.com>
19678
19679	PR tree-optimization/86114
19680	* gimple-fold.c (gimple_fold_builtin_strlen): Only handle LHS
19681	of integer types.
19682	* tree-ssa-strlen.c (maybe_set_strlen_range): Same.
19683
196842018-06-13  Richard Biener  <rguenther@suse.de>
19685
19686	* tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern):
19687	Properly set vector type of the intermediate stmt.
19688	* tree-vect-stmts.c (vectorizable_operation): The destination
19689	var always has vectype_out type.
19690
196912018-06-13  Jeff Law  <law@redhat.com>
19692
19693	* config/rl78/rl78.c (move_elim_pass): Use TDF_NONE rather than
19694	integer 0 for argument to print_rtl_with_bb.
19695	(rl78_reorg): Likewise.
19696
196972018-06-13  David Malcolm  <dmalcolm@redhat.com>
19698
19699	* config/arc/arc.c (hwloop_optimize): Strengthen local "end_label"
19700	from rtx to rtx_insn *.
19701	* config/bfin/bfin.c (hwloop_optimize): Likewise for local
19702	"label".
19703	(add_sched_insns_for_speculation): Likewise for local "target",
19704	converting usage of JUMP_LABEL to JUMP_LABEL_AS_INSN.
19705	* config/c6x/c6x.c (reorg_split_calls): Strengthen param "call_labels"
19706	from rtx_insn ** to rtx_code_label **.
19707	(reorg_emit_nops): Likewise.
19708	(c6x_reorg): Likewise for local "call_labels".
19709	* config/sh/sh-protos.h (get_dest_uid): Strengthen 1st param from
19710	rtx to rtx_insn *.
19711	* config/sh/sh.c (dump_table): Strengthen local "lab" from rtx to
19712	rtx_code_label *, adding safe_as_a <rtx_code_label *> casts to
19713	the loops over LABEL_REFS.
19714	(fixup_addr_diff_vecs): Add as_a <rtx_insn *> to usage of
19715	braf_label.
19716	(barrier_align): Convert usage of JUMP_LABEL to JUMP_LABEL_AS_INSN.
19717	(get_dest_uid): Strengthen param "label" from rtx to rtx_insn *.
19718	(split_branches): Strengthen local "olabel" from rtx to
19719	rtx_insn *, adding a safe_as_a cast.
19720	* emit-rtl.c (next_real_insn): Strengthen param from "rtx"
19721	to "rtx_insn *".
19722	(add_insn_after): Likewise for first two params.
19723	(add_insn_before): Likewise.
19724	(remove_insn): Likewise for param.
19725	(emit_pattern_before_noloc): Likewise for second and third params.
19726	(emit_jump_insn_before_noloc): Convert NULL_RTX to NULL.
19727	(emit_call_insn_before_noloc): Likewise.
19728	(emit_debug_insn_before_noloc): Strengthen "before" param from "rtx"
19729	to "rtx_insn *".
19730	(emit_barrier_before): Likewise.
19731	(emit_label_before): Strengthen "label" param from "rtx" to
19732	"rtx_code_label *".  Strengthen "before" param from "rtx" to
19733	"rtx_insn *".
19734	(emit_insn_after_1): Strengthen "after" param from "rtx" to
19735	"rtx_insn *".
19736	(emit_pattern_after_noloc): Likewise.
19737	(emit_insn_after_noloc): Likewise.
19738	(emit_jump_insn_after_noloc): Likewise.
19739	(emit_call_insn_after_noloc): Likewise.
19740	(emit_debug_insn_after_noloc): Likewise.
19741	(emit_barrier_after): Likewise.
19742	(emit_label_after): Likewise for both params.
19743	(emit_pattern_after_setloc): Likewise for "after" param.  Convert
19744	"loc" param from "int" to "location_t".
19745	(emit_insn_after_setloc): Likewise.
19746	(emit_jump_insn_after_setloc): Likewise.
19747	(emit_call_insn_after_setloc): Likewise.
19748	(emit_debug_insn_after_setloc): Likewise.
19749	(emit_pattern_before_setloc): Likewise for "before" param.  Convert
19750	"loc" param from "int" to "location_t".
19751	(emit_pattern_before): Convert NULL_RTX to NULL.
19752	(emit_insn_before_setloc): Convert "loc" param from "int" to
19753	"location_t".
19754	(emit_jump_insn_before_setloc): Likewise.
19755	(emit_call_insn_before_setloc): Likewise.
19756	(emit_debug_insn_before_setloc): Strengthen "before" param from rtx to
19757	rtx_insn *.  Convert "loc" param from "int" to "location_t".
19758	* rtl.h (emit_insn_before_setloc, emit_jump_insn_before_setloc,
19759	emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
19760	Convert 3rd param from "int" to "location_t".
19761	(emit_barrier_before, emit_barrier_after, next_real_insn):
19762	Strengthen param from rtx to rtx_insn *.
19763	(emit_label_before): Strengthen 1st param from "rtx" to
19764	"rtx_code_label *".  Strengthen 2nd param from "rtx" to
19765	"rtx_insn *".
19766	(emit_insn_after_noloc, emit_jump_insn_after_noloc,
19767	emit_call_insn_after_noloc, emit_debug_insn_after_noloc):
19768	Strengthen 2nd param from "rtx" to "rtx_insn *".
19769	(emit_insn_after_setloc, emit_jump_insn_after_setloc)
19770	emit_call_insn_after_setloc, emit_debug_insn_after_setloc):
19771	Likewise. Convert 3rd param from "int" to "location_t".
19772	(emit_label_after): Strengthen 1st param from "rtx" to
19773	"rtx_code_label *".
19774	(next_real_insn, remove_insn): Strengthen param from "rtx" to
19775	"rtx_insn *".
19776	(add_insn_before, add_insn_after): Strengthen 1st and 2nd params
19777	from "rtx" to "rtx_insn *".
19778
197792018-06-13  Jan Hubicka  <hubicka@gcc.gnu.org>
19780
19781	* cgraph.c (cgraph_node::get_untransformed_body): Dump function
19782	bodies streamed in with -Q.
19783	* dumpfile.c (dump_files): Add lto-stream-out dump file.
19784	* dumpfile.h (tree_dump_index): Add lto_stream_out.
19785	* gimple-streamer-out.c: Include gimple-pretty-print.h
19786	(output_bb): Dump stmts streamed.
19787	* lto-section-out.c: Include print-tree.h
19788	(lto_begin_section): Dump sections created.
19789	(lto_output_decl_index): Dump decl encoded.
19790	* lto-streamer-out.c: Include print-tree.h
19791	(create_output_block): Dump output block created.
19792	(DFS::DFS_write_tree_body): Dump DFS SCCs streamed.
19793	(output_function): Dump function output.
19794	(output_constructor): Dump constructor streamed.
19795	(write_global_stream): Output indexes encoded.
19796	(produce_asm_for_decls): Dump streams encoded.
19797	* lto-streamer.c (streamer_dump_file): New global var.
19798	* lto-streamer.h (streamer_dump_file): Declare.
19799	* passes.c (ipa_write_summaries): Initialize streamer dump.
19800	* varpool.c (varpool_node::get_constructor): Dump constructors streamed
19801	in.
19802
198032018-06-13  Eric Botcazou  <ebotcazou@adacore.com>
19804
19805	PR target/86048
19806	* config/i386/winnt.c (i386_pe_seh_cold_init): Do not emit negative
19807	offsets for register save directives.  Emit a second batch of save
19808	directives, if need be, when the function accesses prior frames.
19809
198102018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
19811
19812	* config/arc/fpu.md (fmasf4): Force operand to register.
19813	(fnmasf4): Likewise.
19814
198152018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
19816
19817	* config/arc/arc-protos.h (arc_pad_return): Remove.
19818	* config/arc/arc.c (machine_function): Remove force_short_suffix
19819	and size_reason.
19820	(arc_print_operand): Adjust printing of '&'.
19821	(arc_verify_short): Remove conditional printing of short suffix.
19822	(arc_final_prescan_insn): Remove reference to size_reason.
19823	(pad_return): New function.
19824	(arc_reorg): Call pad_return.
19825	(arc_pad_return): Remove.
19826	(arc_init_machine_status): Remove reference to force_short_suffix.
19827	* config/arc/arc.md (vunspec): Add VUNSPEC_ARC_BLOCKAGE.
19828	(attr length): When attribute iscompact is true force to 2
19829	regardless; in the case of maybe check if we want to force the
19830	instruction to have 4 bytes length.
19831	(nopv): Change it to generate 4 byte long nop as well.
19832	(blockage): New pattern.
19833	(simple_return): Remove call to arc_pad_return.
19834	(p_return_i): Likewise.
19835
198362018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
19837
19838	* config/arc/elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
19839
198402018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
19841
19842	* config/arc/builtins.def (SYNC): SYNC instruction is valid on all
19843	ARC cores.
19844
198452018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
19846
19847	* config/arc/arc.c (atomic_exchangesi): EX instruction is default
19848	for ARC700 and ARCv2.
19849
198502018-06-13  Chenghua Xu  <paul.hua.gm@gmail.com>
19851
19852	PR target/86076
19853	* config/mips/loongson.md (vec_setv4hi): Gen_lowpart for
19854	operands[2] instead of operands[1].
19855
19856
198572018-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
19858
19859	* lra-constraints.c (simplify_operand_subreg): In the paradoxical
19860	case, check whether the outer register overlaps an unallocatable
19861	register, not just whether it fits the required class.
19862
198632018-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
19864
19865	* poly-int.h (can_div_trunc_p): Add new overload in which all values
19866	are poly_ints.
19867	* alias.c (get_addr): Extend CONST_INT handling to poly_int_rtx_p.
19868	(memrefs_conflict_p): Likewise.
19869	(init_alias_analysis): Likewise.
19870	* cfgexpand.c (expand_debug_expr): Likewise.
19871	* combine.c (combine_simplify_rtx, force_int_to_mode): Likewise.
19872	* cse.c (fold_rtx): Likewise.
19873	* explow.c (adjust_stack, anti_adjust_stack): Likewise.
19874	* expr.c (emit_block_move_hints): Likewise.
19875	(clear_storage_hints, push_block, emit_push_insn): Likewise.
19876	(store_expr_with_bounds, reduce_to_bit_field_precision): Likewise.
19877	(emit_group_load_1): Use rtx_to_poly_int64 for group offsets.
19878	(emit_group_store): Likewise.
19879	(find_args_size_adjust): Use strip_offset.  Use rtx_to_poly_int64
19880	to read the PRE/POST_MODIFY increment.
19881	* calls.c (store_one_arg): Use strip_offset.
19882	* rtlanal.c (rtx_addr_can_trap_p_1): Extend CONST_INT handling to
19883	poly_int_rtx_p.
19884	(set_noop_p): Use rtx_to_poly_int64 for the elements selected
19885	by a VEC_SELECT.
19886	* simplify-rtx.c (avoid_constant_pool_reference): Use strip_offset.
19887	(simplify_binary_operation_1): Extend CONST_INT handling to
19888	poly_int_rtx_p.
19889	* var-tracking.c (compute_cfa_pointer): Take a poly_int64 rather
19890	than a HOST_WIDE_INT.
19891	(hard_frame_pointer_adjustment): Change from HOST_WIDE_INT to
19892	poly_int64.
19893	(adjust_mems, add_stores): Update accodingly.
19894	(vt_canonicalize_addr): Track polynomial offsets.
19895	(emit_note_insn_var_location): Likewise.
19896	(vt_add_function_parameter): Likewise.
19897	(vt_initialize): Likewise.
19898
198992018-06-12  Jeff Law  <law@redhat.com>
19900
19901	* config.gcc (alpha*-*-freebsd*): Remove.
19902	* config/alpha/freebsd.h: Remove.
19903
199042018-06-12  David Malcolm  <dmalcolm@redhat.com>
19905
19906	PR other/69968
19907	* spellcheck-tree.c (levenshtein_distance): Rename to...
19908	(get_edit_distance): ...this, and update for underlying renaming.
19909	* spellcheck-tree.h (levenshtein_distance): Rename to...
19910	(get_edit_distance): ...this.
19911	* spellcheck.c (levenshtein_distance): Rename to...
19912	(get_edit_distance): ...this.  Convert from Levenshtein distance
19913	to Damerau-Levenshtein distance by supporting transpositions of
19914	adjacent characters.  Rename "v1" to "v_next" and "v0" to
19915	"v_one_ago".
19916	(selftest::levenshtein_distance_unit_test_oneway): Rename to...
19917	(selftest::test_edit_distance_unit_test_oneway): ...this, and
19918	update for underlying renaming.
19919	(selftest::levenshtein_distance_unit_test): Rename to...
19920	(selftest::test_get_edit_distance_unit): ...this, and update for
19921	underlying renaming.
19922	(selftest::test_find_closest_string): Add example from PR 69968
19923	where transposition helps
19924	(selftest::test_metric_conditions): Update for renaming.
19925	(selftest::test_metric_conditions): Likewise.
19926	(selftest::spellcheck_c_tests): Likewise.
19927	* spellcheck.h (levenshtein_distance): Rename both overloads to...
19928	(get_edit_distance): ...this.
19929	(best_match::consider): Update for renaming.
19930
199312018-06-12  Martin Sebor  <msebor@redhat.com>
19932
19933	PR tree-optimization/85259
19934	* builtins.c (compute_objsize): Handle constant offsets.
19935	* gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Return
19936	true iff a warning has been issued.
19937	* gimple.h (gimple_nonartificial_location): New function.
19938	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Call
19939	gimple_nonartificial_location and handle -Wno-system-headers.
19940	(handle_builtin_stxncpy): Same.
19941
199422018-06-12  Martin Sebor  <msebor@redhat.com>
19943
19944	PR c/85931
19945	* fold-const.c (operand_equal_p): Handle SAVE_EXPR.
19946
199472018-06-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
19948
19949	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
19950	BUILTIN_VEC_XST entries for pointer to double and long long.
19951
199522018-06-12  H.J. Lu  <hongjiu.lu@intel.com>
19953
19954	PR target/85990
19955	* config/i386/gnu-user.h (TARGET_THREAD_SPLIT_STACK_OFFSET):
19956	Update comments.
19957	* config/i386/gnu-user64.h (TARGET_THREAD_SPLIT_STACK_OFFSET):
19958	Likewise.
19959
199602018-06-12  Martin Liska  <mliska@suse.cz>
19961
19962	* doc/options.texi: Document IntegerRange.
19963
199642018-06-12  Martin Liska  <mliska@suse.cz>
19965
19966	* config/i386/i386.opt: Make MPX-related options as Deprecated.
19967	* opt-functions.awk: Handle Deprecated flag.
19968	* opts-common.c (decode_cmdline_option): Handle cl_deprecated
19969	and report error.
19970	(read_cmdline_option): Report warning for a deprecated option.
19971	* opts.h (struct cl_option): Add new field cl_deprecated.
19972	(CL_ERR_DEPRECATED): New.
19973
199742018-06-12  Martin Liska  <mliska@suse.cz>
19975
19976	* doc/options.texi: Document Deprecated option flag.
19977
199782018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
19979
19980	* config/arc/arc-arch.h (arc_extras): New enum.
19981	(arc_cpu_t):Add field extra.
19982	(arc_cpu_types): Consider the extras.
19983	* config/arc/arc-cpus.def: Add extras info.
19984	* config/arc/arc-opts.h (processor_type): Consider extra field.
19985	* config/arc/arc.c (arc_override_options): Handle extra field.
19986
199872018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
19988
19989	* config/arc/arc-arch.h: Update ARC_OPTX macro.
19990	* config/arc/arc-options.def (ARC_OPTX): Introduce a new doc
19991	field.
19992	* config/arc/arc.c (arc_init): Update pic warning.
19993	(irq_range): Update irq range parsing warnings.
19994	(arc_override_options): Update various warning messages.
19995	(arc_handle_aux_attribute): Likewise.
19996
199972018-06-12  Robert Suchanek  <robert.suchanek@mips.com>
19998
19999	* config/mips/i6400.md (i6400_fpu_fadd): Remove frint.
20000
200012018-06-12  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
20002
20003	* doc/sourcebuild.texi: Document usage of line number 0 in verify
20004	compiler messages directives.
20005
200062018-06-12  Matthew Fortune  <mfortune@gmail.com>
20007
20008	* config/mips/mips-cpus.def: New MIPS_CPU for i6500.
20009	* config/mips/mips-tables.opt: Regenerate.
20010	* config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Mark i6500 as
20011	mips64r6.
20012	* doc/invoke.texi: Document -march=i6500.
20013
200142018-06-12  Prachi Godbole  <prachi.godbole@imgtec.com>
20015
20016	* config/mips/i6400.md (i6400_gpmuldiv): Remove cpu_unit.
20017	(i6400_gpmul): Add cpu_unit.
20018	(i6400_gpdiv): Likewise.
20019	(i6400_msa_add_d): Update reservations.
20020	(i6400_msa_int_add) Likewise.
20021	(i6400_msa_short_logic3) Likewise.
20022	(i6400_msa_short_logic2) Likewise.
20023	(i6400_msa_short_logic) Likewise.
20024	(i6400_msa_move) Likewise.
20025	(i6400_msa_cmp) Likewise.
20026	(i6400_msa_short_float2) Likewise.
20027	(i6400_msa_div_d) Likewise.
20028	(i6400_msa_long_logic1) Likewise.
20029	(i6400_msa_long_logic2) Likewise.
20030	(i6400_msa_mult) Likewise.
20031	(i6400_msa_long_float2) Likewise.
20032	(i6400_msa_long_float4) Likewise.
20033	(i6400_msa_long_float5) Likewise.
20034	(i6400_msa_long_float8) Likewise.
20035	(i6400_fpu_fadd): Include frint type.
20036	(i6400_fpu_store): New define_insn_reservation.
20037	(i6400_fpu_load): Likewise.
20038	(i6400_fpu_move): Likewise.
20039	(i6400_fpu_fcmp): Likewise.
20040	(i6400_fpu_fmadd): Likewise.
20041	(i6400_int_mult): Include imul3nc type and update reservation.
20042	(i6400_int_div): Include idiv3 type and update reservation.
20043	(i6400_int_load): Update to check type not move_type.
20044	(i6400_int_store): Likewise.
20045	(i6400_int_prefetch): Set zero latency.
20046
200472018-06-12  Eric Botcazou  <ebotcazou@adacore.com>
20048
20049	* gcc.c: Document new %@{...} sequence.
20050	(LINK_COMMAND_SPEC): Use it for the -L switches.
20051	(cpp_unique_options): Use it for the -I switches.
20052	(at_file_argbuf): New global variable.
20053	(in_at_file): Likewise.
20054	(alloc_args): Create at_file_argbuf.
20055	(clear_args): Truncate at_file_argbuf.
20056	(store_arg): If in_at_file, push the argument onto at_file_argbuf.
20057	(open_at_file): New function.
20058	(close_at_file): Likewise.
20059	(create_at_file): Delete.
20060	(do_spec_1) <'i'>: Use open_at_file/close_at_file.
20061	<'o'>: Likewise.
20062	<'@'>: New case.
20063	(validate_switches_from_spec): Deal with %@{...} sequence.
20064	(validate_switches): Likewise.
20065	(driver::finalize): Call clear_args.
20066
200672018-06-11  Rasmus Villemoes  <rasmus.villemoes@prevas.dk>
20068
20069	* config/vx-common.h (USE_TM_CLONE_REGISTRY): #define to 0.
20070
200712018-06-11  Martin Sebor  <msebor@redhat.com>
20072
20073	* doc/invoke.texi (-Wall): List -Wc++17-compat.
20074	(Wno-class-memaccess): Add @opindex.
20075	(Wno-templates, Wno-multiple-inheritance): Same.
20076	(Wno-virtual-inheritance, Wno-namespaces): Same.
20077	(Wno-pedantic, Wno-chkp, Wcoverage-mismatch): Same.
20078	(Wno-format-overflow, Wno-format-truncation): Same.
20079	(Wno-unused-local-typedefs, Walloc-size-larger-than): Same.
20080	(Wno-alloc-size-larger-than, Wframe-larger-than): Same
20081	(Wno-stack-usage, Wno-c++-compat, Wno-c++11-compat): Same.
20082	(Wno-c++14-compat, Wno-c++17-compat, Wno-openmp-simd): Same.
20083	(Wno-unsuffixed-float-constants, Wno-addr-space-convert): Same.
20084	(Wno-misspelled-isr): Same.
20085
200862018-06-11  Martin Sebor  <msebor@redhat.com>
20087
20088	* PR tree-optimization/86083
20089	* tree-ssa-strlen.c (handle_char_store): Use tree_expr_nonzero_p.
20090
200912018-06-11  Zhouyi Zhou  <zhouzhouyi@gmail.com>
20092
20093	* tree-eh.c (lower_eh_constructs_2): Add a comma to comment.
20094
200952018-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
20096
20097	PR target/85755
20098	* config/rs6000/rs6000.md (*movdi_internal32): Put constraint modifiers
20099	on the correct operand.
20100	(*movdi_internal64): Ditto.
20101
201022018-06-11  Martin Liska  <mliska@suse.cz>
20103
20104	PR tree-optimization/86089
20105	* tree-ssa-strlen.c (get_string_length): Move back removed hunk.
20106
201072018-06-11  Julia Koval  <julia.koval@intel.com>
20108
20109	* config/i386/vaesintrin.h (_mm_aesdec_epi128, _mm_aesdeclast_epi128)
20110	_mm_aesenc_epi128, _mm_aesenclast_epi128: Remove.
20111	* config/i386/vpclmulqdqintrin.h (_mm_clmulepi64_epi128): Remove.
20112
201132018-06-11  Olivier Hainque  <hainque@adacore.com>
20114
20115	* dwarf2out.c (gen_compile_unit_die): Fallout to DW_LANG_Ada83
20116	for Ada with strict dwarf2.
20117
201182018-06-08  Peter Bergner  <bergner@vnet.ibm.com>
20119
20120	PR target/85755
20121	* config/rs6000/rs6000.c (mem_operand_gpr): Enable PRE_INC and PRE_DEC
20122	addresses.
20123
201242018-06-08  Jan Hubicka  <hubicka@ucw.cz>
20125
20126	* dumpfile.c (FIRST_ME_AUTO_NUMBERED_DUMP): Bump to 4.
20127
201282018-06-08  David Edelsohn  <dje.gcc@gmail.com>
20129
20130	* config/rs6000/rs6000.c (rs6000_passes_ieee128): Protect with #if
20131	TARGET_ELF.
20132
201332018-06-08  Martin Liska  <mliska@suse.cz>
20134
20135	* tree-cfg.h (debug_function): Fix argument type to match
20136	implementation.
20137
201382018-06-08  Martin Liska  <mliska@suse.cz>
20139
20140	* config/powerpcspe/powerpcspe.c (rs6000_xcoff_visibility):
20141	Remove usage of MPX-related (and removed) fields.
20142	* config/rs6000/rs6000.c (rs6000_xcoff_visibility): Likewise.
20143
201442018-06-08  David Malcolm  <dmalcolm@redhat.com>
20145
20146	* cfg.c (debug): Use TDF_NONE rather than 0.
20147	* cfghooks.c (debug): Likewise.
20148	* dumpfile.c (DUMP_FILE_INFO): Likewise; also for OPTGROUP.
20149	(struct dump_option_value_info): Convert to...
20150	(struct kv_pair): ...this template type.
20151	(dump_options): Convert to kv_pair<dump_flags_t>; use TDF_NONE
20152	rather than 0.
20153	(optinfo_verbosity_options): Likewise.
20154	(optgroup_options): Convert to kv_pair<optgroup_flags_t>; use
20155	OPTGROUP_NONE.
20156	(gcc::dump_manager::dump_register): Use optgroup_flags_t rather
20157	than int for "optgroup_flags" param.
20158	(dump_generic_expr_loc): Use dump_flags_t rather than int for
20159	"dump_kind" param.
20160	(dump_dec): Likewise.
20161	(dump_finish): Use TDF_NONE rather than 0.
20162	(gcc::dump_manager::opt_info_enable_passes): Use optgroup_flags_t
20163	rather than int for "optgroup_flags" param.  Use TDF_NONE rather
20164	than 0.  Update for change to option_ptr.
20165	(opt_info_switch_p_1): Convert "optgroup_flags" param from int *
20166	to optgroup_flags_t *.  Use TDF_NONE and OPTGROUP_NONE rather than
20167	0.  Update for changes to optinfo_verbosity_options and
20168	optgroup_options.
20169	(opt_info_switch_p): Convert optgroup_flags from int to
20170	optgroup_flags_t.
20171	(dump_basic_block): Use dump_flags_t rather than int
20172	for "dump_kind" param.
20173	* dumpfile.h (TDF_ADDRESS, TDF_SLIM, TDF_RAW, TDF_DETAILS,
20174	TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO, TDF_UID)
20175	TDF_STMTADDR, TDF_GRAPH, TDF_MEMSYMS, TDF_RHS_ONLY, TDF_ASMNAME,
20176	TDF_EH, TDF_NOUID, TDF_ALIAS, TDF_ENUMERATE_LOCALS, TDF_CSELIB,
20177	TDF_SCEV, TDF_GIMPLE, TDF_FOLDING, MSG_OPTIMIZED_LOCATIONS,
20178	MSG_MISSED_OPTIMIZATION, MSG_NOTE, MSG_ALL, TDF_COMPARE_DEBUG,
20179	TDF_NONE): Convert from macros to...
20180	(enum dump_flag): ...this new enum.
20181	(dump_flags_t): Update to use enum.
20182	(operator|, operator&, operator~, operator|=, operator&=):
20183	Implement for dump_flags_t.
20184	(OPTGROUP_NONE, OPTGROUP_IPA, OPTGROUP_LOOP, OPTGROUP_INLINE,
20185	OPTGROUP_OMP, OPTGROUP_VEC, OPTGROUP_OTHER, OPTGROUP_ALL):
20186	Convert from macros to...
20187	(enum optgroup_flag): ...this new enum.
20188	(optgroup_flags_t): New typedef.
20189	(operator|, operator|=): Implement for optgroup_flags_t.
20190	(struct dump_file_info): Convert field "alt_flags" to
20191	dump_flags_t.  Convert field "optgroup_flags" to
20192	optgroup_flags_t.
20193	(dump_basic_block): Use dump_flags_t rather than int for param.
20194	(dump_generic_expr_loc): Likewise.
20195	(dump_dec): Likewise.
20196	(dump_register): Convert param "optgroup_flags" to
20197	optgroup_flags_t.
20198	(opt_info_enable_passes): Likewise.
20199	* early-remat.c (early_remat::dump_edge_list): Use TDF_NONE rather
20200	than 0.
20201	* gimple-pretty-print.c (debug): Likewise.
20202	* gimple-ssa-store-merging.c (bswap_replace): Likewise.
20203	(merged_store_group::apply_stores): Likewise.
20204	* gimple-ssa-strength-reduction.c (insert_initializers): Likewise.
20205	* gimple.c (verify_gimple_pp): Likewise.
20206	* graphite-poly.c (print_pbb_body): Likewise.
20207	* passes.c (pass_manager::register_one_dump_file): Convert
20208	local "optgroup_flags" to optgroup_flags_t.
20209	* print-tree.c (print_node): Use TDF_NONE rather than 0.
20210	(debug): Likewise.
20211	(debug_body): Likewise.
20212	* tree-pass.h (struct pass_data): Convert field "optgroup_flags"
20213	to optgroup_flags_t.
20214	* tree-pretty-print.c (print_struct_decl): Use TDF_NONE rather
20215	than 0.
20216	* tree-ssa-math-opts.c (convert_mult_to_fma_1): Likewise.
20217	(convert_mult_to_fma): Likewise.
20218	* tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
20219	* tree-ssa-sccvn.c (vn_eliminate): Likewise.
20220	* tree-vect-data-refs.c (dump_lower_bound): Convert param
20221	"dump_kind" to dump_flags_t.
20222
202232018-06-08  Segher Boessenkool  <segher@kernel.crashing.org>
20224
20225	* config/rs6000/rs6000.c (min, max): Delete.
20226
202272018-06-08  Segher Boessenkool  <segher@kernel.crashing.org>
20228
20229	* doc/invoke.texi (RS/6000 and PowerPC Options): Delete mention of
20230	-mabi=spe and -mabi=no-spe.
20231
202322018-06-08  Martin Liska  <mliska@suse.cz>
20233
20234	* ipa-pure-const.c (propagate_pure_const): Use ::get at places
20235	where we expect an existing summary.
20236
202372018-06-08  Martin Liska  <mliska@suse.cz>
20238
20239	* ipa-inline-analysis.c (simple_edge_hints): Use ::get method.
20240	* ipa-inline.h (estimate_edge_growth): Likewise.
20241
202422018-06-08  Martin Liska  <mliska@suse.cz>
20243
20244	* cgraph.c (function_version_hasher::hash): Use
20245	cgraph_node::get_uid ().
20246	(function_version_hasher::equal):
20247	* cgraph.h (cgraph_node::get_uid): New method.
20248	* ipa-inline.c (update_caller_keys): Use
20249	cgraph_node::get_uid ().
20250	(update_callee_keys): Likewise.
20251	* ipa-utils.c (searchc): Likewise.
20252	(ipa_reduced_postorder): Likewise.
20253	* lto-cgraph.c (input_node): Likewise.
20254	* passes.c (is_pass_explicitly_enabled_or_disabled): Likewise.
20255	* symbol-summary.h (symtab_insertion): Likewise.
20256	(symtab_removal): Likewise.
20257	(symtab_duplication): Likewise.
20258	* tree-pretty-print.c (dump_function_header): Likewise.
20259	* tree-sra.c (convert_callers_for_node): Likewise.
20260
202612018-06-08  Martin Liska  <mliska@suse.cz>
20262
20263	* cgraph.c (symbol_table::create_edge): Always assign a new
20264	unique number.
20265	(symbol_table::free_edge): Do not recycle numbers.
20266	* cgraph.h (cgraph_edge::get): New method.
20267	* symbol-summary.h (symtab_removal): Use it.
20268	(symtab_duplication): Likewise.
20269	(call_summary::hashable_uid): Remove.
20270
202712018-06-08  Martin Liska  <mliska@suse.cz>
20272
20273	* ipa-inline-analysis.c (inline_edge_removal_hook): Remove.
20274	(initialize_growth_caches): Remove.
20275	(free_growth_caches): Likewise.
20276	(do_estimate_edge_time): Use edge_growth_cache.
20277	(do_estimate_edge_size): Likewise.
20278	(do_estimate_edge_hints): Likewise.
20279	* ipa-inline.c (reset_edge_caches): Likewise.
20280	(recursive_inlining): Likewise.
20281	(inline_small_functions): Likewise.
20282	* ipa-inline.h (initialize_growth_caches): Remove.
20283	(estimate_edge_size): Likewise.
20284	(estimate_edge_time): Likewise.
20285	(estimate_edge_hints): Likewise.
20286	(reset_edge_growth_cache): Likewise.
20287	* symbol-summary.h (call_summary::remove): New method.
20288
202892018-06-08  Martin Liska  <mliska@suse.cz>
20290
20291	* ipa-cp.c (class edge_clone_summary): New summary.
20292	(grow_edge_clone_vectors): Remove.
20293	(ipcp_edge_duplication_hook): Remove.
20294	(class edge_clone_summary_t): New call_summary class.
20295	(ipcp_edge_removal_hook): Remove.
20296	(edge_clone_summary_t::duplicate): New function.
20297	(get_next_cgraph_edge_clone): Use edge_clone_summaries.
20298	(create_specialized_node): Likewise.
20299	(ipcp_driver): Initialize edge_clone_summaries and do not
20300	register hooks.
20301
203022018-06-08  Martin Liska  <mliska@suse.cz>
20303
20304	* symbol-summary.h (get): New function.
20305	(call_summary::m_initialize_when_cloning): New class member.
20306
203072018-06-08  Martin Liska  <mliska@suse.cz>
20308
20309	* cgraph.c (cgraph_node::remove): Do not recycle uid.
20310	* cgraph.h (symbol_table::release_symbol): Do not pass uid.
20311	(symbol_table::allocate_cgraph_symbol): Do not set uid.
20312	* passes.c (uid_hash_t): Record removed_nodes by their uids.
20313	(remove_cgraph_node_from_order): Use the removed_nodes set.
20314	(do_per_function_toporder): Likwise.
20315	* symbol-summary.h (symtab_insertion): Use cgraph_node::uid
20316	instead of summary_uid.
20317	(symtab_removal): Likewise.
20318	(symtab_duplication): Likewise.
20319
203202018-06-08  Martin Liska  <mliska@suse.cz>
20321
20322	* ipa-cp.c (ipcp_store_bits_results): Use
20323	ipcp_transformation_sum.
20324	(ipcp_store_vr_results): Likewise.
20325	* ipa-prop.c (ipcp_grow_transformations_if_necessary): Renamed
20326	to ...
20327	(ipcp_transformation_initialize): ... this.
20328	(ipa_set_node_agg_value_chain):
20329	(ipa_node_params_t::duplicate): Use ipcp_transformation_sum.
20330	(write_ipcp_transformation_info): Likewise.
20331	(read_ipcp_transformation_info): Likewise.
20332	(ipcp_update_bits): Likewise.
20333	(ipcp_update_vr): Likewise.
20334	(ipcp_transform_function): Likewise.
20335	* ipa-prop.h: Rename ipcp_transformation_summary to
20336	ipcp_transformation.
20337	(class ipcp_transformation_t): New function summary.
20338	(ipcp_get_transformation_summary): Use ipcp_transformation_sum.
20339	(ipa_get_agg_replacements_for_node): Likewise.
20340
203412018-06-08  Martin Liska  <mliska@suse.cz>
20342
20343	* ipa-pure-const.c (struct funct_state_d): Do it class instead
20344	of struct.
20345	(class funct_state_summary_t): New function_summary class.
20346	(has_function_state): Remove.
20347	(get_function_state): Likewise.
20348	(set_function_state): Likewise.
20349	(add_new_function): Likewise.
20350	(funct_state_summary_t::insert): New function.
20351	(duplicate_node_data): Remove.
20352	(remove_node_data): Remove.
20353	(funct_state_summary_t::duplicate): New function.
20354	(register_hooks): Create new funct_state_summaries.
20355	(pure_const_generate_summary): Use it.
20356	(pure_const_write_summary): Likewise.
20357	(pure_const_read_summary): Likewise.
20358	(propagate_pure_const): Likewise.
20359	(propagate_nothrow): Likewise.
20360	(dump_malloc_lattice): Likewise.
20361	(propagate_malloc): Likewise.
20362	(execute): Do not register hooks, just remove summary
20363	instead.
20364	(pass_ipa_pure_const::pass_ipa_pure_const): Simplify
20365	constructor.
20366
203672018-06-08  Martin Liska  <mliska@suse.cz>
20368
20369	* ipa-reference.c (remove_node_data): Remove.
20370	(duplicate_node_data): Likewise.
20371	(class ipa_ref_var_info_summary_t): New class.
20372	(class ipa_ref_opt_summary_t): Likewise.
20373	(get_reference_vars_info): Use ipa_ref_var_info_summaries.
20374	(get_reference_optimization_summary): Use
20375	ipa_ref_opt_sum_summaries.
20376	(set_reference_vars_info): Remove.
20377	(set_reference_optimization_summary): Likewise.
20378	(ipa_init): Create summaries.
20379	(init_function_info): Use function summary.
20380	(ipa_ref_opt_summary_t::duplicate): New function.
20381	(ipa_ref_opt_summary_t::remove): New function.
20382	(get_read_write_all_from_node): Fix GNU coding style.
20383	(propagate): Use function summary.
20384	(write_node_summary_p): Fix GNU coding style.
20385	(stream_out_bitmap): Likewise.
20386	(ipa_reference_read_optimization_summary): Use function summary.
20387	(ipa_reference_c_finalize): Do not release hooks.
20388
203892018-06-08  Martin Liska  <mliska@suse.cz>
20390
20391	* ipa-fnsummary.c (dump_ipa_call_summary): Use ::get method.
20392	(analyze_function_body): Extract multiple calls of get_create.
20393	* ipa-inline-analysis.c (simple_edge_hints): Likewise.
20394	* ipa-inline.c (recursive_inlining): Use ::get method.
20395	* ipa-inline.h (estimate_edge_growth): Likewise.
20396
203972018-06-08  Martin Liska  <mliska@suse.cz>
20398
20399	* hsa-common.h (enum hsa_function_kind): Rename HSA_NONE to
20400	HSA_INVALID.
20401	(hsa_function_summary::hsa_function_summary): Use the new enum
20402	value.
20403	(hsa_gpu_implementation_p): Use hsa_summaries::get.
20404	* hsa-gen.c (hsa_get_host_function): Likewise.
20405	(get_brig_function_name): Likewise.
20406	* ipa-hsa.c (process_hsa_functions): Likewise.
20407	(ipa_hsa_write_summary): Likewise.
20408	* symbol-summary.h (symtab_duplication): Use ::get function/
20409	(get): New function.
20410
204112018-06-08  Martin Liska  <mliska@suse.cz>
20412
20413	* config/i386/i386.c (ix86_can_inline_p): Use get_create instead
20414	of get.
20415	* hsa-common.c (hsa_summary_t::link_functions): Likewise.
20416	(hsa_register_kernel): Likewise.
20417	* hsa-common.h (hsa_gpu_implementation_p): Likewise.
20418	* hsa-gen.c (hsa_get_host_function): Likewise.
20419	(get_brig_function_name): Likewise.
20420	(generate_hsa): Likewise.
20421	(pass_gen_hsail::execute): Likewise.
20422	* ipa-cp.c (ipcp_cloning_candidate_p): Likewise.
20423	(devirtualization_time_bonus): Likewise.
20424	(ipcp_propagate_stage): Likewise.
20425	* ipa-fnsummary.c (redirect_to_unreachable): Likewise.
20426	(edge_set_predicate): Likewise.
20427	(evaluate_conditions_for_known_args): Likewise.
20428	(evaluate_properties_for_edge): Likewise.
20429	(ipa_fn_summary::reset): Likewise.
20430	(ipa_fn_summary_t::duplicate): Likewise.
20431	(dump_ipa_call_summary): Likewise.
20432	(ipa_dump_fn_summary): Likewise.
20433	(analyze_function_body): Likewise.
20434	(compute_fn_summary): Likewise.
20435	(estimate_edge_devirt_benefit): Likewise.
20436	(estimate_edge_size_and_time): Likewise.
20437	(estimate_calls_size_and_time): Likewise.
20438	(estimate_node_size_and_time): Likewise.
20439	(inline_update_callee_summaries): Likewise.
20440	(remap_edge_change_prob): Likewise.
20441	(remap_edge_summaries): Likewise.
20442	(ipa_merge_fn_summary_after_inlining): Likewise.
20443	(ipa_update_overall_fn_summary): Likewise.
20444	(read_ipa_call_summary): Likewise.
20445	(inline_read_section): Likewise.
20446	(write_ipa_call_summary): Likewise.
20447	(ipa_fn_summary_write): Likewise.
20448	(ipa_free_fn_summary): Likewise.
20449	* ipa-hsa.c (process_hsa_functions): Likewise.
20450	(ipa_hsa_write_summary): Likewise.
20451	(ipa_hsa_read_section): Likewise.
20452	* ipa-icf.c (sem_function::merge): Likewise.
20453	* ipa-inline-analysis.c (simple_edge_hints): Likewise.
20454	(do_estimate_edge_time): Likewise.
20455	(estimate_size_after_inlining): Likewise.
20456	(estimate_growth): Likewise.
20457	(growth_likely_positive): Likewise.
20458	* ipa-inline-transform.c (clone_inlined_nodes): Likewise.
20459	(inline_call): Likewise.
20460	* ipa-inline.c (caller_growth_limits): Likewise.
20461	(can_inline_edge_p): Likewise.
20462	(can_inline_edge_by_limits_p): Likewise.
20463	(compute_uninlined_call_time): Likewise.
20464	(compute_inlined_call_time): Likewise.
20465	(want_inline_small_function_p): Likewise.
20466	(edge_badness): Likewise.
20467	(update_caller_keys): Likewise.
20468	(update_callee_keys): Likewise.
20469	(recursive_inlining): Likewise.
20470	(inline_small_functions): Likewise.
20471	(inline_to_all_callers_1): Likewise.
20472	(dump_overall_stats): Likewise.
20473	(early_inline_small_functions): Likewise.
20474	(early_inliner): Likewise.
20475	* ipa-inline.h (estimate_edge_growth): Likewise.
20476	* ipa-profile.c (ipa_propagate_frequency_1): Likewise.
20477	* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
20478	* ipa-prop.h (IPA_NODE_REF): Likewise.
20479	(IPA_EDGE_REF): Likewise.
20480	* ipa-pure-const.c (malloc_candidate_p): Likewise.
20481	(propagate_malloc): Likewise.
20482	* ipa-split.c (execute_split_functions): Likewise.
20483	* symbol-summary.h: Rename get to get_create.
20484	(get): Likewise.
20485	(get_create): Likewise.
20486	* tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
20487
204882018-06-08  Martin Liska  <mliska@suse.cz>
20489
20490	* symbol-summary.h (release): Move definition out of class
20491	declaration.
20492	(symtab_removal): Likewise.
20493	(symtab_duplication): Likewise.
20494
204952018-06-08  Martin Liska  <mliska@suse.cz>
20496
20497	* symbol-summary.h (function_summary): Move constructor
20498	implementation out of class declaration.
20499	(release): Likewise.
20500	(symtab_insertion): Likewise.
20501	(symtab_removal): Likewise.
20502	(symtab_duplication): Likewise.
20503	(get): Likewise.
20504
205052018-06-08  Martin Liska  <mliska@suse.cz>
20506
20507	* Makefile.in: Remove support for MPX (macros, related functions,
20508	fields in cgraph_node, ...).
20509	* builtin-types.def (BT_BND): Likewise.
20510	(BT_FN_BND_CONST_PTR): Likewise.
20511	(BT_FN_CONST_PTR_BND): Likewise.
20512	(BT_FN_VOID_PTR_BND): Likewise.
20513	(BT_FN_BND_CONST_PTR_SIZE): Likewise.
20514	(BT_FN_VOID_CONST_PTR_BND_CONST_PTR): Likewise.
20515	* builtins.c (expand_builtin_memcpy_with_bounds): Likewise.
20516	(expand_builtin_mempcpy_with_bounds): Likewise.
20517	(expand_builtin_memset_with_bounds): Likewise.
20518	(expand_builtin_memset_args): Likewise.
20519	(std_expand_builtin_va_start): Likewise.
20520	(expand_builtin): Likewise.
20521	(expand_builtin_with_bounds): Likewise.
20522	* builtins.def (DEF_BUILTIN_CHKP): Likewise.
20523	(DEF_LIB_BUILTIN_CHKP): Likewise.
20524	(DEF_EXT_LIB_BUILTIN_CHKP): Likewise.
20525	(DEF_CHKP_BUILTIN): Likewise.
20526	(BUILT_IN_MEMCPY): Likewise.
20527	(BUILT_IN_MEMMOVE): Likewise.
20528	(BUILT_IN_MEMPCPY): Likewise.
20529	(BUILT_IN_MEMSET): Likewise.
20530	(BUILT_IN_STPCPY): Likewise.
20531	(BUILT_IN_STRCAT): Likewise.
20532	(BUILT_IN_STRCHR): Likewise.
20533	(BUILT_IN_STRCPY): Likewise.
20534	(BUILT_IN_STRLEN): Likewise.
20535	(BUILT_IN_MEMCPY_CHK): Likewise.
20536	(BUILT_IN_MEMMOVE_CHK): Likewise.
20537	(BUILT_IN_MEMPCPY_CHK): Likewise.
20538	(BUILT_IN_MEMSET_CHK): Likewise.
20539	(BUILT_IN_STPCPY_CHK): Likewise.
20540	(BUILT_IN_STRCAT_CHK): Likewise.
20541	(BUILT_IN_STRCPY_CHK): Likewise.
20542	* calls.c (store_bounds): Likewise.
20543	(emit_call_1): Likewise.
20544	(special_function_p): Likewise.
20545	(maybe_warn_nonstring_arg): Likewise.
20546	(initialize_argument_information): Likewise.
20547	(finalize_must_preallocate): Likewise.
20548	(compute_argument_addresses): Likewise.
20549	(expand_call): Likewise.
20550	* cfgexpand.c (expand_call_stmt): Likewise.
20551	(expand_return): Likewise.
20552	(expand_gimple_stmt_1): Likewise.
20553	(pass_expand::execute): Likewise.
20554	* cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
20555	(cgraph_node::remove): Likewise.
20556	(cgraph_node::dump): Likewise.
20557	(cgraph_node::verify_node): Likewise.
20558	* cgraph.h (chkp_function_instrumented_p): Likewise.
20559	(symtab_node::get_alias_target): Likewise.
20560	(cgraph_node::can_remove_if_no_direct_calls_and_refs_p): Likewise.
20561	(cgraph_local_p): Likewise.
20562	* cgraphbuild.c (cgraph_edge::rebuild_edges): Likewise.
20563	(cgraph_edge::rebuild_references): Likewise.
20564	* cgraphunit.c (varpool_node::finalize_decl): Likewise.
20565	(walk_polymorphic_call_targets): Likewise.
20566	(cgraph_node::expand_thunk): Likewise.
20567	(symbol_table::output_weakrefs): Likewise.
20568	* common/config/i386/i386-common.c (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Likewise.
20569	(ix86_handle_option): Likewise.
20570	* config/i386/constraints.md: Likewise.
20571	* config/i386/i386-builtin-types.def (BND): Likewise.
20572	(VOID): Likewise.
20573	(PVOID): Likewise.
20574	(ULONG): Likewise.
20575	* config/i386/i386-builtin.def (BDESC_END): Likewise.
20576	(BDESC_FIRST): Likewise.
20577	(BDESC): Likewise.
20578	* config/i386/i386-c.c (ix86_target_macros_internal): Likewise.
20579	* config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): Likewise.
20580	* config/i386/i386.c (enum reg_class): Likewise.
20581	(ix86_target_string): Likewise.
20582	(ix86_option_override_internal): Likewise.
20583	(ix86_conditional_register_usage): Likewise.
20584	(ix86_valid_target_attribute_inner_p): Likewise.
20585	(ix86_set_indirect_branch_type): Likewise.
20586	(ix86_set_current_function): Likewise.
20587	(ix86_function_arg_regno_p): Likewise.
20588	(init_cumulative_args): Likewise.
20589	(ix86_function_arg_advance): Likewise.
20590	(ix86_function_arg): Likewise.
20591	(ix86_pass_by_reference): Likewise.
20592	(ix86_function_value_regno_p): Likewise.
20593	(ix86_function_value_1): Likewise.
20594	(ix86_function_value_bounds): Likewise.
20595	(ix86_return_in_memory): Likewise.
20596	(ix86_setup_incoming_vararg_bounds): Likewise.
20597	(ix86_va_start): Likewise.
20598	(indirect_thunk_need_prefix): Likewise.
20599	(print_reg): Likewise.
20600	(ix86_print_operand): Likewise.
20601	(ix86_expand_call): Likewise.
20602	(ix86_output_function_return): Likewise.
20603	(reg_encoded_number): Likewise.
20604	(BDESC_VERIFYS): Likewise.
20605	(ix86_init_mpx_builtins): Likewise.
20606	(ix86_init_builtins): Likewise.
20607	(ix86_emit_cmove): Likewise.
20608	(ix86_emit_move_max): Likewise.
20609	(ix86_expand_builtin): Likewise.
20610	(ix86_builtin_mpx_function): Likewise.
20611	(ix86_get_arg_address_for_bt): Likewise.
20612	(ix86_load_bounds): Likewise.
20613	(ix86_store_bounds): Likewise.
20614	(ix86_load_returned_bounds): Likewise.
20615	(ix86_store_returned_bounds): Likewise.
20616	(ix86_class_likely_spilled_p): Likewise.
20617	(ix86_hard_regno_mode_ok): Likewise.
20618	(x86_order_regs_for_local_alloc): Likewise.
20619	(ix86_mitigate_rop): Likewise.
20620	(ix86_bnd_prefixed_insn_p): Likewise.
20621	(ix86_mpx_bound_mode): Likewise.
20622	(ix86_make_bounds_constant): Likewise.
20623	(ix86_initialize_bounds): Likewise.
20624	(TARGET_LOAD_BOUNDS_FOR_ARG): Likewise.
20625	(TARGET_STORE_BOUNDS_FOR_ARG): Likewise.
20626	(TARGET_LOAD_RETURNED_BOUNDS): Likewise.
20627	(TARGET_STORE_RETURNED_BOUNDS): Likewise.
20628	(TARGET_CHKP_BOUND_MODE): Likewise.
20629	(TARGET_BUILTIN_CHKP_FUNCTION): Likewise.
20630	(TARGET_CHKP_FUNCTION_VALUE_BOUNDS): Likewise.
20631	(TARGET_CHKP_MAKE_BOUNDS_CONSTANT): Likewise.
20632	(TARGET_CHKP_INITIALIZE_BOUNDS): Likewise.
20633	* config/i386/i386.h (TARGET_MPX): Likewise.
20634	(TARGET_MPX_P): Likewise.
20635	(VALID_BND_REG_MODE): Likewise.
20636	(FIRST_BND_REG): Likewise.
20637	(LAST_BND_REG): Likewise.
20638	(enum reg_class): Likewise.
20639	(BND_REG_P): Likewise.
20640	(BND_REGNO_P): Likewise.
20641	(BNDmode): Likewise.
20642	(ADJUST_INSN_LENGTH): Likewise.
20643	* config/i386/i386.md: Likewise.
20644	* config/i386/i386.opt: Likewise.
20645	* config/i386/linux-common.h (LIBMPX_LIBS): Likewise.
20646	(defined): Likewise.
20647	(LINK_MPX): Likewise.
20648	(MPX_SPEC): Likewise.
20649	(LIBMPX_SPEC): Likewise.
20650	(LIBMPXWRAPPERS_SPEC): Likewise.
20651	(CHKP_SPEC): Likewise.
20652	* config/i386/predicates.md: Likewise.
20653	* dbxout.c (dbxout_type): Likewise.
20654	* doc/extend.texi: Likewise.
20655	* doc/invoke.texi: Likewise.
20656	* doc/md.texi: Likewise.
20657	* doc/tm.texi: Likewise.
20658	* doc/tm.texi.in: Likewise.
20659	* dwarf2out.c (is_base_type): Likewise.
20660	(gen_formal_types_die): Likewise.
20661	(gen_subprogram_die): Likewise.
20662	(gen_type_die_with_usage): Likewise.
20663	(gen_decl_die): Likewise.
20664	(dwarf2out_late_global_decl): Likewise.
20665	* expr.c (expand_assignment): Likewise.
20666	(emit_storent_insn): Likewise.
20667	(store_expr_with_bounds): Likewise.
20668	(store_expr): Likewise.
20669	(expand_expr_real_1): Likewise.
20670	* expr.h (store_expr_with_bounds): Likewise.
20671	* function.c (use_register_for_decl): Likewise.
20672	(struct bounds_parm_data): Likewise.
20673	(assign_parms_augmented_arg_list): Likewise.
20674	(assign_parm_find_entry_rtl): Likewise.
20675	(assign_parm_is_stack_parm): Likewise.
20676	(assign_parm_load_bounds): Likewise.
20677	(assign_bounds): Likewise.
20678	(assign_parms): Likewise.
20679	(expand_function_start): Likewise.
20680	* gcc.c (CHKP_SPEC): Likewise.
20681	* gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
20682	* gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Likewise.
20683	(wrestrict_dom_walker::check_call): Likewise.
20684	* gimple.c (gimple_build_call_from_tree): Likewise.
20685	* gimple.h (enum gf_mask): Likewise.
20686	(gimple_call_with_bounds_p): Likewise.
20687	(gimple_call_set_with_bounds): Likewise.
20688	* gimplify.c (gimplify_init_constructor): Likewise.
20689	* ipa-cp.c (initialize_node_lattices): Likewise.
20690	(propagate_constants_across_call): Likewise.
20691	(find_more_scalar_values_for_callers_subset): Likewise.
20692	* ipa-hsa.c (process_hsa_functions): Likewise.
20693	* ipa-icf-gimple.c (func_checker::compare_gimple_call): Likewise.
20694	* ipa-icf.c (sem_function::merge): Likewise.
20695	* ipa-inline.c (early_inliner): Likewise.
20696	* ipa-pure-const.c (warn_function_noreturn): Likewise.
20697	(warn_function_cold): Likewise.
20698	(propagate_pure_const): Likewise.
20699	* ipa-ref.h (enum GTY): Likewise.
20700	* ipa-split.c (find_retbnd): Likewise.
20701	(consider_split): Likewise.
20702	(split_function): Likewise.
20703	* ipa-visibility.c (cgraph_externally_visible_p): Likewise.
20704	* ipa.c (walk_polymorphic_call_targets): Likewise.
20705	(symbol_table::remove_unreachable_nodes): Likewise.
20706	(process_references): Likewise.
20707	(cgraph_build_static_cdtor_1): Likewise.
20708	* lto-cgraph.c (lto_output_node): Likewise.
20709	(output_refs): Likewise.
20710	(compute_ltrans_boundary): Likewise.
20711	(input_overwrite_node): Likewise.
20712	(input_node): Likewise.
20713	(input_cgraph_1): Likewise.
20714	* params.def (PARAM_CHKP_MAX_CTOR_SIZE): Likewise.
20715	* passes.c (pass_manager::execute_early_local_passes): Likewise.
20716	(class pass_chkp_instrumentation_passes): Likewise.
20717	(make_pass_chkp_instrumentation_passes): Likewise.
20718	* passes.def: Likewise.
20719	* rtl.h (struct GTY): Likewise.
20720	(CALL_EXPR_WITH_BOUNDS_P): Likewise.
20721	* stor-layout.c (layout_type): Likewise.
20722	* symtab.c: Likewise.
20723	* target.def: Likewise.
20724	* targhooks.c (default_chkp_bound_type): Likewise.
20725	(default_chkp_bound_mode): Likewise.
20726	(default_builtin_chkp_function): Likewise.
20727	(default_chkp_function_value_bounds): Likewise.
20728	(default_chkp_make_bounds_constant): Likewise.
20729	(default_chkp_initialize_bounds): Likewise.
20730	* targhooks.h (default_chkp_bound_type): Likewise.
20731	(default_chkp_bound_mode): Likewise.
20732	(default_builtin_chkp_function): Likewise.
20733	(default_chkp_function_value_bounds): Likewise.
20734	(default_chkp_make_bounds_constant): Likewise.
20735	(default_chkp_initialize_bounds): Likewise.
20736	* toplev.c (compile_file): Likewise.
20737	(process_options): Likewise.
20738	* tree-core.h (DEF_BUILTIN): Likewise.
20739	(DEF_BUILTIN_CHKP): Likewise.
20740	* tree-inline.c (declare_return_variable): Likewise.
20741	(remap_gimple_stmt): Likewise.
20742	(copy_bb): Likewise.
20743	(initialize_inlined_parameters): Likewise.
20744	(expand_call_inline): Likewise.
20745	* tree-pass.h (make_pass_ipa_chkp_versioning): Likewise.
20746	(make_pass_ipa_chkp_early_produce_thunks): Likewise.
20747	(make_pass_ipa_chkp_produce_thunks): Likewise.
20748	(make_pass_chkp): Likewise.
20749	(make_pass_chkp_opt): Likewise.
20750	(make_pass_chkp_instrumentation_passes): Likewise.
20751	* tree-pretty-print.c (dump_generic_node): Likewise.
20752	* tree-ssa-ccp.c (insert_clobber_before_stack_restore): Likewise.
20753	* tree-ssa-dce.c (propagate_necessity): Likewise.
20754	(eliminate_unnecessary_stmts): Likewise.
20755	* tree-ssa-pre.c (create_expression_by_pieces): Likewise.
20756	* tree-ssa-sccvn.c (copy_reference_ops_from_call): Likewise.
20757	* tree-ssa-sccvn.h: Likewise.
20758	* tree-ssa-strlen.c (get_string_length): Likewise.
20759	(valid_builtin_call): Likewise.
20760	(adjust_last_stmt): Likewise.
20761	(handle_builtin_strchr): Likewise.
20762	(handle_builtin_strcpy): Likewise.
20763	(handle_builtin_stxncpy): Likewise.
20764	(handle_builtin_memcpy): Likewise.
20765	(handle_builtin_strcat): Likewise.
20766	(strlen_check_and_optimize_stmt): Likewise.
20767	* tree-stdarg.c (expand_ifn_va_arg_1): Likewise.
20768	* tree-streamer-in.c: Likewise.
20769	* tree-streamer.c (record_common_node): Likewise.
20770	* tree.c (tree_code_size): Likewise.
20771	(wide_int_to_tree_1): Likewise.
20772	(type_contains_placeholder_1): Likewise.
20773	(build_common_tree_nodes): Likewise.
20774	* tree.def (POINTER_BOUNDS_TYPE): Likewise.
20775	* tree.h (POINTER_BOUNDS_TYPE_P): Likewise.
20776	(POINTER_BOUNDS_P): Likewise.
20777	(BOUNDED_TYPE_P): Likewise.
20778	(BOUNDED_P): Likewise.
20779	(CALL_WITH_BOUNDS_P): Likewise.
20780	(pointer_bounds_type_node): Likewise.
20781	* value-prof.c (gimple_ic): Likewise.
20782	* var-tracking.c (vt_add_function_parameters): Likewise.
20783	* varasm.c (make_decl_rtl): Likewise.
20784	(assemble_start_function): Likewise.
20785	(output_constant): Likewise.
20786	(maybe_assemble_visibility): Likewise.
20787	* varpool.c (ctor_for_folding): Likewise.
20788	* chkp-builtins.def: Remove.
20789	* ipa-chkp.c: Remove.
20790	* ipa-chkp.h: Remove.
20791	* rtl-chkp.c: Remove.
20792	* rtl-chkp.h: Remove.
20793	* tree-chkp-opt.c: Remove.
20794	* tree-chkp.c: Remove.
20795	* tree-chkp.h: Remove.
20796
207972018-06-07  Carl Love  <cel@us.ibm.com>
20798
20799	* config/rs6000/vsx.md (vextract_fp_from_shorth,
20800	vextract_fp_from_shortl): Add BE support.
20801
208022018-06-07  Paul Koning  <ni1d@arrl.net>
20803
20804	* compare-elim.c (try_merge_compare): Don't merge compare if
20805	address contains a side effect.
20806	(try_eliminate_compare): Likewise.
20807
208082018-06-07  Olga Makhotina  <olga.makhotina@intel.com>
20809
20810	* config.gcc: Support "tremont".
20811	* config/i386/driver-i386.c (host_detect_local_cpu): Detect "tremont".
20812	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
20813	PROCESSOR_TREMONT.
20814	* config/i386/i386.c (m_TREMONT): Define.
20815	(processor_target_table): Add "tremont".
20816	(PTA_TREMONT): Define.
20817	(ix86_lea_outperforms): Add TARGET_TREMONT.
20818	(get_builtin_code_for_version): Handle PROCESSOR_TREMONT.
20819	(fold_builtin_cpu): Add M_INTEL_TREMONT, replace M_INTEL_GOLDMONT
20820	and M_INTEL_GOLDMONT_PLUS.
20821	(fold_builtin_cpu): Add "tremont".
20822	(ix86_add_stmt_cost): Add TARGET_TREMONT.
20823	(ix86_option_override_internal): Add "tremont".
20824	* config/i386/i386.h (processor_costs): Define TARGET_TREMONT.
20825	(processor_type): Add PROCESSOR_TREMONT.
20826	* config/i386/x86-tune.def: Add m_TREMONT.
20827	* doc/invoke.texi: Add tremont as x86 -march=/-mtune= CPU type.
20828
208292018-06-07  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
20830
20831	* config/msp430/msp430.c (msp430_mcu_name): Set the "i" in the
20832	symbol defined for msp430i* devices to be lower case.
20833
208342018-06-07  Richard Biener  <rguenther@suse.de>
20835
20836	* graphite-sese-to-poly.c (extract_affine): Avoid unneded
20837	wrapping.  Properly wrap the result of a BIT_NOT_EXPR.
20838	Properly wrap signed arithmetic if overflow wraps.
20839
208402018-06-07  Jakub Jelinek  <jakub@redhat.com>
20841
20842	PR tree-optimization/69615
20843	* tree-ssa-reassoc.c (optimize_range_tests_var_bound): If rhs2 is lhs
20844	of a cast from a same precision integral SSA_NAME in a bb dominated
20845	by first_bb, retry with rhs2 set to the rhs1 of the cast.  Don't emit
20846	cast to utype if rhs2 has already a compatible type.
20847
208482018-06-07  Richard Biener  <rguenther@suse.de>
20849
20850	PR tree-optimization/85935
20851	* graphite-scop-detection.c (find_params_in_bb): Analyze
20852	condition operands with respect to the correct loop.  Assert
20853	the analysis doesn't fail.
20854
208552018-06-04  Carl Love  <cel@us.ibm.com>
20856
20857	* config/rs6000/vsx.md (first_match_index_<mode>): Calculate index
20858	using natural element order.  Use gen_lshrsi3 instead of gen_ashrsi3
20859	as it is slightly cheaper.
20860	(first_match_or_eos_index_<mode>):
20861	Calculate index using natural element order.
20862	(first_match_index_<mode>):
20863	Calculate index using natural element order.
20864	(first_match_or_eos_index_<mode>):
20865	Calculate index using natural order.
20866	(define_insn vclzlsbb): Change to define_insn vclzlsbb_<mode>.
20867	for BE and LE modes.
20868	* config/rs6000/rs6000-c.c: Rename P9V_BUILTIN_VCLZLSBB,
20869	P9V_BUILTIN_VCLZLSBB_V16QI.
20870	* config/rs6000/rs6000-builtin.def: Make VCLZLSBB mode
20871	specific.
20872
208732018-06-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
20874
20875	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
20876	indentation and line wrap for many prototypes.  Add missing
20877	@smallexample directives around block of prototypes for vec_xl and
20878	vec_xst.
20879
208802018-06-05  Michael Meissner  <meissner@linux.ibm.com>
20881
20882	* config/rs6000/rs6000.c (rs6000_passes_ieee128): New boolean to
20883	track if we pass or return IEEE 128-bit floating point.
20884	(ieee128_mangling_gcc_8_1): New boolean to say whether to generate
20885	C++ mangling that is compatible with GCC 8.1.
20886	(TARGET_ASM_GLOBALIZE_DECL_NAME): Override target hook.
20887	(init_cumulative_args): Note if we pass or return IEEE 128-bit
20888	floating point types.
20889	(rs6000_function_arg_advance_1): Likewise.
20890	(rs6000_mangle_type): Optionally generate mangled names that match
20891	what GCC 8.1 generated for IEEE 128-bit floating point types.
20892	(rs6000_globalize_decl_name): If we have an external function that
20893	passes or returns IEEE 128-bit types, generate a weak reference
20894	from the mangled name used in GCC 8.1 to the current mangled
20895	name.
20896	(rs6000_init_builtins): Make __ibm128 use the long double type if
20897	long double is IBM extended double.  Make __float128 use the long
20898	double type if long double is IEEE 128-bit.
20899
20900	PR target/85657
20901	* config/rs6000/rs6000-builtin.def (BU_IBM128_2): New helper
20902	macro for __ibm128 built-in functions.
20903	(PACK_IF): Add __ibm128 pack/unpack functions.
20904	(UNPACK_IF): Likewise.
20905	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Do not
20906	enable long double built-in functions if long double is IEEE
20907	128-bit floating point.
20908	(rs6000_invalid_builtin): Update long double built-in function
20909	error message.
20910	(rs6000_expand_builtin): For PACK_IF and UNPACK_IF built-in
20911	functions, adjust the built-in function to use the long double
20912	built-in function if __ibm128 and long double are the same type.
20913	* doc/extend.texi (PowerPC builtins): Update documention for
20914	__builtin_{,un}pack_longdouble.  Add documentation for
20915	__builtin_{,un}pack_ibm128.
20916
209172018-06-06  Jim Wilson  <jimw@sifive.com>
20918
20919	* config/riscv/riscv.c (enum riscv_privilege_levels): New.
20920	(struct machine_function): New field interrupt_mode.
20921	(riscv_handle_type_attribute): New function.  Add forward declaration.
20922	(riscv_attribute_table) <interrupt>: Use riscv_handle_type_attribute.
20923	(riscv_expand_epilogue): Check interrupt_mode field.
20924	(riscv_set_current_function): Check interrupt attribute args and
20925	set interrupt_mode field.
20926	* config/riscv/riscv.md (UNSPECV_SRET, UNSPECV_URET): New.
20927	(riscv_sret, riscv_uret): New.
20928	* doc/extend.texi (RISC-V Function Attributes) <interrupt>: Document
20929	new arguments to interrupt attribute.
20930
209312018-06-06  Peter Bergner  <bergner@vnet.ibm.com>
20932
20933	PR target/63177
20934	* /config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mpower9.
20935	Don't handle -mcpu=power8 if -mpower9-vector is also used.
20936
209372018-06-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
20938
20939	* config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_LD,
20940	VSX_BUILTIN_VEC_ST): Add comment to explain non-traditional uses.
20941	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
20942	several redundant entries.
20943
209442018-06-06  David Malcolm  <dmalcolm@redhat.com>
20945
20946	* config/i386/i386-protos.h (ix86_expand_call): Strengthen return
20947	type from "rtx" to "rtx_insn *".
20948	* config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise
20949	for local "call_insn", removing cast.
20950	(ix86_expand_call): Likewise, introducing a "call_insn" local.
20951
209522018-06-06  Eric Botcazou  <ebotcazou@adacore.com>
20953
20954	PR tree-optimization/86066
20955	* gimple-ssa-store-merging.c (process_store): Do not bypass BIT_NOT_EXPR
20956	for BIT_INSERT_EXPR stores.
20957
209582018-06-06  Richard Biener  <rguenther@suse.de>
20959
20960	PR tree-optimization/86062
20961	* tree-ssa-sccvn.c (vn_reference_lookup_3): Handle arbitrary
20962	component refs ontop
20963	of to be offsetted base.
20964
209652018-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
20966
20967	* config/msp430/msp430.c (msp430_attr): Allow interrupt handlers
20968	to be static and remove check on interrupt attribute name.
20969
209702018-06-05  Kelvin Nilsen  <kelvin@gcc.gnu.org>
20971
20972	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Remove
20973	volatile qualifier from vec_lvsl and vec_lvsr argument prototypes.
20974
209752018-06-05  Steve Ellcey  <sellcey@cavium.com>
20976
20977	PR target/79924
20978	* config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): Remove
20979	second argument.
20980	* config/aarch64/aarch64-protos..c (aarch64_err_no_fpadvsimd):
20981	Remove second argument, change how error is called.
20982	(aarch64_layout_arg): Remove second argument from
20983	aarch64_err_no_fpadvsimd call.
20984	(aarch64_init_cumulative_args): Ditto.
20985	(aarch64_gimplify_va_arg_expr): Ditto.
20986	* config/aarch64/aarch64.md (mov<mode>): Ditto.
20987
209882018-06-05  Uros Bizjak  <ubizjak@gmail.com>
20989
20990	* config/i386/i386.md (simple_return_indirect_internal): New expander.
20991	(*simple_return_indirect_internal<mode>): Rename from
20992	simple_return_indirect_internal.  Use W mode iterator.
20993	(rstorssp): New expander.
20994	(*rstorssp<mode>): Rename from rstorssp.  Use P mode iterator.
20995	(clrssbsy): New expander.
20996	(*clrssbsy<mode>): Rename from clrssbsy.  Use P mode iterator.
20997
209982018-06-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
20999
21000	* config/arm/arm_cmse.h (cmse_nsfptr_create): Change typeof to
21001	__typeof__.
21002	(cmse_check_pointed_object): Likewise.
21003
210042018-06-05  Martin Liska  <mliska@suse.cz>
21005
21006	PR gcov-profile/47618
21007	* doc/invoke.texi: Document how -fprofile-dir format
21008	is extended.
21009
210102018-06-05  Richard Biener  <rguenther@suse.de>
21011
21012	* tree-cfgcleanup.c (cleanup_control_flow_pre): For edge
21013	removal pretend DOM info isn't available so we do not update
21014	it and only remove edges, not dominated blocks.  Actually free
21015	DOM info in case we removed something.  Remove unreachable blocks.
21016	(mfb_keep_latches): Work with either DOM info or marked backedges.
21017	(cleanup_tree_cfg_noloop): Do not remove unreachable blocks
21018	first.  Mark backedges if DOM info isn't available.
21019	(Re-)compute DOM info after cleanup_control_flow_pre.
21020
210212018-06-05  Richard Biener  <rguenther@suse.de>
21022
21023	* tree-cfg.c (struct locus_discrim_map): Store line, not location.
21024	(locus_discrim_hasher::hash): Adjust.
21025	(locus_discrim_hasher::equal): Likewise.
21026	(next_discriminator_for_locus): Work on line directly.
21027	(same_line_p): Pass in expanded locus1 as well.
21028	(assign_discriminators): Avoid redundant location expansions.
21029
210302018-06-05  Richard Biener  <rguenther@suse.de>
21031
21032	PR tree-optimization/86046
21033	* tree-ssa.c (maybe_optimize_var): Clear DECL_GIMPLE_REG_P
21034	if required after clearing TREE_ADDRESSABLE.
21035
210362018-06-05  Richard Biener  <rguenther@suse.de>
21037
21038	PR tree-optimization/86047
21039	* tree-ssa-loop.c (for_each_index): Glob handling of all
21040	decls and constants and really handle all of them.
21041
210422018-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21043
21044	PR target/81497
21045	* config/arm/arm-builtins.c (arm_type_qualifiers): Add
21046	qualifier_void_pointer and qualifier_const_void_pointer.
21047	(arm_ldc_qualifiers, arm_stc_qualifiers): Use the above.
21048	(arm_init_builtins): Handle the above.
21049	* config/arm/arm_acle.h (__arm_cdp, __arm_ldc, __arm_ldcl, __arm_stc,
21050	__arm_stcl, __arm_mcr, __arm_cdp2, __arm_ldc2, __arm_ldcl2, __arm_stc2,
21051	__arm_stcl2,__arm_mcr2, __arm_mcrr, __arm_mcrr2): Remove return for
21052	void intrinsics.
21053
210542018-06-05  Martin Liska  <mliska@suse.cz>
21055
21056	* auto-profile.c (read_autofdo_file): Do not use
21057	gcov_ctr_summary struct.
21058	(afdo_callsite_hot_enough_for_early_inline): Likewise.
21059	* coverage.c (struct counts_entry): Likewise.
21060	(read_counts_file): Read just single summary entry.
21061	(get_coverage_counts): Use gcov_summary struct.
21062	* coverage.h (get_coverage_counts): Likewise.
21063	* gcov-dump.c (dump_working_sets): Likewise.
21064	(tag_summary): Dump just single summary.
21065	* gcov-io.c (gcov_write_summary): Write just histogram
21066	summary.
21067	(gcov_read_summary): Read just single summary.
21068	(compute_working_sets): Use gcov_summary struct.
21069	* gcov-io.h (GCOV_TAG_SUMMARY_LENGTH): Remove usage
21070	of GCOV_COUNTERS_SUMMABLE.
21071	(GCOV_COUNTERS_SUMMABLE): Remove.
21072	(GCOV_FIRST_VALUE_COUNTER): Replace with
21073	GCOV_COUNTER_V_INTERVAL.
21074	(struct gcov_ctr_summary): Remove.
21075	(struct gcov_summary): Directly use fields of former
21076	gcov_ctr_summary.
21077	(compute_working_sets): Use gcov_summary struct.
21078	* gcov.c (read_count_file): Do not use ctrs fields.
21079	* lto-cgraph.c (merge_profile_summaries): Use gcov_summary
21080	struct.
21081	* lto-streamer.h (struct GTY): Make profile_info gcov_summary
21082	struct.
21083	* profile.c: Likewise.
21084	* profile.h: Likewise.
21085
210862018-06-05  Martin Liska  <mliska@suse.cz>
21087
21088	PR gcov-profile/84846
21089	* gcov.c (output_lines): Print working directory only
21090	in intermediate format.
21091
210922018-06-05  Andreas Krebbel  <krebbel@linux.ibm.com>
21093
21094	* config/s390/s390-builtin-types.def: Add void function type.
21095	* config/s390/s390-builtins.def: Use the function type for the
21096	tbeginc builtin.
21097
210982018-06-04  Jim Wilson  <jimw@sifive.com>
21099
21100	* config/riscv/riscv-protos.h (riscv_expand_epilogue): Change bool arg
21101	to int.
21102	* config/riscv/riscv.c (riscv_for_each_saved_reg): New args epilogue
21103	and maybe_eh_return.  Change regno to unsigned int.  Use new args to
21104	handle EH_RETURN_DATA_REGNO registers properly.
21105	(riscv_expand_prologue): Pass new args to riscv_for_each_saved_reg.
21106	(riscv_expand_epilogue): Update comment.  Change argument name and
21107	type.  Update code to use new name and type.  Pass new args to
21108	riscv_for_each_saved_reg.  Only use EH_RETURN_STACKADJ_RTX when
21109	EXCEPTION_RETURN.
21110	* config/riscv/riscv.md (NORMAL_RETURN): New.
21111	(SIBCALL_RETURN, EXCEPTION_RETURN): New.
21112	(epilogue, sibcall_epilogue): Update riscv_expand_epilogue arg.
21113	(eh_return): Call gen_eh_return_internal and emit barrier.
21114	(eh_return_internal): Call riscv_expand_epilogue.
21115
211162018-06-04  Eric Botcazou  <ebotcazou@adacore.com>
21117
21118	* gimple-ssa-store-merging.c (struct merged_store_group): Move up
21119	bit_insertion field and declare can_be_merged_into method.
21120	(merged_store_group::can_be_merged_into): New method.
21121	(imm_store_chain_info::coalesce_immediate): Call it to decide whether
21122	consecutive non-overlapping stores can be merged.  Turn MEM_REF stores
21123	into BIT_INSERT_EXPR stores if the group contains a non-MEM_REF store.
21124
211252018-06-04  Richard Biener  <rguenther@suse.de>
21126
21127	PR tree-optimization/85955
21128	* builtins.c (fold_builtin_sincos): Convert pointers to
21129	destination to appropriate type before dereferencing.
21130
211312018-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
21132
21133	* config/rs6000/rs6000.md (abs<mode>2 for FLOAT128): Handle IFmode.
21134
211352018-06-04  Richard Sandiford  <richard.sandiford@linaro.org>
21136
21137	* expr.c (expand_expr_real_1): Force the operand into memory if
21138	its TYPE_MODE is BLKmode and if there is no integer mode for
21139	the number of bits being extracted.
21140
211412018-06-04  Jakub Jelinek  <jakub@redhat.com>
21142
21143	PR target/85832
21144	PR target/86036
21145	* config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>_1):
21146	Use vptestnm rather than vptestm in (=Yc,v,C) variant.
21147
211482018-06-04  Richard Biener  <rguenther@suse.de>
21149
21150	* tree-cfgcleanup.c (cleanup_tree_cfg_1): Fold into...
21151	(cleanup_tree_cfg_noloop): ... single caller.  Do
21152	start_recording_case_labels later.
21153
211542018-06-04  Sebastian Peryt  <sebastian.peryt@intel.com>
21155
21156	* config/i386/cldemoteintrin.h: Change define from _X86INTRIN_H_INCLUDED
21157	to _IMMINTRIN_H_INCLUDED.
21158	* config/i386/pconfigintrin.h: Ditto.
21159	* config/i386/waitpkgintrin.h: Ditto.
21160	* config/i386/immintrin.h: Add includes for sgxintrin.h,
21161	pconfigintrin.h, waitpkgintrin.h and cldemoteintrin.h.
21162	* config/i386/x86intrin.h: Remove includes for mintrin.h, xmmintrin.h,
21163	emmintrin.h, pmmintrin.h, tmmintrin.h, smmintrin.h, wmmintrin.h,
21164	bmiintrin.h, bmi2intrin.h, lzcntintrin.h, sgxintrin.h, pconfigintrin.h,
21165	waitpkgintrin.h and cldemoteintrin.h.
21166
211672018-06-04  Richard Biener  <rguenther@suse.de>
21168
21169	PR tree-optimization/86038
21170	* tracer.c (find_best_successor): Check probability for
21171	being initialized, bail out if not.
21172
211732018-06-04  Richard Earnshaw  <rearnsha@arm.com>
21174
21175	PR target/86003
21176	* config/arm/arm-cpus.in (ALL_QUIRKS): Add xscale feature to the list
21177	of bits to ignore when comparing architectures.
21178
211792018-06-04  Jakub Jelinek  <jakub@redhat.com>
21180
21181	PR tree-optimization/69615
21182	* fold-const.c (merge_ranges): If range1 is - [x, x] and x is the
21183	maximum or minimum of the type, try to merge it also as if
21184	range1 is + [-, x - 1] or + [x + 1, -].
21185
21186	PR c++/86025
21187	* tree.c (inchash::add_expr): Handle IDENTIFIER_NODE.
21188
211892018-06-03  Eric Botcazou  <ebotcazou@adacore.com>
21190
21191	PR tree-optimization/86034
21192	* gimple-ssa-store-merging.c (output_merged_store): Convert the RHS to
21193	the unsigned bitfield type in a bit insertion sequence if it does not
21194	have a larger precision than the bitfield size.
21195	(process_store): Also bypass widening conversions for BIT_INSERT_EXPR.
21196
211972018-06-03  Kito Cheng  <kito.cheng@gmail.com>
21198
21199	* config/nds32/nds32-peephole2.md: Add new patterns for code size.
21200
212012018-06-03  Chung-Ju Wu  <jasonwucj@gmail.com>
21202
21203	* config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3J.
21204	* config/nds32/nds32.c (nds32_option_override): Consider ARCH_V3J.
21205	* config/nds32/nds32.h (TARGET_ISA_V3): Add ARCH_V3J checking.
21206	* config/nds32/nds32.opt (march): Add enum value Value(ARCH_V3J).
21207
212082018-06-03  Chung-Ju Wu  <jasonwucj@gmail.com>
21209
21210	* common/config/nds32/nds32-common.c (nds32_option_optimization_table):
21211	Disable -fdelete-null-pointer-checks for ELF toolchain.
21212
212132018-06-02  Chung-Ju Wu  <jasonwucj@gmail.com>
21214	    Kito Cheng  <kito.cheng@gmail.com>
21215
21216	* config.gcc (nds32*): Use nds32-linux.opt and nds32-elf.opt.
21217	(nds32le-*-*, nds32be-*-*): Integrate checking process.
21218	(nds32*-*-*): Add glibc and uclibc conditions.
21219	* common/config/nds32/nds32-common.c (nds32_except_unwind_info): New.
21220	(TARGET_EXCEPT_UNWIND_INFO): Define.
21221	* config/nds32/elf.h: New file.
21222	* config/nds32/linux.h: New file.
21223	* config/nds32/nds32-elf.opt: New file.
21224	* config/nds32/nds32-linux.opt: New file.
21225	* config/nds32/nds32-fp-as-gp.c
21226	(pass_nds32_fp_as_gp::gate): Consider TARGET_LINUX_ABI.
21227	* config/nds32/nds32.c (nds32_conditional_register_usage): Consider
21228	TARGET_LINUX_ABI.
21229	(nds32_asm_file_end): Ditto.
21230	(nds32_print_operand): Ditto.
21231	(nds32_insert_attributes): Ditto.
21232	(nds32_init_libfuncs): New function.
21233	(TARGET_HAVE_TLS): Define.
21234	(TARGET_INIT_LIBFUNCS): Define.
21235	* config/nds32/nds32.h (TARGET_DEFAULT_RELAX): Apply different relax
21236	spec content.
21237	(TARGET_ELF): Apply different mcmodel setting.
21238	(LINK_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): The content has
21239	been migrated into elf.h and linux.h files.
21240	* config/nds32/nds32.md (add_pc): Consider TARGET_LINUX_ABI.
21241	* config/nds32/nds32.opt (mvh): Consider TARGET_LINUX_ABI.
21242	(mcmodel): The content has been migrated into nds32-elf.opt and
21243	nds32-linux.opt files.
21244	* config/nds32/t-elf: New file.
21245	* config/nds32/t-linux: New file.
21246
212472018-06-02  Chung-Ju Wu  <jasonwucj@gmail.com>
21248	    Shiva Chen  <shiva0217@gmail.com>
21249
21250	* config/nds32/constants.md (unspec_volatile_element): Add
21251	UNSPEC_VOLATILE_OMIT_FP_BEGIN and UNSPEC_VOLATILE_OMIT_FP_END.
21252	* config/nds32/nds32-fp-as-gp.c: New implementation of fp_as_gp
21253	optimization.
21254	* config/nds32/nds32-protos.h (nds32_naked_function_p): Declare.
21255	(make_pass_nds32_fp_as_gp): Declare.
21256	* config/nds32/nds32.c (nds32_register_passes): Add fp_as_gp as one
21257	optmization pass.
21258	(nds32_asm_function_end_prologue): Remove unused asm output.
21259	(nds32_asm_function_begin_epilogue): Remove unused asm output.
21260	(nds32_asm_file_start): Output necessary fp_as_gp information.
21261	(nds32_option_override): Adjust register usage.
21262	(nds32_expand_prologue): Consider fp_as_gp situation.
21263	(nds32_expand_prologue_v3push): Consider fp_as_gp situation.
21264	* config/nds32/nds32.md (prologue): Check fp_as_gp_p and naked_p.
21265	(epilogue): Ditto.
21266	(return): Ditto.
21267	(simple_return): Ditto.
21268	(omit_fp_begin): Output special directive for fp_as_gp.
21269	(omit_fp_end): Output special directive for fp_as_gp.
21270	* config/nds32/nds32.opt (mfp-as-gp, mno-fp-as-gp, mforce-fp-as-gp,
21271	mforbid-fp-as-gp): New options.
21272
212732018-06-01  Mark Wielaard  <mark@klomp.org>
21274
21275	* dwarf2out.c (dwarf2out_finish): Remove generation of
21276	DW_AT_loclists_base.
21277
212782018-06-01  Eric Botcazou  <ebotcazou@adacore.com>
21279
21280	* gimple-ssa-store-merging.c: Include gimple-fold.h.
21281	(struct store_immediate_info): Document BIT_INSERT_EXPR stores.
21282	(struct merged_store_group): Add bit_insertion field.
21283	(dump_char_array): Use standard hexadecimal format.
21284	(merged_store_group::merged_store_group): Set bit_insertion to false.
21285	(merged_store_group::apply_stores): Use optimal buffer size.  Deal
21286	with BIT_INSERT_EXPR stores.  Move up code updating the mask and
21287	also print the mask in the dump file.
21288	(pass_store_merging::gate): Minor tweak.
21289	(imm_store_chain_info::coalesce_immediate): Fix wrong association
21290	of stores with groups in dump.  Allow coalescing of BIT_INSERT_EXPR
21291	stores with INTEGER_CST stores.
21292	(count_multiple_uses) <BIT_INSERT_EXPR>: New case.
21293	(imm_store_chain_info::output_merged_store): Add try_bitpos variable
21294	and use it throughout.  Generate bit insertion sequences if need be.
21295	(pass_store_merging::process_store): Remove redundant condition.
21296	Record stores from a SSA name to a bit-field with BIT_INSERT_EXPR.
21297
212982018-06-01  Segher Boessenkool  <segher@kernel.crashing.org>
21299
21300	* config/rs6000/rs6000.c (rs6000_mangle_type): Change the mangling of
21301	the 128-bit floating point types.  Fix function comment.
21302
213032018-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21304
21305	* config/aarch64/aarch64-simd.md
21306	(aarch64_simd_vec_unpack<su>_lo_<mode>): Use UXTL and SXTL assembler
21307	mnemonics.
21308	(aarch64_simd_vec_unpack<su>_hi_<mode>): Use UXTL2 and SXTL2 assembler
21309	mnemonics.
21310
213112018-06-01  Richard Sandiford  <richard.sandiford@linaro.org>
21312
21313	PR tree-optimization/85989
21314	* gimple-ssa-backprop.c (backprop::m_visited_phis): New member
21315	variable.
21316	(backprop::intersect_uses): Check it when deciding whether this
21317	is a backedge reference.
21318	(backprop::process_block): Add each phi to m_visited_phis
21319	after visiting it, then clear it at the end.
21320
213212018-06-01  Richard Biener  <rguenther@suse.de>
21322
21323	* tree-vectorizer.h (vect_dr_stmt): New function.
21324	(vect_get_load_cost): Adjust.
21325	(vect_get_store_cost): Likewise.
21326	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
21327	Use vect_dr_stmt instead of DR_SMTT.
21328	(vect_record_base_alignments): Likewise.
21329	(vect_calculate_target_alignment): Likewise.
21330	(vect_compute_data_ref_alignment): Likewise and make static.
21331	(vect_update_misalignment_for_peel): Likewise.
21332	(vect_verify_datarefs_alignment): Likewise.
21333	(vector_alignment_reachable_p): Likewise.
21334	(vect_get_data_access_cost): Likewise.  Pass down
21335	vinfo to vect_get_load_cost/vect_get_store_cost instead of DR.
21336	(vect_get_peeling_costs_all_drs): Likewise.
21337	(vect_peeling_hash_get_lowest_cost): Likewise.
21338	(vect_enhance_data_refs_alignment): Likewise.
21339	(vect_find_same_alignment_drs): Likewise.
21340	(vect_analyze_data_refs_alignment): Likewise.
21341	(vect_analyze_group_access_1): Likewise.
21342	(vect_analyze_group_access): Likewise.
21343	(vect_analyze_data_ref_access): Likewise.
21344	(vect_analyze_data_ref_accesses): Likewise.
21345	(vect_vfa_segment_size): Likewise.
21346	(vect_small_gap_p): Likewise.
21347	(vectorizable_with_step_bound_p): Likewise.
21348	(vect_prune_runtime_alias_test_list): Likewise.
21349	(vect_analyze_data_refs): Likewise.
21350	(vect_supportable_dr_alignment): Likewise.
21351	* tree-vect-loop-manip.c (get_misalign_in_elems): Likewise.
21352	(vect_gen_prolog_loop_niters): Likewise.
21353	* tree-vect-loop.c (vect_analyze_loop_2): Likewise.
21354	* tree-vect-patterns.c (vect_recog_bool_pattern): Do not
21355	modify DR_STMT.
21356	(vect_recog_mask_conversion_pattern): Likewise.
21357	(vect_try_gather_scatter_pattern): Likewise.
21358	* tree-vect-stmts.c (vect_model_store_cost): Pass stmt_info
21359	to vect_get_store_cost.
21360	(vect_get_store_cost): Get stmt_info instead of DR.
21361	(vect_model_load_cost): Pass stmt_info to vect_get_load_cost.
21362	(vect_get_load_cost): Get stmt_info instead of DR.
21363
213642018-06-01  Richard Biener  <rguenther@suse.de>
21365
21366	PR middle-end/86017
21367	* gimple-fold.c (var_decl_component_p): Also allow offsetted
21368	vars wrapped in MEM_REFs.
21369
213702018-06-01  Richard Sandiford  <richard.sandiford@linaro.org>
21371
21372	* config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
21373	Fix subreg tests so that we only return a choice between
21374	GENERAL_REGS and FP_REGS if the original classes included both.
21375
213762018-06-01  Richard Biener  <rguenther@suse.de>
21377
21378	PR ipa/85960
21379	* tree-ssa-structalias.c (get_function_part_constraint):
21380	Handle NULL fi->decl.
21381	(find_func_aliases_for_call): Properly handle indirect
21382	fi from direct call.
21383	(find_func_clobbers): Likewise.
21384	(ipa_pta_execute): Likewise.
21385	(create_variable_info_for): For functions that are ifunc_resolver
21386	resolve to a varinfo that contains the result of the resolver call.
21387	(associate_varinfo_to_alias): Do not treat ifunc resolvers as
21388	aliases.
21389
213902018-05-31  Michael Collison  <michael.collison@arm.com>
21391
21392	* config/aarch64/aarch64.md:
21393	(*fix_to_zero_extenddfdi2): New pattern.
21394	* gcc.target/aarch64/fix_extend1.c: New testcase.
21395
213962018-05-31  Qing Zhao  <qing.zhao@oracle.com>
21397
21398	PR middle-end/78809
21399	PR middle-end/83026
21400	* builtins.c (expand_builtin): Add the handling of BUILT_IN_STRCMP_EQ
21401	and BUILT_IN_STRNCMP_EQ.
21402	* builtins.def: Add new builtins BUILT_IN_STRCMP_EQ and
21403	BUILT_IN_STRNCMP_EQ.
21404	* gimple-fold.c (gimple_fold_builtin_string_compare): Add the
21405	handling of BUILTIN_IN_STRCMP_EQ and BUILT_IN_STRNCMP_EQ.
21406	(gimple_fold_builtin): Likewise.
21407	* tree-ssa-strlen.c (compute_string_length): New function.
21408	(determine_min_obsize): New function.
21409	(handle_builtin_string_cmp): New function to handle calls to
21410	string compare functions.
21411	(strlen_optimize_stmt): Add handling to builtin string compare
21412	calls.
21413	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
21414	Add the handling of BUILT_IN_STRCMP_EQ and BUILT_IN_STRNCMP_EQ.
21415	* tree.c (build_common_builtin_nodes): Add new defines of
21416	BUILT_IN_STRNCMP_EQ and BUILT_IN_STRCMP_EQ.
21417
214182018-05-31  Jakub Jelinek  <jakub@redhat.com>
21419
21420	PR target/85984
21421	* bb-reorder.c (pass_partition_blocks::gate): Return false for
21422	functions with naked attribute.
21423
214242018-05-31  Uros Bizjak  <ubizjak@gmail.com>
21425
21426	* config/i386/sse.md (avx_vec_concat<mode>):
21427	Substitute concat_tg_mode mode attribute with xtg_mode.
21428	(<mask_codefor>avx512dq_broadcast<mode><mask_name>_1): Ditto.
21429	(concat_tg_mode): Remove mode attribute.
21430
214312018-05-31  Martin Sebor  <msebor@redhat.com>
21432
21433	PR c/82063
21434	* calls.c (alloc_max_size): Correct a logic error/typo.
21435	Treat excessive arguments as infinite.  Warn for invalid arguments.
21436	* doc/invoke.texi (-Walloc-size-larger-than): Update.
21437
214382018-05-31  H.J. Lu  <hongjiu.lu@intel.com>
21439
21440	PR target/85829
21441	* config/i386/x86-tune.def: Re-enable partial_reg_dependency
21442	and movx for Haswell.
21443
214442018-05-31  Chung-Lin Tang  <cltang@codesourcery.com>
21445	    Cesar Philippidis  <cesar@codesourcery.com>
21446
21447	PR middle-end/85879
21448	* gimplify.c (gimplify_adjust_omp_clauses): Add 'remove = true'
21449	when emitting error on private/firstprivate reductions.
21450	* omp-low.c (lower_omp_target): Avoid reference-type processing
21451	on pointers for firstprivate clause.
21452
214532018-05-31  Sameera Deshpande  <sameera.deshpande@linaro.org>
21454
21455	* config/aarch64/aarch64-simd-builtins.def (ld1x3): New.
21456	(st1x2): Likewise.
21457	(st1x3): Likewise.
21458	* config/aarch64/aarch64-simd.md
21459	(aarch64_ld1x3<VALLDIF:mode>): New pattern.
21460	(aarch64_ld1_x3_<mode>): Likewise
21461	(aarch64_st1x2<VALLDIF:mode>): Likewise
21462	(aarch64_st1_x2_<mode>): Likewise
21463	(aarch64_st1x3<VALLDIF:mode>): Likewise
21464	(aarch64_st1_x3_<mode>): Likewise
21465	* config/aarch64/arm_neon.h (vld1_u8_x3): New function.
21466	(vld1_s8_x3): Likewise.
21467	(vld1_u16_x3): Likewise.
21468	(vld1_s16_x3): Likewise.
21469	(vld1_u32_x3): Likewise.
21470	(vld1_s32_x3): Likewise.
21471	(vld1_u64_x3): Likewise.
21472	(vld1_s64_x3): Likewise.
21473	(vld1_f16_x3): Likewise.
21474	(vld1_f32_x3): Likewise.
21475	(vld1_f64_x3): Likewise.
21476	(vld1_p8_x3): Likewise.
21477	(vld1_p16_x3): Likewise.
21478	(vld1_p64_x3): Likewise.
21479	(vld1q_u8_x3): Likewise.
21480	(vld1q_s8_x3): Likewise.
21481	(vld1q_u16_x3): Likewise.
21482	(vld1q_s16_x3): Likewise.
21483	(vld1q_u32_x3): Likewise.
21484	(vld1q_s32_x3): Likewise.
21485	(vld1q_u64_x3): Likewise.
21486	(vld1q_s64_x3): Likewise.
21487	(vld1q_f16_x3): Likewise.
21488	(vld1q_f32_x3): Likewise.
21489	(vld1q_f64_x3): Likewise.
21490	(vld1q_p8_x3): Likewise.
21491	(vld1q_p16_x3): Likewise.
21492	(vld1q_p64_x3): Likewise.
21493	(vst1_s64_x2): Likewise.
21494	(vst1_u64_x2): Likewise.
21495	(vst1_f64_x2): Likewise.
21496	(vst1_s8_x2): Likewise.
21497	(vst1_p8_x2): Likewise.
21498	(vst1_s16_x2): Likewise.
21499	(vst1_p16_x2): Likewise.
21500	(vst1_s32_x2): Likewise.
21501	(vst1_u8_x2): Likewise.
21502	(vst1_u16_x2): Likewise.
21503	(vst1_u32_x2): Likewise.
21504	(vst1_f16_x2): Likewise.
21505	(vst1_f32_x2): Likewise.
21506	(vst1_p64_x2): Likewise.
21507	(vst1q_s8_x2): Likewise.
21508	(vst1q_p8_x2): Likewise.
21509	(vst1q_s16_x2): Likewise.
21510	(vst1q_p16_x2): Likewise.
21511	(vst1q_s32_x2): Likewise.
21512	(vst1q_s64_x2): Likewise.
21513	(vst1q_u8_x2): Likewise.
21514	(vst1q_u16_x2): Likewise.
21515	(vst1q_u32_x2): Likewise.
21516	(vst1q_u64_x2): Likewise.
21517	(vst1q_f16_x2): Likewise.
21518	(vst1q_f32_x2): Likewise.
21519	(vst1q_f64_x2): Likewise.
21520	(vst1q_p64_x2): Likewise.
21521	(vst1_s64_x3): Likewise.
21522	(vst1_u64_x3): Likewise.
21523	(vst1_f64_x3): Likewise.
21524	(vst1_s8_x3): Likewise.
21525	(vst1_p8_x3): Likewise.
21526	(vst1_s16_x3): Likewise.
21527	(vst1_p16_x3): Likewise.
21528	(vst1_s32_x3): Likewise.
21529	(vst1_u8_x3): Likewise.
21530	(vst1_u16_x3): Likewise.
21531	(vst1_u32_x3): Likewise.
21532	(vst1_f16_x3): Likewise.
21533	(vst1_f32_x3): Likewise.
21534	(vst1_p64_x3): Likewise.
21535	(vst1q_s8_x3): Likewise.
21536	(vst1q_p8_x3): Likewise.
21537	(vst1q_s16_x3): Likewise.
21538	(vst1q_p16_x3): Likewise.
21539	(vst1q_s32_x3): Likewise.
21540	(vst1q_s64_x3): Likewise.
21541	(vst1q_u8_x3): Likewise.
21542	(vst1q_u16_x3): Likewise.
21543	(vst1q_u32_x3): Likewise.
21544	(vst1q_u64_x3): Likewise.
21545	(vst1q_f16_x3): Likewise.
21546	(vst1q_f32_x3): Likewise.
21547	(vst1q_f64_x3): Likewise.
21548	(vst1q_p64_x3): Likewise.
21549
215502018-05-30  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
21551
21552	* config/msp430/msp430.c (msp430_output_labelref): Prepend
21553	user_label_prefix to name.
21554
21555	* tree-core.h: Update comment about the format of NAME string
21556	passed to handler in attribute_spec.
21557
21558	* config/msp430/msp430.md: Remove erroneous subreg expression from
21559	zero_extendqisi2 insn pattern. Remove msp430x ISA restriction on
21560	zero_extend{q,h}isi2.
21561
215622018-05-30  Borislav Petkov  <bp@suse.de>
21563
21564	* doc/extend.texi: Document some architecture specific
21565	constraints and sort entries.
21566
215672018-05-30  Martin Sebor  <msebor@redhat.com>
21568
21569	PR middle-end/85369
21570	* builtins.c (expand_builtin_stpcpy_1): New function.
21571	(expand_builtin_stpcpy): Call it, and call maybe_warn_nonstring_arg
21572	only if the former succeeds.
21573
215742018-05-31  Sameera Deshpande  <sameera.deshpande@linaro.org>
21575
21576	* config/aarch64/aarch64-cores.def (saphira) : Add support for ARMv8.4
21577	in saphira.
21578
215792018-05-30  Jan Hubicka  <hubicka@ucw.cz>
21580
21581	* doc/invoke.texi (-flinker-output): Document
21582
215832018-05-30  Jan Hubicka  <hubicka@ucw.cz>
21584
21585	* passes.c (ipa_write_summaries): Only modify statements if body
21586	is in memory.
21587	* cgraphunit.c (ipa_passes): Also produce intermeidate code when
21588	incrementally linking.
21589	(ipa_passes): Likewise.
21590	* lto-cgraph.c (lto_output_node): When incrementally linking do not
21591	pass down resolution info.
21592	* common.opt (flag_incremental_link): Update info.
21593	* gcc.c (plugin specs): Turn flinker-output=* to
21594	-plugin-opt=-linker-output-known
21595	* toplev.c (compile_file): Also cut compilation when doing incremental
21596	link.
21597	* flag-types. (enum lto_partition_model): Add
21598	LTO_LINKER_OUTPUT_NOLTOREL.
21599	(invoke.texi): Add -flinker-output docs.
21600	* ipa.c (symbol_table::remove_unreachable_nodes): Handle LTO incremental
21601	link same way as WPA; do not stream in dead initializers.
21602
21603	* dwarf2out.c (dwarf2out_die_ref_for_decl,
21604	darf2out_register_external_decl): Support incremental link.
21605
216062018-05-30  Jan Hubicka  <hubicka@ucw.cz>
21607
21608	* lto-opts.c (lto_write_options): Skip OPT_dumpdir, OPT_fresolution_.
21609
216102018-05-30  Jan Hubicka  <hubicka@ucw.cz>
21611
21612	* lto-wrapper.c (debug_objcopy): Add rename parameter; pass
21613	it down to simple_object_copy_lto_debug_sections.
21614	(run_gcc): Determine incremental LTO link time and configure
21615	lto1 into non-wpa mode, disable renaming of debug sections.
21616
216172018-05-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
21618
21619	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Remove
21620	descriptions of various incorrectly documented functions.
21621
216222018-05-30  Andre Vieira  <andre.simoesdiasvieira@arm.com>
21623
21624	Revert:
21625	* config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make
21626	address check not strict.
21627
216282018-05-30  Richard Biener  <rguenther@suse.de>
21629
21630	PR tree-optimization/85964
21631	* tracer.c (better_p): Drop initialized count check, we only
21632	call the function with initialized counts now.
21633	(find_best_successor): Do find a best edge if one
21634	has uninitialized count.
21635	(find_best_predecessor): Likewise.  Do BB frequency check only
21636	if count is initialized.
21637
216382017-05-30  Jackson Woodruff  <jackson.woodruff@arm.com>
21639
21640	* config/aarch64/aarch64.c (aarch64_host_wide_int_compare): New.
21641	(aarch64_ldrstr_offset_compare): New.
21642	(aarch64_operands_adjust_ok_for_ldpstp): Update to consider all
21643	load/store orderings.
21644	(aarch64_gen_adjusted_ldpstp): Likewise.
21645
216462018-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
21647
21648	* config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
21649	Check for subset of GENERAL_REGS and FP_REGS.
21650	* config/aarch64/aarch64-simd.md (aarch64_get_lane): Increase cost of
21651	r=w alternative.
21652
216532018-05-30  Richard Sandiford  <richard.sandiford@linaro.org>
21654
21655	* alias.c (adjust_offset_for_component_ref): Use poly_int_tree_p
21656	and wi::to_poly_offset.  Add the current offset and then check
21657	whether the sum fits, rather than using an unchecked addition of
21658	a checked term.  Check for a shwi rather than a uhwi.
21659	* expr.c (get_bit_range): Use tree_to_poly_uint64.
21660	(store_constructor): Use poly_int_tree_p.
21661	(expand_expr_real_1): Likewise.
21662	* function.c (assign_temp): Likewise.
21663	* fold-const.c (const_binop): Use poly_int_tree_p and
21664	wi::to_poly_offset.
21665	(fold_indirect_ref_1): Likewise.  Use multiple_p to attempt an exact
21666	division.
21667	* ipa-icf-gimple.c (func_checker::compare_operand): Use
21668	to_poly_offset for MEM offsets.
21669	* ipa-icf.c (sem_variable::equals): Likewise.
21670	* stor-layout.c (compute_record_mode): Use poly_int_tree_p.
21671	* tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use
21672	wi::to_poly_offset for BIT_FIELD_REF offsets.
21673	(vn_reference_maybe_forwprop_address): Use poly_int_tree_p and
21674	wi::to_poly_offset.
21675	* var-tracking.c (emit_note_insn_var_location): Use
21676	tree_to_poly_uint64.
21677
216782018-05-29  Jim Wilson  <jimw@sifive.com>
21679
21680	* config/riscv/riscv.c (riscv_interrupt_type): Fix comment typo.
21681
216822018-05-29  Uros Bizjak  <ubizjak@gmail.com>
21683
21684	PR target/85950
21685	* config/i386/i386.md (l<rounding_insn><MODEF:mode><SWI48:mode>2):
21686	Enable for TARGET_SSE4_1 and generate rounds{s,d} and cvtts{s,d}2si{,q}
21687	sequence.
21688	(sse4_1_round<mode>2): Use nonimmediate_operand
21689	for operand 1 predicate.
21690
216912018-05-29  Martin Sebor  <msebor@redhat.com>
21692	    Richard Biener  <rguenther@suse.de>
21693
21694	PR testsuite/85888
21695	* calls.c (get_size_range): Call determine_value_range instead
21696	of get_value_range..
21697	* tree-vrp.h (determine_value_range): Declared new function.
21698	* tree-vrp.c (determine_value_range_1, determine_value_range): New.
21699
217002018-05-29  Richard Biener  <rguenther@suse.de>
21701
21702	* tree-vect-data-refs.c (vect_preserves_scalar_order_p): Make
21703	sure to use non-pattern stmts for get_earlier_stmt arguments.
21704	* tree-vectorizer.h (get_earlier_stmt): Assert we do not get
21705	called on pattern stmts.
21706	(get_later_stmt): Likewise.
21707
217082018-05-29  Martin Liska  <mliska@suse.cz>
21709
21710	PR gcov-profile/85759
21711	* doc/gcov.texi: Document GCOV_ERROR_FILE and GCOV_EXIT_AT_ERROR
21712	env variables.
21713
217142018-05-29  Jakub Jelinek  <jakub@redhat.com>
21715
21716	* tree-cfg.c (verify_gimple_assign_unary): Add checking for
21717	VEC_UNPACK_*_EXPR.
21718	(verify_gimple_assign_binary): Check TYPE_VECTOR_SUBPARTS for
21719	VEC_PACK_*_EXPR.
21720
21721	PR target/85918
21722	* tree.def (VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR,
21723	VEC_PACK_FLOAT_EXPR): New tree codes.
21724	* tree-pretty-print.c (op_code_prio): Handle
21725	VEC_UNPACK_FIX_TRUNC_HI_EXPR and VEC_UNPACK_FIX_TRUNC_LO_EXPR.
21726	(dump_generic_node): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR,
21727	VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR.
21728	* tree-inline.c (estimate_operator_cost): Likewise.
21729	* gimple-pretty-print.c (dump_binary_rhs): Handle VEC_PACK_FLOAT_EXPR.
21730	* fold-const.c (const_binop): Likewise.
21731	(const_unop): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR and
21732	VEC_UNPACK_FIX_TRUNC_LO_EXPR.
21733	* tree-cfg.c (verify_gimple_assign_unary): Likewise.
21734	(verify_gimple_assign_binary): Handle VEC_PACK_FLOAT_EXPR.
21735	* cfgexpand.c (expand_debug_expr): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR,
21736	VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR.
21737	* expr.c (expand_expr_real_2): Likewise.
21738	* optabs.def (vec_packs_float_optab, vec_packu_float_optab,
21739	vec_unpack_sfix_trunc_hi_optab, vec_unpack_sfix_trunc_lo_optab,
21740	vec_unpack_ufix_trunc_hi_optab, vec_unpack_ufix_trunc_lo_optab): New
21741	optabs.
21742	* optabs.c (expand_widen_pattern_expr): For
21743	VEC_UNPACK_FIX_TRUNC_HI_EXPR and VEC_UNPACK_FIX_TRUNC_LO_EXPR use
21744	sign from result type rather than operand's type.
21745	(expand_binop_directly): For vec_packu_float_optab and
21746	vec_packs_float_optab allow result type to be different from operand's
21747	type.
21748	* optabs-tree.c (optab_for_tree_code): Handle
21749	VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and
21750	VEC_PACK_FLOAT_EXPR.  Formatting fixes.
21751	* tree-vect-generic.c (expand_vector_operations_1):  Handle
21752	VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and
21753	VEC_PACK_FLOAT_EXPR.
21754	* tree-vect-stmts.c (supportable_widening_operation): Handle
21755	FIX_TRUNC_EXPR.
21756	(supportable_narrowing_operation): Handle FLOAT_EXPR.
21757	* config/i386/i386.md (fixprefix, floatprefix): New code attributes.
21758	* config/i386/sse.md (*float<floatunssuffix>v2div2sf2): Rename to ...
21759	(float<floatunssuffix>v2div2sf2): ... this.  Formatting fix.
21760	(vpckfloat_concat_mode, vpckfloat_temp_mode, vpckfloat_op_mode): New
21761	mode attributes.
21762	(vec_pack<floatprefix>_float_<mode>): New expander.
21763	(vunpckfixt_mode, vunpckfixt_model, vunpckfixt_extract_mode): New mode
21764	attributes.
21765	(vec_unpack_<fixprefix>fix_trunc_lo_<mode>,
21766	vec_unpack_<fixprefix>fix_trunc_hi_<mode>): New expanders.
21767	* doc/md.texi (vec_packs_float_@var{m}, vec_packu_float_@var{m},
21768	vec_unpack_sfix_trunc_hi_@var{m}, vec_unpack_sfix_trunc_lo_@var{m},
21769	vec_unpack_ufix_trunc_hi_@var{m}, vec_unpack_ufix_trunc_lo_@var{m}):
21770	Document.
21771	* doc/generic.texi (VEC_UNPACK_FLOAT_HI_EXPR,
21772	VEC_UNPACK_FLOAT_LO_EXPR): Fix pasto in description.
21773	(VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR,
21774	VEC_PACK_FLOAT_EXPR): Document.
21775
217762018-05-29  Richard Biener  <rguenther@suse.de>
21777
21778	* tree-vectorizer.h (struct vec_info): Add stmt_vec_infos
21779	member.
21780	(stmt_vec_info_vec): Make pointer.
21781	(init_stmt_vec_info_vec): Remove.
21782	(free_stmt_vec_info_vec): Likewise.
21783	(set_stmt_vec_info_vec): New function.
21784	(free_stmt_vec_infos): Likewise.
21785	(vinfo_for_stmt): Adjust for stmt_vec_info_vec indirection.
21786	(set_vinfo_for_stmt): Likewise.
21787	(get_earlier_stmt): Likewise.
21788	(get_later_stmt): Likewise.
21789	* tree-vectorizer.c (stmt_vec_info_vec): Make pointer.
21790	(vec_info::vec_info): Allocate stmt_vec_infos and set the global.
21791	(vec_info::~vec_info): Free stmt_vec_infos.
21792	(vectorize_loops): Set the global stmt_vec_info_vec to NULL.
21793	Remove old init_stmt_vec_info_vec/free_stmt_vec_info_vec calls.
21794	(pass_slp_vectorize::execute): Likewise.
21795	* tree-vect-stmts.c (init_stmt_vec_info_vec): Remove.
21796	(free_stmt_vec_info_vec): Likewise.
21797	(set_stmt_vec_info_vec): New function.
21798	(free_stmt_vec_infos): Likewise.
21799	* tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Set
21800	the global stmt_vec_info_vec.
21801	* tree-parloops.c (gather_scalar_reductions): Use
21802	set_stmt_vec_info_vec/free_stmt_vec_infos and maintain a local
21803	vector.
21804
218052018-05-29  Richard Biener  <rguenther@suse.de>
21806
21807	* dominance.c (iterate_fix_dominators): Push/pop TV_DOMINANCE.
21808
218092018-05-29  Martin Liska  <mliska@suse.cz>
21810	    David Malcolm  <dmalcolm@redhat.com>
21811
21812	* vec.c (test_reverse): New.
21813	(vec_c_tests): Add new test.
21814	* vec.h (vl_ptr>::reverse): New function.
21815
218162018-05-29  Gerald Pfeifer  <gerald@pfeifer.com>
21817
21818	* config.gcc: Identify FreeBSD 3.x and 4.x as unsupported.
21819
21820	* config/freebsd-spec.h (FBSD_LIB_SPEC): Only consider FreeBSD 5
21821	and later.
21822
218232018-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
21824
21825	* tree-dump.c (dump_node): Use splay_tree_delete_pointers.
21826
218272018-05-28  Richard Biener  <rguenther@suse.de>
21828
21829	PR tree-optimization/85933
21830	* tree-vect-data-refs.c (vect_record_base_alignments): Only
21831	look at stmts marked as vectorizable.
21832
218332018-05-28  Richard Biener  <rguenther@suse.de>
21834
21835	PR tree-optimization/85934
21836	* tree-vect-generic.c (expand_vector_operations_1): Hoist
21837	vector boolean check before scalar optimization.
21838
218392018-05-28  Jakub Jelinek  <jakub@redhat.com>
21840
21841	* doc/invoke.texi (ARM Options): Use @item instead of @itemx
21842	for armv5te.
21843
218442018-05-28  Mark Wielaard  <mark@klomp.org>
21845
21846	* dwarf2asm.c (dw2_asm_output_delta_uleb128): Add brackets around lab2
21847	if it is an expression containing a minus sign.
21848
218492018-05-27  John David Anglin  <danglin@gcc.gnu.org>
21850
21851	* config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0.
21852
218532018-05-27  Paul Koning  <ni1d@arrl.net>
21854
21855	* config/pdp11/pdp11.md (truncsihi2): Remove.
21856
218572018-05-27  Monk Chiang  <sh.chiang04@gmail.com>
21858	    Chung-Ju Wu  <jasonwucj@gmail.com>
21859
21860	* config/nds32/nds32-intrinsic.md (unaligned_storedi): Modify patterns
21861	implementation.
21862	(unaligned_store_dw): Ditto.
21863	* config/nds32/nds32-memory-manipulation.c
21864	(nds32_expand_movmemsi_loop_known_size): Refactoring implementation.
21865	(nds32_gen_dup_4_byte_to_word_value): Rename to ...
21866	(nds32_gen_dup_4_byte_to_word_value_aux): ... this.
21867	(emit_setmem_word_loop): Rename to ...
21868	(emit_setmem_doubleword_loop): ... this.
21869	(nds32_gen_dup_4_byte_to_word_value): New function.
21870	(nds32_gen_dup_8_byte_to_double_word_value): New function.
21871	(nds32_expand_setmem_loop): Refine implementation.
21872	(nds32_expand_setmem_loop_v3m): Ditto.
21873	* config/nds32/nds32-multiple.md (unaligned_store_update_base_dw): New
21874	pattern.
21875
218762018-05-27  Chung-Ju Wu  <jasonwucj@gmail.com>
21877
21878	* config/nds32/nds32.md (bswapsi2, bswaphi2): New patterns.
21879
218802018-05-27  Chung-Ju Wu  <jasonwucj@gmail.com>
21881
21882	* config/nds32/nds32.c (nds32_attribute_table): Add "no_prologue".
21883	(nds32_init_machine_status): Initialize machine->attr_naked_p and
21884	machine->attr_no_prologue_p.
21885	(nds32_compute_stack_frame): Check "naked" and "no_prologue" attributes.
21886	(nds32_naked_function_p): Handle "naked" and "no_prologue" attributes.
21887	(nds32_expand_epilogue): Consider attr_naked_p.
21888	(nds32_expand_epilogue_v3pop): Likewise.
21889	(nds32_can_use_return_insn): Likewise.
21890	* config/nds32/nds32.h (machine_function): Add attr_naked_p and
21891	attr_no_prologue_p fields.
21892	* config/nds32/nds32.opt (mret-in-naked-func): New option.
21893
218942018-05-27  Jakub Jelinek  <jakub@redhat.com>
21895
21896	PR target/85918
21897	* config/i386/i386.md (fixunssuffix, floatunssuffix): New code
21898	attributes.
21899	* config/i386/sse.md
21900	(<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>):
21901	Rename to ...
21902	(float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>):
21903	... this.
21904	(<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>):
21905	Rename to ...
21906	(float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>):
21907	... this.
21908	(*<floatsuffix>floatv2div2sf2): Rename to ...
21909	(*float<floatunssuffix>v2div2sf2): ... this.
21910	(<floatsuffix>floatv2div2sf2_mask): Rename to ...
21911	(float<floatunssuffix>v2div2sf2_mask): ... this.
21912	(*<floatsuffix>floatv2div2sf2_mask_1): Rename to ...
21913	(*float<floatunssuffix>v2div2sf2_mask_1): ... this.
21914	(<fixsuffix>fix_truncv8dfv8si2<mask_name><round_saeonly_name>): Rename
21915	to ...
21916	(fix<fixunssuffix>_truncv8dfv8si2<mask_name><round_saeonly_name>):
21917	... this.
21918	(<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>):
21919	Rename to ...
21920	(fix<fixunssuffix>_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>):
21921	... this.
21922	(<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
21923	Rename to ...
21924	(fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
21925	... this.
21926	(<fixsuffix>fix_truncv2sfv2di2<mask_name>): Rename to ...
21927	(fix<fixunssuffix>_truncv2sfv2di2<mask_name>): ... this.
21928	(vec_pack_ufix_trunc_<mode>): Use gen_fixuns_truncv8dfv8si2 instead of
21929	gen_ufix_truncv8dfv8si2.
21930	* config/i386/i386-builtin.def (__builtin_ia32_cvttpd2uqq256_mask,
21931	__builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvttps2uqq256_mask,
21932	__builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvtuqq2ps256_mask,
21933	__builtin_ia32_cvtuqq2ps128_mask, __builtin_ia32_cvtuqq2pd256_mask,
21934	__builtin_ia32_cvtuqq2pd128_mask, __builtin_ia32_cvttpd2udq512_mask,
21935	__builtin_ia32_cvtuqq2ps512_mask, __builtin_ia32_cvtuqq2pd512_mask,
21936	__builtin_ia32_cvttps2uqq512_mask, __builtin_ia32_cvttpd2uqq512_mask):
21937	Use fixuns instead ufix or floatuns instead ufloat in CODE_FOR_ names.
21938
219392018-05-24  H.J. Lu  <hongjiu.lu@intel.com>
21940
21941	PR target/85900
21942	PR target/85345
21943	* varasm.c (assemble_alias): Lookup ifunc attribute on error.
21944
219452018-05-25  Jim Wilson  <jimw@sifive.com>
21946
21947	* config/riscv/riscv-protos.h (riscv_epilogue_uses): New.
21948	* config/riscv/riscv.c (struct machine_function): Add
21949	interrupt_handler_p and attribute_checked_p fields.
21950	(riscv_attribute_table): Add interrupt.
21951	(riscv_interrupt_type_p): New.
21952	(riscv_save_reg_p): Save extra regs for interrupt handler.
21953	(riscv_use_save_libcall): Return false  for interrupt handler.
21954	(riscv_first_stack_step): Add forward declaration.
21955	(riscv_compute_frame_info): New local interrupt_save_t1.  Set it
21956	for interrupt handler with large frame.  Use it for saved reg list.
21957	(riscv_expand_prologue): Move flag_stack_usage_info support to
21958	eliminate duplication.
21959	(riscv_expand_epilogue): Generate mret for interrupt handler.
21960	(riscv_epilogue_uses): New.
21961	(riscv_can_use_return_insn): Return false for interrupt handler.
21962	(riscv_function_ok_for_sibcall): Likewise.
21963	(riscv_set_current_function): Add interrupt handler support.
21964	* config/riscv/riscv.h (EPILOGUE_USES): Call riscv_epilogue_uses.
21965	* config/riscv/riscv.md (UNSPECV_MRET): New.
21966	(GP_REGNUM): New.
21967	(riscv_frflags, riscv_fsflags): Use tab after opcode.
21968	(riscv_mret): New.
21969	* doc/extend.texi (RISC-V Function Attributes) <interrupt>: New.
21970
219712018-05-25  Bill Schmidt  <wschmidt@linux.ibm.com>
21972
21973	PR tree-optimization/85712
21974	* gimple-ssa-strength-reduction.c (replace_one_candidate): Skip if
21975	this candidate has already been replaced in-situ by a copy.
21976
219772018-05-25  Jason Merrill  <jason@redhat.com>
21978
21979	PR c++/80485 - inline function non-zero address.
21980	* symtab.c (nonzero_address): Check DECL_COMDAT.
21981
219822018-05-25  Uros Bizjak  <ubizjak@gmail.com>
21983
21984	PR target/83628
21985	* config/alpha/alpha.md (ashlsi3): New insn pattern.
21986	(*ashlsi_se): Rename from *ashldi_se.  Define as sign
21987	extension of SImode operation.  Use const123_operand predicate.
21988	(*saddsi_1): Remove.
21989	(*saddl_se_1): Ditto.
21990	(*ssubsi_1): Ditto.
21991	(*ssubl_se_1): Ditto.
21992	* config/alpha/predicates.md (const123_operand): New predicate.
21993	* config/alpha/constraints.md (P): Use IN_RANGE.
21994
219952018-05-25  Richard Biener  <rguenther@suse.de>
21996
21997	* tree-ssa-alias.h (refs_may_alias_p): Add tbaa_p bool parameter,
21998	defaulted to true.
21999	(ref_maybe_used_by_stmt_p): Likewise.
22000	(stmt_may_clobber_ref_p): Likewise.
22001	(stmt_may_clobber_ref_p_1): Likewise.
22002	* tree-ssa-alias.c (refs_may_alias_p): Add tbaa_p bool parameter
22003	and pass it along.
22004	(ref_maybe_used_by_stmt_p): Likewise.
22005	(stmt_may_clobber_ref_p): Likewise.
22006	(stmt_may_clobber_ref_p_1): Likewise.
22007	* tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Use
22008	the alias oracle to disambiguate DRs with stmts DR analysis
22009	couldn't handle.
22010	(vect_analyze_data_refs): Do not give up on not analyzable
22011	DRs for BB vectorization.  Remove code truncating the dataref
22012	vector.
22013
220142018-05-25  Jakub Jelinek  <jakub@redhat.com>
22015
22016	PR target/85832
22017	* config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>_1):
22018	Add (=Yk,v,C) variant using vptestm insn.  Use TARGET_AVX512BW
22019	in test instead of TARGET_AVX512F for VI12_AVX512VL iterator.
22020
220212018-05-25  Richard Biener  <rguenther@suse.de>
22022
22023	* tree-vect-data-refs.c (vect_find_stmt_data_reference): New
22024	function, combining stmt data ref gathering and fatal analysis
22025	parts.
22026	(vect_analyze_data_refs): Remove now redudnant code and simplify.
22027	* tree-vect-loop.c (vect_get_datarefs_in_loop): Factor out from
22028	vect_analyze_loop_2 and use vect_find_stmt_data_reference.
22029	* tree-vect-slp.c (vect_slp_bb): Use vect_find_stmt_data_reference.
22030	* tree-vectorizer.h (vect_find_stmt_data_reference): Declare.
22031
220322018-05-25  Bin Cheng  <bin.cheng@arm.com>
22033
22034	PR tree-optimization/85720
22035	* tree-loop-distribution.c (break_alias_scc_partitions): Don't merge
22036	SCC if all partitions are builtins.
22037	(version_loop_by_alias_check): New parameter.  Generate cancelable
22038	runtime alias check if all partitions are builtins.
22039	(distribute_loop): Update call to above function.
22040
220412018-05-25  Bin Cheng  <bin.cheng@arm.com>
22042
22043	* tree-outof-ssa.c (tree-ssa.h, tree-dfa.h): Include header files.
22044	(create_default_def, for_all_parms): Moved from tree-ssa-coalesce.c.
22045	(parm_default_def_partition_arg): Ditto.
22046	(set_parm_default_def_partition): Ditto.
22047	(get_parm_default_def_partitions): Ditto and make it static.
22048	(get_undefined_value_partitions): Ditto and make it static.
22049	(remove_ssa_form): Refactor call to init_var_map here.
22050	* tree-ssa-coalesce.c (build_ssa_conflict_graph): Support live range
22051	computation for loop region.
22052	(coalesce_partitions, compute_optimized_partition_bases): Ditto.
22053	(register_default_def): Delete.
22054	(for_all_parms, create_default_def): Move to tree-outof-ssa.c.
22055	(parm_default_def_partition_arg): Ditto.
22056	(set_parm_default_def_partition): Ditto.
22057	(get_parm_default_def_partitions): Ditto and make it static.
22058	(get_undefined_value_partitions): Ditto and make it static.
22059	(coalesce_with_default, coalesce_with_default): Update comment.
22060	(create_coalesce_list_for_region): New func factored out from
22061	create_outofssa_var_map.
22062	(populate_coalesce_list_for_outofssa): New func factored out from
22063	create_outofssa_var_map and coalesce_ssa_name.
22064	(create_outofssa_var_map): Delete.
22065	(coalesce_ssa_name): Refactor to support live range computation.
22066	* tree-ssa-coalesce.h (coalesce_ssa_name): Change decl.
22067	(get_parm_default_def_partitions): Delete.
22068	(get_undefined_value_partitions): Ditto.
22069	* tree-ssa-live.c (init_var_map, delete_var_map): Support live range
22070	computation for loop region.
22071	(new_tree_live_info, loe_visit_block): Ditto.
22072	(live_worklist, set_var_live_on_entry): Ditto.
22073	(calculate_live_on_exit, verify_live_on_entry): Ditto.
22074	* tree-ssa-live.h (struct _var_map): New fields.
22075	(init_var_map): Change decl.
22076	(region_contains_p): New.
22077
220782018-05-25  Bin Cheng  <bin.cheng@arm.com>
22079
22080	* tree-ssa-live.h (live_merge_and_clear): Delete.
22081
220822018-05-25  Richard Biener  <rguenther@suse.de>
22083
22084	PR c++/85912
22085	* tree-dump.c (dequeue_and_dump): Remove access to removed
22086	operand 2 of a SWITCH_EXPR.
22087
220882018-05-25  Richard Sandiford  <richard.sandiford@linaro.org>
22089
22090	* doc/sourcebuild.texi (vect_double_cond_arith): Include
22091	multiplication and division.
22092	* doc/md.texi (cond_mul@var{m}, cond_div@var{m}, cond_mod@var{m})
22093	(cond_udiv@var{m}, cond_umod@var{m}): Document.
22094	* optabs.def (cond_smul_optab, cond_sdiv_optab, cond_smod_optab)
22095	(cond_udiv_optab, cond_umod_optab): New optabs.
22096	* internal-fn.def (IFN_COND_MUL, IFN_COND_DIV, IFN_COND_MOD)
22097	(IFN_COND_RDIV): New internal functions.
22098	* internal-fn.c (get_conditional_internal_fn): Handle TRUNC_DIV_EXPR,
22099	TRUNC_MOD_EXPR and RDIV_EXPR.
22100	* match.pd (UNCOND_BINARY, COND_BINARY): Handle them.
22101	* config/aarch64/iterators.md (UNSPEC_COND_MUL, UNSPEC_COND_DIV):
22102	New unspecs.
22103	(SVE_INT_BINARY): Include mult.
22104	(SVE_COND_FP_BINARY): Include UNSPEC_MUL and UNSPEC_DIV.
22105	(optab, sve_int_op): Handle mult.
22106	(optab, sve_fp_op, commutative): Handle UNSPEC_COND_MUL and
22107	UNSPEC_COND_DIV.
22108	* config/aarch64/aarch64-sve.md (cond_<optab><mode>): New pattern
22109	for SVE_INT_BINARY_SD.
22110
221112018-05-25  Richard Sandiford  <richard.sandiford@linaro.org>
22112
22113	* config/aarch64/iterators.md (SVE_INT_BINARY_SD): New code iterator.
22114	(optab, sve_int_op): Handle div and udiv.
22115	* config/aarch64/aarch64-sve.md (<optab><mode>3): New expander
22116	for SVE_INT_BINARY_SD.
22117	(*<optab><mode>3): New insn for the same.
22118
221192018-05-25  Richard Sandiford  <richard.sandiford@linaro.org>
22120
22121	* tree-vect-patterns.c: Include predict.h.
22122	(vect_recog_divmod_pattern): Restrict check for division support
22123	to when optimizing for size.
22124
221252018-05-25  Richard Sandiford  <richard.sandiford@linaro.org>
22126
22127	* doc/sourcebuild.texi (vect_double_cond_arith: Document.
22128	* gimple-match.h (gimple_match_op::MAX_NUM_OPS): Bump to 4.
22129	(gimple_match_op::gimple_match_op): Add an overload for 4 operands.
22130	(gimple_match_op::set_op): Likewise.
22131	(gimple_resimplify4): Declare.
22132	* genmatch.c (get_operand_type): Handle CFN_COND_* functions.
22133	(expr::gen_transform): Likewise.
22134	(decision_tree::gen): Generate a simplification routine for 4 operands.
22135	* gimple-match-head.c (gimple_simplify): Add an overload for
22136	4 operands.  In the top-level function, handle up to 4 call
22137	arguments and call gimple_resimplify4.
22138	(gimple_resimplify4): New function.
22139	(build_call_internal): Pass a fourth operand.
22140	(maybe_push_to_seq): Likewise.
22141	* match.pd (UNCOND_BINARY, COND_BINARY): New operator lists.
22142	Fold VEC_COND_EXPRs of an operation and a default value into
22143	an IFN_COND_* function if possible.
22144	* config/aarch64/iterators.md (UNSPEC_COND_MAX, UNSPEC_COND_MIN):
22145	New unspecs.
22146	(SVE_COND_FP_BINARY): Include them.
22147	(optab, sve_fp_op): Handle them.
22148	(SVE_INT_BINARY_REV): New code iterator.
22149	(SVE_COND_FP_BINARY_REV): New int iterator.
22150	(commutative): New int attribute.
22151	* config/aarch64/aarch64-protos.h (aarch64_sve_prepare_conditional_op):
22152	Declare.
22153	* config/aarch64/aarch64.c (aarch64_sve_prepare_conditional_op): New
22154	function.
22155	* config/aarch64/aarch64-sve.md (cond_<optab><mode>): Use it.
22156	(*cond_<optab><mode>): New patterns for reversed operands.
22157
221582018-05-25  Richard Biener  <rguenther@suse.de>
22159
22160	* tree-vectorizer.h (STMT_VINFO_GROUP_*, GROUP_*): Remove.
22161	(DR_GROUP_*): New, assert we have non-NULL ->data_ref_info.
22162	(REDUC_GROUP_*): New, assert we have NULL ->data_ref_info.
22163	(STMT_VINFO_GROUPED_ACCESS): Adjust.
22164	* tree-vect-data-refs.c (everywhere): Adjust users.
22165	* tree-vect-loop.c (everywhere): Likewise.
22166	* tree-vect-slp.c (everywhere): Likewise.
22167	* tree-vect-stmts.c (everywhere): Likewise.
22168	* tree-vect-patterns.c (vect_reassociating_reduction_p): Likewise.
22169
221702018-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22171
22172	* configure.ac (gcc_cv_as_section_has_e): Move to common section.
22173	Rename to...
22174	(gcc_cv_as_section_exclude): ... this.
22175	Try Solaris as #exclude syntax.
22176	* configure: Regenerate.
22177	* config.in: Regenerate.
22178	* config/i386/i386.c (i386_solaris_elf_named_section): Handle
22179	SECTION_EXCLUDE.
22180	* config/sparc/sparc.c (sparc_solaris_elf_asm_named_section)
22181	[HAVE_GAS_SECTION_EXCLUDE]: Handle SECTION_EXCLUDE.
22182
22183	* varasm.c (default_elf_asm_named_section): Don't check if
22184	HAVE_GAS_SECTION_EXCLUDE is defined.
22185
221862018-05-25  Richard Sandiford  <richard.sandiford@linaro.org>
22187
22188	* doc/md.texi: Update the documentation of the cond_* optabs
22189	to mention the new final operand.  Fix GET_MODE_NUNITS call.
22190	Describe the scalar case too.
22191	* internal-fn.def (IFN_EXTRACT_LAST): Change type to fold_left.
22192	* internal-fn.c (expand_cond_unary_optab_fn): Expect 3 operands
22193	instead of 2.
22194	(expand_cond_binary_optab_fn): Expect 4 operands instead of 3.
22195	(get_conditional_internal_fn): Update comment.
22196	* tree-vect-loop.c (vectorizable_reduction): Pass the original
22197	accumulator value as a final argument to conditional functions.
22198	* config/aarch64/aarch64-sve.md (cond_<optab><mode>): Turn into
22199	a define_expand and add an "else" operand.  Assert for now that
22200	the else operand is equal to operand 2.  Use SVE_INT_BINARY and
22201	SVE_COND_FP_BINARY instead of SVE_COND_INT_OP and SVE_COND_FP_OP.
22202	(*cond_<optab><mode>): New patterns.
22203	* config/aarch64/iterators.md (UNSPEC_COND_SMAX, UNSPEC_COND_UMAX)
22204	(UNSPEC_COND_SMIN, UNSPEC_COND_UMIN, UNSPEC_COND_AND, UNSPEC_COND_ORR)
22205	(UNSPEC_COND_EOR): Delete.
22206	(optab): Remove associated mappings.
22207	(SVE_INT_BINARY): New code iterator.
22208	(sve_int_op): Remove int attribute and add "minus" to the code
22209	attribute.
22210	(SVE_COND_INT_OP): Delete.
22211	(SVE_COND_FP_OP): Rename to...
22212	(SVE_COND_FP_BINARY): ...this.
22213
222142018-05-25  Richard Sandiford  <richard.sandiford@linaro.org>
22215
22216	* optabs.c (can_reuse_operands_p): New function.
22217	(maybe_legitimize_operands): Try to reuse the results for
22218	earlier operands.
22219
222202018-05-24  Uros Bizjak  <ubizjak@gmail.com>
22221
22222	* config/i386/sse.md (cvtusi2<ssescalarmodesuffix>64<round_name>):
22223	Add {q} suffix to insn mnemonic.
22224
222252018-05-23  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
22226
22227	* config/msp430/msp430.c (TARGET_WARN_FUNC_RETURN): Define.
22228	(msp430_warn_func_return): New.
22229
222302018-05-24  Roger Sayle  <roger@nextmovesoftware.com>
22231
22232	* fold-const.c (tree_nonzero_bits): New function.
22233	* fold-const.h (tree_nonzero_bits): Likewise.
22234	* match.pd (POPCOUNT): New patterns to fold BUILTIN_POPCOUNT and
22235	friends.  POPCOUNT(x&1) => x&1, POPCOUNT(x)==0 => x==0, etc.
22236
222372018-05-24  H.J. Lu  <hongjiu.lu@intel.com>
22238
22239	PR target/85900
22240	PR target/85345
22241	* varasm.c (assemble_alias): Check ifunc_resolver only on
22242	FUNCTION_DECL.
22243
222442018-05-24  Uros Bizjak  <ubizjak@gmail.com>
22245
22246	PR target/85903
22247	* config/i386/sse.md (movdi_to_sse): Do not generate pseudo
22248	when memory input operand is handled.
22249
222502018-05-24  Luis Machado  <luis.machado@linaro.org>
22251
22252	* config/aarch64/aarch64.c (qdf24xx_addrcost_table): New static
22253	global.
22254	(qdf24xx_tunings) <addr_costs>: Set to qdf24xx_addrcost_table.
22255
222562018-05-24  Richard Sandiford  <richard.sandiford@linaro.org>
22257
22258	* match.pd: Delay FMA folds until after vectorization.
22259
222602018-05-24  Andre Vieira  <andre.simoesdiasvieira@arm.com>
22261
22262	PR target/83009
22263	* config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make
22264	address check not strict.
22265
222662018-05-24  Richard Sandiford  <richard.sandiford@linaro.org>
22267
22268	* gimple-match.h (gimple_match_op): New class.
22269	(mprts_hook): Replace parameters with a gimple_match_op *.
22270	(maybe_build_generic_op): Likewise.
22271	(gimple_simplified_result_is_gimple_val): Replace parameters with
22272	a const gimple_match_op *.
22273	(gimple_simplify): Replace code_helper * and tree * parameters with
22274	a gimple_match_op * parameter.
22275	(gimple_resimplify1): Replace code_helper *, tree and tree *
22276	parameters with a gimple_match_op * parameter.
22277	(gimple_resimplify2): Likewise.
22278	(gimple_resimplify3): Likewise.
22279	(maybe_push_res_to_seq): Replace code_helper, tree and tree *
22280	parameters with a gimple_match_op * parameter.
22281	* gimple-match-head.c (gimple_simplify): Change prototypes of
22282	auto-generated functions to take a gimple_match_op * instead of
22283	separate code_helper * and tree * parameters.  Make the same
22284	change in the top-level overload and update calls to the
22285	gimple_resimplify routines.  Update calls to the auto-generated
22286	functions and to maybe_push_res_to_seq in the publicly-facing
22287	operation-specific gimple_simplify overloads.
22288	(gimple_match_op::MAX_NUM_OPS): Define.
22289	(gimple_resimplify1): Replace rcode and ops with a single res_op
22290	parameter.  Update call to gimple_simplify.
22291	(gimple_resimplify2): Likewise.
22292	(gimple_resimplify3): Likewise.
22293	(mprts_hook): Replace parameters with a gimple_match_op *.
22294	(maybe_build_generic_op): Likewise.
22295	(build_call_internal): Replace type, nargs and ops with
22296	a gimple_match_op *.
22297	(maybe_push_res_to_seq): Replace res_code, type and ops parameters
22298	with a single gimple_match_op *.  Update calls to mprts_hook,
22299	build_call_internal and gimple_simplified_result_is_gimple_val.
22300	Factor out code that is common to the tree_code and combined_fn cases.
22301	* genmatch.c (expr::gen_transform): Replace tem_code and
22302	tem_ops with a gimple_match_op called tem_op.  Update calls
22303	to the gimple_resimplify functions and maybe_push_res_to_seq.
22304	(dt_simplify::gen_1): Manipulate res_op instead of res_code and
22305	res_ops.  Update call to the gimple_resimplify functions.
22306	(dt_simplify::gen): Pass res_op instead of res_code and res_ops.
22307	(decision_tree::gen): Make the functions take a gimple_match_op *
22308	called res_op instead of separate res_code and res_ops parameters.
22309	Update call accordingly.
22310	* gimple-fold.c (replace_stmt_with_simplification): Replace rcode
22311	and ops with a single res_op parameter.  Update calls to
22312	maybe_build_generic_op and maybe_push_res_to_seq.
22313	(fold_stmt_1): Update calls to gimple_simplify and
22314	replace_stmt_with_simplification.
22315	(gimple_fold_stmt_to_constant_1): Update calls to gimple_simplify
22316	and gimple_simplified_result_is_gimple_val.
22317	* tree-cfgcleanup.c (cleanup_control_expr_graph): Update call to
22318	gimple_simplify.
22319	* tree-ssa-sccvn.c (vn_lookup_simplify_result): Replace parameters
22320	with a gimple_match_op *.
22321	(vn_nary_build_or_lookup): Likewise.  Update call to
22322	vn_nary_build_or_lookup_1.
22323	(vn_nary_build_or_lookup_1): Replace rcode, type and ops with a
22324	gimple_match_op *.  Update calls to the gimple_resimplify routines
22325	and to gimple_simplified_result_is_gimple_val.
22326	(vn_nary_simplify): Update call to vn_nary_build_or_lookup_1.
22327	Use gimple_match_op::MAX_NUM_OPS instead of a hard-coded 3.
22328	(vn_reference_lookup_3): Update call to vn_nary_build_or_lookup.
22329	(visit_nary_op): Likewise.
22330	(visit_reference_op_load): Likewise.
22331
223322018-05-23  Luis Machado  <luis.machado@linaro.org>
22333
22334	* tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Use correct type
22335	modifier for printing the step amount.
22336
223372018-05-23  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
22338
22339	PR target/78849
22340	* tree.c (build_common_tree_nodes): Dont set TYPE_SIZE for __intN
22341	types.
22342
223432018-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
22344
22345	* doc/sourcebuild.texi (Endianness): New subsubsection.
22346
223472018-05-23  Luis Machado  <luis.machado@linaro.org>
22348
22349	* config/aarch64/aarch64-protos.h (cpu_prefetch_tune)
22350	<prefetch_dynamic_strides>: New const bool field.
22351	* config/aarch64/aarch64.c (generic_prefetch_tune): Update to include
22352	prefetch_dynamic_strides.
22353	(exynosm1_prefetch_tune): Likewise.
22354	(thunderxt88_prefetch_tune): Likewise.
22355	(thunderx_prefetch_tune): Likewise.
22356	(thunderx2t99_prefetch_tune): Likewise.
22357	(qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides to
22358	false.
22359	(aarch64_override_options_internal): Update to set
22360	PARAM_PREFETCH_DYNAMIC_STRIDES.
22361	* doc/invoke.texi (prefetch-dynamic-strides): Document new option.
22362	* params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New.
22363	* params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define.
22364	* tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for
22365	prefetch-dynamic-strides setting.
22366
223672018-05-23  Luis Machado  <luis.machado@linaro.org>
22368
22369	* config/aarch64/aarch64-protos.h (cpu_prefetch_tune)
22370	<minimum_stride>: New const int field.
22371	* config/aarch64/aarch64.c (generic_prefetch_tune): Update to include
22372	minimum_stride field defaulting to -1.
22373	(exynosm1_prefetch_tune): Likewise.
22374	(thunderxt88_prefetch_tune): Likewise.
22375	(thunderx_prefetch_tune): Likewise.
22376	(thunderx2t99_prefetch_tune): Likewise.
22377	(qdf24xx_prefetch_tune) <minimum_stride>: Set to 2048.
22378	<default_opt_level>: Set to 3.
22379	(aarch64_override_options_internal): Update to set
22380	PARAM_PREFETCH_MINIMUM_STRIDE.
22381	* doc/invoke.texi (prefetch-minimum-stride): Document new option.
22382	* params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New.
22383	* params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define.
22384	* tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if
22385	stride is constant and is below the minimum stride threshold.
22386
223872018-05-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22388
22389	* config/arm/arm-cpus.in (mode26): Delete.
22390	(armv4): Delete mode26 reference.
22391	* config/arm/arm.c (arm_configure_build_target): Delete use of
22392	isa_bit_mode26.
22393
223942018-05-23  Uros Bizjak  <ubizjak@gmail.com>
22395
22396	* config/i386/i386.md (*floatuns<SWI48:mode><MODEF:mode>2_avx512):
22397	New insn pattern.
22398	(floatunssi<mode>2): Also enable for AVX512F and TARGET_SSE_MATH.
22399	Rewrite expander pattern.  Emit gen_floatunssi<mode>2_i387_with_xmm
22400	for non-SSE modes.
22401	(floatunsdisf2): Rewrite expander pattern.  Hanlde TARGET_AVX512F.
22402	(floatunsdidf2): Ditto.
22403
224042018-05-23  Uros Bizjak  <ubizjak@gmail.com>
22405
22406	* config/i386/i386.md (fixuns_trunc<mode>di2): New insn pattern.
22407	(fixuns_trunc<mode>si2_avx512f): Ditto.
22408	(*fixuns_trunc<mode>si2_avx512f_zext): Ditto.
22409	(fixuns_trunc<mode>si2): Also enable for AVX512F and TARGET_SSE_MATH.
22410	Emit fixuns_trunc<mode>si2_avx512f for AVX512F targets.
22411
224122018-05-23  Alexander Monakov  <amonakov@ispras.ru>
22413
22414	PR rtl-optimization/79985
22415	* df-scan.c (df_insn_refs_collect): Remove special case for
22416	global registers and asm statements.
22417
224182018-05-23  Alexander Monakov  <amonakov@ispras.ru>
22419
22420	* extend.texi (Global Register Variables): Rewrite the bullet list.
22421	Note that the register is available for allocation. Note that access
22422	via inline asm must use constraints. Add note about async-signal
22423	handlers. Remove paragraph about automagic register selection.
22424
224252018-05-23  Richard Biener  <rguenther@suse.de>
22426
22427	* tree-ssa-sccvn.c (vn_reference_lookup_3): Remove restriction
22428	of fixed offset from memset VN.
22429
224302018-05-23  Bill Schmidt  <wschmidt@linux.ibm.com>
22431
22432	* gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add
22433	first_interp field.
22434	(alloc_cand_and_find_basis): Initialize first_interp field.
22435	(slsr_process_mul): Modify first_interp field.
22436	(slsr_process_add): Likewise.
22437	(slsr_process_cast): Modify first_interp field for each new
22438	interpretation.
22439	(slsr_process_copy): Likewise.
22440	(dump_candidate): Dump first_interp field.
22441	(replace_mult_candidate): Process all interpretations, not just
22442	subsequent ones.
22443	(replace_rhs_if_not_dup): Likewise.
22444	(replace_one_candidate): Likewise.
22445
224462018-05-23  Wilco Dijkstra  <wdijkstr@arm.com>
22447
22448	* config/aarch64/aarch64.c (aarch64_use_frame_pointer):
22449	Add new boolean.
22450	(aarch64_needs_frame_chain): New function.
22451	(aarch64_parse_override_string): Set aarch64_use_frame_pointer.
22452
224532018-05-23  Sudakshina Das  <sudi.das@arm.com>
22454
22455	PR target/84882
22456	* common/config/aarch64/aarch64-common.c (aarch64_handle_option):
22457	Check val before adding MASK_STRICT_ALIGN to opts->x_target_flags.
22458	* config/aarch64/aarch64.opt (mstrict-align): Remove RejectNegative.
22459	* config/aarch64/aarch64.c (aarch64_attributes): Mark allow_neg
22460	as true for strict-align.
22461	(aarch64_can_inline_p): Perform checks even when callee has no
22462	attributes to check for strict alignment.
22463	* doc/extend.texi (AArch64 Function Attributes): Document
22464	no-strict-align.
22465	* doc/invoke.texi: (AArch64 Options): Likewise.
22466
224672018-05-23  Richard Sandiford  <richard.sandiford@linaro.org>
22468
22469	PR tree-optimization/85853
22470	* tree-vect-slp.c (vect_slp_analyze_node_operations): Split out
22471	the handling of the root of the node to...
22472	(vect_slp_analyze_node_operations_1): ...this new function,
22473	and run the whole thing with the child nodes' def types
22474	set according to their SLP node's def type.
22475
224762018-05-23  Richard Biener  <rguenther@suse.de>
22477
22478	PR middle-end/85874
22479	* tree-data-ref.c (create_runtime_alias_checks): Defer
22480	and ignore overflow warnings.
22481
224822018-05-23  Yury Gribov  <tetra2005@gmail.com>
22483
22484	PR tree-optimization/85822
22485	* tree-vrp.c (is_masked_range_test): Fix handling of negative
22486	constants.
22487
224882018-05-23  Richard Biener  <rguenther@suse.de>
22489
22490	* tree-ssa-sccvn.c (vn_reference_lookup_3): Handle arbitrary
22491	memset constants via native_interpret_expr.
22492
224932018-05-22  H.J. Lu  <hongjiu.lu@intel.com>
22494
22495	PR target/85345
22496	* cgraph.h (cgraph_node::create): Set ifunc_resolver for ifunc
22497	attribute.
22498	(cgraph_node::create_alias): Likewise.
22499	(cgraph_node::get_availability): Check ifunc_resolver instead
22500	of looking up ifunc attribute.
22501	* cgraphunit.c (maybe_diag_incompatible_alias): Likewise.
22502	* varasm.c (do_assemble_alias): Likewise.
22503	(assemble_alias): Likewise.
22504	(default_binds_local_p_3): Likewise.
22505	* cgraph.h (cgraph_node): Add ifunc_resolver.
22506	(cgraph_node::only_called_directly_or_aliased_p): Return false
22507	for IFUNC resolver.
22508	* lto-cgraph.c (input_node): Set ifunc_resolver for ifunc
22509	attribute.
22510	* symtab.c (symtab_node::verify_base): Verify that ifunc_resolver
22511	is equivalent to lookup_attribute ("ifunc", DECL_ATTRIBUTES (decl)).
22512	(symtab_node::binds_to_current_def_p): Check ifunc_resolver
22513	instead of looking up ifunc attribute.
22514
225152018-05-22  Luis Machado  <luis.machado@linaro.org>
22516
22517	* config/aarch64/aarch64.md (*ashift<mode>_extv_bfiz): New pattern.
22518
225192018-05-22  Martin Sebor  <msebor@redhat.com>
22520
22521	PR middle-end/85359
22522	* builtins.c (expand_builtin_strcpy): Call maybe_warn_nonstring_arg
22523	only when expasion succeeds.
22524	(expand_builtin_strcmp): Same.
22525	(expand_builtin_strncmp): Same.
22526
225272018-05-22  Martin Sebor  <msebor@redhat.com>
22528
22529	* calls.c (maybe_warn_nonstring_arg): Fix a typo in a comment.
22530
225312018-05-22  Jackson Woodruff  <jackson.woodruff@arm.com>
22532	    Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22533
22534	* config/aarch64/aarch64-ldpstp.md: Replace uses of
22535	aarch64_mem_pair_operand with memory_operand and delete operand swapping
22536	code.
22537	* config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp):
22538	Add check for legitimate_address.
22539	(aarch64_gen_adjusted_ldpstp): Swap operands where appropriate.
22540	(aarch64_swap_ldrstr_operands): New.
22541	* config/aarch64/aarch64-protos.h (aarch64_swap_ldrstr_operands):
22542	Define prototype.
22543
225442018-05-22  Jackson Woodruff  <jackson.woodruff@arm.com>
22545	    Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22546
22547	* config/aarch64/aarch64.md: New patterns to generate stp
22548	and ldp.
22549	(store_pair_sw, store_pair_dw): New patterns to generate stp for
22550	single words and double words.
22551	(load_pair_sw, load_pair_dw): Likewise.
22552	(store_pair_sf, store_pair_df, store_pair_si, store_pair_di):
22553	Delete.
22554	(load_pair_sf, load_pair_df, load_pair_si, load_pair_di):
22555	Delete.
22556	* config/aarch64/aarch64-ldpstp.md: Modify peephole
22557	for different mode ldpstp and add peephole for merged zero stores.
22558	Likewise for loads.
22559	* config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp):
22560	Add size check.
22561	(aarch64_gen_store_pair): Rename calls to match new patterns.
22562	(aarch64_gen_load_pair): Rename calls to match new patterns.
22563	* config/aarch64/aarch64-simd.md (load_pair<mode>): Rename to...
22564	(load_pair<DREG:mode><DREG2:mode>): ... This.
22565	(store_pair<mode>): Rename to...
22566	(vec_store_pair<DREG:mode><DREG2:mode>): ... This.
22567	* config/aarch64/iterators.md (DREG, DREG2, DX2, SX, SX2, DSX):
22568	New mode iterators.
22569	(V_INT_EQUIV): Handle SImode.
22570	* config/aarch64/predicates.md (aarch64_reg_zero_or_fp_zero):
22571	New predicate.
22572
225732018-05-22  Martin Sebor  <msebor@redhat.com>
22574
22575	PR c/85623
22576	* calls.c (maybe_warn_nonstring_arg): Use string length to set
22577	or ajust the presumed bound on an operation to avoid unnecessary
22578	warnings.
22579
225802018-05-22  Martin Sebor  <msebor@redhat.com>
22581
22582	PR tree-optimization/85826
22583	* gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Avoid
22584	assuming that a DECL necesarily has a constant size.
22585
225862018-05-22  Richard Sandiford  <richard.sandiford@linaro.org>
22587
22588	PR middle-end/85862
22589	* internal-fn.c (expand_direct_optab_fn): Cope with a null lhs.
22590
225912018-05-22  Richard Biener  <rguenther@suse.de>
22592
22593	PR tree-optimization/85834
22594	* tree-ssa-sccvn.c (vn_reference_lookup_3): Properly handle
22595	non-constant and non-zero memset arguments.
22596
225972018-05-22  Martin Liska  <mliska@suse.cz>
22598
22599	PR ipa/85607
22600	* ipa-icf.c (sem_item::add_type): Do not ICE for incomplete types.
22601
226022018-05-22  Richard Biener  <rguenther@suse.de>
22603
22604	PR tree-optimization/85863
22605	* tree-vect-stmts.c (vect_is_simple_cond): Only widen invariant
22606	comparisons when vectype is specified.
22607	(vectorizable_condition): Do not specify vectype for
22608	vect_is_simple_cond when SLP vectorizing.
22609
226102018-05-21  Michael Meissner  <meissner@linux.ibm.com>
22611
22612	PR target/85657
22613	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not
22614	define __ibm128 as long double.
22615	* config/rs6000/rs6000.c (rs6000_init_builtins): Create __ibm128
22616	as a distinct type when IEEE 128-bit support is enabled.
22617	(init_float128_ieee): Fix up conversions between IFmode and IEEE
22618	128-bit types to use the correct functions.
22619	(rs6000_expand_float128_convert): Use explicit FLOAT_EXTEND to
22620	convert between 128-bit floating point types that have different
22621	modes but the same representation, instead of using gen_lowpart to
22622	makean alias.
22623	* config/rs6000/rs6000.md (IFKF): New iterator for IFmode and
22624	KFmode.
22625	(IFKF_reg): New attributes to give the register constraints for
22626	IFmode and KFmode.
22627	(extend<mode>tf2_internal): New insns to mark an explicit
22628	conversion between 128-bit floating point types that have a
22629	different mode but share the same representation.
22630
226312018-05-21  Richard Sandiford  <richard.sandiford@linaro.org>
22632
22633	PR tree-optimization/85814
22634	* tree-ssa-strlen.c (get_stridx_plus_constant): Cope with
22635	a null return from get_strinfo when unsharing the next
22636	strinfo in the chain.
22637
226382018-05-21  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
22639
22640	PR gcc/84923
22641	* varasm.c (weak_finish): Clean up weak_decls.
22642
226432018-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22644
22645	* config/aarch64/aarch64.md ("unspec"): Define UNSPEC_SABAL,
22646	UNSPEC_SABDL2, UNSPEC_SADALP, UNSPEC_UABAL, UNSPEC_UABDL2,
22647	UNSPEC_UADALP values.
22648	* config/aarch64/iterators.md (ABAL): New int iterator.
22649	(ABDL2): Likewise.
22650	(ADALP): Likewise.
22651	(sur): Add mappings for the above.
22652	* config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
22653	New define_insn.
22654	(aarch64_<sur>abal<mode>_4): Likewise.
22655	(aarch64_<sur>adalp<mode>_3): Likewise.
22656	(<sur>sadv16qi): New define_expand.
22657
226582018-05-21  Alexander Nesterovskiy  <alexander.nesterovskiy@intel.com>
22659
22660	* config/i386/i386.md (*movsf_internal): AVX falsedep fix.
22661	(*movdf_internal): Ditto.
22662	(*rcpsf2_sse): Ditto.
22663	(*rsqrtsf2_sse): Ditto.
22664	(*sqrt<mode>2_sse): Ditto.
22665
226662018-05-21  Tamar Christina  <tamar.christina@arm.com>
22667
22668	* config/aarch64/aarch64-simd.md (aarch64_eor3qv8hi): Change to
22669	eor3q<mode>4.
22670	(aarch64_bcaxqv8hi): Change to bcaxq<mode>4.
22671	* config/aarch64/aarch64-simd-builtins.def (veor3q_u8, veor3q_u32,
22672	veor3q_u64, veor3q_s8, veor3q_s16, veor3q_s32, veor3q_s64, vbcaxq_u8,
22673	vbcaxq_u32, vbcaxq_u64, vbcaxq_s8, vbcaxq_s16, vbcaxq_s32,
22674	vbcaxq_s64): New.
22675	* config/aarch64/arm_neon.h: Likewise.
22676	* config/aarch64/iterators.md (VQ_I): New.
22677
226782018-05-21  Alexey Brodkin  <abrodkin@synopsys.com>
22679
22680	* config.gcc: Add arc/t-multilib-linux to tmake_file for
22681	arc*-*-linux*.
22682	* config/arc/t-multilib-linux: Specify MULTILIB_OPTIONS and
22683	MULTILIB_DIRNAMES
22684
226852018-05-20  Chung-Ju Wu  <jasonwucj@gmail.com>
22686
22687	* config/nds32/constraints.md (S): New constraint.
22688	* config/nds32/nds32.md (call_internal): Use constraint S.
22689	(call_value_internal): Likewise.
22690	(sibcall_internal): Likewise.
22691	(sibcall_value_internal): Likewise.
22692
226932018-05-20  Kito Cheng  <kito.cheng@gmail.com>
22694	    Chung-Ju Wu  <jasonwucj@gmail.com>
22695
22696	* config/nds32/nds32.c (nds32_register_move_cost): Take garywolf cpu
22697	into consideration.
22698
226992018-05-20  Kito Cheng  <kito.cheng@gmail.com>
22700	    Chung-Ju Wu  <jasonwucj@gmail.com>
22701
22702	* config/nds32/nds32-cost.c (rtx_cost_model_t): New structure.
22703	(insn_size_16bit, insn_size_32bit): New variables for cost evaluation.
22704	(nds32_rtx_costs_impl): Simplify.
22705	(nds32_address_cost_impl): Simplify.
22706	(nds32_init_rtx_costs): New function.
22707	(nds32_rtx_costs_speed_prefer): Likewise.
22708	(nds32_rtx_costs_size_prefer): Likewise.
22709	(nds32_address_cost_speed_prefer): Likewise.
22710	(nds32_address_cost_speed_fwprop): Likewise.
22711	(nds32_address_cost_size_prefer): Likewise.
22712	* config/nds32/nds32-protos.h (nds32_init_rtx_costs): Declare.
22713	* config/nds32/nds32.c (nds32_option_override): Use
22714	nds32_init_rtx_costs function.
22715
227162018-05-20  Chung-Ju Wu  <jasonwucj@gmail.com>
22717
22718	* config/nds32/nds32.c (nds32_asm_file_start): Output pipeline model.
22719	* config/nds32/nds32.h (TARGET_PIPELINE_N7): Define.
22720	(TARGET_PIPELINE_N8): Likewise.
22721	(TARGET_PIPELINE_N10): Likewise.
22722	(TARGET_PIPELINE_N13): Likewise.
22723	(TARGET_PIPELINE_GRAYWOLF): Likewise.
22724
227252018-05-19  Monk Chiang  <sh.chiang04@gmail.com>
22726
22727	* config/nds32/nds32-fpu.md: Update copyright year.
22728
227292018-05-19  Chung-Ju Wu  <jasonwucj@gmail.com>
22730
22731	* config/nds32/nds32.h (ASM_SPEC): Adjust spec rule.
22732
227332018-05-19  Chung-Ju Wu  <jasonwucj@gmail.com>
22734
22735	* config/nds32/nds32.c
22736	(nds32_md_asm_adjust): Consider flag_inline_asm_r15 variable.
22737	* config/nds32/nds32.opt (minline-asm-r15): New option.
22738
227392018-05-19  Chung-Ju Wu  <jasonwucj@gmail.com>
22740
22741	* common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS): Add
22742	MASK_HW_ABS.
22743	* config/nds32/nds32.md (abssi2): New pattern.
22744
227452018-05-19  Uros Bizjak  <ubizjak@gmail.com>
22746
22747	* config/i386/i386.md (rex64namesuffix): New mode attribute.
22748	* config/i386/sse.md (sse_cvtsi2ss<rex64namesuffix><round_name>):
22749	Merge insn pattern from sse_cvtsi2ss<round_name> and
22750	sse_cvtsi2ssq<round_name> using SWI48 mode iterator.
22751	(sse_cvtss2si<rex64namesuffix><round_name>): Merge insn pattern
22752	from sse_cvtss2si<round_name> and sse_cvtss2siq<round_name>
22753	using SWI48 mode iterator.
22754	(sse_cvtss2si<rex64namesuffix>_2): Merge insn pattern from
22755	sse_cvtss2si_2 and sse_cvtss2siq_2 using SWI48 mode iterator.
22756	(sse_cvttss2si<rex64namesuffix><round_saeonly_name>): Merge insn
22757	pattern from sse_cvttss2si<round_saeonly_name>
22758	and sse_cvttss2siq<round_saeonly_name> using SWI48 mode iterator.
22759	(avx512f_vcvtss2usi<rex64namesuffix><round_name>): Merge insn pattern
22760	from avx512f_vcvtss2usi<round_name> and avx512f_vcvtss2usiq<round_name>
22761	using SWI48 mode iterator.
22762	(avx512f_vcvttss2usi<rex64namesuffix><round_saeonly_name>): Merge
22763	insn pattern from avx512f_vcvttss2usi<round_saeonly_name> and
22764	avx512f_vcvttss2usiq<round_saeonly_name> using SWI48 mode iterator.
22765	(avx512f_vcvtsd2usi<rex64namesuffix><round_name>): Merge insn pattern
22766	from avx512f_vcvtsd2usi<round_name> and avx512f_vcvtsd2usiq<round_name>
22767	using SWI48 mode iterator.
22768	(avx512f_vcvttsd2usi<rex64namesuffix><round_saeonly_name>): Merge
22769	insn pattern from avx512f_vcvttsd2usi<round_saeonly_name> and
22770	avx512f_vcvttsd2usiq<round_saeonly_name> using SWI48 mode iterator.
22771	(sse2_cvtsd2si<rex64namesuffix><round_name>): Merge insn pattern from
22772	sse2_cvtsd2si<round_name> and sse2_cvtsd2siq<round_name> using
22773	SWI48 mode iterator.
22774	(sse2_cvtsd2si<rex64namesuffix>_2): Merge insn pattern from
22775	sse2_cvtsd2si_2 and sse2_cvtsd2siq_2 using SWI48 mode iterator.
22776	(sse_cvttsd2si<rex64namesuffix><round_saeonly_name>): Merge insn
22777	pattern from sse_cvttsd2si<round_saeonly_name>
22778	and sse_cvttsd2siq<round_saeonly_name> using SWI48 mode iterator.
22779
227802018-05-19  Chung-Ju Wu  <jasonwucj@gmail.com>
22781
22782	* config/nds32/nds32-md-auxiliary.c
22783	(nds32_valid_smw_lwm_base_p): Refine.
22784	(nds32_output_smw_single_word): Refine.
22785	(nds32_output_smw_double_word): New.
22786	* config/nds32/nds32-protos.h (nds32_output_smw_double_word): New.
22787
227882018-05-19  Chung-Ju Wu  <jasonwucj@gmail.com>
22789
22790	* config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push): Refine.
22791	(nds32_output_stack_pop): Refine.
22792	(nds32_expand_unaligned_load): Refine.
22793	(nds32_expand_unaligned_store): Refine.
22794
227952018-05-19  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
22796	    Chung-Ju Wu  <jasonwucj@gmail.com>
22797
22798	* config/nds32/constants.md: Add TP_REGNUM constant.
22799	(unspec_element): Add UNSPEC_GOTINIT, UNSPEC_GOT, UNSPEC_GOTOFF,
22800	UNSPEC_PLT, UNSPEC_TLSGD, UNSPEC_TLSLD, UNSPEC_TLSIE, UNSPEC_TLSLE and
22801	UNSPEC_ADD32.
22802	* config/nds32/nds32-doubleword.md: Consider flag_pic.
22803	* config/nds32/nds32-dspext.md (mov<mode>): Expand TLS and PIC cases.
22804	* config/nds32/nds32-predicates.c (nds32_const_unspec_p): New.
22805	* config/nds32/nds32-md-auxiliary.c: Implementation that support TLS
22806	and PIC code generation.
22807	* config/nds32/nds32-protos.h: Declarations that support TLS and PIC
22808	code generation.
22809	* config/nds32/nds32-relax-opt.c: Consider TLS and PIC for relax
22810	optimization.
22811	* config/nds32/nds32.md: Support TLS and PIC.
22812	* config/nds32/nds32.c: Support TLS and PIC.
22813	* config/nds32/nds32.h (nds32_relax_insn_type): New enum type.
22814	* config/nds32/predicates.md (nds32_nonunspec_symbolic_operand): New
22815	predicate.
22816
228172018-05-19  Chung-Ju Wu  <jasonwucj@gmail.com>
22818
22819	* config/nds32/nds32-predicates.c (const_vector_to_hwint): Use machine
22820	mode with E_ prefix.
22821
228222018-05-19  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
22823	    Chung-Ju Wu  <jasonwucj@gmail.com>
22824
22825	* config/nds32/constants.md (unspec_element): Add UNSPEC_ICT.
22826	* config/nds32/nds32-md-auxiliary.c
22827	(symbolic_reference_mentioned_p): New.
22828	(nds32_legitimize_ict_address): New.
22829	(nds32_expand_ict_move): New.
22830	(nds32_indirect_call_referenced_p): New.
22831	(nds32_symbol_binds_local_p): Delete.
22832	(nds32_long_call_p): Modify.
22833	* config/nds32/nds32-opts.h (nds32_ict_model_type): New enum type.
22834	* config/nds32/nds32-protos.h
22835	(symbolic_reference_mentioned_p): Declare.
22836	(nds32_legitimize_ict_address): Declare.
22837	(nds32_expand_ict_move): Declare.
22838	(nds32_indirect_call_referenced_p): Declare.
22839	* config/nds32/nds32-relax-opt.c (nds32_ict_const_p): New.
22840	(nds32_relax_group): Use nds32_ict_const_p as condition.
22841	* config/nds32/nds32.c (nds32_attribute_table): Add "indirect_call".
22842	(nds32_asm_file_start): Output ict_model directive in asm code.
22843	(nds32_legitimate_address_p): Consider indirect call.
22844	(nds32_print_operand): Consider indirect call.
22845	(nds32_print_operand_address): Consider indirect call.
22846	(nds32_insert_attributes): Handle "indirect_call" attribute.
22847	(TARGET_LEGITIMATE_ADDRESS_P): Define.
22848	(TARGET_LEGITIMATE_CONSTANT_P): Define.
22849	(TARGET_CANNOT_FORCE_CONST_MEM): Define.
22850	(TARGET_DELEGITIMIZE_ADDRESS): Define.
22851	(TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
22852	* config/nds32/nds32.h (SYMBOLIC_CONST_P): Define.
22853	(TARGET_ICT_MODEL_SMALL): Define.
22854	(TARGET_ICT_MODEL_LARGE): Define.
22855	* config/nds32/nds32.md (movsi): Consider ict model.
22856	(call, call_value): Consider ict model.
22857	(sibcall, sibcall_value): Consider ict model.
22858	* config/nds32/nds32.opt (mict-model): New option.
22859	* config/nds32/predicates.md (nds32_symbolic_operand): Consider ict
22860	model.
22861
228622018-05-18  Kito Cheng  <kito.cheng@gmail.com>
22863	    Monk Chiang  <sh.chiang04@gmail.com>
22864	    Jim Wilson  <jimw@sifive.com>
22865
22866	* common/config/riscv/riscv-common.c (riscv_parse_arch_string):
22867	Add support to parse rv32e*.  Clear MASK_RVE for rv32i and rv64i.
22868	* config.gcc (riscv*-*-*): Add support for rv32e* and ilp32e.
22869	* config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): Define
22870	__riscv_32e when TARGET_RVE.  Handle ABI_ILP32E as soft-float ABI.
22871	* config/riscv/riscv-opts.h (riscv_abi_type): Add ABI_ILP32E.
22872	* config/riscv/riscv.c (riscv_compute_frame_info): When TARGET_RVE,
22873	compute save_libcall_adjustment properly.
22874	(riscv_option_override): Call error if TARGET_RVE and not ABI_ILP32E.
22875	(riscv_conditional_register_usage): Handle TARGET_RVE and ABI_ILP32E.
22876	* config/riscv/riscv.h (UNITS_PER_FP_ARG): Handle ABI_ILP32E.
22877	(STACK_BOUNDARY, ABI_STACK_BOUNDARY): Handle TARGET_RVE.
22878	(GP_REG_LAST, MAX_ARGS_IN_REGISTERS): Likewise.
22879	(ABI_SPEC): Handle mabi=ilp32e.
22880	* config/riscv/riscv.opt (abi_type): Add ABI_ILP32E.
22881	(RVE): Add RVE mask.
22882	* doc/invoke.texi (RISC-V options) <-mabi>: Add ilp32e info.
22883	<-march>: Add rv32e as an example.
22884
228852018-05-18  Marc Glisse  <marc.glisse@inria.fr>
22886
22887	PR c++/82899
22888	* tree-ssa-structalias.c (create_variable_info_for_1): Extra argument.
22889	(intra_create_variable_infos): Handle C++ constructors.
22890
228912018-05-18  Martin Liska  <mliska@suse.cz>
22892
22893	* passes.def: Remove a redundant pass.
22894
228952018-05-18  Eric Botcazou  <ebotcazou@adacore.com>
22896
22897	PR bootstrap/85838
22898	* config/sparc/sparc.c (sparc_expand_builtin): Always initialize op[0].
22899
229002018-05-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22901
22902	* config/arm/arm-cpus.in (armv3m, mode32): Delete features.
22903	(ARMv4): Update.
22904	(ARMv2, ARMv3, ARMv3m): Delete fgroups.
22905	(ARMv6m): Update.
22906	(armv2, armv2a, armv3, armv3m): Delete architectures.
22907	(arm2, arm250, arm3, arm6, arm60, arm600, arm610, arm620,
22908	arm7, arm7d, arm7di, arm70, arm700, arm700i, arm710, arm720,
22909	arm710c, arm7100, arm7500, arm7500fe, arm7m, arm7dm, arm7dmi):
22910	Delete cpus.
22911	* config/arm/arm.md (maddsidi4): Remove check for arm_arch3m.
22912	(*mulsidi3adddi): Likewise.
22913	(mulsidi3): Likewise.
22914	(*mulsidi3_nov6): Likewise.
22915	(umulsidi3): Likewise.
22916	(umulsidi3_nov6): Likewise.
22917	(umaddsidi4): Likewise.
22918	(*umulsidi3adddi): Likewise.
22919	(smulsi3_highpart): Likewise.
22920	(*smulsi3_highpart_nov6): Likewise.
22921	(umulsi3_highpart): Likewise.
22922	(*umulsi3_highpart_nov6): Likewise.
22923	* config/arm/arm.h (arm_arch3m): Delete.
22924	* config/arm/arm.c (arm_arch3m): Delete.
22925	(arm_option_override_internal): Update armv3-related comment.
22926	(arm_configure_build_target): Delete use of isa_bit_mode32.
22927	(arm_option_reconfigure_globals): Delete set of arm_ach3m.
22928	(arm_rtx_costs_internal): Delete check of arm_arch3m.
22929	* config/arm/arm-fixed.md (mulsq3): Delete check for arm_arch3m.
22930	(mulsa3): Likewise.
22931	(mulusa3): Likewise.
22932	* config/arm/arm-protos.h (arm_arch3m): Delete.
22933	* config/arm/arm-tables.opt: Regenerate.
22934	* config/arm/arm-tune.md: Likewise.
22935	* config/arm/t-arm-elf (all_early_nofp): Delete mentions of
22936	deleted architectures.
22937
229382018-05-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22939
22940	* config/arm/arm-cpus.in (armv5, armv5e): Delete features.
22941	(armv5t, armv5te): New features.
22942	(ARMv5, ARMv5e): Delete fgroups.
22943	(ARMv5t, ARMv5te): Adjust for above changes.
22944	(ARMv6m): Likewise.
22945	(armv5, armv5e): Delete arches.
22946	* config/arm/arm.md (*call_reg_armv5): Use arm_arch5t instead of
22947	arm_arch5.
22948	(*call_reg_arm): Likewise.
22949	(*call_value_reg_armv5): Likewise.
22950	(*call_value_reg_arm): Likewise.
22951	(*call_symbol): Likewise.
22952	(*call_value_symbol): Likewise.
22953	(*sibcall_insn): Likewise.
22954	(*sibcall_value_insn): Likewise.
22955	(clzsi2): Likewise.
22956	(prefetch): Likewise.
22957	(define_split and define_peephole2 dependent on arm_arch5):
22958	Likewise.
22959	* config/arm/arm.h (TARGET_LDRD): Use arm_arch5te instead of
22960	arm_arch5e.
22961	(TARGET_ARM_QBIT): Likewise.
22962	(TARGET_DSP_MULTIPLY): Likewise.
22963	(enum base_architecture): Delete BASE_ARCH_5, BASE_ARCH_5E.
22964	(arm_arch5, arm_arch5e): Delete.
22965	(arm_arch5t, arm_arch5te): Declare.
22966	* config/arm/arm.c (arm_arch5, arm_arch5e): Delete.
22967	(arm_arch5t): Declare.
22968	(arm_option_reconfigure_globals): Update for the above.
22969	(arm_options_perform_arch_sanity_checks): Update comment, replace
22970	use of arm_arch5 with arm_arch5t.
22971	(use_return_insn): Likewise.
22972	(arm_emit_call_insn): Likewise.
22973	(output_return_instruction): Likewise.
22974	(arm_final_prescan_insn): Likewise.
22975	(arm_coproc_builtin_available): Likewise.
22976	* config/arm/arm-c.c (arm_cpu_builtins): Replace arm_arch5 and
22977	arm_arch5e with arm_arch5t and arm_arch5te.
22978	* config/arm/arm-protos.h (arm_arch5, arm_arch5e): Delete.
22979	(arm_arch5t, arm_arch5te): Declare.
22980	* config/arm/arm-tables.opt: Regenerate.
22981	* config/arm/t-arm-elf: Remove references to armv5, armv5e.
22982	* config/arm/t-multilib: Likewise.
22983	* config/arm/thumb1.md (*call_reg_thumb1_v5): Check arm_arch5t
22984	instead of arm_arch5.
22985	(*call_reg_thumb1): Likewise.
22986	(*call_value_reg_thumb1_v5): Likewise.
22987	(*call_value_reg_thumb1): Likewise.
22988	* config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Remove now
22989	unreachable path.
22990	* doc/invoke.texi (ARM Options): Remove references to armv5, armv5e.
22991
229922018-05-18  Martin Liska  <mliska@suse.cz>
22993
22994	PR gcov-profile/84846
22995	* doc/gcov.texi: Document -t option of gcov tool.
22996
229972018-05-18  Martin Liska  <mliska@suse.cz>
22998
22999	PR gcov-profile/84846
23000	* gcov.c (print_usage): Add new -t option.
23001	(process_args): Handle the option.
23002	(generate_results): Use stdout as output when requested by
23003	the option.
23004
230052018-05-18  Martin Liska  <mliska@suse.cz>
23006
23007	PR gcov-profile/84846
23008	* coverage.c (coverage_init): Write PWD to .gcno file.
23009	* doc/gcov.texi: Document how working directory is printed.
23010	* gcov-dump.c (dump_gcov_file): Print PWD.
23011	* gcov.c (output_intermediate_file): Likewise.
23012	(read_graph_file): Read PWD string.
23013	(output_lines): Print PWD.
23014
230152018-05-18  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
23016
23017	PR middle-end/85817
23018	* ipa-pure-const.c (malloc_candidate_p): Remove the check integer_zerop
23019	for retval and return false if all args to phi are zero.
23020
230212018-05-18  Richard Biener  <rguenther@suse.de>
23022
23023	* gimple-ssa-evrp.c (class evrp_folder): Add simplify_stmt_using_ranges
23024	method.
23025	(evrp_dom_walker::before_dom_children): Call it.
23026
230272018-05-18  Richard Biener  <rguenther@suse.de>
23028
23029	* tree-dfa.c (get_ref_base_and_extent): Use range-info to refine
23030	results when processing array refs with variable index.
23031
230322018-05-18  Toon Moene  <toon@moene.org>
23033
23034	* doc/invoke.texi: Move -floop-unroll-and-jam documentation
23035	directly after that of -floop-interchange. Indicate that both
23036	options are enabled by default when specifying -O3.
23037
230382018-05-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23039
23040	* config/aarch64/aarch64-simd.md (vec_set<mode>): Use VALL_F16 mode
23041	iterator.  Delete separate integer-mode vec_set<mode> expander.
23042	(aarch64_simd_vec_setv2di): Delete.
23043	(vec_setv2di): Delete.
23044	(aarch64_simd_vec_set<mode>): Delete all other patterns with that name.
23045	Use VALL_F16 mode iterator.  Add LD1 alternative and use vwcore for
23046	the "w, r" alternative.
23047
230482018-05-18  Martin Liska  <mliska@suse.cz>
23049
23050	* passes.def: Add pass_lower_switch and pass_lower_switch_O0.
23051	* tree-pass.h (make_pass_lower_switch_O0): New function.
23052	* tree-switch-conversion.c (node_has_low_bound): Remove.
23053	(node_has_high_bound): Likewise.
23054	(node_is_bounded): Likewise.
23055	(class pass_lower_switch): Make it a template type and create
23056	two instances.
23057	(pass_lower_switch::execute): Add template argument.
23058	(make_pass_lower_switch): New function.
23059	(make_pass_lower_switch_O0): New function.
23060	(do_jump_if_equal): Remove.
23061	(emit_case_nodes): Simplify to just handle all 3 cases and leave
23062	all the hard work to tree optimization passes.
23063
230642018-05-18  Martin Liska  <mliska@suse.cz>
23065
23066	* dbgcnt.c (limit_low): Renamed from limit.
23067	(limit_high): New variable.
23068	(dbg_cnt_is_enabled): Check for upper limit.
23069	(dbg_cnt): Adjust dumping.
23070	(dbg_cnt_set_limit_by_index): Add new argument for high
23071	value.
23072	(dbg_cnt_set_limit_by_name): Likewise.
23073	(dbg_cnt_process_single_pair): Parse new format.
23074	(dbg_cnt_process_opt): Use strtok.
23075	(dbg_cnt_list_all_counters): Remove 'value' and add
23076	'limit_high'.
23077	* doc/invoke.texi: Document changes.
23078
230792018-05-18  Richard Sandiford  <richard.sandiford@linaro.org>
23080
23081	* doc/sourcebuild.texi (scalar_all_fma): Document.
23082	* tree.def (FMA_EXPR): Delete.
23083	* internal-fn.def (FMA, FMS, FNMA, FNMS): New internal functions.
23084	* internal-fn.c (ternary_direct): New macro.
23085	(expand_ternary_optab_fn): Likewise.
23086	(direct_ternary_optab_supported_p): Likewise.
23087	* Makefile.in (build/genmatch.o): Depend on case-fn-macros.h.
23088	* builtins.c (fold_builtin_fma): Delete.
23089	(fold_builtin_3): Don't call it.
23090	* cfgexpand.c (expand_debug_expr): Remove FMA_EXPR handling.
23091	* expr.c (expand_expr_real_2): Likewise.
23092	* fold-const.c (operand_equal_p): Likewise.
23093	(fold_ternary_loc): Likewise.
23094	* gimple-pretty-print.c (dump_ternary_rhs): Likewise.
23095	* gimple.c (DEFTREECODE): Likewise.
23096	* gimplify.c (gimplify_expr): Likewise.
23097	* optabs-tree.c (optab_for_tree_code): Likewise.
23098	* tree-cfg.c (verify_gimple_assign_ternary): Likewise.
23099	* tree-eh.c (operation_could_trap_p): Likewise.
23100	(stmt_could_throw_1_p): Likewise.
23101	* tree-inline.c (estimate_operator_cost): Likewise.
23102	* tree-pretty-print.c (dump_generic_node): Likewise.
23103	(op_code_prio): Likewise.
23104	* tree-ssa-loop-im.c (stmt_cost): Likewise.
23105	* tree-ssa-operands.c (get_expr_operands): Likewise.
23106	* tree.c (commutative_ternary_tree_code, add_expr): Likewise.
23107	* fold-const-call.h (fold_fma): Delete.
23108	* fold-const-call.c (fold_const_call_ssss): Handle CFN_FMS,
23109	CFN_FNMA and CFN_FNMS.
23110	(fold_fma): Delete.
23111	* genmatch.c (combined_fn): New enum.
23112	(commutative_ternary_tree_code): Remove FMA_EXPR handling.
23113	(commutative_op): New function.
23114	(commutate): Use it.  Handle more than 2 operands.
23115	(dt_operand::gen_gimple_expr): Use commutative_op.
23116	(parser::parse_expr): Allow :c to be used with non-binary
23117	operators if the commutative operand is known.
23118	* gimple-ssa-backprop.c (backprop::process_builtin_call_use): Handle
23119	CFN_FMS, CFN_FNMA and CFN_FNMS.
23120	(backprop::process_assign_use): Remove FMA_EXPR handling.
23121	* hsa-gen.c (gen_hsa_insns_for_operation_assignment): Likewise.
23122	(gen_hsa_fma): New function.
23123	(gen_hsa_insn_for_internal_fn_call): Use it for IFN_FMA, IFN_FMS,
23124	IFN_FNMA and IFN_FNMS.
23125	* match.pd: Add folds for IFN_FMS, IFN_FNMA and IFN_FNMS.
23126	* gimple-fold.h (follow_all_ssa_edges): Declare.
23127	* gimple-fold.c (follow_all_ssa_edges): New function.
23128	* tree-ssa-math-opts.c (convert_mult_to_fma_1): Use the
23129	gimple_build interface and use follow_all_ssa_edges to fold the result.
23130	(convert_mult_to_fma): Use direct_internal_fn_suppoerted_p
23131	instead of checking for optabs directly.
23132	* config/i386/i386.c (ix86_add_stmt_cost): Recognize FMAs as calls
23133	rather than FMA_EXPRs.
23134	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Create a
23135	call to IFN_FMA instead of an FMA_EXPR.
23136
231372018-05-17  Jim Wilson  <jimw@sifive.com>
23138
23139	* expr.c (do_tablejump): When converting index to Pmode, if we have a
23140	sign extended promoted subreg, and the range does not have the sign bit
23141	set, then do a sign extend.
23142
23143	* config/riscv/riscv.c (riscv_extend_comparands): In unsigned QImode
23144	test, check for sign extended subreg and/or constant operands, and
23145	do a sign extend in that case.
23146
231472018-05-17  Steve Ellcey  <sellcey@cavium.com>
23148
23149	* config/aarch64/thunderx2t99.md (thunderx2t99_ls_both): Delete.
23150	(thunderx2t99_multiple): Delete psuedo-units from used cpus.
23151	Add untyped.
23152	(thunderx2t99_alu_shift): Remove alu_shift_reg, alus_shift_reg.
23153	Change logics_shift_reg to logics_shift_imm.
23154	(thunderx2t99_fp_loadpair_basic): Delete.
23155	(thunderx2t99_fp_storepair_basic): Delete.
23156	(thunderx2t99_asimd_int): Add neon_sub and neon_sub_q types.
23157	(thunderx2t99_asimd_polynomial): Delete.
23158	(thunderx2t99_asimd_fp_simple): Add neon_fp_mul_s_scalar_q
23159	and neon_fp_mul_d_scalar_q.
23160	(thunderx2t99_asimd_fp_conv): Add *int_to_fp* types.
23161	(thunderx2t99_asimd_misc): Delete neon_dup and neon_dup_q.
23162	(thunderx2t99_asimd_recip_step): Add missing *sqrt* types.
23163	(thunderx2t99_asimd_lut): Add missing tbl types.
23164	(thunderx2t99_asimd_ext): Delete.
23165	(thunderx2t99_asimd_load1_1_mult): Delete.
23166	(thunderx2t99_asimd_load1_2_mult): Delete.
23167	(thunderx2t99_asimd_load1_ldp): New.
23168	(thunderx2t99_asimd_load1): New.
23169	(thunderx2t99_asimd_load2): Add missing *load2* types.
23170	(thunderx2t99_asimd_load3): New.
23171	(thunderx2t99_asimd_load4): New.
23172	(thunderx2t99_asimd_store1_1_mult): Delete.
23173	(thunderx2t99_asimd_store1_2_mult): Delete.
23174	(thunderx2t99_asimd_store2_mult): Delete.
23175	(thunderx2t99_asimd_store2_onelane): Delete.
23176	(thunderx2t99_asimd_store_stp): New.
23177	(thunderx2t99_asimd_store1): New.
23178	(thunderx2t99_asimd_store2): New.
23179	(thunderx2t99_asimd_store3): New.
23180	(thunderx2t99_asimd_store4): New.
23181
231822018-05-17  Jerome Lambourg  <lambourg@adacore.com>
23183
23184	* config/arm/arm_cmse.h (cmse_nsfptr_create, cmse_is_nsfptr): Remove
23185	#include <stdint.h>.  Replace intptr_t with __INTPTR_TYPE__.
23186
231872018-05-17  Pat Haugen  <pthaugen@us.ibm.com>
23188	    Segher Boessenkool  <segher@kernel.crashing.org>
23189
23190	PR target/85698
23191	* config/rs6000/rs6000.c (rs6000_output_move_128bit): Check dest
23192	operand.
23193
231942018-05-17  Richard Biener  <rguenther@suse.de>
23195
23196	* tree-ssa-dse.c (dse_classify_store): Fix iterator increment
23197	for pruning loop and prune defs feeding only already visited PHIs.
23198
231992018-05-17  Richard Biener  <rguenther@suse.de>
23200
23201	* tree-ssa-sccvn.c (vn_reference_lookup_3): Improve memset handling.
23202
232032018-05-17  Bin Cheng  <bin.cheng@arm.com>
23204	    Richard Biener  <rguenther@suse.de>
23205
23206	PR tree-optimization/85793
23207	* tree-vect-stmts.c (vectorizable_load): Handle 1 element-wise load
23208	for VMAT_ELEMENTWISE.
23209
232102018-05-17  Richard Sandiford  <richard.sandiford@linaro.org>
23211
23212	* internal-fn.h (lookup_internal_fn): Declare
23213	* internal-fn.c (lookup_internal_fn): New function.
23214	* gimple.c (gimple_build_call_from_tree): Handle calls to
23215	internal functions.
23216	* gimple-pretty-print.c (dump_gimple_call): Print "." before
23217	internal function names.
23218	* tree-pretty-print.c (dump_generic_node): Likewise.
23219	* tree-ssa-scopedtables.c (expr_hash_elt::print): Likewise.
23220
232212018-05-17  Richard Sandiford  <richard.sandiford@linaro.org>
23222
23223	* gimple-fold.h (gimple_build): Make the function forms take
23224	combined_fn rather than built_in_function.
23225	(gimple_simplify): Likewise.
23226	* gimple-match-head.c (gimple_simplify): Likewise.
23227	* gimple-fold.c (gimple_build): Likewise.
23228	* tree-vect-loop.c (get_initial_def_for_reduction): Use gimple_build
23229	rather than gimple_build_call_internal.
23230	(get_initial_defs_for_reduction): Likewise.
23231	(vect_create_epilog_for_reduction): Likewise.
23232	(vectorizable_live_operation): Likewise.
23233
232342018-05-17  Martin Liska  <mliska@suse.cz>
23235
23236	* gimple-ssa-sprintf.c (format_directive): Do not use
23237	space in between 'G_' and '('.
23238
232392018-05-17  Jakub Jelinek  <jakub@redhat.com>
23240
23241	PR target/85323
23242	* config/i386/i386.c (ix86_fold_builtin): Handle masked shifts
23243	even if the mask is not all ones.
23244
23245	PR target/85323
23246	* config/i386/i386.c (ix86_fold_builtin): Fold shift builtins by
23247	vector.
23248	(ix86_gimple_fold_builtin): Likewise.
23249
23250	PR target/85323
23251	* config/i386/i386.c: Include tree-vector-builder.h.
23252	(ix86_vector_shift_count): New function.
23253	(ix86_fold_builtin): Fold shift builtins by scalar count.
23254	(ix86_gimple_fold_builtin): Likewise.
23255
23256	* config/i386/avx512fintrin.h (_mm512_set_epi16, _mm512_set_epi8,
23257	_mm512_setzero): New intrinsics.
23258
232592018-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
23260	    Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23261
23262	* config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify
23263	code generation for cases where splatting a value is not useful.
23264	* simplify-rtx.c (simplify_ternary_operation): Simplify
23265	vec_merge across a vec_duplicate and a paradoxical subreg forming
23266	a vector mode to a vec_concat.
23267
232682018-05-17  Olga Makhotina  <olga.makhotina@intel.com>
23269
23270	* config.gcc: Support "goldmont-plus".
23271	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
23272	"goldmont-plus".
23273	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
23274	PROCESSOR_GOLDMONT_PLUS.
23275	* config/i386/i386.c (m_GOLDMONT_PLUS): Define.
23276	(processor_target_table): Add "goldmont-plus".
23277	(PTA_GOLDMONT_PLUS): Define.
23278	(ix86_lea_outperforms): Add TARGET_GOLDMONT_PLUS.
23279	(get_builtin_code_for_version): Handle PROCESSOR_GOLDMONT_PLUS.
23280	(fold_builtin_cpu): Add M_INTEL_GOLDMONT_PLUS.
23281	(fold_builtin_cpu): Add "goldmont-plus".
23282	(ix86_add_stmt_cost): Add TARGET_GOLDMONT_PLUS.
23283	(ix86_option_override_internal): Add "goldmont-plus".
23284	* config/i386/i386.h (processor_costs): Define TARGET_GOLDMONT_PLUS.
23285	(processor_type): Add PROCESSOR_GOLDMONT_PLUS.
23286	* config/i386/x86-tune.def: Add m_GOLDMONT_PLUS.
23287	* doc/invoke.texi: Add goldmont-plus as x86 -march=/-mtune= CPU type.
23288
232892018-05-17  Richard Biener  <rguenther@suse.de>
23290
23291	PR tree-optimization/85757
23292	* tree-ssa-dse.c (dse_classify_store): Record a PHI def and
23293	remove defs that only feed that PHI from further processing.
23294
232952018-05-16  Jim Wilson  <jimw@sifive.com>
23296
23297	* config/riscv/riscv.md (<optab>si3_mask, <optab>si3_mask_1): Prepend
23298	asterisk to name.
23299	(<optab>di3_mask, <optab>di3_mask_1): Likewise.
23300
233012018-05-16  Mark Wielaard  <mark@klomp.org>
23302
23303	* dwarf2out.c (count_index_strings): New function.
23304	(output_indirect_strings): Call count_index_strings and generate
23305	header for dwarf_version >= 5.
23306
233072018-05-16  Mark Wielaard  <mark@klomp.org>
23308
23309	* dwarf2out.c (dwarf_FORM): New function.
23310	(set_indirect_string): Use dwarf_FORM.
23311	(reset_indirect_string): Likewise.
23312	(size_of_die): Likewise.
23313	(value_format): Likewise.
23314	(output_die): Likewise.
23315	(add_skeleton_AT_string): Likewise.
23316	(output_macinfo_op): Likewise.
23317	(index_string): Likewise.
23318	(output_index_string_offset): Likewise.
23319	(output_index_string): Likewise.
23320	(count_index_strings): Likewise.
23321
233222018-05-16  Carl Love  <cel@us.ibm.com>
23323
23324	* config/rs6000/rs6000.md (prefetch): Generate ISA 2.06 instructions
23325	dcbt and dcbtstt with TH=16 if operands[2] is 0 and Power 8 or newer.
23326
233272018-05-16  Martin Jambor  <mjambor@suse.cz>
23328
23329	* ipa-prop.c (ipa_free_all_edge_args): Remove.
23330	* ipa-prop.h (ipa_free_all_edge_args): Likewise.
23331
233322018-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
23333
23334	* config/aarch64/aarch64.md (fma<mode>4): Change into expand pattern.
23335	(fnma<mode>4): Likewise.
23336	(fms<mode>4): Likewise.
23337	(fnms<mode>4): Likewise.
23338	(aarch64_fma<mode>4): Rename insn, reorder accumulator operand.
23339	(aarch64_fnma<mode>4): Likewise.
23340	(aarch64_fms<mode>4): Likewise.
23341	(aarch64_fnms<mode>4): Likewise.
23342	(aarch64_fnmadd<mode>4): Likewise.
23343
233442018-05-16  Jason Merrill  <jason@redhat.com>
23345
23346	* tree.c (warn_deprecated_use): Return bool.  Simplify logic.
23347
233482018-05-16  Richard Biener  <rguenther@suse.de>
23349
23350	* tree-vectorizer.h (struct stmt_info_for_cost): Add where member.
23351	(dump_stmt_cost): Declare.
23352	(add_stmt_cost): Dump cost we add.
23353	(add_stmt_costs): New function.
23354	(vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
23355	No longer exported.
23356	(vect_analyze_stmt): Adjust prototype.
23357	(vectorizable_condition): Likewise.
23358	(vectorizable_live_operation): Likewise.
23359	(vectorizable_reduction): Likewise.
23360	(vectorizable_induction): Likewise.
23361	* tree-vect-loop.c (vect_analyze_loop_operations): Create local
23362	cost vector to pass to vectorizable_ and record afterwards.
23363	(vect_model_reduction_cost): Take cost vector argument and adjust.
23364	(vect_model_induction_cost): Likewise.
23365	(vectorizable_reduction): Likewise.
23366	(vectorizable_induction): Likewise.
23367	(vectorizable_live_operation): Likewise.
23368	* tree-vect-slp.c (vect_create_new_slp_node): Initialize
23369	SLP_TREE_NUMBER_OF_VEC_STMTS.
23370	(vect_analyze_slp_cost_1): Remove.
23371	(vect_analyze_slp_cost): Likewise.
23372	(vect_slp_analyze_node_operations): Take visited args and
23373	a target cost vector.  Avoid processing already visited stmt sets.
23374	(vect_slp_analyze_operations): Use a local cost vector to gather
23375	costs and register those of non-discarded instances.
23376	(vect_bb_vectorization_profitable_p): Use add_stmt_costs.
23377	(vect_schedule_slp_instance): Remove copying of
23378	SLP_TREE_NUMBER_OF_VEC_STMTS.  Instead assert that it is not
23379	zero.
23380	* tree-vect-stmts.c (record_stmt_cost): Remove path directly
23381	adding cost.  Record cost entry location.
23382	(vect_prologue_cost_for_slp_op): Function to compute cost of
23383	a constant or invariant generated for SLP vect in the prologue,
23384	split out from vect_analyze_slp_cost_1.
23385	(vect_model_simple_cost): Make static.  Adjust for SLP costing.
23386	(vect_model_promotion_demotion_cost): Likewise.
23387	(vect_model_store_cost): Likewise, make static.
23388	(vect_model_load_cost): Likewise.
23389	(vectorizable_bswap): Add cost vector arg and adjust.
23390	(vectorizable_call): Likewise.
23391	(vectorizable_simd_clone_call): Likewise.
23392	(vectorizable_conversion): Likewise.
23393	(vectorizable_assignment): Likewise.
23394	(vectorizable_shift): Likewise.
23395	(vectorizable_operation): Likewise.
23396	(vectorizable_store): Likewise.
23397	(vectorizable_load): Likewise.
23398	(vectorizable_condition): Likewise.
23399	(vectorizable_comparison): Likewise.
23400	(can_vectorize_live_stmts): Likewise.
23401	(vect_analyze_stmt): Likewise.
23402	(vect_transform_stmt): Adjust calls to vectorizable_*.
23403	* tree-vectorizer.c: Include gimple-pretty-print.h.
23404	(dump_stmt_cost): New function.
23405
234062018-05-16  Richard Biener  <rguenther@suse.de>
23407
23408	* params.def (PARAM_DSE_MAX_ALIAS_QUERIES_PER_STORE): New param.
23409	* doc/invoke.texi (dse-max-alias-queries-per-store): Document.
23410	* tree-ssa-dse.c: Include tree-ssa-loop.h.
23411	(check_name): New callback.
23412	(dse_classify_store): Track cycles via a visited bitmap of PHI
23413	defs and simplify handling of in-loop and across loop dead stores
23414	and properly fail for loop-variant refs.  Handle byte-tracking with
23415	multiple defs.  Use PARAM_DSE_MAX_ALIAS_QUERIES_PER_STORE for
23416	limiting the walk.
23417
234182018-05-16  Richard Sandiford  <richard.sandiford@linaro.org>
23419
23420	* tree-vectorizer.h (vect_get_vector_types_for_stmt): Declare.
23421	(vect_get_mask_type_for_stmt): Likewise.
23422	* tree-vect-slp.c (vect_two_operations_perm_ok_p): New function,
23423	split out from...
23424	(vect_build_slp_tree_1): ...here.  Use vect_get_vector_types_for_stmt
23425	to determine the statement's vector type and the vector type that
23426	should be used for calculating nunits.  Deal with cases in which
23427	the type has to be deferred.
23428	(vect_slp_analyze_node_operations): Use vect_get_vector_types_for_stmt
23429	and vect_get_mask_type_for_stmt to calculate STMT_VINFO_VECTYPE.
23430	* tree-vect-loop.c (vect_determine_vf_for_stmt_1)
23431	(vect_determine_vf_for_stmt): New functions, split out from...
23432	(vect_determine_vectorization_factor): ...here.
23433	* tree-vect-stmts.c (vect_get_vector_types_for_stmt)
23434	(vect_get_mask_type_for_stmt): New functions, split out from
23435	vect_determine_vectorization_factor.
23436
234372018-05-16  Richard Biener  <rguenther@suse.de>
23438
23439	* tree-cfg.c (verify_gimple_assign_ternary): Properly
23440	verify the [VEC_]COND_EXPR embedded comparison.
23441
234422018-05-15  Martin Sebor  <msebor@redhat.com>
23443
23444	PR tree-optimization/85753
23445	* gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Handle
23446	RECORD_TYPE in addition to ARRAY_TYPE.
23447
234482018-05-15  Martin Sebor  <msebor@redhat.com>
23449
23450	PR middle-end/85643
23451	* calls.c (get_attr_nonstring_decl): Handle MEM_REF.
23452
234532018-05-15  Richard Biener  <rguenther@suse.de>
23454
23455	* tree-ssa-dse.c (dse_classify_store): Remove use_stmt parameter,
23456	add by_clobber_p one.  Change algorithm to collect all defs
23457	representing uses we need to walk and try reducing them to
23458	a single one before failing.
23459	(dse_dom_walker::dse_optimize_stmt): Adjust.
23460
234612018-05-13  Mark Wielaard  <mark@klomp.org>
23462
23463	* dwarf2out.c (dwarf_OP): Handle DW_OP_addrx and DW_OP_constx.
23464	(size_of_loc_descr): Likewise.
23465	(output_loc_operands): Likewise.
23466	(output_loc_operands_raw): Likewise.
23467	(dw_addr_op): Use dwarf_OP () for DW_OP_constx and DW_OP_addrx.
23468	(resolve_addr_in_expr): Handle DW_OP_addrx and DW_OP_constx.
23469	(hash_loc_operands): Likewise.
23470	(compare_loc_operands): Likewise.
23471
234722018-05-14  Mark Wielaard  <mark@klomp.org>
23473
23474	* dwarf2out.c (count_index_addrs): New function.
23475	(dwarf2out_finish): Use count_index_addrs to calculate addrs_length.
23476
234772018-05-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
23478
23479	PR tree-optimization/83648
23480	* ipa-pure-const.c (malloc_candidate_p): Allow function with NULL
23481	return value as malloc candidate.
23482
234832018-05-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
23484
23485	PR ipa/85734
23486	* ipa-pure-const.c (warn_function_malloc): Pass value of known_finite
23487	param as true in call to suggest_attribute.
23488
234892018-05-14  Segher Boessenkool  <segher@kernel.crashing.org>
23490
23491	* doc/invoke.texi (RS/6000 and PowerPC Options): Delete @itemx for
23492	-mreadonly-in-sdata.
23493
234942018-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23495
23496	* config/aarch64/aarch64-simd.md (*aarch64_crypto_aese_fused):
23497	New pattern.
23498	(aarch64_crypto_aesd_fused): Likewise.
23499
235002018-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
23501
23502	* config/aarch64/aarch64.md (mov<mode>): Remove '*' in alternatives.
23503	(movsi_aarch64): Likewise.
23504	(load_pairsi): Likewise.
23505	(load_pairdi): Likewise.
23506	(store_pairsi): Likewise.
23507	(store_pairdi): Likewise.
23508	(load_pairsf): Likewise.
23509	(load_pairdf): Likewise.
23510	(store_pairsf): Likewise.
23511	(store_pairdf): Likewise.
23512	(zero_extend): Likewise.
23513	(trunc): Swap alternatives.
23514	(fcvt_target): Add '?' to prefer w over r.
23515
235162018-05-14  Jakub Jelinek  <jakub@redhat.com>
23517
23518	PR target/85756
23519	* config/i386/i386.md: Disallow non-commutative arithmetics in
23520	last twpeephole for mem {+,-,&,|,^}= x; mem != 0 after cmpelim
23521	optimization.  Use COMMUTATIVE_ARITH_P test rather than != MINUS
23522	in the peephole2 before it.
23523
235242018-05-14  Sebastian Peryt  <sebastian.peryt@intel.com>
23525
23526	* common/config/i386/i386-common.c (OPTION_MASK_ISA_CLDEMOTE_SET,
23527	OPTION_MASK_ISA_CLDEMOTE_UNSET): New defines.
23528	(ix86_handle_option): Handle -mcldemote.
23529	* config.gcc: New header.
23530	* config/i386/cldemoteintrin.h: New file.
23531	* config/i386/cpuid.h (bit_CLDEMOTE): New bit.
23532	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
23533	-mcldemote.
23534	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
23535	OPTION_MASK_ISA_CLDEMOTE.
23536	* config/i386/i386.c (ix86_target_string): Add -mcldemote.
23537	(ix86_valid_target_attribute_inner_p): Ditto.
23538	(enum ix86_builtins): Add IX86_BUILTIN_CLDEMOTE.
23539	(ix86_init_mmx_sse_builtins): Define __builtin_ia32_cldemote.
23540	(ix86_expand_builtin): Expand IX86_BUILTIN_CLDEMOTE.
23541	* config/i386/i386.h (TARGET_CLDEMOTE, TARGET_CLDEMOTE_P): New.
23542	* config/i386/i386.md (UNSPECV_CLDEMOTE): New.
23543	(cldemote): New.
23544	* config/i386/i386.opt: Add -mcldemote.
23545	* config/i386/x86intrin.h: New header.
23546	* doc/invoke.texi: Add -mcldemote.
23547
235482018-05-14  Richard Biener  <rguenther@suse.de>
23549
23550	* doc/match-and-simplify.texi: Adjust :s documentation.
23551
235522018-05-14  Alexander Monakov  <amonakov@ispras.ru>
23553
23554	* sort.cc (REORDER_23): Pass the type for the temporaries instead of
23555	intended memcpy size.
23556	(REORDER_45): Likewise.
23557
235582018-05-13  Alexander Monakov  <amonakov@ispras.ru>
23559
23560	* sort.cc: New file.
23561	* system.h [!CHECKING_P] (qsort): Redirect to gcc_qsort.
23562	* vec.c (qsort_chk): Use gcc_qsort.
23563	* Makefile.in (OBJS-libcommon): Add sort.o.
23564	(build/sort.o): New target.  Use it...
23565	(BUILD_RTL): ... here, and...
23566	(build/gencfn-macros): ... here, and...
23567	(build/genmatch): ... here.
23568
235692018-05-13  Kito Cheng  <kito.cheng@gmail.com>
23570	    Chung-Ju Wu  <jasonwucj@gmail.com>
23571
23572	* config.gcc (nds32*-*-*): Check that n15 is valid to --with-cpu.
23573	* config/nds32/nds32-graywolf.md: New file.
23574	* config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_GRAYWOLF.
23575	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n15
23576	pipeline.
23577	* config/nds32/nds32-protos.h: More declarations for n15 pipeline.
23578	* config/nds32/nds32-utils.c: More implementations for n15 pipeline.
23579	* config/nds32/nds32.md (pipeline_model): Add graywolf.
23580	* config/nds32/nds32.opt (mcpu): Support n15 pipeline cpus.
23581	* config/nds32/pipelines.md: Include n15 settings.
23582
235832018-05-13  Kito Cheng  <kito.cheng@gmail.com>
23584	    Chung-Ju Wu  <jasonwucj@gmail.com>
23585
23586	* config.gcc (nds32*-*-*): Check that n12/n13 are valid to --with-cpu.
23587	* config/nds32/nds32-n13.md: New file.
23588	* config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N12 and CPU_N13.
23589	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n12/n13
23590	pipeline.
23591	* config/nds32/nds32-protos.h: More declarations for n12/n13 pipeline.
23592	* config/nds32/nds32.md (pipeline_model): Add n13.
23593	* config/nds32/nds32.opt (mcpu): Support n12/n13 pipeline cpus.
23594	* config/nds32/pipelines.md: Include n13 settings.
23595
235962018-05-13  Kito Cheng  <kito.cheng@gmail.com>
23597	    Chung-Ju Wu  <jasonwucj@gmail.com>
23598
23599	* config.gcc (nds32*-*-*): Check that n10/d10 are valid to --with-cpu.
23600	* config/nds32/nds32-n10.md: New file.
23601	* config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N10.
23602	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n10
23603	pipeline.
23604	* config/nds32/nds32-protos.h: More declarations for n10 pipeline.
23605	* config/nds32/nds32-utils.c: More implementations for n10 pipeline.
23606	* config/nds32/nds32.md (pipeline_model): Add n10.
23607	* config/nds32/nds32.opt (mcpu): Support n10 pipeline cpus.
23608	* config/nds32/pipelines.md: Include n10 settings.
23609
236102018-05-13  Monk Chiang  <sh.chiang04@gmail.com>
23611	    Kito Cheng  <kito.cheng@gmail.com>
23612	    Chung-Ju Wu  <jasonwucj@gmail.com>
23613
23614	* config.gcc (nds32be-*-*): Handle --with-ext-dsp.
23615	* config/nds32/constants.md (unspec_element, unspec_volatile_element):
23616	Add enum values for DSP extension instructions.
23617	* config/nds32/constraints.md (Iu06, IU06, CVp5, CVs5, CVs2, CVhi):
23618	New constraints.
23619	* config/nds32/iterators.md (shifts, shiftrt, sat_plus, all_plus,
23620	sat_minus, all_minus, plus_minus, extend, sumax, sumin, sumin_max):
23621	New code iterators.
23622	(su, zs, uk, opcode, add_rsub, add_sub): New code attributes.
23623	* config/nds32/nds32-dspext.md: New file for DSP implementation.
23624	* config/nds32/nds32-intrinsic.c: Implementation of DSP extension.
23625	* config/nds32/nds32-intrinsic.md: Likewise.
23626	* config/nds32/nds32_intrinsic.h: Likewise.
23627	* config/nds32/nds32-md-auxiliary.c: Likewise.
23628	* config/nds32/nds32-memory-manipulation.c: Consider DSP extension.
23629	* config/nds32/nds32-predicates.c (const_vector_to_hwint): New.
23630	(nds32_valid_CVp5_p, nds32_valid_CVs5_p): New.
23631	(nds32_valid_CVs2_p, nds32_valid_CVhi_p): New.
23632	* config/nds32/nds32-protos.h: New declarations for DSP extension.
23633	* config/nds32/nds32-utils.c (extract_mac_non_acc_rtx): New case
23634	TYPE_DMAC in switch statement.
23635	* config/nds32/nds32.c: New checking and implementation for DSP
23636	extension instructions.
23637	* config/nds32/nds32.h: Likewise.
23638	* config/nds32/nds32.md: Likewise.
23639	* config/nds32/nds32.opt (mhw-abs, mext-dsp): New options.
23640	* config/nds32/predicates.md: Implement new predicates for DSP
23641	extension.
23642
236432018-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
23644
23645	* config/rs6000/rs6000.md (mov<mode>_softfloat, FMOVE32):
23646	Reformat alternatives and attributes so it is easier to identify
23647	which constraints/attributes go with which instruction.
23648	(mov<mode>_hardfloat32, FMOVE64): Likewise.
23649	(mov<mode>_softfloat32, FMOVE64): Likewise.
23650	(mov<mode>_hardfloat64, FMOVE64): Likewise.
23651	(mov<mode>_softfloat64, FMOVE64): Likewise.
23652
236532018-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
23654
23655	* doc/extend.texi (PowerPC Built-in Functions): Rename this
23656	subsection.
23657	(Basic PowerPC Built-in Functions): The new name of the
23658	subsection previously known as "PowerPC Built-in Functions".
23659	(Basic PowerPC Built-in Functions Available on all Configurations):
23660	New subsubsection.
23661	(Basic PowerPC Built-in Functions Available on ISA 2.05): Likewise.
23662	(Basic PowerPC Built-in Functions Available on ISA 2.06): Likewise.
23663	(Basic PowerPC Built-in Functions Available on ISA 2.07): Likewise.
23664	(Basic PowerPC Built-in Functions Available on ISA 3.0): Likewise.
23665
236662018-05-11  Martin Jambor  <mjambor@suse.cz>
23667
23668	PR ipa/85655
23669	* ipa-cp.c (intersect_with_plats): Check that the lattice contains
23670	single const.
23671
236722018-05-11  Richard Earnshaw  <rearnsha@arm.com>
23673
23674	PR target/85733
23675	* config/arm/arm-cpus.in (fgroup ARMv6m): Add be8 feature.
23676
236772018-05-11  Sebastian Peryt  <sebastian.peryt@intel.com>
23678
23679	* common/config/i386/i386-common.c (OPTION_MASK_ISA_WAITPKG_SET,
23680	OPTION_MASK_ISA_WAITPKG_UNSET): New defines.
23681	(ix86_handle_option): Handle -mwaitpkg.
23682	* config.gcc: New header.
23683	* config/i386/cpuid.h (bit_WAITPKG): New bit.
23684	* config/i386/driver-i386.c (host_detect_local_cpu): Detect -mwaitpkg.
23685	* config/i386/i386-builtin-types.def ((UINT8, UNSIGNED, UINT64)): New
23686	function type.
23687	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
23688	OPTION_MASK_ISA_WAITPKG.
23689	* config/i386/i386.c (ix86_target_string): Add -mwaitpkg.
23690	(ix86_option_override_internal): Add PTA_WAITPKG.
23691	(ix86_valid_target_attribute_inner_p): Add -mwaitpkg.
23692	(enum ix86_builtins): Add IX86_BUILTIN_UMONITOR, IX86_BUILTIN_UMWAIT,
23693	IX86_BUILTIN_TPAUSE.
23694	(ix86_init_mmx_sse_builtins): Define __builtin_ia32_umonitor,
23695	__builtin_ia32_umwait and __builtin_ia32_tpause.
23696	(ix86_expand_builtin): Expand IX86_BUILTIN_UMONITOR,
23697	IX86_BUILTIN_UMWAIT, IX86_BUILTIN_TPAUSE.
23698	* config/i386/i386.h (TARGET_WAITPKG, TARGET_WAITPKG_P): New.
23699	* config/i386/i386.md (UNSPECV_UMWAIT, UNSPECV_UMONITOR,
23700	UNSPECV_TPAUSE): New.
23701	(umwait, umwait_rex64, umonitor_<mode>, tpause, tpause_rex64): New.
23702	* config/i386/i386.opt: Add -mwaitpkg.
23703	* config/i386/waitpkgintrin.h: New file.
23704	* config/i386/x86intrin.h: New header.
23705	* doc/invoke.texi: Add -mwaitpkg.
23706
237072018-05-11  Richard Earnshaw  <rearnsha@arm.com>
23708
23709	PR target/85606
23710	* config/arm/arm-cpus.in: Add comment that ARMv6-m and ARMv6S-m are now
23711	equivalent.
23712	(cortex-m0): Use armv6s-m isa.
23713	(cortex-m0plus): Likewise.
23714	(cortex-m1): Likewise.
23715	(cortex-m0.small-multiply): Likewise.
23716	(cortex-m0plus.small-multiply): Likewise.
23717	(cortex-m1.small-multiply): Likewise.
23718
237192018-05-11  Allan Sandfeld Jensen  <allan.jensen@qt.io>
23720	    Jakub Jelinek  <jakub@redhat.com>
23721
23722	PR tree-optimization/85692
23723	* tree-ssa-forwprop.c (simplify_vector_constructor): Try two
23724	source permute as well.
23725
237262018-05-11  Martin Liska  <mliska@suse.cz>
23727
23728	PR sanitizer/85556
23729	* doc/extend.texi: Document LLVM style format for no_sanitize
23730	attribute.
23731
237322018-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
23733
23734	* config/rs6000/rs6000.c (mode_supports_dq_form): Rename
23735	mode_supports_vsx_dform_quad to mode_supports_dq_form.
23736	(mode_supports_vsx_dform_quad): Likewise.
23737	(mode_supports_vmx_dform): Move these functions to be next to the
23738	other mode_supports functions.
23739	(mode_supports_dq_form): Likewise.
23740	(quad_address_p): Change calls of mode_supports_vsx_dform_quad to
23741	mode_supports_dq_form.
23742	(reg_offset_addressing_ok_p): Likewise.
23743	(offsettable_ok_by_alignment): Likewise.
23744	(rs6000_legitimate_offset_address_p): Likewise.
23745	(legitimate_lo_sum_address_p): Likewise.
23746	(rs6000_legitimize_address): Likewise.
23747	(rs6000_legitimize_reload_address): Likewise.
23748	(rs6000_secondary_reload_inner): Likewise.
23749	(rs6000_preferred_reload_class): Likewise.
23750	(rs6000_output_move_128bit): Likewise.
23751
237522018-05-10  Uros Bizjak  <ubizjak@gmail.com>
23753
23754	* config/i386/i386.c (ix86_expand_builtin) <case IX86_BUILTIN_RDPID>:
23755	Generate SImode target register for null target.
23756	<case IX86_BUILTIN_XGETBV>: Ditto.
23757	<case IX86_BUILTIN_XSETBV>: Optimize LSHIFTRT generation.
23758	* config/i386/xsaveintrin.h (_xgetbv): Add missing return.
23759
237602018-05-10  Carl Love  <cel@us.ibm.com>
23761
23762	* config/rs6000/rs6000.md (prefetch): Generate ISA 2.06 instructions
23763	dcbtt and dcbtstt if operands[2] is 0.
23764
237652018-05-10  Uros Bizjak  <ubizjak@gmail.com>
23766
23767	PR target/85693
23768	* config/i386/sse.md (usadv64qi): New expander.
23769
237702018-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
23771
23772	* config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh,
23773	altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw): Remove
23774	-maltivec=be support.
23775	(vec_widen_umult_even_v16qi, vec_widen_smult_even_v16qi,
23776	vec_widen_umult_even_v8hi, vec_widen_smult_even_v8hi,
23777	vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
23778	vec_widen_umult_odd_v16qi, vec_widen_smult_odd_v16qi,
23779	vec_widen_umult_odd_v8hi, vec_widen_smult_odd_v8hi,
23780	vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si, altivec_vpkpx,
23781	altivec_vpks<VI_char>ss, altivec_vpks<VI_char>us,
23782	altivec_vpku<VI_char>us, altivec_vpku<VI_char>um, altivec_vsum2sws,
23783	altivec_vsumsws): Adjust.
23784	(altivec_vspltb *altivec_vspltb_internal, altivec_vsplth,
23785	*altivec_vsplth_internal, altivec_vspltw, *altivec_vspltw_internal,
23786	altivec_vspltsf, *altivec_vspltsf_internal): Remove -maltivec=be
23787	support.
23788	(altivec_vperm_<mode>, altivec_vperm_<mode>_uns,
23789	altivec_vupkhs<VU_char>, altivec_vupkls<VU_char>, altivec_vupkhpx,
23790	altivec_vupklpx, altivec_lvsl, altivec_lvsr): Adjust.
23791	(altivec_lve<VI_char>x): Delete expand.
23792	(*altivec_lve<VI_char>x_internal): Rename to...
23793	(altivec_lve<VI_char>x): ... this.
23794	(altivec_lvxl_<mode>): Delete expand.
23795	(*altivec_lvxl_<mode>_internal): Rename to ...
23796	(altivec_lvxl_<mode>): ... this.
23797	(altivec_stvxl_<mode>): Delete expand.
23798	(*altivec_stvxl_<mode>_internal): Rename to ...
23799	(altivec_stvxl_<mode>): ... this.
23800	(altivec_stve<VI_char>x): Delete expand.
23801	(*altivec_stve<VI_char>x_internal): Rename to ...
23802	(altivec_stve<VI_char>x): ... this.
23803	(doublee<mode>2, unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2,
23804	doubleh<mode>2, unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2,
23805	reduc_plus_scal_<mode>): Adjust.
23806	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust
23807	comment.
23808	(rs6000_cpu_cpp_builtins): Adjust.
23809	(altivec_resolve_overloaded_builtin): Remove -maltivec=be support.
23810	* config/rs6000/rs6000-protos.h (altivec_expand_lvx_be,
23811	altivec_expand_stvx_be, altivec_expand_stvex_be): Delete.
23812	* config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
23813	-maltivec=be support.
23814	(rs6000_split_vec_extract_var): Adjust.
23815	(rs6000_split_v4si_init): Adjust.
23816	(swap_selector_for_mode): Delete.
23817	(altivec_expand_lvx_be, altivec_expand_stvx_be,
23818	altivec_expand_stvex_be): Delete.
23819	(altivec_expand_lv_builtin, altivec_expand_stv_builtin): Remove
23820	-maltivec=be support.
23821	(rs6000_gimple_fold_builtin): Ditto.
23822	(rs6000_generate_float2_double_code, rs6000_generate_float2_code):
23823	Adjust.
23824	* config/rs6000/rs6000.h (VECTOR_ELT_ORDER_BIG): Delete.
23825	(TARGET_DIRECT_MOVE_64BIT): Adjust.
23826	* config/rs6000/rs6000.md (split for extendsidi2 for vectors): Adjust.
23827	* config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Delete.
23828	* config/rs6000/vsx.md (floate<mode>, unsfloatev2di, floato<mode>,
23829	unsfloatov2di, vsignedo_v2df, vsignede_v2df, vunsignedo_v2df,
23830	vunsignede_v2df, vsx_extract_<mode>_p9, *vsx_extract_si,
23831	*vsx_extract_<mode>_p8, *vsx_extract_si_<uns>float_df,
23832	*vsx_extract_si_<uns>float_<mode>, vsx_set_<mode>_p9, vsx_set_v4sf_p9,
23833	*vsx_insert_extract_v4sf_p9, *vsx_insert_extract_v4sf_p9_2, and an
23834	anonymous split): Adjust.
23835	(vsx_mergel_<mode>, vsx_mergeh_<mode>): Remove -maltivec=be support.
23836	(vsx_xxspltd_<mode>, extract4b, insert4b): Adjust.
23837
238382018-05-10  Eric Botcazou  <ebotcazou@adacore.com>
23839
23840	* configure.ac (gcc_gxx_include_dir_add_sysroot): Set it to 1 only
23841	when --with-gxx-include-dir is also specified.
23842	* configure: Regenerate.
23843
238442018-05-09  Jim Wilson  <jimw@sifive.com>
23845
23846	PR target/84797
23847	* config.gcc (riscv*-*-*): Handle --with-multilib-list.
23848	* config/riscv/t-withmultilib: New.
23849	* config/riscv/withmultilib.h: New.
23850	* doc/install.texi: Document RISC-V --with-multilib-list support.
23851
238522018-05-09  Richard Biener  <rguenther@suse.de>
23853
23854	* tree-vect-slp.c (vect_bb_slp_scalar_cost): Fill a cost
23855	vector.
23856	(vect_bb_vectorization_profitable_p): Adjust.  Compute
23857	actual scalar cost using the cost vector and the add_stmt_cost
23858	machinery.
23859
238602018-05-09  Segher Boessenkool  <segher@kernel.crashing.org>
23861
23862	PR rtl-optimization/85645
23863	* config/rs6000/rs6000.c (rs6000_emit_prologue_components): Put a SET
23864	in the REG_CFA_REGISTER note for LR, don't leave it empty.
23865
238662018-05-09  Segher Boessenkool  <segher@kernel.crashing.org>
23867
23868	PR rtl-optimization/85645
23869	* shrink-wrap.c (spread_components): Return a boolean saying if
23870	anything was changed.
23871	(try_shrink_wrapping_separate): Iterate spread_components until
23872	nothing changes anymore.
23873
238742018-05-09  Segher Boessenkool  <segher@kernel.crashing.org>
23875
23876	PR rtl-optimization/85645
23877	* regrename.c (build_def_use): Also kill the chains that include the
23878	destination of a REG_CFA_REGISTER note.
23879
238802018-05-09  Segher Boessenkool  <segher@kernel.crashing.org>
23881
23882	PR rtl-optimization/85645
23883	*  regcprop.c (copyprop_hardreg_forward_1): Don't propagate into an
23884	insn that has a REG_CFA_REGISTER note.
23885
238862018-05-09  Richard Sandiford  <richard.sandiford@linaro.org>
23887
23888	* cfgexpand.c (expand_clobber): New function.
23889	(expand_gimple_stmt_1): Use it.
23890	* tree-vect-stmts.c (vect_clobber_variable): New function,
23891	split out from...
23892	(vectorizable_simd_clone_call): ...here.
23893	(vectorizable_store): Emit a clobber either side of an
23894	IFN_STORE_LANES sequence.
23895	(vectorizable_load): Emit a clobber after an IFN_LOAD_LANES sequence.
23896
238972018-05-09  Tom de Vries  <tom@codesourcery.com>
23898
23899	PR target/85626
23900	* config/nvptx/nvptx.md (define_insn "trap", define_insn "trap_if_true")
23901	(define_insn "trap_if_false"): Add exit after trap.
23902
239032018-05-09  Eric Botcazou  <ebotcazou@adacore.com>
23904
23905	PR rtl-optimization/85638
23906	* bb-reorder.c: Include common/common-target.h.
23907	(create_forwarder_block): New function extracted from...
23908	(fix_up_crossing_landing_pad): ...here.  Rename into...
23909	(dw2_fix_up_crossing_landing_pad): ...this.
23910	(sjlj_fix_up_crossing_landing_pad): New function.
23911	(find_rarely_executed_basic_blocks_and_crossing_edges): In SJLJ mode,
23912	call sjlj_fix_up_crossing_landing_pad if there are incoming EH edges
23913	from both partitions and exit the loop after one iteration.
23914
239152018-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
23916
23917	Revert:
23918	* doc/extend.texi (PowerPC Built-in Functions): Rename this
23919	subsection.
23920	(Basic PowerPC Built-in Functions): The new name of the
23921	subsection previously known as "PowerPC Built-in Functions".
23922	(Basic PowerPC Built-in Functions Available on all Configurations):
23923	New subsubsection.
23924	(Basic PowerPC Built-in Functions Available on ISA 2.05): New
23925	subsubsection.
23926	(Basic PowerPC Built-in Functions Available on ISA 2.06): New
23927	subsubsection.
23928	(Basic PowerPC Built-in Functions Available on ISA 2.07): New
23929	subsubsection.
23930	(Basic PowerPC Built-in Functions Available on ISA 3.0): New
23931	subsubsection.
23932
239332018-05-08  Jim Wilson  <jimw@sifive.com>
23934
23935	* config/riscv/linux.h (MUSL_ABI_SUFFIX): Delete unnecessary backslash.
23936	(LD_EMUL_SUFFIX): New.
23937	(LINK_SPEC): Use it.
23938
239392018-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
23940
23941	* doc/extend.texi (PowerPC Built-in Functions): Rename this
23942	subsection.
23943	(Basic PowerPC Built-in Functions): The new name of the
23944	subsection previously known as "PowerPC Built-in Functions".
23945	(Basic PowerPC Built-in Functions Available on all Configurations):
23946	New subsubsection.
23947	(Basic PowerPC Built-in Functions Available on ISA 2.05): New
23948	subsubsection.
23949	(Basic PowerPC Built-in Functions Available on ISA 2.06): New
23950	subsubsection.
23951	(Basic PowerPC Built-in Functions Available on ISA 2.07): New
23952	subsubsection.
23953	(Basic PowerPC Built-in Functions Available on ISA 3.0): New
23954	subsubsection.
23955
239562018-05-08  Jakub Jelinek  <jakub@redhat.com>
23957
23958	PR target/85683
23959	* config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0
23960	after cmpelim optimization.
23961
239622018-05-08  Olga Makhotina  <olga.makhotina@intel.com>
23963
23964	* config.gcc: Support "goldmont".
23965	* config/i386/driver-i386.c (host_detect_local_cpu): Detect "goldmont".
23966	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
23967	PROCESSOR_GOLDMONT.
23968	* config/i386/i386.c (m_GOLDMONT): Define.
23969	(processor_target_table): Add "goldmont".
23970	(PTA_GOLDMONT): Define.
23971	(ix86_lea_outperforms): Add TARGET_GOLDMONT.
23972	(get_builtin_code_for_version): Handle PROCESSOR_GOLDMONT.
23973	(fold_builtin_cpu): Add M_INTEL_GOLDMONT.
23974	(fold_builtin_cpu): Add "goldmont".
23975	(ix86_add_stmt_cost): Add TARGET_GOLDMONT.
23976	(ix86_option_override_internal): Add "goldmont".
23977	* config/i386/i386.h (processor_costs): Define TARGET_GOLDMONT.
23978	(processor_type): Add PROCESSOR_GOLDMONT.
23979	* config/i386/i386.md: Add CPU "glm".
23980	* config/i386/glm.md: New file.
23981	* config/i386/x86-tune.def: Add m_GOLDMONT.
23982	* doc/invoke.texi: Add goldmont as x86 -march=/-mtune= CPU type.
23983
239842018-05-08  Jakub Jelinek  <jakub@redhat.com>
23985
23986	PR target/85572
23987	* config/i386/i386.c (ix86_expand_sse2_abs): Handle E_V2DImode and
23988	E_V4DImode.
23989	* config/i386/sse.md (abs<mode>2): Use VI_AVX2 iterator instead of
23990	VI1248_AVX512VL_AVX512BW.  Handle V2DImode and V4DImode if not
23991	TARGET_AVX512VL using ix86_expand_sse2_abs.  Formatting fixes.
23992
23993	PR target/85317
23994	* config/i386/i386.c (ix86_fold_builtin): Handle
23995	IX86_BUILTIN_{,P}MOVMSK{PS,PD,B}{,128,256}.
23996
23997	PR target/85480
23998	* config/i386/sse.md (ssequaterinsnmode): New mode attribute.
23999	(*<extract_type>_vinsert<shuffletype><extract_suf>_0): New pattern.
24000
240012018-05-08  Richard Earnshaw  <rearnsha@arm.com>
24002
24003	PR target/85658
24004	* config/arm/parsecpu.awk (check_cpu): Fix operator precedence.
24005	(check_arch): Likewise.
24006	(check_fpu): Return the result rather than printing it.
24007	(end arch): Fix operator precedence.
24008	(end cpu): Likewise.
24009	(END): Print the result from check_fpu.
24010
240112018-05-08  Richard Sandiford  <richard.sandiford@linaro.org>
24012	    Alan Hayward  <alan.hayward@arm.com>
24013	    David Sherwood  <david.sherwood@arm.com>
24014
24015	* config/aarch64/aarch64-sve.md (*pred_cmp<cmp_op><mode>_combine)
24016	(*pred_cmp<cmp_op><mode>, *fcm<cmp_op><mode>_and_combine)
24017	(*fcmuo<mode>_and_combine, *fcm<cmp_op><mode>_and)
24018	(*fcmuo<mode>_and): New patterns.
24019
240202018-05-08  Richard Sandiford  <richard.sandiford@linaro.org>
24021
24022	* config/aarch64/iterators.md (UNSPEC_COND_LO, UNSPEC_COND_LS)
24023	(UNSPEC_COND_HI, UNSPEC_COND_HS, UNSPEC_COND_UO): Delete.
24024	(SVE_INT_CMP, SVE_FP_CMP): New code iterators.
24025	(cmp_op, sve_imm_con): New code attributes.
24026	(SVE_COND_INT_CMP, imm_con): Delete.
24027	(cmp_op): Remove above unspecs from int attribute.
24028	* config/aarch64/aarch64-sve.md (*vec_cmp<cmp_op>_<mode>): Rename
24029	to...
24030	(*cmp<cmp_op><mode>): ...this.  Use UNSPEC_MERGE_PTRUE instead of
24031	comparison-specific unspecs.
24032	(*vec_cmp<cmp_op>_<mode>_ptest): Rename to...
24033	(*cmp<cmp_op><mode>_ptest): ...this and adjust likewise.
24034	(*vec_cmp<cmp_op>_<mode>_cc): Rename to...
24035	(*cmp<cmp_op><mode>_cc): ...this and adjust likewise.
24036	(*vec_fcm<cmp_op><mode>): Rename to...
24037	(*fcm<cmp_op><mode>): ...this and adjust likewise.
24038	(*vec_fcmuo<mode>): Rename to...
24039	(*fcmuo<mode>): ...this and adjust likewise.
24040	(*pred_fcm<cmp_op><mode>): New pattern.
24041	* config/aarch64/aarch64.c (aarch64_emit_unop, aarch64_emit_binop)
24042	(aarch64_emit_sve_ptrue_op, aarch64_emit_sve_ptrue_op_cc): New
24043	functions.
24044	(aarch64_unspec_cond_code): Remove handling of LTU, GTU, LEU, GEU
24045	and UNORDERED.
24046	(aarch64_gen_unspec_cond, aarch64_emit_unspec_cond): Delete.
24047	(aarch64_emit_sve_predicated_cond): New function.
24048	(aarch64_expand_sve_vec_cmp_int): Use aarch64_emit_sve_ptrue_op_cc.
24049	(aarch64_emit_unspec_cond_or): Replace with...
24050	(aarch64_emit_sve_or_conds): ...this new function.  Use
24051	aarch64_emit_sve_ptrue_op for the individual comparisons and
24052	aarch64_emit_binop to OR them together.
24053	(aarch64_emit_inverted_unspec_cond): Replace with...
24054	(aarch64_emit_sve_inverted_cond): ...this new function.  Use
24055	aarch64_emit_sve_ptrue_op for the comparison and
24056	aarch64_emit_unop to invert the result.
24057	(aarch64_expand_sve_vec_cmp_float): Update after the above
24058	changes.  Use aarch64_emit_sve_ptrue_op for native comparisons.
24059
240602018-05-07  Nathan Sidwell  <nathan@acm.org>
24061
24062	* doc/invoke.texi (C++ Dialect Options): Remove -ffor-scope.
24063	* doc/extend.texi (Deprecated Features): Remove -fno-for-scope
24064	(Backwards Compatibility): Likewise.
24065
240662018-05-07  Luis Machado  <luis.machado@linaro.org>
24067
24068	PR bootstrap/85681
24069	Revert:
24070	2018-05-07  Luis Machado  <luis.machado@linaro.org>
24071
24072	* config/aarch64/aarch64-protos.h (cpu_prefetch_tune)
24073	<prefetch_dynamic_strides>: New const bool field.
24074	* config/aarch64/aarch64.c (generic_prefetch_tune): Update to include
24075	prefetch_dynamic_strides.
24076	(exynosm1_prefetch_tune): Likewise.
24077	(thunderxt88_prefetch_tune): Likewise.
24078	(thunderx_prefetch_tune): Likewise.
24079	(thunderx2t99_prefetch_tune): Likewise.
24080	(qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides
24081	to false.
24082	(aarch64_override_options_internal): Update to set
24083	PARAM_PREFETCH_DYNAMIC_STRIDES.
24084	* doc/invoke.texi (prefetch-dynamic-strides): Document new option.
24085	* params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New.
24086	* params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define.
24087	* tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for
24088	prefetch-dynamic-strides setting.
24089
24090	2018-05-07  Luis Machado  <luis.machado@linaro.org>
24091
24092	* config/aarch64/aarch64-protos.h (cpu_prefetch_tune)
24093	<minimum_stride>: New const int field.
24094	* config/aarch64/aarch64.c (generic_prefetch_tune): Update to include
24095	minimum_stride field.
24096	(exynosm1_prefetch_tune): Likewise.
24097	(thunderxt88_prefetch_tune): Likewise.
24098	(thunderx_prefetch_tune): Likewise.
24099	(thunderx2t99_prefetch_tune): Likewise.
24100	(qdf24xx_prefetch_tune): Likewise. Set minimum_stride to 2048.
24101	(aarch64_override_options_internal): Update to set
24102	PARAM_PREFETCH_MINIMUM_STRIDE.
24103	* doc/invoke.texi (prefetch-minimum-stride): Document new option.
24104	* params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New.
24105	* params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define.
24106	* tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if
24107	stride is constant and is below the minimum stride threshold.
24108
241092018-05-07  Luis Machado  <luis.machado@linaro.org>
24110
24111	* config/aarch64/aarch64.c (qdf24xx_prefetch_tune) <l2_cache_size>: Set
24112	to 512.
24113
241142018-05-07  Luis Machado  <luis.machado@linaro.org>
24115
24116	* config/aarch64/aarch64-protos.h (cpu_prefetch_tune)
24117	<prefetch_dynamic_strides>: New const bool field.
24118	* config/aarch64/aarch64.c (generic_prefetch_tune): Update to include
24119	prefetch_dynamic_strides.
24120	(exynosm1_prefetch_tune): Likewise.
24121	(thunderxt88_prefetch_tune): Likewise.
24122	(thunderx_prefetch_tune): Likewise.
24123	(thunderx2t99_prefetch_tune): Likewise.
24124	(qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides
24125	to false.
24126	(aarch64_override_options_internal): Update to set
24127	PARAM_PREFETCH_DYNAMIC_STRIDES.
24128	* doc/invoke.texi (prefetch-dynamic-strides): Document new option.
24129	* params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New.
24130	* params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define.
24131	* tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for
24132	prefetch-dynamic-strides setting.
24133
241342018-05-07  Luis Machado  <luis.machado@linaro.org>
24135
24136	* config/aarch64/aarch64-protos.h (cpu_prefetch_tune)
24137	<minimum_stride>: New const int field.
24138	* config/aarch64/aarch64.c (generic_prefetch_tune): Update to include
24139	minimum_stride field.
24140	(exynosm1_prefetch_tune): Likewise.
24141	(thunderxt88_prefetch_tune): Likewise.
24142	(thunderx_prefetch_tune): Likewise.
24143	(thunderx2t99_prefetch_tune): Likewise.
24144	(qdf24xx_prefetch_tune): Likewise. Set minimum_stride to 2048.
24145	(aarch64_override_options_internal): Update to set
24146	PARAM_PREFETCH_MINIMUM_STRIDE.
24147	* doc/invoke.texi (prefetch-minimum-stride): Document new option.
24148	* params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New.
24149	* params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define.
24150	* tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if
24151	stride is constant and is below the minimum stride threshold.
24152
241532018-05-06  Jakub Jelinek  <jakub@redhat.com>
24154
24155	PR c++/85659
24156	* cfgexpand.c (expand_asm_stmt): Don't create a temporary if
24157	the type is addressable.  Don't force op into register if it has
24158	BLKmode.
24159
241602018-05-05  Roland McGrath  <mcgrathr@google.com>
24161
24162	PR other/77609
24163	* varasm.c (default_section_type_flags): Set SECTION_NOTYPE for
24164	any section for which we don't know a specific type it should have,
24165	regardless of name.  Previously this was done only for the exact
24166	names ".init_array", ".fini_array", and ".preinit_array".
24167	(default_elf_asm_named_section): Add comment about
24168	relationship with default_section_type_flags and SECTION_NOTYPE.
24169	(get_section): Don't consider it a type conflict if one side has
24170	SECTION_NOTYPE and the other doesn't, as long as neither has the
24171	SECTION_BSS et al used in the default_section_type_flags logic.
24172
241732018-05-05  Tom de Vries  <tom@codesourcery.com>
24174
24175	PR target/85653
24176	* config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_3): Define.
24177	(workaround_barsyncs): New function.
24178	(nvptx_reorg): Use workaround_barsyncs.
24179	* config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR.
24180	(define_expand "nvptx_membar_cta"): New define_expand.
24181	(define_insn "*nvptx_membar_cta"): New insn.
24182
241832018-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
24184
24185	* brig-builtins.def: Add consts to ptrs etc. in BRIG builtin defs.
24186	To improve optimization opportunities.
24187	* builtin-types.def: The new needed builtin types for the above.
24188
241892018-05-04  Richard Biener  <rguenther@suse.de>
24190
24191	* bb-reorder.c (sanitize_hot_paths): Release hot_bbs_to_check.
24192	* gimple-ssa-store-merging.c
24193	(imm_store_chain_info::output_merged_store): Remove redundant create,
24194	release split_store vector contents on failure.
24195	* tree-vect-slp.c (vect_schedule_slp_instance): Avoid leaking
24196	scalar stmt vector on cache hit.
24197
241982018-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
24199
24200	* common/config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
24201	Xilinx FP support.
24202	* config.gcc (powerpc-xilinx-eabi*): Remove.
24203	* config/rs6000/predicates.md (easy_fp_constant): Remove Xilinx FP
24204	support.
24205	(fusion_addis_mem_combo_load): Ditto.
24206	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove Xilinx
24207	FP support.
24208	(rs6000_cpu_cpp_builtins): Ditto.
24209	* config/rs6000/rs6000-linux.c
24210	(rs6000_linux_float_exceptions_rounding_supported_p): Ditto.
24211	* config/rs6000/rs6000-opts.h (enum fpu_type_t): Delete.
24212	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove Xilinx FP
24213	support.
24214	(rs6000_setup_reg_addr_masks): Ditto.
24215	(rs6000_init_hard_regno_mode_ok): Ditto.
24216	(rs6000_option_override_internal): Ditto.
24217	(legitimate_lo_sum_address_p): Ditto.
24218	(rs6000_legitimize_address): Ditto.
24219	(rs6000_legitimize_reload_address): Ditto.
24220	(rs6000_legitimate_address_p): Ditto.
24221	(abi_v4_pass_in_fpr): Ditto.
24222	(setup_incoming_varargs): Ditto.
24223	(rs6000_gimplify_va_arg): Ditto.
24224	(rs6000_split_multireg_move): Ditto.
24225	(rs6000_savres_strategy): Ditto.
24226	(rs6000_emit_prologue_components): Ditto.
24227	(rs6000_emit_epilogue_components): Ditto.
24228	(rs6000_emit_prologue): Ditto.
24229	(rs6000_emit_epilogue): Ditto.
24230	(rs6000_elf_file_end): Ditto.
24231	(rs6000_function_value): Ditto.
24232	(rs6000_libcall_value): Ditto.
24233	* config/rs6000/rs6000.h: Ditto.
24234	(TARGET_MINMAX_SF, TARGET_MINMAX_DF): Delete, merge to ...
24235	(TARGET_MINMAX): ... this.  New.
24236	(TARGET_SF_FPR, TARGET_DF_FPR, TARGET_SF_INSN, TARGET_DF_INSN): Delete.
24237	* config/rs6000/rs6000.md: Remove Xilinx FP support.
24238	(*movsi_internal1_single): Delete.
24239	* config/rs6000/rs6000.opt (msingle-float, mdouble-float, msimple-fpu,
24240	mfpu=, mxilinx-fpu): Delete.
24241	* config/rs6000/singlefp.h: Delete.
24242	* config/rs6000/sysv4.h: Remove Xilinx FP support.
24243	* config/rs6000/t-rs6000: Ditto.
24244	* config/rs6000/t-xilinx: Delete.
24245	* config/rs6000/titan.md: Adjust for fp_type removal.
24246	* config/rs6000/vsx.md: Remove Xilinx FP support.
24247	(VStype_simple): Delete.
24248	(VSfptype_simple, VSfptype_mul, VSfptype_div, VSfptype_sqrt): Delete.
24249	* config/rs6000/xfpu.h: Delete.
24250	* config/rs6000/xfpu.md: Delete.
24251	* config/rs6000/xilinx.h: Delete.
24252	* config/rs6000/xilinx.opt: Delete.
24253	* doc/invoke.texi (RS/6000 and PowerPC Options): Remove
24254	-msingle-float, -mdouble-float, -msimple-fpu, -mfpu=, and -mxilinx-fpu.
24255
242562018-05-04  Tom de Vries  <tom@codesourcery.com>
24257
24258	PR libgomp/85639
24259	* builtins.c (expand_builtin_goacc_parlevel_id_size): Handle null target
24260	if ignore == 0.
24261
242622018-05-04  Richard Biener  <rguenther@suse.de>
24263
24264	PR middle-end/85627
24265	* tree-complex.c (update_complex_assignment): We are always in SSA form.
24266	(expand_complex_div_wide): Likewise.
24267	(expand_complex_operations_1): Likewise.
24268	(expand_complex_libcall): Preserve EH info of the original stmt.
24269	(tree_lower_complex): Handle removed blocks.
24270	* tree.c (build_common_builtin_nodes): Do not set ECF_NOTRHOW
24271	on complex multiplication and division libcall builtins.
24272
242732018-05-04  Richard Biener  <rguenther@suse.de>
24274
24275	PR middle-end/85574
24276	* fold-const.c (negate_expr_p): Restrict negation of operand
24277	zero of a division to when we know that can happen without
24278	overflow.
24279	(fold_negate_expr_1): Likewise.
24280
242812018-05-04  Jakub Jelinek  <jakub@redhat.com>
24282
24283	PR libstdc++/85466
24284	* real.h (real_nextafter): Declare.
24285	* real.c (real_nextafter): New function.
24286	* fold-const-call.c (fold_const_nextafter): New function.
24287	(fold_const_call_sss): Call it for CASE_CFN_NEXTAFTER and
24288	CASE_CFN_NEXTTOWARD.
24289	(fold_const_call_1): For CASE_CFN_NEXTTOWARD call fold_const_call_sss
24290	even when arg1_mode is different from arg0_mode.
24291
242922018-05-03  Nathan Sidwell  <nathan@acm.org>
24293
24294	* doc/extend.texi (Deprecated Features): Remove
24295	-ffriend-injection.
24296	(Backwards Compatibility): Likewise.
24297	* doc/invoke.texi (C++ Language Options): Likewise.
24298	(C++ Dialect Options): Likewise.
24299
243002018-05-03  Jakub Jelinek  <jakub@redhat.com>
24301
24302	PR target/85530
24303	* config/i386/avx512fintrin.h (_mm512_mullox_epi64,
24304	_mm512_mask_mullox_epi64): New intrinsics.
24305
243062018-05-03  Tom de Vries  <tom@codesourcery.com>
24307
24308	PR testsuite/85106
24309	* doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization
24310	dump files): Add offload-tree.
24311
243122018-05-03  Richard Biener  <rguenther@suse.de>
24313
24314	PR tree-optimization/85615
24315	* tree-ssa-threadupdate.c (thread_block_1): Only allow exits
24316	to loops not nested in BBs loop father to avoid creating multi-entry
24317	loops.
24318
243192018-05-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24320
24321	PR tree-optimization/70291
24322	* tree-complex.c (expand_complex_libcall): Add type, inplace_p
24323	arguments.  Change return type to tree.  Emit libcall as a new
24324	statement rather than replacing existing one when inplace_p is true.
24325	(expand_complex_multiplication_components): New function.
24326	(expand_complex_multiplication): Expand floating-point complex
24327	multiplication using the above.
24328	(expand_complex_division): Rename inner_type parameter to type.
24329	Update expand_complex_libcall call-site.
24330	(expand_complex_operations_1): Update expand_complex_multiplication
24331	and expand_complex_division call-sites.
24332
243332018-05-02  Jakub Jelinek  <jakub@redhat.com>
24334
24335	PR target/85582
24336	* config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
24337	*ashl<dwi>3_doubleword_mask_1, *<shift_insn><dwi>3_doubleword_mask,
24338	*<shift_insn><dwi>3_doubleword_mask_1): In condition require that
24339	the highest significant bit of the shift count mask is clear.  In
24340	check whether and[sq]i3 is needed verify that all significant bits
24341	of the shift count other than the highest are set.
24342
243432018-05-02  Tom de Vries  <tom@codesourcery.com>
24344
24345	PR libgomp/82428
24346	* builtins.def (DEF_GOACC_BUILTIN_ONLY): Define.
24347	* omp-builtins.def (BUILT_IN_GOACC_PARLEVEL_ID)
24348	(BUILT_IN_GOACC_PARLEVEL_SIZE): New builtin.
24349	* builtins.c (expand_builtin_goacc_parlevel_id_size): New function.
24350	(expand_builtin): Call expand_builtin_goacc_parlevel_id_size.
24351	* doc/extend.texi (Other Builtins): Add __builtin_goacc_parlevel_id and
24352	__builtin_goacc_parlevel_size.
24353
243542018-05-02  Richard Biener  <rguenther@suse.de>
24355
24356	PR tree-optimization/85597
24357	* tree-vect-stmts.c (vectorizable_operation): For ternary SLP
24358	do not use split vect_get_vec_defs call but call vect_get_slp_defs
24359	directly.
24360
243612018-05-02  Tom de Vries  <tom@codesourcery.com>
24362
24363	PR testsuite/85106
24364	* doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization
24365	dump files): Add ltrans-tree.
24366
243672018-05-02  Tom de Vries  <tom@codesourcery.com>
24368
24369	PR testsuite/85106
24370	* doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization
24371	dump files): Add wpa-ipa.
24372
243732018-05-02  Segher Boessenkool  <segher@kernel.crashing.org>
24374
24375	* config.gcc (powerpc*-*-*): Remove paired.h.  Unsupport the
24376	powerpc*-*-linux*paired* target.
24377	* config/rs6000/750cl.h: Delete.
24378	* config/rs6000/paired.h: Delete.
24379	* config/rs6000/paired.md: Delete.
24380	* config/rs6000/predicates.md (easy_vector_constant): Remove paired
24381	float support.
24382	* config/rs6000/rs6000-builtin.def: Remove paired float support.
24383	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
24384	comment.  Remove paired float support.
24385	* config/rs6000/rs6000-modes.def: Remove V2SF and V2SI.
24386	* config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete
24387	VECTOR_PAIRED.
24388	* config/rs6000/rs6000-protos.h (paired_expand_vector_init,
24389	paired_emit_vector_cond_expr, paired_expand_vector_move): Delete
24390	declarations.
24391	* config/rs6000/rs6000.c: Remove paired float support.
24392	(paired_expand_vector_init, paired_expand_vector_move,
24393	paired_emit_vector_compare, paired_emit_vector_cond_expr,
24394	(paired_expand_lv_builtin, paired_expand_stv_builtin,
24395	paired_expand_builtin, paired_expand_predicate_builtin,
24396	paired_init_builtins): Delete.
24397	* config/rs6000/rs6000.h: Remove paired float support.
24398	* config/rs6000/rs6000.md: Remove paired float support.
24399	(move_from_CR_ov_bit): Delete.
24400	* config/rs6000/rs6000.opt (mpaired): Delete.
24401	* config/rs6000/t-rs6000: Remove paired.md from MD_INCLUDES.
24402	* doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mpaired.
24403
244042018-05-02  Richard Biener  <rguenther@suse.de>
24405
24406	PR middle-end/85567
24407	* gimplify.c (gimplify_save_expr): When in SSA form allow
24408	SAVE_EXPRs to compute to SSA vars.
24409
244102018-05-02  Jakub Jelinek  <jakub@redhat.com>
24411
24412	PR target/85582
24413	* config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
24414	*ashl<dwi>3_doubleword_mask_1, *<shift_insn><dwi>3_doubleword_mask,
24415	*<shift_insn><dwi>3_doubleword_mask_1): If and[sq]i3 is needed, don't
24416	clobber operands[2], instead use a new pseudo.  Formatting fixes.
24417
244182018-05-02  Richard Sandiford  <richard.sandiford@linaro.org>
24419
24420	PR tree-optimization/85586
24421	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Only
24422	exit early for statements in the same group if the accesses are
24423	not strided.
24424
244252018-05-02  Tom de Vries  <tom@codesourcery.com>
24426
24427	PR lto/85451
24428	* lto-wrapper.c (compile_offload_image): Add "could not find mkoffload"
24429	error message.
24430
244312018-05-01  Marc Glisse  <marc.glisse@inria.fr>
24432
24433	PR tree-optimization/85143
24434	* match.pd (A<B&A<C): Extend to BIT_IOR_EXPR.
24435
244362018-05-01  Tom de Vries  <tom@codesourcery.com>
24437
24438	PR lto/85451
24439	* config/nvptx/mkoffload.c (main): Suggest using -B in "offload compiler
24440	not found" error message.
24441
244422018-05-01  Tom de Vries  <tom@codesourcery.com>
24443
24444	PR other/83786
24445	* vec.h	(VEC_ORDERED_REMOVE_IF, VEC_ORDERED_REMOVE_IF_FROM_TO): Define.
24446	* vec.c (test_ordered_remove_if): New function.
24447	(vec_c_tests): Call test_ordered_remove_if.
24448	* dwarf2cfi.c (connect_traces): Use VEC_ORDERED_REMOVE_IF_FROM_TO.
24449	* lto-streamer-out.c (prune_offload_funcs): Use VEC_ORDERED_REMOVE_IF.
24450	* tree-vect-patterns.c (vect_pattern_recog_1): Use
24451	VEC_ORDERED_REMOVE_IF.
24452
244532018-05-01  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
24454
24455	PR tree-optimization/82665
24456	* vr-values.c (vr_values::extract_range_from_binary_expr): Handle
24457	pointer subtraction where arguments come from a memchr call.
24458
244592018-05-01  Jakub Jelinek  <jakub@redhat.com>
24460
24461	* configure.ac (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Use
24462	--push-state --as-needed and --pop-state instead of --as-needed and
24463	--no-as-needed if ld supports it.
24464	* configure: Regenerated.
24465
24466	PR web/85578
24467	* doc/install.texi2html: Replace _002d with - and _002a with * in
24468	generated html files using sed.
24469
244702018-04-30  David Malcolm  <dmalcolm@redhat.com>
24471
24472	PR c++/85523
24473	* gcc-rich-location.c (blank_line_before_p): New function.
24474	(use_new_line): New function.
24475	(gcc_rich_location::add_fixit_insert_formatted): New function.
24476	* gcc-rich-location.h
24477	(gcc_rich_location::add_fixit_insert_formatted): New function.
24478
244792018-04-30  David Malcolm  <dmalcolm@redhat.com>
24480
24481	* selftest.c (assert_streq): Rename "expected" and "actual" to
24482	"val1" and "val2".  Extend NULL-handling to cover both inputs
24483	symmetrically, while still requiring both to be non-NULL for a pass.
24484	* selftest.h (assert_streq): Rename "expected" and "actual" to
24485	"val1" and "val2".
24486	(ASSERT_EQ): Likewise.
24487	(ASSERT_EQ_AT): Likewise.
24488	(ASSERT_KNOWN_EQ): Likewise.
24489	(ASSERT_KNOWN_EQ_AT): Likewise.
24490	(ASSERT_NE): Likewise.
24491	(ASSERT_MAYBE_NE): Likewise.
24492	(ASSERT_MAYBE_NE_AT): Likewise.
24493	(ASSERT_STREQ): Likewise.  Clarify that both must be non-NULL for
24494	the assertion to pass.
24495	(ASSERT_STREQ_AT): Likewise.
24496
244972018-04-30  Jonathan Wakely  <jwakely@redhat.com>
24498
24499	* doc/invoke.texi (-fpie, -fPIE): Fix grammar and clarify
24500	interaction with -pie.
24501
245022018-04-30  David Malcolm  <dmalcolm@redhat.com>
24503
24504	* selftest.h: Fix alphabetization of per-source-file selftest
24505	declarations.
24506
245072018-04-30  Jason Merrill  <jason@redhat.com>
24508
24509	PR c++/61982 - dead stores to destroyed objects.
24510	* gimplify.c (gimplify_modify_expr): Simplify complex lvalue on LHS
24511	of clobber.
24512
245132018-04-30  Jason Merrill  <jason@redhat.com>
24514
24515	* tree.c (build_clobber): New.
24516	* tree.h: Declare it.
24517	* gimplify.c (gimplify_bind_expr, gimplify_target_expr): Use it.
24518
245192018-04-30  David Malcolm  <dmalcolm@redhat.com>
24520
24521	* diagnostic-show-locus.c (layout::layout): Update for
24522	location_get_source_line returning a char_span.
24523	(struct char_span): Move to input.h.
24524	(struct correction): Update for fields in char_span becoming
24525	private.
24526	(struct source_line): Update for location_get_source_line
24527	returning a char_span.
24528	(layout::print_line): Likewise.
24529	* edit-context.c (edited_file::print_content): Likewise.
24530	(edited_file::print_diff_hunk): Likewise.
24531	(edited_file::print_run_of_changed_lines): Likewise.
24532	(edited_file::get_num_lines): Likewise.
24533	(edited_line::edited_line): Likewise.
24534	* final.c (asm_show_source): Likewise.
24535	* input.c (location_get_source_line): Convert return type
24536	from const char * to char_span, losing the final "line_len"
24537	param.
24538	(dump_location_info): Update for the above.
24539	(get_substring_ranges_for_loc): Likewise.  Use a char_span
24540	when handling the literal within the line.
24541	(test_reading_source_line): Update for location_get_source_line
24542	returning a char_span.
24543	* input.h (class char_span): Move here from
24544	diagnostic-show-locus.c, converting from a struct to a class.
24545	Make data members private.
24546	(char_span::operator bool): New.
24547	(char_span::length): New.
24548	(char_span::get_buffer): New.
24549	(char_span::operator[]): New.
24550	(char_span::subspan): Make const.
24551	(char_span::xstrdup): New.
24552	(location_get_source_line): Convert return type from const char *
24553	to char_span, losing the final "line_size" param.
24554
245552018-04-30  Jan Hubicka  <jh@suse.cz>
24556
24557	* lto-wrapper.c (ltrans_priorities): New static var.
24558	(cmp_priority): New.
24559	(run_gcc): Read priorities and if doing parallel build order
24560	the Makefile by them.
24561
245622018-04-30  David Malcolm  <dmalcolm@redhat.com>
24563
24564	* input.h (builtins_location_check): Convert to a STATIC_ASSERT.
24565
245662018-04-30  Richard Biener  <rguenther@suse.de>
24567
24568	* tree-cfg.c (verify_address): Remove base argument, add
24569	flag whether to check TREE_ADDRESSABLE and do that.
24570	(verify_expr): Remove.
24571	(verify_types_in_gimple_reference): Add pieces from verify_expr.
24572	(verify_gimple_assign_single): Likewise.
24573	(verify_gimple_switch): Likewise.
24574	(verify_expr_location_1): Dereference tp once.  Add (disabled)
24575	piece from verify_expr.
24576	(verify_gimple_in_cfg): Do not call verify_expr on all ops.
24577
245782018-04-30  Claudiu Zissulescu  <claziss@synopsys.com>
24579
24580	* config/arc/linux.h (CLEAR_INSN_CACHE): Define.
24581
245822018-04-30  Claudiu Zissulescu  <claziss@synopsys.com>
24583
24584	* config/arc/arc-protos.h (prepare_extend_operands): Remove.
24585	(small_data_pattern): Likewise.
24586	(arc_rewrite_small_data): Likewise.
24587	* config/arc/arc.c (LEGITIMATE_SMALL_DATA_OFFSET_P): Remove.
24588	(LEGITIMATE_SMALL_DATA_ADDRESS_P): Likewise.
24589	(get_symbol_alignment): New function.
24590	(legitimate_small_data_address_p): Likewise.
24591	(legitimate_scaled_address): Update, call
24592	legitimate_small_data_address_p.
24593	(output_sdata): New static variable.
24594	(arc_print_operand): Update how we handle small data operands.
24595	(arc_print_operand_address): Likewise.
24596	(arc_legitimate_address_p): Update, use
24597	legitimate_small_data_address_p.
24598	(arc_rewrite_small_data_p): Remove.
24599	(arc_rewrite_small_data_1): Likewise.
24600	(arc_rewrite_small_data): Likewise.
24601	(small_data_pattern): Likewise.
24602	(compact_sda_memory_operand): Update to use
24603	legitimate_small_data_address_p and get_symbol_alignment.
24604	(prepare_move_operands): Don't rewite sdata pattern.
24605	(prepare_extend_operands): Remove.
24606	* config/arc/arc.md (zero_extendqihi2): Don't rewrite sdata
24607	pattern.
24608	(zero_extendqisi2): Likewise.
24609	(zero_extendhisi2): Likewise.
24610	(extendqihi2): Likewise.
24611	(extendqisi2): Likewise.
24612	(extendhisi2): Likewise.
24613	(addsi3): Likewise.
24614	(subsi3): Likewise.
24615	(andsi3): Likewise.
24616	* config/arc/constraints.md (Usd): Change it to memory constraint.
24617
246182018-04-30  Claudiu Zissulescu  <claziss@synopsys.com>
24619
24620	* config/arc/arc.c (arc_split_move): Allow signed 6-bit constants
24621	as source of std instructions.
24622	* config/arc/arc.md (movsi_insn): Update pattern predicate to
24623	allow 6-bit constants as source for store instructions.
24624	(movdi_insn): Update instruction pattern to allow 6-bit constants
24625	as source for store instructions.
24626
246272018-04-30  Jonathan Wakely  <jwakely@redhat.com>
24628
24629	* doc/invoke.texi (-fdebug-types-section): Fix grammar.
24630
246312018-04-30  Nathan Sidwell  <nathan@acm.org>
24632	    Sandra Loosemore  <sandra@codesourcery.com>
24633
24634	* dumpfile.c (dump_open): Allow '-' for stdout.
24635	* doc/invoke.texi (Developer Options): Document dump filename
24636	determination early.  Document stdin/stdout selection.
24637
246382018-04-30  Andrew Sadek  <andrew.sadek.se@gmail.com>
24639
24640	Microblaze Target: PIC data text relative
24641
24642	* config/microblaze/microblaze.opt: add new option -mpic-data-text-rel.
24643	* config/microblaze/microblaze-protos.h (microblaze_constant_address_p):
24644	Add declaration.
24645	* config/microblaze/microblaze.h (microblaze_constant_address_p):
24646	CONSTANT_ADDRESS_P definition to microblaze_constant_address_p.
24647	* config/microblaze/microblaze.c (TARGET_PIC_DATA_TEXT_REL):
24648	New addressing mode for data-text relative position indepenedent code.
24649	(microblaze_classify_unspec): add 'UNSPEC_TEXT' case ->
24650	'ADDRESS_SYMBOLIC_TXT_REL'.
24651	(microblaze_classify_address): Add handling for UNSPEC + CONST_INT.
24652	(microblaze_legitimate_pic_operand): Exclude function calls from
24653	pic operands in case of TARGET_PIC_DATA_TEXT_REL option.
24654	(microblaze_legitimize_address): Generate 'UNSPEC_TEXT' for all possible
24655	addresses cases.
24656	(microblaze_address_insns): Add 'ADDRESS_SYMBOLIC_TXT_REL' case.
24657	(print_operand): Add 'ADDRESS_SYMBOLIC_TXT_REL' case.
24658	(print_operand_address): Add 'ADDRESS_SYMBOLIC_TXT_REL' case + handling
24659	for 'address + offset'.
24660	(microblaze_expand_prologue): Add new function prologue call for
24661	'r20' assignation.
24662	(microblaze_asm_generate_pic_addr_dif_vec): Override new target hook
24663	'TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC' to disable address diff vector
24664	table in case of TARGET_PIC_DATA_TEXT_REL.
24665	(expand_pic_symbol_ref): Add handling for 'UNSPEC_TEXT'.
24666	* config/microblaze/microblaze.md (TARGET_PIC_DATA_TEXT_REL):
24667	Add new macros 'UNSPEC_TEXT',
24668	'UNSPEC_SET_TEXT' + add rule for setting r20 in function prologue
24669	+ exclude function calls from 'UNSPEC_PLT' in case of data text
24670	relative mode.
24671	* doc/tm.texi.in (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add
24672	new target hook for generating address diff vector tables in case of
24673	flag_pic.
24674	* doc/tm.texi : Regenerate.
24675	* stmt.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Append new condition
24676	'targetm.asm_out.generate_pic_addr_diff_vec' to flag_pic in case
24677	of addr diff vector generation.
24678	* target.def (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add
24679	target hook definition.
24680	* targhooks.h, targhooks.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC):
24681	Add default function for generate_pic_addr_diff_vec -> flag_pic.
24682	* doc/invoke.texi (Add new pic option): Add new microblaze pic
24683	option for data text relative.
24684
246852018-04-30  Richard Biener  <rguenther@suse.de>
24686
24687	* tree-chrec.h (evolution_function_is_constant_p): Remove
24688	redundant check.
24689	* tree-cfg.c (tree_node_can_be_shared): Re-order checks.
24690
246912018-04-30  Richard Biener  <rguenther@suse.de>
24692
24693	PR bootstrap/85571
24694	* dwarf2out.c (gen_producer_string): Ignore -fchecking[=].
24695
246962018-04-30  Richard Biener  <rguenther@suse.de>
24697
24698	PR tree-optimization/28364
24699	PR tree-optimization/85275
24700	* tree-ssa-loop-ch.c (ch_base::copy_headers): Stop after
24701	copying first exit test.
24702
247032018-04-28  Mark Wielaard  <mark@klomp.org>
24704
24705	* dwarf2out.c (dwarf2out_finish): Add .debug_addr table header for
24706	dwarf_version >= 5.
24707	(dwarf_AT): Handle DW_AT_addr_base.
24708	(add_top_level_skeleton_die_attrs): Use dwarf_AT for DW_AT_addr_base.
24709
247102018-04-28  Uros Bizjak  <ubizjak@gmail.com>
24711
24712	PR target/84431
24713	* config/i386/i386.md (*ashl<dwi>3_doubleword_mask): New pattern.
24714	(*ashl<dwi>3_doubleword_mask_1): Ditto.
24715	(*<shift_insn><dwi>3_doubleword_mask): Ditto.
24716	(*<shift_insn><dwi>3_doubleword_mask_1): Ditto.
24717
247182018-04-28  Richard Biener  <rguenther@suse.de>
24719
24720	* tree-cfg.c (verify_gimple_phi): Take a gphi * argument.
24721	(verify_gimple_in_cfg): Rename visited_stmts to visited_throwing_stmts
24722	to reflect use.  Only add interesting stmts.
24723
247242018-04-27  Martin Jambor  <mjambor@suse.cz>
24725
24726	PR ipa/85549
24727	* ipa-cp.c (find_aggregate_values_for_callers_subset): Make sure
24728	the jump function allows for passing through aggregate values.
24729
247302018-04-27  David Malcolm  <dmalcolm@redhat.com>
24731
24732	* input.h (in_system_header_at): Convert from macro to inline
24733	function.
24734	(from_macro_expansion_at): Likewise.
24735	(from_macro_definition_at): Likewise.
24736
247372018-04-27  Jeff Law  <law@redhat.com>
24738
24739	* config.gcc: Mark tile* targets as deprecated/obsolete.
24740
247412018-04-27  Richard Biener  <rguenther@suse.de>
24742
24743	* config/aarch64/aarch64.c: Simplify ap.__stack advance and
24744	fix for ILP32.
24745
247462018-04-27  Richard Biener  <rguenther@suse.de>
24747
24748	* tree-cfg.c (verify_expr): Make dead code hit gcc_unreachable.
24749
247502018-04-27  Uros Bizjak  <ubizjak@gmail.com>
24751
24752	* config/i386/i386.md (*movti_internal): Substitute Ye constraint
24753	with Yd constraint. Set "preferred_for_speed" attribute from
24754	TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC for alternatives
24755	with Yd constraint.
24756	(*movdi_internal): Ditto.
24757	(movti_interunit splitters): Remove
24758	TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC from insn condition.
24759	(movdi_interunit splitters): Ditto.
24760	* config/i386/constraints.md (Ye): Remove.
24761	(Yd): Do not depend on TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC.
24762
247632018-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24764
24765	PR target/85512
24766	* config/aarch64/constraints.md (Usg): Limit to 31.
24767	(Usj): Limit to 63.
24768
247692018-04-27  Jakub Jelinek  <jakub@redhat.com>
24770
24771	PR tree-optimization/85529
24772	* tree-ssa-reassoc.c (optimize_range_tests_var_bound): Add FIRST_BB
24773	argument.  Don't call get_nonzero_bits if opcode is ERROR_MARK_NODE,
24774	rhs2 def stmt's bb is dominated by first_bb and it isn't an obvious
24775	zero extension or masking of the MSB bit.
24776	(optimize_range_tests): Add FIRST_BB argument, pass it through
24777	to optimize_range_tests_var_bound.
24778	(maybe_optimize_range_tests, reassociate_bb): Adjust
24779	optimize_range_tests callers.
24780
247812018-04-26  Richard Biener  <rguenther@suse.de>
24782	    Jakub Jelinek  <jakub@redhat.com>
24783
24784	* cgraph.h (symbol_table): Just declare debug method here.
24785	* symtab.c (symbol_table::debug): Define.
24786
247872018-04-26  Eric Botcazou  <ebotcazou@adacore.com>
24788
24789	* loop-invariant.c (may_assign_reg_p): Return false for frame pointer.
24790
247912018-04-26  Uros Bizjak  <ubizjak@gmail.com>
24792
24793	* config/i386/i386.md ("isa" attribute): Add x64_sse2.
24794	("enabled" attribute): Handle x64_sse2 "isa" attribute.
24795	(*movdi_internal): Substitute Yi and Yj constraint with x
24796	and Ym and Yn constraint with y constraint.  Update "isa"
24797	attribute and set "preferred_for_speed" attribute from
24798	TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC for updated alternatives.
24799	(*movsi_internal): Ditto.
24800	(*movdf_internal): Ditto.
24801	(*movsf_internal): Ditto.
24802	(*zero_extendsidi2): Ditto.
24803	* config/i386/sse.md (vec_set<mode>_0): Ditto.
24804	(sse2_loadld): Ditto.
24805	(*vec_extract<ssevecmodelower>_0): Ditto.
24806	(*vec_extractv4si_0_zext_sse4): Ditto.
24807	(vec_concatv2di): Ditto.
24808	(*vec_dup<mode>): Ditto.
24809	* config/i386/mmx.md (*mov<mode>_internal): Ditto.
24810	* config/i386/constraints.md (Yi): Remove.
24811	(Yj): Remove.
24812	(Ym): Remove.
24813	(Yn): Remove.
24814
248152018-04-26  Nathan Sidwell  <nathan@acm.org>
24816
24817	* dumpfile.c (dump_open): New.
24818	(dump_open_alternate_stream, dump_start, dump_begin): Call it.
24819	(dump_finish): Detect stdio/stderr by value not name.
24820
248212018-04-26  Jonathan Wakely  <jwakely@redhat.com>
24822
24823	* doc/invoke.texi (-Wreturn-type): Document default status for C++.
24824
248252018-04-26  Tom de Vries  <tom@codesourcery.com>
24826
24827	PR target/84952
24828	* config/nvptx/nvptx.c (verify_neutering_jumps)
24829	(verify_neutering_labels): New function
24830	(nvptx_single): Use verify_neutering_jumps and verify_neutering_labels.
24831
248322018-04-26  Tom de Vries  <tom@codesourcery.com>
24833
24834	PR target/84025
24835	* config/nvptx/nvptx.c (needs_neutering_p): New function.
24836	(nvptx_single): Use needs_neutering_p to skip over insns that do not
24837	need neutering.
24838
248392018-04-26  Richard Biener  <rguenther@suse.de>
24840	    Tom de Vries  <tom@codesourcery.com>
24841
24842	PR lto/85422
24843	* lto-streamer-out.c (output_function): Fixup loops if required to match
24844	discovery done in the reader.
24845
248462018-04-26  Richard Biener  <rguenther@suse.de>
24847
24848	PR tree-optimization/85116
24849	* tree-ssa-loop-ch.c (do_while_loop_p): A do-while loop should
24850	have a loop exit from the single latch predecessor.  Remove
24851	case of header with just condition.
24852	(ch_base::copy_headers): Exclude infinite loops from any
24853	processing.
24854	(pass_ch::execute): Record exits.
24855
248562018-04-26  Richard Biener  <rguenther@suse.de>
24857
24858	* tree-vect-data-refs.c (vect_get_data_access_cost): Get
24859	prologue cost vector and pass it to vect_get_load_cost.
24860	(vect_get_peeling_costs_all_drs): Likewise.
24861	(vect_peeling_hash_get_lowest_cost): Likewise.
24862	(vect_enhance_data_refs_alignment): Likewise.
24863
248642018-04-26  Richard Biener  <rguenther@suse.de>
24865
24866	PR middle-end/85450
24867	* tree-cfg.c (verify_gimple_assign_unary): Restore proper
24868	checking of integer<->pointer conversions.
24869	* omp-expand.c (expand_omp_for_static_nochunk): Avoid
24870	sign-/zero-extending pointer types.
24871	(expand_omp_for_static_chunk): Likewise.
24872
248732018-03-22  Hans-Peter Nilsson  <hp@axis.com>
24874	    Jean Lee  <xiaoyur347@gmail.com>
24875
24876	* config/mips/mips.c (mips_asan_shadow_offset): New function.
24877	(TARGET_ASAN_SHADOW_OFFSET): Define.
24878	* config/mips/mips.h (FRAME_GROWS_DOWNWARD): Augment to also be
24879	true for -fsanitize=address.
24880
248812018-04-25  Mark Wielaard  <mark@klomp.org>
24882
24883	* dwarf2out.c (file_info_cmp): Sort longer dir prefixes before
24884	shorter ones.
24885
248862018-04-25  Jakub Jelinek  <jakub@redhat.com>
24887
24888	* config/i386/i386.md (*x86_mov<mode>cc_0_m1): Use type "alu1" rather
24889	than "alu", remove explicit "memory" and "imm_disp" attributes.
24890	(*x86_mov<mode>cc_0_m1_se, *x86_mov<mode>cc_0_m1_neg): Likewise.
24891
24892	PR middle-end/85414
24893	* simplify-rtx.c (simplify_unary_operation_1) <case SIGN_EXTEND,
24894	case ZERO_EXTEND>: Pass SUBREG_REG (op) rather than op to
24895	gen_lowpart_no_emit.
24896
248972018-04-25  Sebastian Peryt  <sebastian.peryt@intel.com>
24898
24899	PR target/85473
24900	* config/i386/i386.c (ix86_expand_builtin): Change memory
24901	operand to XI, extend p0 to Pmode.
24902	* config/i386/i386.md: Change unspec volatile and operand
24903	1 mode to XI, change operand 0 mode to P.
24904
249052018-04-25  Chung-Ju Wu  <jasonwucj@gmail.com>
24906
24907	* config/nds32/nds32-predicates.c (nds32_can_use_bclr_p): Mask with
24908	GET_MODE_MASK before any checking.
24909	(nds32_can_use_bset_p): Likewise.
24910	(nds32_can_use_btgl_p): Likewise.
24911
249122018-04-25  Chung-Ju Wu  <jasonwucj@gmail.com>
24913
24914	* config/nds32/nds32-doubleword.md: New define_split pattern for
24915	illegal register number.
24916
249172018-04-25  Chung-Ju Wu  <jasonwucj@gmail.com>
24918
24919	* config/nds32/nds32.c (nds32_print_operand): Set op_value ealier.
24920
249212018-04-25  Chung-Ju Wu  <jasonwucj@gmail.com>
24922
24923	* config/nds32/nds32.h (ASM_APP_ON): Add missing newline character.
24924
249252018-04-25  Richard Biener  <rguenther@suse.de>
24926
24927	* lto-streamer.h (LTO_major_version): Bump to 8.
24928
249292018-04-25  Jakub Jelinek  <jakub@redhat.com>
24930
24931	* BASE-VER: Set to 9.0.0.
24932
249332018-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
24934
24935	* config/rs6000/rs6000.c (init_float128_ieee): Fix spelling mistakes
24936	in __abskf2 and __powikf2.
24937
249382018-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24939
24940	PR target/85512
24941	* config/aarch64/constraints.md (Usg, Usj): New constraints.
24942	* config/aarch64/iterators.md (cmode_simd): New mode attribute.
24943	* config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
24944	Use the above on operand 2.  Reindent.
24945	(*aarch64_lshr_sisd_or_int_<mode>3): Likewise.
24946
249472018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
24948
24949	PR target/85485
24950	* common/config/i386/i386-common.c (ix86_handle_option): Don't
24951	handle OPT_mcet.
24952	* config/i386/i386.opt (mcet): Removed.
24953	* doc/install.texi: Remove -mcet documentation.
24954	* doc/invoke.texi: Likewise.
24955
249562018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
24957
24958	PR target/85485
24959	* doc/install.texi: Remove -mcet from bootstrap-cet.
24960
249612018-04-24  Jakub Jelinek  <jakub@redhat.com>
24962
24963	PR target/85511
24964	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Don't define
24965	__builtin_ia32_readeflags_u32 and __builtin_ia32_writeeflags_u32
24966	if TARGET_64BIT.
24967
24968	PR target/85503
24969	* config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Punt if
24970	const_vector is not CONST_VECTOR or SYMBOL_REF for a constant pool
24971	containing a CONST_VECTOR.
24972
249732018-04-24  Cesar Philippidis  <cesar@codesourcery.com>
24974
24975	* doc/install.texi: Update newlib dependency for nvptx.
24976
249772018-04-24  Jakub Jelinek  <jakub@redhat.com>
24978
24979	PR target/85508
24980	* config/i386/i386.c (ix86_expand_vector_init_one_var): Use UINTVAL
24981	instead of INTVAL when shifting x left.
24982
249832018-04-24  Andreas Krebbel  <krebbel@linux.ibm.com>
24984
24985	PR tree-optimization/85478
24986	* tree-vect-loop.c (vect_analyze_loop_2): Do not call
24987	vect_grouped_store_supported for single element vectors.
24988
249892018-04-24  Richard Biener  <rguenther@suse.de>
24990
24991	PR target/85491
24992	* config/i386/i386.c (ix86_add_stmt_cost): Restrict strided
24993	load cost increase to the case of non-constant step.
24994
249952018-04-24  Jakub Jelinek  <jakub@redhat.com>
24996
24997	PR target/84828
24998	* reg-stack.c (move_for_stack_reg): Don't fail assertion about dead
24999	destination if any_malformed_asm.
25000
250012018-04-23  Eric Botcazou  <ebotcazou@adacore.com>
25002
25003	PR middle-end/85496
25004	* expr.c (store_field): In the bitfield case, if the value comes from
25005	a function call and is returned in registers by means of a PARALLEL,
25006	do not change the mode of the temporary unless BLKmode and VOIDmode.
25007
250082018-04-23  Andrey Belevantsev  <abel@ispras.ru>
25009
25010	PR rtl-optimization/85423
25011	* sel-sched-ir.c (has_dependence_note_mem_dep): Only discard
25012	dependencies to debug insns when the previous insn is non-debug.
25013
250142018-04-23  Claudiu Zissulescu  <claziss@synopsys.com>
25015
25016	* config/arc/arc.md ("vunspec"): Delete it, unify all the unspec
25017	enums into a single definition.
25018	(fls): Fix predicates and printing.
25019	(seti): Likewise.
25020
250212018-04-23  Claudiu Zissulescu  <claziss@synopsys.com>
25022
25023	* config/arc/arc-protos.h (check_if_valid_sleep_operand): Remove.
25024	* config/arc/arc.c (arc_expand_builtin): Sleep accepts registers
25025	and short u6 immediate.
25026	(check_if_valid_sleep_operand): Remove.
25027	* config/arc/arc.md (Sleep): Accepts registers and u6 immediates.
25028
250292018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
25030
25031	* config/nds32/nds32.c (nds32_compute_stack_frame): Consider
25032	flag_always_save_lp condition.
25033	* config/nds32/nds32.opt (malways-save-lp): New option.
25034
250352018-04-22  Shiva Chen  <shiva0217@gmail.com>
25036
25037	* config/nds32/nds32-protos.h (nds32_use_load_post_increment): Declare.
25038	* config/nds32/nds32.c (nds32_use_load_post_increment): New.
25039	* config/nds32/nds32.h
25040	(USE_LOAD_POST_INCREMENT, USE_LOAD_POST_DECREMENT): Define.
25041	(USE_STORE_POST_INCREMENT, USE_STORE_POST_DECREMENT): Define.
25042
250432018-04-22  Shiva Chen  <shiva0217@gmail.com>
25044
25045	* config/nds32/nds32-protos.h (nds32_ls_333_p): Remove.
25046	* config/nds32/nds32.c (nds32_ls_333_p): Remove.
25047
250482018-04-22  Shiva Chen  <shiva0217@gmail.com>
25049	    Chung-Ju Wu  <jasonwucj@gmail.com>
25050
25051	* config/nds32/nds32-protos.h (nds32_case_vector_shorten_mode):
25052	Declare.
25053	* config/nds32/nds32.c (nds32_case_vector_shorten_mode): New function.
25054	* config/nds32/nds32.h (CASE_VECTOR_SHORTEN_MODE): Modify.
25055
250562018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
25057
25058	* config/nds32/nds32.c (nds32_compute_stack_frame): Fix wrong value.
25059
250602018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
25061
25062	* config/nds32/nds32-protos.h (nds32_data_alignment,
25063	nds32_local_alignment): Declare.
25064	* config/nds32/nds32.c (nds32_data_alignment, nds32_constant_alignment,
25065	nds32_local_alignment): New functions.
25066	(TARGET_CONSTANT_ALIGNMENT): Define.
25067	* config/nds32/nds32.h (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
25068
250692018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
25070
25071	* config/nds32/nds32.c
25072	(TARGET_HARD_REGNO_MODE_OK): Move to the bottom of file.
25073	(TARGET_MODES_TIEABLE_P): Likewise.
25074
250752018-04-22  Chung-Ju Wu  <jasonwucj@gmail.com>
25076
25077	* config/nds32/nds32.c (nds32_asm_file_start): Display optimization
25078	level Ofast and Og.
25079
250802018-04-22  Monk Chiang  <sh.chiang04@gmail.com>
25081	    Chung-Ju Wu  <jasonwucj@gmail.com>
25082
25083	* config/nds32/constants.md (unspec_volatile_element): Add enum values
25084	for unaligned access.
25085	* config/nds32/nds32-intrinsic.c: Implementation of expanding
25086	unaligned access.
25087	* config/nds32/nds32-intrinsic.md: Likewise.
25088	* config/nds32/nds32_intrinsic.h: Likewise.
25089	* config/nds32/nds32.h (nds32_builtins): Likewise.
25090	* config/nds32/nds32.opt (munaligned-access): New option.
25091	* config/nds32/nds32.c (nds32_asm_file_start): Display
25092	flag_unaligned_access status.
25093
250942018-04-20  Kito Cheng  <kito.cheng@gmail.com>
25095
25096	* config/riscv/elf.h (LINK_SPEC): Pass --no-relax if
25097	-mno-relax is present.
25098	* config/riscv/linux.h (LINK_SPEC): Ditto.
25099
251002018-04-20  Martin Sebor  <msebor@redhat.com>
25101
25102	PR c/85365
25103	* gimple-fold.c (gimple_fold_builtin_strcpy): Suppress -Wrestrict
25104	for null pointers.
25105	(gimple_fold_builtin_stxcpy_chk): Same.
25106	* gimple-ssa-warn-restrict.c (check_bounds_or_overlap): Same.
25107
251082018-04-20  Michael Meissner  <meissner@linux.ibm.com>
25109
25110	PR target/85456
25111	* config/rs6000/rs6000.c (init_float128_ieee): Add support to call
25112	__powikf2 when long double is IEEE 128-bit.
25113
251142018-04-20  Kito Cheng  <kito.cheng@gmail.com>
25115
25116	* config/riscv/riscv.c (riscv_first_stack_step): Round up min
25117	step to make sure stack always aligned.
25118
251192018-04-20  Carl Love  <cel@us.ibm.com>
25120
25121	PR target/83402
25122	* config/rs6000/rs6000-c.c (rs6000_gimple_fold_builtin): Add
25123	size check for arg0.
25124
251252018-04-20  Nathan Sidwell  <nathan@codesourcery.com>
25126	    Tom de Vries  <tom@codesourcery.com>
25127
25128	PR target/85445
25129	* config/nvptx/nvptx.c (nvptx_emit_forking, nvptx_emit_joining):
25130	Emit insns for calls too.
25131	(nvptx_find_par): Always look for worker-level predecessor insn.
25132	(nvptx_propagate): Add is_call parm, return bool.  Copy frame for
25133	calls.
25134	(nvptx_vpropagate, nvptx_wpropagate): Adjust.
25135	(nvptx_process_pars): Propagate frames for calls.
25136
251372018-04-20  H.J. Lu  <hongjiu.lu@intel.com>
25138
25139	PR target/85469
25140	* common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET):
25141	Removed.
25142	(OPTION_MASK_ISA_IBT_UNSET): Likewise.
25143	(ix86_handle_option): Don't handle OPT_mibt.
25144	* config/i386/cet.h: Check __CET__ instead of __IBT__ and
25145	__SHSTK__.
25146	* config/i386/driver-i386.c (host_detect_local_cpu): Remove
25147	has_ibt and ibt.
25148	* config/i386/i386-c.c (ix86_target_macros_internal): Don't
25149	check OPTION_MASK_ISA_IBT nor flag_cf_protection.
25150	(ix86_target_macros): Define __CET__ with flag_cf_protection
25151	for -fcf-protection.
25152	* config/i386/i386.c (isa2_opts): Remove -mibt.
25153	* config/i386/i386.h (TARGET_IBT): Removed.
25154	(TARGET_IBT_P): Likewise.
25155	(ix86_valid_target_attribute_inner_p): Don't check OPT_mibt.
25156	* config/i386/i386.md (nop_endbr): Don't check TARGET_IBT.
25157	* config/i386/i386.opt (mcet): Update help message.
25158	(mshstk): Likewise.
25159	(mibt): Removed.
25160	* doc/invoke.texi: Remove -mibt.  Document __CET__.  Document
25161	-mcet as an alias for -mshstk.
25162
251632018-04-20  Richard Biener  <rguenther@suse.de>
25164
25165	PR middle-end/85475
25166	* match.pd ((X * CST) * Y -> (X * Y) * CST): Avoid exponential
25167	complexity by forcing a single use of the multiply operand.
25168
251692018-04-20  Martin Jambor  <mjambor@suse.cz>
25170
25171	ipa/85449
25172	* ipa-cp.c (cgraph_edge_brings_value_p): Move check for self-feeding
25173	recursion dependency to only apply to non-clones.
25174
251752018-04-20  Martin Jambor  <mjambor@suse.cz>
25176
25177	ipa/85447
25178	* ipa-cp.c (create_specialized_node): Check that clones of
25179	self-recursive edges exist during IPA-CP.
25180
251812018-04-19  Toon Moene  <toon@moene.org>
25182
25183	* doc/invoke.texi: Add -floop-unroll-and-jam to options enabled
25184	by -O3.
25185
251862018-04-19  Jakub Jelinek  <jakub@redhat.com>
25187
25188	PR tree-optimization/85467
25189	* fold-const.c (fold_ternary_loc) <case BIT_FIELD_REF>: Use
25190	VECTOR_TYPE_P macro.  If type is vector type, VIEW_CONVERT_EXPR the
25191	VECTOR_CST element to type.
25192
251932018-04-19  H.J. Lu  <hongjiu.lu@intel.com>
25194
25195	PR target/85397
25196	* config/i386/i386.h (STACK_SAVEAREA_MODE): New.
25197	* config/i386/i386.md (builtin_setjmp_setup): Removed.
25198	(builtin_longjmp): Likewise.
25199	(save_stack_nonlocal): New pattern.
25200	(restore_stack_nonlocal): Likewise.
25201
252022018-04-19  H.J. Lu  <hongjiu.lu@intel.com>
25203
25204	PR target/85404
25205	* config/i386/cet.c (file_end_indicate_exec_stack_and_cet):
25206	Replace ASM_OUTPUT_LABEL with fprintf.
25207
252082018-04-19  H.J. Lu  <hongjiu.lu@intel.com>
25209
25210	PR target/85417
25211	* config/i386/cet.c (file_end_indicate_exec_stack_and_cet):
25212	Check flag_cf_protection instead of TARGET_IBT and TARGET_SHSTK.
25213	* config/i386/i386-c.c (ix86_target_macros_internal): Also
25214	define __IBT__ and __SHSTK__ for -fcf-protection.
25215	* config/i386/i386.c (pass_insert_endbranch::gate): Don't check
25216	TARGET_IBT.
25217	(ix86_trampoline_init): Likewise.
25218	(x86_output_mi_thunk): Likewise.
25219	(ix86_notrack_prefixed_insn_p): Likewise.
25220	(ix86_option_override_internal): Don't disallow -fcf-protection.
25221	* config/i386/i386.md (rdssp<mode>): Also enable for
25222	-fcf-protection.
25223	(incssp<mode>): Likewise.
25224	(nop_endbr): Likewise.
25225	* config/i386/i386.opt (mcet): Change help message to built-in
25226	functions only.
25227	(mibt): Likewise.
25228	(mshstk): Likewise.
25229	* doc/invoke.texi: Remove -mcet, -mibt and -mshstk condition
25230	on -fcf-protection.  Change -mcet, -mibt and -mshstk to only
25231	enable CET built-in functions.
25232
252332018-04-19  Sebastian Peryt  <sebastian.peryt@intel.com>
25234
25235	* common/config/i386/i386-common.c
25236	(OPTION_MASK_ISA_MOVDIRI_SET, OPTION_MASK_ISA_MOVDIR64B_SET,
25237	OPTION_MASK_ISA_MOVDIRI_UNSET,
25238	OPTION_MASK_ISA_MOVDIR64B_UNSET): New defines.
25239	(ix86_handle_option): Handle -mmovdiri and -mmovdir64b.
25240	* config.gcc (movdirintrin.h): New header.
25241	* config/i386/cpuid.h (bit_MOVDIRI,
25242	bit_MOVDIR64B): New bits.
25243	* config/i386/driver-i386.c (host_detect_local_cpu): Detect -mmovdiri
25244	and -mmvodir64b.
25245	* config/i386/i386-builtin-types.def ((VOID, PUNSIGNED, UNSIGNED),
25246	(VOID, PVOID, PCVOID)): New function types.
25247	* config/i386/i386-builtin.def (__builtin_ia32_directstoreu_u32,
25248	__builtin_ia32_directstoreu_u64,
25249	__builtin_ia32_movdir64b): New builtins.
25250	* config/i386/i386-c.c (__MOVDIRI__, __MOVDIR64B__): New.
25251	* config/i386/i386.c (ix86_target_string): Added -mmovdir64b
25252	and -mmovdiri.
25253	(ix86_valid_target_attribute_inner_p): Ditto.
25254	(ix86_expand_special_args_builtin): Added VOID_FTYPE_PUNSIGNED_UNSIGNED
25255	and VOID_FTYPE_PUNSIGNED_UNSIGNED.
25256	(ix86_expand_builtin): Expand IX86_BUILTIN_MOVDIR64B.
25257	* config/i386/i386.h (TARGET_MOVDIRI, TARGET_MOVDIRI_P,
25258	TARGET_MOVDIR64B, TARGET_MOVDIR64B_P): New.
25259	* config/i386/i386.md (UNSPECV_MOVDIRI, UNSPECV_MOVDIR64B): New.
25260	(movdiri<mode>, movdir64b_<mode>): New.
25261	* config/i386/i386.opt: Add -mmovdiri and -mmovdir64b.
25262	* config/i386/immintrin.h: Include movdirintrin.h.
25263	* config/i386/movdirintrin.h: New file.
25264	* doc/invoke.texi: Added -mmovdiri and -mmovdir64b.
25265
252662018-04-19  Richard Biener  <rguenther@suse.de>
25267
25268	PR middle-end/85455
25269	* cfg.c (clear_bb_flags): When loop state says we have
25270	marked irreducible regions also preserve BB_IRREDUCIBLE_LOOP.
25271
252722018-04-19  Richard Biener  <rguenther@suse.de>
25273
25274	PR tree-optimization/84737
25275	* tree-vect-data-refs.c (vect_copy_ref_info): New function
25276	copying restrict info.
25277	(vect_setup_realignment): Use it.
25278	* tree-vectorizer.h (vect_copy_ref_info): Declare.
25279	* tree-vect-stmts.c (vectorizable_store): Copy ref info from
25280	the first DR to all generated stores.
25281	(vectorizable_load): Likewise for loads.
25282
252832018-04-19  Jakub Jelinek  <jakub@redhat.com>
25284
25285	PR tree-optimization/85446
25286	* match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Require
25287	the integral and pointer types to have the same precision.
25288
25289	* doc/install.texi: Document --disable-cet being the default and
25290	--enable-cet=auto.
25291
252922018-04-18  Martin Liska  <mliska@suse.cz>
25293
25294	* ipa-devirt.c (odr_subtypes_equivalent_p): Fix GNU coding
25295	style.
25296
252972018-04-18  Martin Liska  <mliska@suse.cz>
25298
25299	Revert
25300	2018-03-02  Eric Botcazou  <ebotcazou@adacore.com>
25301
25302	PR ipa/83983
25303	* ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both
25304	arguments if they are comparable.
25305
253062018-04-18  Martin Liska  <mliska@suse.cz>
25307
25308	Revert
25309	2018-03-13  Eric Botcazou  <ebotcazou@adacore.com>
25310
25311	PR lto/84805
25312	* ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of
25313	incomplete types.
25314
253152018-04-18  H.J. Lu  <hongjiu.lu@intel.com>
25316
25317	PR target/85388
25318	* config/i386/i386.c (ix86_expand_split_stack_prologue): Insert
25319	ENDBR after calling __morestack.
25320
253212018-04-18  David Malcolm  <dmalcolm@redhat.com>
25322
25323	PR jit/85384
25324	* configure.ac (gcc-driver-name.h): Honor --with-gcc-major-version
25325	by using gcc_base_ver to generate a gcc_driver_version, and use
25326	it when generating GCC_DRIVER_NAME.
25327	* configure: Regenerate.
25328
253292018-04-18  Jakub Jelinek  <jakub@redhat.com>
25330
25331	PR target/81084
25332	* config.gcc: Obsolete powerpc*-*-*spe*.
25333
253342018-04-17  Jakub Jelinek  <jakub@redhat.com>
25335
25336	PR debug/84637
25337	* dbxout.c (dbxout_int): Perform negation in unsigned int type.
25338	(stabstr_D): Change type of unum from unsigned int to
25339	unsigned HOST_WIDE_INT.  Perform negation in unsigned HOST_WIDE_INT
25340	type.
25341
253422018-04-17  Jim Wilson  <jimw@sifive.com>
25343
25344	PR 84856
25345	* config/riscv/riscv.c (riscv_compute_frame_info): Add calls to
25346	RISCV_STACK_ALIGN when using outgoing_args_size and pretend_args_size.
25347	Set arg_pointer_offset after using pretend_args_size.
25348
253492018-04-17  Jakub Jelinek  <jakub@redhat.com>
25350
25351	PR rtl-optimization/85431
25352	* dse.c (record_store): Ignore zero width stores.
25353
25354	PR sanitizer/85230
25355	* asan.c (handle_builtin_stack_restore): Adjust comment.  Emit
25356	__asan_allocas_unpoison call and last_alloca_addr = new_sp before
25357	__builtin_stack_restore rather than after it.
25358	* builtins.c (expand_asan_emit_allocas_unpoison): Pass
25359	arg1 + (virtual_dynamic_stack_rtx - stack_pointer_rtx) as second
25360	argument instead of virtual_dynamic_stack_rtx.
25361
253622018-04-17  Kelvin Nilsen  <kelvin@gcc.gnu.org>
25363
25364	* config/rs6000/rs6000-protos.h (rs6000_builtin_is_supported_p):
25365	New prototype.
25366	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
25367	Add note to error message to explain internal mapping of overloaded
25368	built-in function name to non-overloaded built-in function name.
25369	* config/rs6000/rs6000.c (rs6000_builtin_is_supported_p): New
25370	function.
25371
253722018-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
25373
25374	PR target/85424
25375	* config/rs6000/rs6000.md (pack<mode>): Do not try handle a pack
25376	where the inputs overlap with the output.
25377
253782018-04-17  Jakub Jelinek  <jakub@redhat.com>
25379
25380	* config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Add
25381	(=v, v) alternative and explicit "memory" attribute.
25382	(vec_extract_lo_<mode><mask_name>): Likewise.  Also add
25383	"type", "prefix", "prefix_extra", "length_immediate" and "mode"
25384	attributes.
25385	(vec_extract_lo_<mode><mask_name>): Add (=v, v) alternative and use
25386	"sselog1" type instead of "sselog".
25387	(vec_extract_hi_<mode><mask_name>): Use "sselog1" type instead of
25388	"sselog".  Remove explicit "memory" attribute.
25389	(vec_extract_lo_v32hi): Add (=v, v) alternative and explicit "memory",
25390	"type", "prefix", "prefix_extra", "length_immediate" and "mode"
25391	attributes.
25392	(vec_extract_hi_v32hi): Merge all alternatives into one, use
25393	"sselog1" type instead of "sselog".  Remove explicit "memory"
25394	attribute.
25395	(vec_extract_hi_v16hi): Merge each pair of alternatives into one,
25396	use "sselog1" type instead of "sselog".  Remove explicit "memory"
25397	attribute.
25398	(vec_extract_lo_v64qi): Add (=v, v) alternative and explicit "memory",
25399	"type", "prefix", "prefix_extra", "length_immediate" and "mode"
25400	attributes.
25401	(vec_extract_hi_v64qi): Merge all alternatives into one, use
25402	"sselog1" type instead of "sselog".  Remove explicit "memory"
25403	attribute.
25404	(vec_extract_hi_v32qi): Merge each pair of alternatives into one,
25405	use "sselog1" type instead of "sselog".  Remove explicit "memory"
25406	attribute.
25407
25408	PR target/85430
25409	* config/i386/i386.md (*ashlqi3_1_slp): Use alu1 type instead of alu.
25410
25411	PR middle-end/85414
25412	* rtlhooks.c (gen_lowpart_if_possible): Don't call gen_lowpart_SUBREG
25413	on a SUBREG.
25414
254152018-04-17  Martin Jambor  <mjambor@suse.cz>
25416
25417	PR ipa/85421
25418	* ipa-cp.c (create_specialized_node): Call
25419	expand_all_artificial_thunks if necessary.
25420
254212018-04-17  Martin Liska  <mliska@suse.cz>
25422
25423	PR lto/85405
25424	* ipa-devirt.c (odr_types_equivalent_p): Remove trailing
25425	in message, remote space in between '_G' and '('.
25426
254272018-04-17  Jakub Jelinek  <jakub@redhat.com>
25428
25429	PR target/85281
25430	* config/i386/sse.md (reduces<mode><mask_scalar_name>,
25431	avx512f_vmcmp<mode>3<round_saeonly_name>,
25432	avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
25433	avx512f_sgetexp<mode><mask_scalar_name><round_saeonly_scalar_name>,
25434	avx512f_rndscale<mode><round_saeonly_name>,
25435	avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
25436	avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
25437	Use %<iptr>2 instead of %2 for -masm=intel.
25438	(avx512f_vcvtss2usi<round_name>, avx512f_vcvtss2usiq<round_name>,
25439	avx512f_vcvttss2usi<round_saeonly_name>,
25440	avx512f_vcvttss2usiq<round_saeonly_name>): Use %k1 instead of %1 for
25441	-masm=intel.
25442	(avx512f_vcvtsd2usi<round_name>, avx512f_vcvtsd2usiq<round_name>,
25443	avx512f_vcvttsd2usi<round_saeonly_name>,
25444	avx512f_vcvttsd2usiq<round_saeonly_name>, ufloatv2siv2df2<mask_name>):
25445	Use %q1 instead of %1 for -masm=intel.
25446	(avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>,
25447	avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Use %<iptr>3 instead
25448	of %3 for -masm=intel.
25449	(sse2_shufpd_v2df_mask): Fix a typo, change %{6%} to %{%6%} for
25450	-masm=intel.
25451	(*avx512vl_<code>v2div2qi2_store): Use %w0 instead of %0 for
25452	-masm=intel.
25453	(*avx512vl_<code><mode>v4qi2_store): Use %k0 instead of %0 for
25454	-masm=intel.
25455	(avx512vl_<code><mode>v4qi2_mask_store): Use a single pattern with
25456	%k0 and %1 for -masm=intel rather than two patterns, one with %0 and
25457	%g1.
25458	(*avx512vl_<code><mode>v8qi2_store): Use %q0 instead of %0 for
25459	-masm=intel.
25460	(avx512vl_<code><mode>v8qi2_mask_store): Use a single pattern with
25461	%q0 and %1 for -masm=intel rather than two patterns, one with %0 and
25462	%g1 and one with %0 and %1.
25463	(avx512er_vmrcp28<mode><round_saeonly_name>,
25464	avx512er_vmrsqrt28<mode><round_saeonly_name>): Use %<iptr>1 instead of
25465	%1 for -masm=intel.
25466	(avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddss_mask,
25467	avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddss_mask,
25468	avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssds_mask): Swap order
25469	of %0 and %{%4%} for -masm=intel.
25470	(avx5124fmaddps_4fmaddps_maskz, avx5124fmaddps_4fmaddss_maskz,
25471	avx5124fmaddps_4fnmaddps_maskz, avx5124fmaddps_4fnmaddss_maskz,
25472	avx5124vnniw_vp4dpwssd_maskz, avx5124vnniw_vp4dpwssds_maskz): Swap
25473	order of %0 and %{%5%}%{z%} for -masm=intel.
25474
254752018-04-17  Jan Hubicka  <jh@suse.cz>
25476
25477	PR lto/85405
25478	* ipa-devirt.c (odr_types_equivalent_p): Handle bit fields.
25479
254802018-04-17  Martin Liska  <mliska@suse.cz>
25481
25482	PR ipa/85329
25483	* multiple_target.c (create_dispatcher_calls): Set apostrophes
25484	for target_clone error message.  Make default implementation
25485	clone to be a local declaration.
25486	(separate_attrs): Add new argument and check for an empty
25487	string.
25488	(expand_target_clones): Handle it.
25489	(ipa_target_clone): Make redirection just for target_clones
25490	functions.
25491
254922018-04-16  Cesar Philippidis  <cesar@codesourcery.com>
25493	    Tom de Vries  <tom@codesourcery.com>
25494
25495	PR middle-end/84955
25496	* omp-expand.c (expand_oacc_for): Add dummy false branch for
25497	tiled basic blocks without omp continue statements.
25498
254992018-04-16  Aaron Sawdey  <acsawdey@linux.ibm.com>
25500
25501	PR target/83660
25502	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Mark
25503	vec_extract expression as having side effects to make sure it gets
25504	a cleanup point.
25505
255062018-04-16  H.J. Lu  <hongjiu.lu@intel.com>
25507
25508	PR target/85403
25509	* config/i386/i386.c (get_builtin_code_for_version): Check
25510	error_mark_node.
25511
255122018-04-16  Olga Makhotina  <olga.makhotina@intel.com>
25513
25514	PR target/84331
25515	* config.gcc: Support "skylake".
25516	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
25517	PROCESSOR_SKYLAKE.
25518	* config/i386/i386.c (m_SKYLAKE): Define.
25519	(processor_target_table): Add "skylake".
25520	(ix86_option_override_internal): Add "skylake".
25521	(get_builtin_code_for_version): Handle PROCESSOR_SKYLAKE,
25522	PROCESSOR_CANNONLAKE.
25523	(get_builtin_code_for_version): Fix priority for
25524	PROCESSOR_ICELAKE_CLIENT, PROCESSOR_ICELAKE_SERVER,
25525	PROCESSOR_SKYLAKE-AVX512.
25526	* config/i386/i386.h (processor_costs): Define TARGET_SKYLAKE.
25527	(processor_type): Add PROCESSOR_SKYLAKE.
25528
255292018-04-16  Paolo Carlini  <paolo.carlini@oracle.com>
25530	    Jason Merrill  <jason@redhat.com>
25531
25532	PR c++/85112
25533	* convert.c (convert_to_integer_1): Use direct recursion for
25534	enumeral types and types with a precision less than the number
25535	of bits in their mode.
25536
255372018-04-16  Julia Koval  <julia.koval@intel.com>
25538
25539	PR target/84413
25540	* config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL,
25541	X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Add m_SKYLAKE_AVX512
25542
255432018-04-14  Segher Boessenkool  <segher@kernel.crashing.org>
25544
25545	PR target/85293
25546	* config/rs6000/rs6000.opt (mdirect-move): Make deprecated.
25547	* doc/invoke.texi (RS/6000 and PowerPC Options): Remove -mdirect-move
25548	and -mno-direct-move.
25549
255502018-04-13  Paul A. Clarke  <pc@us.ibm.com>
25551
25552	PR target/83402
25553	* config/rs6000/emmintrin.h (_mm_slli_epi{16,32,64}):
25554	Ensure that vec_splat_s32 is only called with 0 <= shift < 16.
25555	Ensure negative shifts result in {0}.
25556
255572018-04-13  Vladimir Makarov  <vmakarov@redhat.com>
25558
25559	PR rtl-optimization/79916
25560	* config/rs6000/rs6000.c (rs6000_emit_move): Use assigned hard
25561	regs (if any) to define how to gnerate SD moves when LRA is in
25562	progress.
25563
255642018-04-13  Jakub Jelinek  <jakub@redhat.com>
25565
25566	PR rtl-optimization/85393
25567	* except.h (expand_dw2_landing_pad_for_region): Remove declaration.
25568	* except.c (expand_dw2_landing_pad_for_region): Make static.
25569	* bb-reorder.c (fix_up_crossing_landing_pad): In new_bb emit just
25570	a label and unconditional jump to old_bb, rather than
25571	expand_dw2_landing_pad_for_region insn(s) and jump to single_succ
25572	basic block.
25573
25574	PR rtl-optimization/85376
25575	* simplify-rtx.c (simplify_const_unary_operation): For CLZ and CTZ and
25576	zero op0, if C?Z_DEFINED_VALUE_AT_ZERO is false, return NULL_RTX
25577	instead of a specific value.
25578
255792018-04-13  Jan Hubicka  <hubicka@ucw.cz>
25580	    Bin Cheng  <bin.cheng@arm.com>
25581
25582	PR tree-optimization/82965
25583	PR tree-optimization/83991
25584	* cfgloopanal.c (expected_loop_iterations_unbounded): Add
25585	by_profile_only parameter.
25586	* cfgloopmanip.c (scale_loop_profile): Further scale loop's profile
25587	information if the loop was predicted to iterate too many times.
25588	* cfgloop.h (expected_loop_iterations_unbounded): Update prototype
25589
255902018-04-13  Jan Hubicka  <hubicka@ucw.cz>
25591
25592	PR lto/71991
25593	* config/i386/i386.c (ix86_can_inline_p): Allow safe transitions for
25594	always inline.
25595
255962018-04-13  Martin Liska  <mliska@suse.cz>
25597	    Jakub Jelinek  <jakub@redhat.com>
25598
25599	PR middle-end/81657
25600	* expr.h (enum block_op_methods): Add BLOCK_OP_NO_LIBCALL_RET.
25601	* expr.c (emit_block_move_hints): Handle BLOCK_OP_NO_LIBCALL_RET.
25602	* builtins.c (expand_builtin_memory_copy_args): Use
25603	BLOCK_OP_NO_LIBCALL_RET method for mempcpy with non-ignored target,
25604	handle dest_addr == pc_rtx.
25605
256062018-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
25607
25608	PR target/85291
25609	* config/rs6000/rs6000.md (fix_trunc<mode>si2): Use legacy code if
25610	asked to not generate direct moves.
25611	(fix_trunc<mode>si2_stfiwx): Similar.
25612	(fix_trunc<mode>si2_internal): Similar.
25613
256142018-04-12  Jakub Jelinek  <jakub@redhat.com>
25615
25616	PR debug/83157
25617	* var-tracking.c (add_stores): Handle STRICT_LOW_PART SET_DEST.
25618	* cselib.c (cselib_record_sets): For STRICT_LOW_PART dest,
25619	lookup if dest in some wider mode is known to be const0_rtx and
25620	if so, record permanent equivalence for it to be ZERO_EXTEND of
25621	the narrower mode destination.
25622
256232018-04-12  Cesar Philippidis  <cesar@codesourcery.com>
25624
25625	* lto-streamer-out.c (output_function): Revert 259346.
25626	* omp-expand.c (expand_oacc_for): Likewise.
25627
256282018-04-12  Alexander Monakov  <amonakov@ispras.ru>
25629
25630	PR rtl-optimization/85354
25631	* sel-sched-ir.c (sel_init_pipelining): Move cfg_cleanup call...
25632	* sel-sched.c (sel_global_init): ... here.
25633
256342018-04-12  Eric Botcazou  <ebotcazou@adacore.com>
25635
25636	PR target/85238
25637	* lto-wrapper.c (debug_objcopy): Open the files in binary mode.
25638	* dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO
25639	mode for PE-COFF targets.
25640	* config/i386/i386-protos.h (i386_pe_asm_lto_start): Declare.
25641	(i386_pe_asm_lto_end): Likewise.
25642	* config/i386/cygming.h (TARGET_ASM_LTO_START): Define.
25643	(TARGET_ASM_LTO_END): Likewise.
25644	* config/i386/winnt.c (saved_debug_info_level): New static variable.
25645	(i386_pe_asm_lto_start): New function.
25646	(i386_pe_asm_lto_end): Likewise.
25647
256482018-04-12  Cesar Philippidis  <cesar@codesourcery.com>
25649	    Richard Biener  <rguenther@suse.de>
25650
25651	PR middle-end/84955
25652	* lto-streamer-out.c (output_function): Fix CFG loop state before
25653	streaming out.
25654	* omp-expand.c (expand_oacc_for): Handle calls to internal
25655	functions like regular functions.
25656
256572018-04-12  Richard Biener  <rguenther@suse.de>
25658
25659	PR lto/85371
25660	* dwarf2out.c (init_sections_and_labels): Use debug_line_section[_label]
25661	for the early LTO debug to properly generate references to it
25662	during DIE emission.  Do not re-use that for the skeleton for
25663	split-dwarf.
25664	(dwarf2out_early_finish): Likewise.
25665
256662018-04-12  Jakub Jelinek  <jakub@redhat.com>
25667
25668	PR target/85328
25669	* config/i386/sse.md
25670	(<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name> split,
25671	<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name> split,
25672	vec_extract_lo_<mode><mask_name> split, vec_extract_lo_v32hi,
25673	vec_extract_lo_v64qi): For non-AVX512VL if input is xmm16+ reg
25674	and output is a reg, avoid creating invalid lowpart subreg, but
25675	instead split into a 512-bit move.  Don't split if not AVX512VL,
25676	input is xmm16+ reg and output is a mem.
25677	(vec_extract_lo_<mode><mask_name>, vec_extract_lo_v32hi,
25678	vec_extract_lo_v64qi): Don't require split if not AVX512VL, input is
25679	xmm16+ reg and output is a mem.
25680
256812018-04-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25682
25683	* config/s390/s390.c (s390_output_indirect_thunk_function): Check
25684	also for flag_dwarf2_cfi_asm.
25685
256862018-04-12  Jakub Jelinek  <jakub@redhat.com>
25687
25688	PR rtl-optimization/85342
25689	* regcprop.c (copyprop_hardreg_forward_1): Remove replaced array, use
25690	a bool scalar var inside of the loop instead.  Don't try to update
25691	recog_data.operand after failed apply_change_group.
25692
256932018-04-12  Tom de Vries  <tom@codesourcery.com>
25694
25695	PR target/85296
25696	* config/nvptx/nvptx.c (flexible_array_member_type_p): New function.
25697	(nvptx_assemble_decl_begin): Add undefined param.  Declare undefined
25698	array with flexible array member as array without given dimension.
25699	(nvptx_assemble_undefined_decl): Set nvptx_assemble_decl_begin call
25700	argument for undefined param to true.
25701
257022018-04-11  Aaron Sawdey  <acsawdey@linux.ibm.com>
25703
25704	PR target/85321
25705	* doc/invoke.texi (RS/6000 and PowerPC Options): Document options
25706	-mcall- and -mtraceback=. Remove options -mabi=spe and -mabi=no-spe
25707	from PowerPC section.
25708	* config/rs6000/sysv4.opt (mcall-): Improve help text.
25709	* config/rs6000/rs6000.opt (mblock-compare-inline-limit=): Trim
25710	help text that is too long.
25711	* config/rs6000/rs6000.opt (mblock-compare-inline-loop-limit=): Trim
25712	help text that is too long.
25713	* config/rs6000/rs6000.opt (mstring-compare-inline-limit=): Trim
25714	help text that is too long.
25715
257162018-04-11  Uros Bizjak  <ubizjak@gmail.com>
25717
25718	* config/alpha/alpha.md (stack_probe_internal): Rename
25719	from "probe_stack".  Update all callers.
25720
257212018-04-11  Alexander Monakov  <amonakov@ispras.ru>
25722
25723	PR rtl-optimization/84566
25724	* sched-deps.c (sched_analyze_insn): Check deps->readonly when invoking
25725	sched_macro_fuse_insns.
25726
257272018-04-11  Alexander Monakov  <amonakov@ispras.ru>
25728
25729	PR target/84301
25730	* sched-rgn.c (add_branch_dependences): Move sel_sched_p check here...
25731	(compute_block_dependences): ... from here.
25732
257332018-04-11  Jakub Jelinek  <jakub@redhat.com>
25734
25735	PR tree-optimization/85331
25736	* vec-perm-indices.h (vec_perm_indices::clamp): Change input type
25737	from int to HOST_WIDE_INT.
25738
257392018-04-11  Martin Jambor  <mjambor@suse.cz>
25740
25741	PR ipa/84149
25742	* ipa-cp.c (propagate_vals_across_pass_through): Expand comment.
25743	(cgraph_edge_brings_value_p): New parameter dest_val, check if it is
25744	not the same as the source val.
25745	(cgraph_edge_brings_value_p): New parameter.
25746	(gather_edges_for_value): Pass destination value to
25747	cgraph_edge_brings_value_p.
25748	(perhaps_add_new_callers): Likewise.
25749	(get_info_about_necessary_edges): Likewise and exclude values brought
25750	only by self-recursive edges.
25751	(create_specialized_node): Redirect only clones of self-calling edges.
25752	(+self_recursive_pass_through_p): New function.
25753	(find_more_scalar_values_for_callers_subset): Use it.
25754	(find_aggregate_values_for_callers_subset): Likewise.
25755	(known_aggs_to_agg_replacement_list): Removed.
25756	(decide_whether_version_node): Re-calculate known constants for all
25757	remaining context clones.
25758
257592018-04-11  Richard Biener  <rguenther@suse.de>
25760
25761	PR lto/85339
25762	* dwarf2out.c (dwarf2out_finish): Remove DW_AT_stmt_list attribute
25763	from early DWARF output.
25764	(dwarf2out_early_finish): Output line info unconditionally into
25765	early DWARF and add reference to it.
25766
257672018-04-11  Jakub Jelinek  <jakub@redhat.com>
25768
25769	PR target/85281
25770	* config/i386/sse.md (iptr): Add V16SFmode and V8DFmode cases.
25771	(<avx512>_vec_dup<mode><mask_name>): Use a single pattern for modes
25772	other than V2DFmode using iptr mode attribute.
25773	(<avx512>_vec_dup<mode><mask_name>): Use iptr mode attribute.
25774
257752018-04-11  Alexander Monakov  <amonakov@ispras.ru>
25776
25777	PR rtl-optimization/84659
25778	* sel-sched-ir.c (sel_init_pipelining): Invoke cleanup_cfg.
25779
257802018-04-11  Jakub Jelinek  <jakub@redhat.com>
25781
25782	PR debug/85302
25783	* dwarf2out.c (skip_loc_list_entry): Don't call size_of_locs if
25784	SIZEP is NULL.
25785	(output_loc_list): Pass address of a dummy size variable even in the
25786	locview handling loop.
25787	(index_location_lists): Add comment on why skip_loc_list_entry can't
25788	call size_of_locs.
25789
257902018-04-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25791
25792	PR target/85261
25793	* config/arm/arm-builtins.c (arm_expand_builtin): Force input operand
25794	into register.
25795
257962018-04-10  Aaron Sawdey  <acsawdey@linux.ibm.com>
25797
25798	PR target/85321
25799	* doc/invoke.texi (RS/6000 and PowerPC Options): Document options
25800	-mblock-compare-inline-limit, -mblock-compare-inline-loop-limit,
25801	and -mstring-compare-inline-limit.
25802
258032018-04-10  Segher Boessenkool  <segher@kernel.crashing.org>
25804
25805	PR target/85287
25806	* config/rs6000/rs6000.md (allocate_stack): Put the residual size
25807	for stack clash protection in a register whenever we need it to be in
25808	a register.
25809
258102018-04-10  Segher Boessenkool  <segher@kernel.crashing.org>
25811
25812	* common/config/rs6000/rs6000-common.c (rs6000_option_init_struct):
25813	Enable -fasynchronous-unwind-tables by default if OBJECT_FORMAT_ELF.
25814
258152018-04-10  Segher Boessenkool  <segher@kernel.crashing.org>
25816
25817	PR target/85321
25818	* config/rs6000/rs6000.opt (mtraceback=): Show the allowed values in
25819	the help text.
25820	(mlong-double-): Ditto.
25821	* config/rs6000/sysv4.opt (msdata=): Ditto.
25822	(mtls-size=): Ditto.
25823
258242018-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
25825
25826	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
25827	erroneous entries for
25828	"vector int vec_ldl (int, long int *)", and
25829	"vector unsigned int vec_ldl (int, unsigned long int *)".
25830	Add comments and entries for
25831	"vector bool char vec_ldl (int, bool char *)",
25832	"vector bool short vec_ldl (int, bool short *)",
25833	"vector bool int vec_ldl (int, bool int *)",
25834	"vector bool long long vec_ldl (int, bool long long *)",
25835	"vector pixel vec_ldl (int, pixel *)",
25836	"vector long long vec_ldl (int, long long *)",
25837	"vector unsigned long long vec_ldl (int, unsigned long long *)".
25838	* config/rs6000/rs6000.c (rs6000_init_builtins): Initialize new
25839	type tree bool_long_long_type_node and correct definition of
25840	bool_V2DI_type_node to make reference to this new type tree.
25841	(rs6000_mangle_type): Replace erroneous reference to
25842	bool_long_type_node with bool_long_long_type_node.
25843	* config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Add
25844	comments to emphasize sign distinctions for char and int types and
25845	replace RS6000_BTI_bool_long constant with
25846	RS6000_BTI_bool_long_long constant.  Also add comment to restrict
25847	use of RS6000_BTI_pixel.
25848	(bool_long_type_node): Remove this macro definition.
25849	(bool_long_long_type_node): New macro definition
25850
258512018-04-10  Jakub Jelinek  <jakub@redhat.com>
25852
25853	PR rtl-optimization/85300
25854	* combine.c (subst): Handle subst of CONST_SCALAR_INT_P new_rtx also
25855	into FLOAT and UNSIGNED_FLOAT like ZERO_EXTEND, return a CLOBBER if
25856	simplify_unary_operation fails.
25857
258582018-04-10  Martin Liska  <mliska@suse.cz>
25859
25860	* gdbhooks.py: Add pretty-printers for varpool_node, symtab_node,
25861	cgraph_edge and ipa_ref.
25862
258632018-04-10  Jakub Jelinek  <jakub@redhat.com>
25864
25865	PR target/85177
25866	PR target/85255
25867	* config/i386/sse.md
25868	(<extract_type>_vinsert<shuffletype><extract_suf>_mask): Fix
25869	computation of the VEC_MERGE selector from mask.
25870	(<extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>):
25871	Fix decoding of the VEC_MERGE selector into mask.
25872
258732018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>
25874
25875	PR tree-optimization/85286
25876	* tree-vect-data-refs.c (vect_get_smallest_scalar_type):
25877
258782018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>
25879
25880	* final.c (final_1): Set insn_last_address as well as
25881	insn_current_address.
25882
258832018-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25884
25885	PR target/85173
25886	* explow.c (emit_stack_probe): Call validize_mem on memory location
25887	before passing it to gen_probe_stack.  Create address operand and
25888	legitimize it for the probe_stack_address case.
25889
258902018-04-09  Jan Hubicka  <jh@suse.cz>
25891
25892	PR lto/85078
25893	* ipa-devirt.c (rebuild_type_inheritance-hash): New.
25894	* ipa-utils.h (rebuild_type_inheritance-hash): Declare.
25895	* tree.c (free_lang_data_in_type): Fix handling of binfos;
25896	walk basetypes.
25897	(free_lang_data): Rebuild type inheritance graph.
25898
258992018-04-09  Martin Sebor  <msebor@redhat.com>
25900
25901	* invoke.texi (-finline-small-functions): Mention other optimization
25902	options.
25903	(-findirect-inlining, -fpartial-inlining): Same.
25904	(-finline-functions-called-once): Same.
25905	(-freorder-blocks-and-partition): Same.
25906
259072018-04-09  Jan Hubicka  <jh@suse.cz>
25908
25909	PR rtl/84058
25910	* cfgcleanup.c (try_forward_edges): Do not give up on crossing
25911	jumps; choose last target that matches the criteria (i.e.
25912	no partition changes for non-crossing jumps).
25913	* cfgrtl.c (cfg_layout_redirect_edge_and_branch): Add basic
25914	support for redirecting crossing jumps to non-crossing.
25915
259162018-04-09  Alexey Brodkin  <abrodkin@synopsys.com>
25917
25918	* config/arc/arc.c (arc_expand_prologue): Set stack usage info
25919	also for naked functions.
25920
259212018-04-09  Claudiu Zissulescu  <claziss@synopsys.com>
25922
25923	* config/arc/arc.md (add_shift): New pattern.
25924	(add_shift2): Likewise.
25925	(sub_shift): Likewise.
25926	(sub_shift_cmp0_noout): Likewise.
25927	(compare_si_ashiftsi): Likewise.
25928	(xbfu_cmp0_noout): New combine pattern.
25929	(xbfu_cmp0"): Likewise.
25930	(movsi_set_cc_insn): Place the predicable variant first.
25931	(commutative_binary_cmp0_noout): Remove clobber.
25932	(commutative_binary_cmp0): New pattern.
25933	(noncommutative_binary_cmp0): Likewise.
25934	(noncommutative_binary_cmp0_noout): Likewise.
25935	(noncommutative_binary_comparison_result_used): Removed.
25936	(rsub_cmp0): New pattern.
25937	(rsub_cmp0_noout): Likewise.
25938	(extzvsi): Changed, keep only meaningful variants.
25939	(SQH, SEZ): New iterators.
25940	(SQH_postfix): New mode attribute.
25941	(SEZ_prefix): New code attribute.
25942	(<SEZ_prefix>xt<SQH_postfix>_cmp0_noout): New instruction pattern.
25943	(<SEZ_prefix>xt<SQH_postfix>_cmp0): Likewise.
25944	* config/arc/predicates.md (cc_set_register): Use CC_REG instead
25945	of numerical value.
25946	(noncommutative_operator): Check the availability of barrel
25947	shifter option.
25948
259492018-04-09  Richard Biener  <rguenther@suse.de>
25950
25951	PR tree-optimization/85284
25952	* tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
25953	Only use the niter constraining form of simple_iv when the exit
25954	is always executed.
25955
259562018-04-09  Tom de Vries  <tom@codesourcery.com>
25957
25958	PR target/84041
25959	* config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR.
25960	(define_expand "*memory_barrier"): New define_expand.
25961	(define_insn "memory_barrier"): New insn.
25962
259632018-04-09  Andrey Belevantsev  <abel@ispras.ru>
25964
25965	PR rtl-optimization/80463
25966	PR rtl-optimization/83972
25967	PR rtl-optimization/83480
25968
25969	* sel-sched-ir.c (has_dependence_note_mem_dep): Take into account the
25970	correct producer for the insn.
25971	(tidy_control_flow): Fixup seqnos in case of debug insns.
25972
259732018-04-09  Andrey Belevantsev  <abel@ispras.ru>
25974
25975	PR rtl-optimization/83913
25976
25977	* sel-sched-ir.c (merge_expr_data): Choose the middle between two
25978	different sched-times when merging exprs.
25979
259802018-04-09  Andrey Belevantsev  <abel@ispras.ru>
25981
25982	PR rtl-optimization/83962
25983
25984	* sel-sched-ir.c (tidy_control_flow): Correct the order in which we call
25985	tidy_fallthru_edge and tidy_control_flow.
25986
259872018-04-09  Andrey Belevantsev  <abel@ispras.ru>
25988
25989	PR rtl-optimization/83530
25990
25991	* sel-sched.c (force_next_insn): New global variable.
25992	(remove_insn_for_debug): When force_next_insn is true, also leave only
25993	next insn in the ready list.
25994	(sel_sched_region): When the region wasn't scheduled, make another pass
25995	over it with force_next_insn set to 1.
25996
259972018-04-08  Monk Chiang  <sh.chiang04@gmail.com>
25998
25999	* config.gcc (nds32le-*-*, nds32be-*-*): Add nds32/nds32_intrinsic.h
26000	into tm_file.
26001	* config/nds32/constants.md (unspec_volatile_element): Add enum values
26002	for interrupt control.
26003	* config/nds32/nds32-intrinsic.c: Implementation of intrinsic
26004	functions for interrupt control.
26005	* config/nds32/nds32-intrinsic.md: Likewise.
26006	* config/nds32/nds32_intrinsic.h: Likewise.
26007	* config/nds32/nds32.h (nds32_builtins): Likewise.
26008
260092018-04-08  Chung-Ju Wu  <jasonwucj@gmail.com>
26010
26011	* config/nds32/nds32.c (nds32_init_machine_status,
26012	nds32_legitimate_index_p, nds32_legitimate_address_p): Consider
26013	strict_aligned_p field.
26014	(nds32_expand_to_rtl_hook): New function.
26015	(TARGET_EXPAND_TO_RTL_HOOK): Define.
26016	* config/nds32/nds32.h (machine_function): Add strict_aligned_p field.
26017
260182018-04-08  Kito Cheng  <kito.cheng@gmail.com>
26019	    Chung-Ju Wu  <jasonwucj@gmail.com>
26020
26021	* config.gcc (nds32*-*-*): Check that n7 is valid to --with-cpu.
26022	* config/nds32/nds32-n7.md: New file.
26023	* config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N7.
26024	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n7
26025	pipeline.
26026	* config/nds32/nds32-protos.h: More declarations for n7 pipeline.
26027	* config/nds32/nds32.md (pipeline_model): Add n7.
26028	* config/nds32/nds32.opt (mcpu): Support n7 pipeline cpus.
26029	* config/nds32/pipelines.md: Include n7 settings.
26030
260312018-04-08  Kito Cheng  <kito.cheng@gmail.com>
26032	    Chung-Ju Wu  <jasonwucj@gmail.com>
26033
26034	* config.gcc (nds32*-*-*): Check that e8 is valid to --with-cpu.
26035	* config/nds32/nds32-e8.md: New file.
26036	* config/nds32/nds32-opts.h (nds32-cpu_type): Add CPU_E8.
26037	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for e8
26038	pipeline.
26039	* config/nds32/nds32-protos.h: More declarations for e8 pipeline.
26040	* config/nds32/nds32.md (pipeline_model): Add e8.
26041	* config/nds32/nds32.opt (mcpu): Support e8 pipeline cpus.
26042	* config/nds32/pipelines.md: Include e8 settings.
26043
260442018-04-08  Kito Cheng  <kito.cheng@gmail.com>
26045	    Chung-Ju Wu  <jasonwucj@gmail.com>
26046
26047	* config.gcc (nds32*-*-*): Check that n6/n8/s8 are valid to --with-cpu.
26048	* config/nds32/nds32-n8.md: New file.
26049	* config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N6 and CPU_N8.
26050	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n8
26051	pipeline.
26052	* config/nds32/nds32-protos.h: More declarations for n8 pipeline.
26053	* config/nds32/nds32-utils.c: More implementations for n8 pipeline.
26054	* config/nds32/nds32.md (pipeline_model): Add n8.
26055	* config/nds32/nds32.opt (mcpu): Support n8 pipeline cpus.
26056	* config/nds32/pipelines.md: Include n8 settings.
26057
260582018-04-08  Kito Cheng  <kito.cheng@gmail.com>
26059	    Chung-Ju Wu  <jasonwucj@gmail.com>
26060
26061	* config.gcc (nds32*): Add nds32-utils.o into extra_objs.
26062	* config/nds32/nds32-n9-2r1w.md: New file.
26063	* config/nds32/nds32-n9-3r2w.md: New file.
26064	* config/nds32/nds32-opts.h (nds32_cpu_type, nds32_mul_type,
26065	nds32_register_ports): New or modify for cpu n9.
26066	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n9
26067	pipeline.
26068	* config/nds32/nds32-protos.h: More declarations for n9 pipeline.
26069	* config/nds32/nds32-utils.c: New file.
26070	* config/nds32/nds32.h (TARGET_PIPELINE_N9, TARGET_PIPELINE_SIMPLE,
26071	TARGET_MUL_SLOW): Define.
26072	* config/nds32/nds32.md (pipeline_model): New attribute.
26073	* config/nds32/nds32.opt (mcpu, mconfig-mul, mconfig-register-ports):
26074	New options that support cpu n9.
26075	* config/nds32/pipelines.md: Include n9 settings.
26076	* config/nds32/t-nds32 (nds32-utils.o): Add dependency.
26077
260782018-04-08  Chung-Ju Wu  <jasonwucj@gmail.com>
26079
26080	* config/nds32/nds32-md-auxiliary.c (output_cond_branch): Output align
26081	information if necessary.
26082	(output_cond_branch_compare_zero): Likewise.
26083	* config/nds32/nds32.c (nds32_adjust_insn_length): Consider align case.
26084	(nds32_target_alignment): Refine for alignment.
26085	* config/nds32/nds32.h (NDS32_ALIGN_P): Define.
26086	(FUNCTION_BOUNDARY): Modify.
26087	* config/nds32/nds32.md (call_internal, call_value_internal): Consider
26088	align case.
26089	* config/nds32/nds32.opt (malways-align, malign-functions): New.
26090
260912018-04-08  Monk Chiang  <sh.chiang04@gmail.com>
26092
26093	* config/nds32/constants.md (unspec_volatile_element): Add values for
26094	TLB operation and data prefetch.
26095	* config/nds32/nds32-intrinsic.c: Implementation of intrinsic
26096	functions for TLB operation and data prefetch.
26097	* config/nds32/nds32-intrinsic.md: Likewise.
26098	* config/nds32/nds32_intrinsic.h: Likewise.
26099	* config/nds32/nds32.c (nds32_dpref_names): Likewise.
26100	(nds32_print_operand): Likewise.
26101	* config/nds32/nds32.h (nds32_builtins): Likewise.
26102
261032018-04-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
26104	Andrew Pinski  <pinsika@gcc.gnu.org>
26105
26106	PR middle-end/82976
26107	* match.pd: Use constant_boolean_node of correct type instead of
26108	boolean_true_node or boolean_false_node for simplifying
26109	pointer comparisons to zero.
26110
261112018-04-07  Jakub Jelinek  <jakub@redhat.com>
26112
26113	PR tree-optimization/80021
26114	* tree.c (verify_type_variant): Make error call in verify_variant_match
26115	translatable and remove final full stop.
26116
261172018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
26118
26119	* config/nds32/constants.md (unspec_volatile_element): Add
26120	UNSPEC_VOLATILE_EH_RETURN.
26121	* config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push,
26122	nds32_output_stack_pop): Support dwarf exception handling process.
26123	* config/nds32/nds32-protos.h (nds32_dynamic_chain_address): Declare.
26124	* config/nds32/nds32.c (nds32_init_machine_status): Support dwarf
26125	exception handling process.
26126	(nds32_compute_stack_frame): Likewise.
26127	(nds32_return_addr_rtx): Likewise.
26128	(nds32_initial_elimination_offset): Likewise.
26129	(nds32_expand_prologue): Likewise.
26130	(nds32_expand_epilogue): Likewise.
26131	(nds32_dynamic_chain_address): New function.
26132	* config/nds32/nds32.h (machine_function): Add fields for dwarf
26133	exception handling.
26134	(DYNAMIC_CHAIN_ADDRESS): Define.
26135	(EH_RETURN_DATA_REGNO): Define.
26136	(EH_RETURN_STACKADJ_RTX): Define.
26137	* config/nds32/nds32.md (eh_return, nds32_eh_return): Implement
26138	patterns for dwarf exception handling.
26139
261402018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
26141
26142	* config/nds32/nds32.h: Clean up obsolete macros.
26143
261442018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
26145
26146	* config/nds32/constants.md (unspec_element, unspec_volatile_element):
26147	Add enum values for particular instructions.
26148	* config/nds32/nds32-intrinsic.c: Implementation of expanding
26149	particular intrinsic functions.
26150	* config/nds32/nds32-intrinsic.md: Likewise.
26151	* config/nds32/nds32_intrinsic.h: Likewise.
26152	* config/nds32/nds32.h (nds32_builtins): Likewise.
26153	* config/nds32/nds32.md (type): Add pbsad and pbsada.
26154	(btst, ave): New patterns for particular instructions.
26155
261562018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
26157
26158	* config/nds32/constants.md (unspec_element, unspec_volatile_element):
26159	Add enum values for atomic load/store and memory sync.
26160	* config/nds32/nds32-intrinsic.c: Implementation for atomic load/store
26161	and memory sync.
26162	* config/nds32/nds32-intrinsic.md: Likewise.
26163	* config/nds32/nds32_intrinsic.h: Likewise.
26164	* config/nds32/nds32.h (nds32_builtins): Likewise.
26165
261662018-04-07  Jakub Jelinek  <jakub@redhat.com>
26167
26168	PR tree-optimization/85257
26169	* fold-const.c (native_encode_vector): If not all elts could fit
26170	and off is -1, return 0 rather than offset.
26171	* tree-ssa-sccvn.c (vn_reference_lookup_3): Pass
26172	(offseti - offset2) / BITS_PER_UNIT as 4th argument to
26173	native_encode_expr.  Verify len * BITS_PER_UNIT >= maxsizei.  Don't
26174	adjust buffer in native_interpret_expr call.
26175
261762018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
26177
26178	* config/nds32/constants.md (unspec_volatile_element): Add cache
26179	control enum values.
26180	* config/nds32/nds32-intrinsic.c: Add cache control expand functions.
26181	* config/nds32/nds32-intrinsic.md: Add cache control patterns.
26182	* config/nds32/nds32.c (nds32_cctl_names): New.
26183	(nds32_print_operand): Handle cache control register names.
26184	* config/nds32/nds32.h (nds32_builtins): New enum values.
26185	* config/nds32/nds32_intrinsic.h: Add cache control enum types and
26186	macros.
26187	* config/nds32/nds32.md (type): Add mmu.
26188	* config/nds32/pipelines.md (simple_insn): Add mmu.
26189
261902018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
26191
26192	* config/nds32/nds32.md (type): Remove call.
26193	* config/nds32/pipelines.md (simple_insn): Likewise.
26194
261952018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
26196
26197	* config/nds32/constants.md (unspec_volatile_element): Add
26198	UNSPEC_VOLATILE_FMFCSR, UNSPEC_VOLATILE_FMTCSR and
26199	UNSPEC_VOLATILE_FMFCFG.
26200	* config/nds32/nds32-intrinsic.c (bdesc_noarg): New builtin
26201	description for fmfcfg and fmfcsr.
26202	(bdesc_1arg): Add fmtcsr.
26203	(bdesc_2arg): Add fcpynss, fcpyss, fcpynsd and fcpysd.
26204	(nds32_expand_builtin_impl): Deal with FPU intrinsic functions.
26205	* config/nds32/nds32-intrinsic.md (unspec_fcpynsd, unspec_fcpysd,
26206	unspec_fcpynss, unspec_fcpysd, unspec_fcpyss, unspec_fmfcsr,
26207	unspec_fmfcfg): New patterns.
26208	* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FMFCFG,
26209	NDS32_BUILTIN_FMFCSR, NDS32_BUILTIN_FMTCSR, NDS32_BUILTIN_FCPYNSS,
26210	NDS32_BUILTIN_FCPYSS,NDS32_BUILTIN_FCPYNSD and NDS32_BUILTIN_FCPYSD.
26211	* config/nds32/nds32_intrinsic.h (__nds32__fcpynsd, __nds32__fcpynss,
26212	__nds32__fcpysd, __nds32__fcpyss, __nds32__fmfcsr, __nds32__fmtcsr,
26213	__nds32__fmfcfg): Define.
26214
262152018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
26216
26217	* config/nds32/nds32.c (nds32_intrinsic_register_names): Add more
26218	intrinsic register names.
26219	* config/nds32/nds32_intrinsic.h (nds32_intrinsic_registers): Add more
26220	intrinsic register enum values and macros.
26221
262222018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
26223
26224	* config/nds32/nds32.c (nds32_legitimate_index_p): Modify condition
26225	for load/store addressing form.
26226	(nds32_print_operand_address): Likewise.
26227
262282018-04-06  Eric Botcazou  <ebotcazou@adacore.com>
26229
26230	PR target/85196
26231	* config/sparc/sparc.c (sparc_expand_move): Deal with symbolic operands
26232	based on LABEL_REF.  Remove useless assertion.
26233	(pic_address_needs_scratch): Fix formatting.
26234	(sparc_legitimize_pic_address): Minor tweaks.
26235	(sparc_delegitimize_address): Adjust assertion accordingly.
26236	* config/sparc/sparc.md (movsi_pic_label_ref): Change label_ref_operand
26237	into symbolic_operand.
26238	(movsi_high_pic_label_ref): Likewise.
26239	(movsi_lo_sum_pic_label_ref): Likewise.
26240	(movdi_pic_label_ref): Likewise.
26241	(movdi_high_pic_label_ref): Likewise.
26242	(movdi_lo_sum_pic_label_ref): Likewise.
26243
262442018-04-06  Amaan Cheval  <amaan.cheval@gmail.com>
26245
26246	* config.gcc (x86_64-*-rtems*): Add rtems.h to tm_file for
26247	custom LIB_SPEC setup.
26248
262492018-04-06  Ruslan Bukin  <br@bsdpad.com>
26250	    Kito Cheng  <kito.cheng@gmail.com>
26251
26252	* config.gcc (riscv*-*-freebsd*): Add RISC-V FreeBSD support.
26253	* config/riscv/freebsd.h: New.
26254
262552018-04-06  Chung-Ju Wu  <jasonwucj@gmail.com>
26256
26257	* config/nds32/nds32.c (nds32_adjust_insn_length): Refine.
26258	* config/nds32/nds32.h (ADJUST_INSN_LENGTH): Change the location in
26259	file.
26260
262612018-04-06  Chung-Ju Wu  <jasonwucj@gmail.com>
26262	    Kito Cheng  <kito.cheng@gmail.com>
26263
26264	* config/nds32/nds32-md-auxiliary.c (nds32_output_return,
26265	nds32_output_call, nds32_symbol_binds_local_p): New functions.
26266	* config/nds32/nds32-protos.h (nds32_output_call,
26267	nds32_output_return): Declare.
26268	* config/nds32/nds32.md: Refine all the call and return patterns.
26269
262702018-04-06  Jakub Jelinek  <jakub@redhat.com>
26271
26272	PR debug/85252
26273	* dwarf2out.c (rtl_for_decl_init): For STRING_CST initializer only
26274	build CONST_STRING if TYPE_MAX_VALUE is non-NULL and is INTEGER_CST.
26275
26276	PR rtl-optimization/84872
26277	* cfgloopmanip.c (create_preheader): Use make_forwarder_block even if
26278	nentry == 1 when CP_FALLTHRU_PREHEADERS and single_entry is
26279	EDGE_CROSSING edge.
26280
262812018-04-06  Tamar Christina  <tamar.christina@arm.com>
26282
26283	* expr.c (copy_blkmode_to_reg): Revert 254862.
26284	* doc/sourcebuild.texi (word_mode_no_slow_unalign): Likewise.
26285
262862018-04-06  Richard Biener  <rguenther@suse.de>
26287
26288	PR middle-end/85244
26289	* tree-dfa.c (get_ref_base_and_extent): Reset seen_variable_array_ref
26290	after seeing a component reference with an adjacent field.  Treat
26291	refs to arrays at struct end of external decls similar to
26292	refs to unconstrained commons.
26293
262942018-04-06  Jakub Jelinek  <jakub@redhat.com>
26295
26296	PR sanitizer/85213
26297	* fold-const.c (twoval_comparison_p): Remove SAVE_P argument and don't
26298	look through SAVE_EXPRs with non-side-effects argument.  Adjust
26299	recursive calls.
26300	(fold_comparison): Adjust twoval_comparison_p caller, don't handle
26301	save_p here.
26302
263032018-04-06  Richard Biener  <rguenther@suse.de>
26304
26305	PR middle-end/85180
26306	* alias.c (find_base_term): New wrapper around find_base_term
26307	unwinding CSELIB_VAL_PTR changes.
26308	(find_base_term): Do not restore CSELIB_VAL_PTR during the
26309	recursion.
26310
263112018-04-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26312
26313	* config/s390/s390.c (s390_z10_optimize_cmp): Expand dedicated NOP
26314	instructions.
26315	* config/s390/s390.md (UNSPECV_NOP_LR_0, UNSPECV_NOP_LR_1): New
26316	constant definitions.
26317	("nop"): lr 0,0 -> nopr r0
26318	("nop_lr0", "nop_lr1"): New insn definitions.
26319
263202018-04-06  Chung-Ju Wu  <jasonwucj@gmail.com>
26321
26322	* config/nds32/nds32.md (*stack_push, *stack_pop): Use
26323	NDS32_V3PUSH_AVAILABLE_P macro.
26324
263252018-04-06  Monk Chiang  <sh.chiang04@gmail.com>
26326	    Chung-Ju Wu  <jasonwucj@gmail.com>
26327
26328	* config.gcc (nds32*-*-*): Add v2j v3f v3s checking.
26329	(nds32*-*-*): Add float and fpu_config into supported_defaults.
26330	* common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
26331	Include TARGET_DEFAULT_FPU_ISA and TARGET_DEFAULT_FPU_FMA.
26332	* config/nds32/constants.md (unspec_element): Add UNSPEC_COPYSIGN,
26333	UNSPEC_FCPYNSD, UNSPEC_FCPYNSS, UNSPEC_FCPYSD and UNSPEC_FCPYSS.
26334	* config/nds32/constraints.md: New constraints and checking for hard
26335	float configuration.
26336	* config/nds32/iterators.md: New mode iterator and attribute for hard
26337	float configuration.
26338	* config/nds32/nds32-doubleword.md: Use hard float alternatives and
26339	patterns.
26340	* config/nds32/nds32-fpu.md: New file.
26341	* config/nds32/nds32-md-auxiliary.c: New functions and checkings to
26342	deal with hard float code generation.
26343	* config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3F and
26344	ARCH_V3S.
26345	(abi_type, float_reg_number): New enum type.
26346	* config/nds32/nds32-predicates.c: New predicates for hard float.
26347	* config/nds32/nds32-protos.h: Declare functions for hard float.
26348	* config/nds32/nds32.c: Implementation for hard float configuration.
26349	* config/nds32/nds32.h: Definitions for hard float configuration.
26350	* config/nds32/nds32.md: Include hard float machine description and
26351	modify patterns for hard float configuration.
26352	* config/nds32/nds32.opt: New options for hard float configuration.
26353	* config/nds32/predicates.md: New predicates for hard float
26354	configuration.
26355
263562018-04-06  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
26357
26358	* common/config/nds32/nds32-common.c
26359	(nds32_option_optimization_table): Enable -mreleax-hint by default.
26360
263612018-04-05  Jakub Jelinek  <jakub@redhat.com>
26362
26363	PR middle-end/85195
26364	* match.pd (BIT_FIELD_REF CONSTRUCTOR@0 @1 @2): Use view_convert around
26365	CONSTRUCTOR_ELT (ctor, ...)->value.
26366
263672018-04-05  Uros Bizjak  <ubizjak@gmail.com>
26368
26369	PR target/85193
26370	* config/i386/i386.md (define_attr "memory"): Handle rotate1 type.
26371
263722018-04-05  Tom de Vries  <tom@codesourcery.com>
26373
26374	PR target/85204
26375	* config/nvptx/nvptx.c (nvptx_single): Fix neutering of bb with only
26376	cond jump.
26377
263782018-04-05  Shiva Chen  <shiva0217@gmail.com>
26379	    Kito Cheng  <kito.cheng@gmail.com>
26380
26381	* config/nds32/constraints.md (U33): Fine-tune checking condition.
26382	* config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Ditto.
26383	* config/nds32/nds32.h (nds32_16bit_address_type): Add
26384	ADDRESS_POST_MODIFY_LO_REG_IMM3U.
26385
263862018-04-05  Shiva Chen  <shiva0217@gmail.com>
26387	    Kito Cheng  <kito.cheng@gmail.com>
26388
26389	* config/nds32/constraints.md (Ufe): New memory constraint.
26390	* config/nds32/nds32-md-auxiliary.c (nds32_mem_format,
26391	nds32_output_16bit_load): Consider r8 register for lwi45.fe format.
26392	* config/nds32/nds32.c (nds32_print_operand): Output lwi45.fe
26393	operands.
26394	* config/nds32/nds32.h (nds32_16bit_address_type): Add ADDRESS_R8_IMM7U.
26395	* config/nds32/nds32.md (*mov<mode>): Adjust pattern.
26396
263972018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
26398
26399	* config/nds32/nds32.md: Use optimize_size in the condition for
26400	alu-shift instructions.
26401
264022018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
26403
26404	* config/nds32/nds32.md (divsi4, udivsi4): New patterns.
26405
264062018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
26407
26408	* config/nds32/nds32.md (negsi2): Refine pattern.
26409
264102018-04-05  Kito Cheng  <kito.cheng@gmail.com>
26411	    Chung-Ju Wu  <jasonwucj@gmail.com>
26412
26413	* config/nds32/iterators.md (shift_rotate): New code iterator.
26414	(shift): New code attribute.
26415	* config/nds32/nds32-md-auxiliary.c (nds32_expand_constant): New.
26416	* config/nds32/nds32-protos.h (nds32_expand_constant): Declare.
26417	* config/nds32/nds32.c (nds32_print_operand): Deal with more cases.
26418	* config/nds32/nds32.md (addsi3, *add_srli): Refine implementation for
26419	bit-wise operations.
26420	(andsi3, *andsi3): Ditto.
26421	(iorsi3, *iorsi3, *or_slli, *or_srli): Ditto.
26422	(xorsi3, *xorsi3, *xor_slli, *xor_srli): Ditto.
26423	(<shift>si3, *ashlsi3, *ashrsi3, *lshrsi3, *rotrsi3): Ditto.
26424	* config/nds32/predicates.md (nds32_rimm5u_operand, nds32_and_operand,
26425	nds32_ior_operand, nds32_xor_operand): New predicates.
26426
264272018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
26428
26429	* config/nds32/nds32.md (add<mode>3, sub<mode>3): Rename to ...
26430	(addsi3, subsi3): ... this.
26431
264322018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
26433
26434	* config/nds32/nds32.md (*sub_srli, *and_slli): Fine-tune predicator.
26435
264362018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
26437
26438	* config/nds32/nds32.md: Adjust indention.
26439
264402018-04-05  Kito Cheng  <kito.cheng@gmail.com>
26441
26442	* config/nds32/nds32.md (feature): New attribute.
26443
264442018-04-05  Chung-Ju Wu  <jasonwucj@gmail.com>
26445
26446	* config/nds32/nds32.md (subtype): New attribute.
26447
264482018-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26449
26450	PR target/85203
26451	* config/arm/arm-builtins.c (arm_expand_builtin): Change
26452	expansion to perform a bitwise AND of the argument followed by a
26453	boolean negation of the result.
26454
264552018-04-04  Peter Bergner  <bergner@vnet.ibm.com>
26456
26457	PR rtl-optimization/84878
26458	* ddg.c (add_cross_iteration_register_deps): Use DF_REF_BB to determine
26459	the basic block.  Assert the use reference is not artificial and that
26460	it has an associated insn.
26461
264622018-04-04  Michael Matz  <matz@suse.de>
26463
26464	* builtins.c (compute_objsize): Pass correct operand
26465	to array_at_struct_end_p.
26466
264672018-04-04  Richard Biener  <rguenther@suse.de>
26468
26469	PR lto/85176
26470	* dwarf2out.c (dwarf2out_register_external_die): Peel namespaces
26471	from contexts for DINFO_LEVEL_TERSE and below.
26472
264732018-04-04  Kito Cheng  <kito.cheng@gmail.com>
26474
26475	* config/nds32/nds32-doubleword.md (move_<mode>): Require
26476	resiter_operand condition.
26477	* config/nds32/nds32.md (*move<mode>): Ditto.
26478
264792018-04-04  Kito Cheng  <kito.cheng@gmail.com>
26480	    Monk Chiang  <sh.chiang04@gmail.com>
26481
26482	* config/nds32/nds32.md (movmisalign<mode>): New pattern.
26483
264842018-04-04  Chung-Ju Wu  <jasonwucj@gmail.com>
26485
26486	* config/nds32/nds32.md (movqi, movhi): Merge into mov<mode>.
26487
264882018-04-04  Chung-Ju Wu  <jasonwucj@gmail.com>
26489	    Kito Cheng  <kito.cheng@gmail.com>
26490
26491	* config/nds32/nds32-md-auxiliary.c (nds32_inverse_cond_code,
26492	nds32_cond_code_str, output_cond_branch,
26493	output_cond_branch_compare_zero, nds32_expand_cbranch,
26494	nds32_expand_cstore, nds32_expand_movcc,
26495	nds32_output_cbranchsi4_equality_zero,
26496	nds32_output_cbranchsi4_equality_reg,
26497	nds32_output_cbranchsi4_equality_reg_or_const_int,
26498	nds32_output_cbranchsi4_greater_less_zero: New functions.
26499	* config/nds32/nds32-protos.h (nds32_expand_cbranch,
26500	nds32_expand_cstore, nds32_expand_movcc,
26501	nds32_output_cbranchsi4_equality_zero,
26502	nds32_output_cbranchsi4_equality_reg,
26503	nds32_output_cbranchsi4_equality_reg_or_const_int,
26504	nds32_output_cbranchsi4_greater_less_zero): Declare.
26505	* config/nds32/predicates.md (nds32_movecc_comparison_operator,
26506	nds32_rimm11s_operand): New predicates.
26507	* config/nds32/nds32.h (nds32_expand_result_type): New enum type.
26508	* config/nds32/nds32.md: Rewrite all the branch and conditional move
26509	patterns.
26510
265112018-04-04  Kito Cheng  <kito.cheng@gmail.com>
26512
26513	* config/nds32/nds32-doubleword.md: Refine all the instruction type.
26514	* config/nds32/nds32.md: Ditto.
26515	* config/nds32/pipelines.md: Ditto.
26516
265172018-04-04  Richard Biener  <rguenther@suse.de>
26518
26519	PR tree-optimization/85168
26520	* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Avoid
26521	propagating abnormals.
26522
265232018-04-04  Chung-Ju Wu  <jasonwucj@gmail.com>
26524
26525	* config/nds32/nds32.md (enabled): Use yes/no for this attribute.
26526
265272018-04-04  Chung-Ju Wu  <jasonwucj@gmail.com>
26528	    Kito Cheng  <kito.cheng@gmail.com>
26529
26530	* config/nds32/nds32-md-auxiliary.c (nds32_long_call_p): New function.
26531	* config/nds32/nds32-protos.h (nds32_long_call_p): Declare.
26532	* config/nds32/nds32.c (nds32_function_ok_for_sibcall): New function.
26533	(TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
26534	* config/nds32/nds32.md (sibcall_internal): New.
26535	(sibcall_register): Remove.
26536	(sibcall_immediate): Remove.
26537	(sibcall_value_internal): New.
26538	(sibcall_value_register): Remove.
26539	(sibcall_value_immediate): Remove.
26540	* config/nds32/predicates.md (nds32_general_register_operand): New.
26541	(nds32_call_address_operand): New.
26542
265432018-04-03  Jakub Jelinek  <jakub@redhat.com>
26544
26545	PR rtl-optimization/85167
26546	* shrink-wrap.c (move_insn_for_shrink_wrap): Don't set bb_uses and
26547	bb_defs if *split_p, instead preinitialize it to NULL.
26548
26549	PR tree-optimization/85156
26550	* builtins.c (fold_builtin_expect): Use save_expr on arg1 to avoid
26551	evaluating the argument multiple times.
26552
265532018-04-03  Bill Schmidt  <wschmidt@linux.ibm.com>
26554
26555	* config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Use __vector rather
26556	than vector.
26557	(_mm_cvtpd_ps): Likewise.
26558	(_mm_cvttpd_epi32): Likewise.
26559	* config/rs6000/mmintrin.h (_mm_unpacklo_pi8): Likewise.
26560	* config/rs6000/xmmintrin.h: For strict-ANSI C++ or C11, undefine
26561	vector, pixel, and bool following altivec.h include.
26562
265632018-04-03  Martin Sebor  <msebor@redhat.com>
26564
26565	* doc/extend.texi (Common Function Attributes): Clarify.
26566	(const attribute): Likewise.
26567	(pure attribute): Likewise.
26568
265692018-04-03  Jakub Jelinek  <jakub@redhat.com>
26570
26571	PR target/85169
26572	* config/i386/i386.c (ix86_expand_vector_set): Use
26573	HOST_WIDE_INT_1U << elt instead of 1 << elt.  Formatting fix.
26574
265752018-04-03  Uros Bizjak  <ubizjak@gmail.com>
26576
26577	* config/i386/i386.c (emit_i387_cw_initialization): Always use logic
26578	instructions when changing rounding bits to preserve precision bits
26579	in the x87 control word.
26580
265812018-04-03  Martin Liska  <mliska@suse.cz>
26582
26583	PR tree-optimization/82491
26584	* rtl.h (strip_offset_and_add): Replace += suboffset with
26585	poly_uint64 () + suboffset.
26586
265872018-03-29  Martin Liska  <mliska@suse.cz>
26588	    Martin Jambor  <mjambor@suse.cz>
26589
26590	PR ipa/84947
26591	* ipa-cp.c (propagate_bits_across_jump_function): Bail out if
26592	param_type is not an integral or pointer type.
26593
265942018-04-03  Richard Biener  <rguenther@suse.de>
26595
26596	* sese.h (recompute_all_dominators): Remove.
26597
265982018-04-02  Martin Sebor  <msebor@redhat.com>
26599
26600	* doc/invoke.texi (-Wrestrict): Fix typos.
26601
266022018-04-02  Jim Wilson  <jimw@sifive.com>
26603
26604	* config/riscv/riscv.h (SHIFT_COUNT_TRUNCATED): Set to zero.
26605	* config/riscv/riscv.md (<optab>si3): Use QImode shift count.
26606	(<optab>di3, <optab>si3_extend): Likewise.
26607	(<optab>si3_mask, <optab>si3_mask_1): New.
26608	(<optab>di3_mask, <optab>di3_mask_1): New.
26609	(<optab>si3_extend_mask, <optab>si3_extend_mask_1): New.
26610	(lshrsi3_zero_extend_1): Use VOIDmode shift count.
26611	* config/riscv/sync.md (atomic_test_and_set): Emit QImode shift count.
26612
266132018-04-02  Gerald Pfeifer  <gerald@pfeifer.com>
26614
26615	* doc/cpp.texi (Variadic Macros): Fix line continuation in an
26616	example.
26617
266182018-04-02  Chung-Ju Wu  <jasonwucj@gmail.com>
26619
26620	* config/nds32/nds32.c (TARGET_CANONICALIZE_COMPARISON): Define.
26621	(nds32_canonicalize_comparison): New function.
26622
266232018-04-01  Chung-Ju Wu  <jasonwucj@gmail.com>
26624	    Kito Cheng  <kito.cheng@gmail.com>
26625	    Kuan-Lin Chen  <kuanlinchentw@gmail.com>
26626
26627	* config.gcc (nds32): Add nds32-relax-opt.o into extra_objs.
26628	* config/nds32/constants.md (unspec_volatile_element): Add
26629	UNSPEC_VOLATILE_RELAX_GROUP.
26630	* config/nds32/nds32-relax-opt.c: New file.
26631	* config/nds32/nds32-predicates.c
26632	(nds32_symbol_load_store_p): New function.
26633	* config/nds32/nds32-protos.h
26634	(nds32_symbol_load_store_p): Declare function.
26635	(make_pass_nds32_relax_opt): Declare new rtl pass function.
26636	* config/nds32/nds32.c
26637	(nds32_register_pass): New function to register pass.
26638	(nds32_register_passes): New function to register passes.
26639	* config/nds32/nds32.md (relax_group): New pattern.
26640	* config/nds32/nds32.opt (mrelax-hint): New option.
26641	* config/nds32/t-nds32 (nds32-relax-opt.o): New dependency.
26642
266432018-04-01  Kito Cheng  <kito.cheng@gmail.com>
26644
26645	* config/nds32/t-nds32: Modify files dependency.
26646
266472018-04-01  Chung-Ju Wu  <jasonwucj@gmail.com>
26648
26649	* config/nds32/nds32.h (FUNCTION_PROFILER): Output newline character.
26650	(PROFILE_HOOK): Define its implementation.
26651
266522018-04-01  Chung-Ju Wu  <jasonwucj@gmail.com>
26653
26654	* config/nds32/nds32.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use unsigned int
26655	type and 32-bit size.
26656
266572018-04-01  Jakub Jelinek  <jakub@redhat.com>
26658
26659	PR middle-end/85090
26660	* config/i386/sse.md (V): Add V64QI and V32HI for TARGET_AVX512F.
26661	(V_128_256): New mode iterator.
26662	(*avx512dq_vextract<shuffletype>64x2_1 splitter): New define_split.
26663	(*avx512f_vextract<shuffletype>32x4_1 splitter): Likewise.
26664	(xop_pcmov_<mode><avxsizesuffix>): Use V_128_256 mode iterator instead
26665	of V.
26666	* config/i386/i386.c (ix86_expand_vector_set): Improve V32HImode and
26667	V64QImode expansion for !TARGET_AVX512BW && TARGET_AVX512F.
26668
266692018-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
26670
26671	PR target/83315
26672	* config/rs6000/xmmintrin.h (_mm_set_ps, _mm_max_ps): Handle (quiet)
26673	NaN inputs correctly.
26674
266752018-03-30  Peter Bergner  <bergner@vnet.ibm.com>
26676
26677	PR target/80546
26678	* config/rs6000/vsx.md (??r): New mode attribute.
26679	(*vsx_mov<mode>_64bit): Use it.
26680	(*vsx_mov<mode>_32bit): Likewise.
26681
266822018-03-30  Martin Sebor  <msebor@redhat.com>
26683
26684	PR tree-optimization/84818
26685	* builtins.c (check_access): Use warning_n.
26686
266872018-03-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
26688
26689	PR target/83822
26690	* config/rs6000/rs6000-string.c (expand_compare_loop): Fix redundant
26691	condition.
26692	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Fix redundant
26693	condition.
26694
266952018-03-30  Julia Koval  <julia.koval@intel.com>
26696
26697	PR target/84413
26698	* x86-tune.def (movx, partial_reg_dependency): Enable for
26699	m_SKYLAKE_AVX512.
26700
267012018-03-29  Vladimir Makarov  <vmakarov@redhat.com>
26702
26703	PR inline-asm/84985
26704	* lra-constraints.c (process_alt_operands): Move setting
26705	this_alternative_matches below.
26706
267072018-03-29  Martin Liska  <mliska@suse.cz>
26708
26709	PR lto/84995.
26710	* doc/invoke.texi: Document how LTO works with debug info.
26711	Describe auto-load support of binutils.  Mention 'x86-64'
26712	as valid option value of -march option.
26713
267142018-03-29  Jakub Jelinek  <jakub@redhat.com>
26715
26716	* config/i386/sse.md (<avx512>_blendm<mode>): Use <sseintprefix>.
26717
26718	PR c/85094
26719	* fold-const.c (operand_equal_p): Handle DEBUG_BEGIN_STMT.
26720	For STATEMENT_LIST, pass down OEP_LEXICOGRAPHIC and maybe
26721	OEP_NO_HASH_CHECK for recursive call, to avoid exponential
26722	checking.
26723
267242018-03-28  Peter Bergner  <bergner@vnet.ibm.com>
26725
26726	PR target/84912
26727	* config/rs6000/rs6000.h (RS6000_BTM_POWERPC64): New define.
26728	(RS6000_BTM_COMMON): Add RS6000_BTM_POWERPC64.
26729	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add support
26730	for RS6000_BTM_POWERPC64.
26731	(rs6000_invalid_builtin): Add handling for RS6000_BTM_POWERPC64
26732	(rs6000_builtin_mask_names): Add RS6000_BTM_POWERPC64.
26733	* config/rs6000/rs6000-builtin.def (BU_P7_POWERPC64_MISC_2): New macro
26734	definition.
26735	(DIVDE): Use it.
26736	(DIVDEU): Likewise.
26737
267382018-03-28  Carl Love  <cel@us.ibm.com>
26739
26740	Revert
26741	2017-09-27  Carl Love  <cel@us.ibm.com>
26742
26743	* config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
26744	(FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
26745	* config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
26746	fctiw instruction.
26747
267482018-03-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26749
26750	* config/rs6000/xmmintrin.h (_mm_max_pi16): Use __vector __bool
26751	instead of __vector bool.
26752	(_mm_max_pu8): Likewise.
26753	(_mm_min_pi16): Likewise.
26754
267552018-03-28  Peter Bergner  <bergner@vnet.ibm.com>
26756
26757	PR target/84912
26758	* config/rs6000/rs6000-builtin.def (DIVWEO): Delete macro expansion.
26759	(DIVWEUO): Likewise.
26760	(DIVDEO): Likewise.
26761	(DIVDEUO): Likewise.
26762	* config/rs6000/rs6000.c (builtin_function_type): Remove support for
26763	DIVWEUO and DIVDEUO.
26764	* config/rs6000/rs6000.md (UNSPEC_DIVEO, UNSPEC_DIVEUO): Delete unspecs.
26765	(UNSPEC_DIV_EXTEND): Remove deleted unspecs.
26766	(div_extend): Likewise.
26767	* doc/extend.texi (__builtin_divweo): Remove documentation for deleted
26768	builtin function.
26769	(__builtin_divweuo): Likewise.
26770	(__builtin_divdeo): Likewise.
26771	(__builtin_divdeuo): Likewise.
26772
267732018-03-28  Jakub Jelinek  <jakub@redhat.com>
26774
26775	PR target/85095
26776	* config/i386/i386.md (*add<mode>3_carry_0, *addsi3_carry_zext_0,
26777	*sub<mode>3_carry_0, *subsi3_carry_zext_0): New patterns.
26778
26779	PR tree-optimization/82004
26780	* gimple-match-head.c (optimize_pow_to_exp): New function.
26781	* match.pd (pow(C,x) -> exp(log(C)*x)): Wrap with #if GIMPLE.
26782	Don't fold to exp if optimize_pow_to_exp is false.
26783
267842018-03-28  Martin Liska  <mliska@suse.cz>
26785
26786	PR other/84819
26787	* calls.c (initialize_argument_information): Fix trailing space.
26788	* common.opt: Fix typo and provide better explanation for
26789	-fsanitize-coverage option.
26790	* config/i386/i386.opt: Fix typo.
26791
267922018-03-28  Jakub Jelinek  <jakub@redhat.com>
26793	    Martin Liska  <mliska@suse.cz>
26794
26795	PR sanitizer/85081
26796	* gimplify.c (asan_poison_variable): Don't do the check for
26797	gimplify_omp_ctxp here.
26798	(gimplify_decl_expr): Do it here.
26799	(gimplify_target_expr): Likewise.
26800
268012018-03-28  Martin Liska  <mliska@suse.cz>
26802
26803	PR target/84988
26804	* config/i386/i386.c (ix86_function_arg_advance): Do not call
26805	chkp_type_bounds_count if MPX is not enabled.
26806
268072018-03-27  Chung-Ju Wu  <jasonwucj@gmail.com>
26808
26809	* config/nds32/nds32.h (BRANCH_COST): Adjust cost.
26810
268112018-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
26812
26813	PR target/84914
26814	* config/rs6000/rs6000.c (create_complex_muldiv): New helper
26815	function to create the function decl for complex long double
26816	multiply and divide for -mabi=ieeelongdouble.
26817	(init_float128_ieee): Call it.
26818
268192018-03-27  H.J. Lu  <hongjiu.lu@intel.com>
26820
26821	PR target/85044
26822	* config/i386/i386.c (ix86_trampoline_init): Insert ENDBR for
26823	-fcf-protection=branch -mibt.
26824	* config/i386/i386.h (TRAMPOLINE_SIZE): Increased by 4 bytes.
26825
268262018-03-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26827
26828	PR target/81863
26829	* config/arm/arm.c (arm_valid_symbolic_address): Handle
26830	arm_word_relocations.
26831
268322018-03-27  Cesar Philippidis  <cesar@codesourcery.com>
26833
26834	PR target/85056
26835	* config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Add '[]' to
26836	extern array declarations.
26837
268382018-03-27  Richard Biener  <rguenther@suse.de>
26839
26840	PR middle-end/84067
26841	* match.pd ((A * C) +- (B * C) -> (A+-B) * C): Guard with
26842	explicit single_use checks.
26843
268442018-03-27  Richard Biener  <rguenther@suse.de>
26845
26846	PR tree-optimization/85082
26847	* tree-ssa-sccvn.c (vn_reference_lookup_or_insert_for_pieces):
26848	Valueize the VUSE.
26849
268502018-03-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26851
26852	* config.gcc (aarch64*-*-linux*): New TARGET_DEFAULT_ASYNC_UNWIND_TABLES
26853	* common/config/aarch64/aarch64-common.c (aarch64_optimization_table[]):
26854	Turn on fasynchronous-unwind-tables and funwind-tables.
26855
268562018-03-26  Uros Bizjak  <ubizjak@gmail.com>
26857
26858	PR target/85073
26859	* config/i386/i386.md (*bmi_blsr_<mode>_cmp): New insn pattern.
26860	(*bmi_blsr_<mode>_ccz): Ditto.
26861
268622018-03-26  Tom de Vries  <tom@codesourcery.com>
26863
26864	PR tree-optimization/85063
26865	* omp-general.c (offloading_function_p): New function.  Factor out
26866	of ...
26867	* omp-offload.c (pass_omp_target_link::gate): ... here.
26868	* omp-general.h (offloading_function_p): Declare.
26869	* tree-switch-conversion.c (build_one_array): Mark CSWTCH.x variable
26870	with attribute omp declare target for offloading functions.
26871
268722018-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
26873
26874	PR tree-optimization/84005
26875	* tree-data-ref.h (get_base_for_alignment): Declare.
26876	* tree-data-ref.c (get_base_for_alignment_1): New function.
26877	(get_base_for_alignment): Likewise.
26878	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
26879	get_base_for_alignment to find a suitable base object, instead
26880	of always using drb->base_address.
26881
268822018-03-23  Jakub Jelinek  <jakub@redhat.com>
26883
26884	PR inline-asm/85022
26885	* emit-rtl.c (init_emit_regs): Indicate that VOIDmode MEMs don't have
26886	known size by default.
26887
268882018-03-23  Vladimir Makarov  <vmakarov@redhat.com>
26889
26890	PR inline-asm/85030
26891	* lra-constraints.c (process_alt_operands): Don't match BLKmode
26892	and non BLKmode operands.
26893
268942018-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26895
26896	PR target/85026
26897	* config/arm/arm.md (unaligned_loadhis): Remove first alternative.
26898	Clean up attributes.
26899
269002018-03-23  Richard Biener  <rguenther@suse.de>
26901
26902	PR debug/85020
26903	* dwarf2out.c (rtl_for_decl_location): Do not generate RTL early when
26904	we are going to emit early debug for LTO.
26905
269062018-03-23  Jakub Jelinek  <jakub@redhat.com>
26907
26908	PR inline-asm/85034
26909	* function.c (match_asm_constraints_1): Don't optimize if input
26910	doesn't satisfy general_operand predicate for output's mode.
26911
26912	PR inline-asm/85022
26913	* alias.c (write_dependence_p): Don't require for x_canonicalized
26914	non-VOIDmode if x has VOIDmode.
26915
26916	PR sanitizer/85029
26917	* sanopt.c (maybe_optimize_ubsan_ptr_ifn): If DECL_REGISTER (base),
26918	just don't try to optimize it rather than assert it never happens.
26919
269202018-03-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
26921
26922	* config/rs6000/rs6000-builtin.def: Remove various BU_ALTIVEC_X
26923	macro expansions for definition of ST_INTERNAL_<mode> and
26924	LD_INTERNAL_<mode> builtins.
26925	* config/rs6000/rs6000-protos.h (rs6000_address_for_altivec):
26926	Remove prototype.
26927	* config/rs6000/rs6000.c (altivec_expand_ld_builtin): Delete this
26928	function.
26929	(altivec_expand_st_builtin): Likewise.
26930	(altivec_expand_builtin): Remove calls to deleted functions.
26931	(rs6000_address_for_altivec): Delete this function.
26932	* config/rs6000/vector.md: Remove expands for
26933	vector_altivec_load_<mode> and vector_altivec_store_<mode>.
26934
269352018-03-22  Sudakshina Das  <sudi.das@arm.com>
26936
26937	PR target/84826
26938	* config/arm/arm.h (machine_function): Add static_chain_stack_bytes.
26939	* config/arm/arm.c (arm_compute_static_chain_stack_bytes): Avoid
26940	re-computing once computed.
26941	(arm_expand_prologue): Compute machine->static_chain_stack_bytes.
26942	(arm_init_machine_status): Initialize
26943	machine->static_chain_stack_bytes.
26944
269452018-03-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
26946
26947	PR target/84760
26948	* doc/extend.texi: Add four new prototypes for vec_ld.
26949	* config/rs6000/rs6000-builtin.def (LVX_V1TI): Reorder symbol
26950	definitions for more logical presentation.
26951	* config/rs6000/rs6000-c.c: (altivec_overloaded_builtins): Add
26952	entries for V1TI variants of __builtin_altivec_ld builtin.
26953	* config/rs6000/rs6000.c: (altivec_expand_lv_builtin): Add test and
26954	handling of V1TI variant of LVX icode pattern.
26955	(altivec_expand_builtin): Add case for ALTIVEC_BUILTIN_LVX_V1TI.
26956	(rs6000_gimple_fold_builtin): Likewise.
26957	(altivec_init_builtins): Add code to define
26958	__builtin_altivec_lvx_v1ti function.
26959
269602018-03-22  Jakub Jelinek  <jakub@redhat.com>
26961
26962	PR inline-asm/84941
26963	* function.c (match_asm_constraints_1): Don't do the optimization
26964	if input isn't a REG, SUBREG, MEM or constant.
26965
269662018-03-22  Tom de Vries  <tom@codesourcery.com>
26967
26968	PR tree-optimization/84956
26969	* tree-ssa-tail-merge.c (find_clusters_1): Skip bbs with
26970	bb_has_abnormal_pred.
26971
269722018-03-22  Jakub Jelinek  <jakub@redhat.com>
26973
26974	PR sanitizer/85018
26975	* dwarf2asm.c (dw2_output_indirect_constant_1): Set
26976	DECL_INITIAL (decl) to decl at the end.
26977	* varasm.c (use_blocks_for_decl_p): Revert the 2018-03-20 change,
26978	adjust the comment.
26979
269802018-03-21  Joseph Myers  <joseph@codesourcery.com>
26981
26982	* doc/extend.texi (__builtin_tgmath): Document when complex
26983	integer types are treated as _Complex _Float64.
26984
269852018-03-21  Tom de Vries  <tom@codesourcery.com>
26986
26987	* doc/extend.texi (__builtin_extend_pointer): Remove pasto.
26988
269892018-03-21  Jakub Jelinek  <jakub@redhat.com>
26990
26991	PR tree-optimization/84960
26992	* tree-cfg.c (remove_bb): Don't move forced labels into bb->prev_bb
26993	if it is ENTRY block, move them into single succ of ENTRY in that case.
26994
269952018-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
26996
26997	PR tree-optimization/84811
26998	* poly-int.h (poly_span_traits): Remove the T3 parameter and
26999	promote HOST_WIDE_INT T2 - T1 results to unsigned HOST_WIDE_INT.
27000	(maybe_in_range_p, known_in_range_p, ranges_known_overlap_p):
27001	(known_subrange_p): Update accordingly.  Cast each value involved
27002	in the size comparison, rather than casting the result of the
27003	subtraction.
27004
270052018-03-21  Jakub Jelinek  <jakub@redhat.com>
27006
27007	PR tree-optimization/84982
27008	* gimple-ssa-store-merging.c (invert_op): Handle boolean inversion
27009	by flipping the least significant bit rather than all bits from
27010	bitpos to bitpos + bitsize - 1.
27011
270122018-03-21  Nathan Sidwell  <nathan@acm.org>
27013
27014	* doc/extend.texi (Deprecated Features): Remove mention of
27015	long-deleted deprecations.
27016
270172018-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27018
27019	PR jit/84288
27020	* configure.ac (gcc_cv_ld_soname) <*-*-solaris2*>: Set.
27021	* configure: Regenerate.
27022
270232018-03-21  Tom de Vries  <tom@codesourcery.com>
27024
27025	PR tree-optimization/83126
27026	* tree-parloops.c (num_phis): New function.
27027	(gen_parallel_loop): Detect and handle canonicalize_loop_ivs failure.
27028
270292018-03-21  Nathan Sidwell  <nathan@acm.org>
27030
27031	* doc/extend.texi (Deprecated Features): Update deprecated flags,
27032	mention anon-struct/union members and trailing attributes.
27033
270342018-03-21  Bin Cheng  <bin.cheng@arm.com>
27035
27036	PR tree-optimization/84969
27037	* tree-loop-distribution.c (fuse_memset_builtins): Don't reorder
27038	builtin memset partitions if they set different rhs values.
27039
270402018-03-21  Jakub Jelinek  <jakub@redhat.com>
27041
27042	PR rtl-optimization/84989
27043	* simplify-rtx.c (simplify_unary_operation_1): Don't try to simplify
27044	VEC_DUPLICATE with scalar result mode.
27045
270462018-03-21  Martin Liska  <mliska@suse.cz>
27047
27048	PR ipa/84963
27049	* ipa-icf.c (sem_item_optimizer::fixup_points_to_sets): Remove
27050	not intended return statement.
27051
270522018-03-21  Martin Liska  <mliska@suse.cz>
27053
27054	PR target/84988
27055	* tree-chkp.c (CHKP_ARRAY_MAX_CHECK_STEPS): Define a new macro.
27056	(chkp_find_bound_slots_1): Limit number of iterations.
27057
270582018-03-20  David H. Gutteridge  <dhgutteridge@sympatico.ca>
27059
27060	PR target/84838
27061	* Minor grammar fixes for x86 options.
27062
270632018-03-20  Jakub Jelinek  <jakub@redhat.com>
27064
27065	PR debug/84875
27066	* dce.c (delete_unmarked_insns): Don't remove frame related noop moves
27067	holding REG_CFA_RESTORE notes, instead turn them into a USE.
27068
270692018-03-20  Peter Bergner  <bergner@vnet.ibm.com>
27070
27071	PR target/83789
27072	* config/rs6000/altivec.md (altivec_lvx_<mode>_2op): Delete define_insn.
27073	(altivec_lvx_<mode>_1op): Likewise.
27074	(altivec_stvx_<mode>_2op): Likewise.
27075	(altivec_stvx_<mode>_1op): Likewise.
27076	(altivec_lvx_<VM2:mode>): New define_expand.
27077	(altivec_stvx_<VM2:mode>): Likewise.
27078	(altivec_lvx_<VM2:mode>_2op_<P:mptrsize>): New define_insn.
27079	(altivec_lvx_<VM2:mode>_1op_<P:mptrsize>): Likewise.
27080	(altivec_stvx_<VM2:mode>_2op_<P:mptrsize>): Likewise.
27081	(altivec_stvx_<VM2:mode>_1op_<P:mptrsize>): Likewise.
27082	* config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Use new expanders.
27083	(rs6000_gen_lvx): Likewise.
27084	* config/rs6000/rs6000.c (altivec_expand_lv_builtin): Likewise.
27085	(altivec_expand_stv_builtin): Likewise.
27086	(altivec_expand_builtin): Likewise.
27087	* config/rs6000/vector.md: Likewise.
27088
270892018-03-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27090
27091	PR target/82518
27092	* config/arm/arm.c (arm_array_mode_supported_p): Return false for
27093	BYTES_BIG_ENDIAN.
27094
270952018-03-20  Richard Biener  <rguenther@suse.de>
27096
27097	PR target/84986
27098	* config/i386/i386.c (ix86_add_stmt_cost): Only cost
27099	sign-conversions as zero, fall back to standard scalar_stmt
27100	cost for the rest.
27101
271022018-03-20  Martin Liska  <mliska@suse.cz>
27103
27104	PR ipa/84825
27105	* predict.c (rebuild_frequencies): Handle case when we have
27106	PROFILE_ABSENT, but flag_guess_branch_prob is false.
27107
271082018-03-20  Jakub Jelinek  <jakub@redhat.com>
27109
27110	PR target/84990
27111	* dwarf2asm.c (dw2_output_indirect_constant_1): Temporarily turn off
27112	flag_section_anchors.
27113	* varasm.c (use_blocks_for_decl_p): Remove hack for
27114	dw2_force_const_mem.
27115
27116	PR target/84845
27117	* config/aarch64/aarch64.md (*aarch64_reg_<mode>3_neg_mask2): Rename
27118	to ...
27119	(*aarch64_<optab>_reg_<mode>3_neg_mask2): ... this.  If pseudos can't
27120	be created, use lowpart_subreg of operands[0] rather than operands[0]
27121	itself.
27122	(*aarch64_reg_<mode>3_minus_mask): Rename to ...
27123	(*aarch64_ashl_reg_<mode>3_minus_mask): ... this.
27124	(*aarch64_<optab>_reg_di3_mask2): Use const_int_operand predicate
27125	and n constraint instead of aarch64_shift_imm_di and Usd.
27126	(*aarch64_reg_<optab>_minus<mode>3): Rename to ...
27127	(*aarch64_<optab>_reg_minus<mode>3): ... this.
27128
271292018-03-20  Sudakshina Das  <sudi.das@arm.com>
27130
27131	PR target/82989
27132	* config/arm/neon.md (ashldi3_neon): Update ?s for constraints
27133	to favor GPR over NEON registers.
27134	(<shift>di3_neon): Likewise.
27135
271362018-03-20  Tom de Vries  <tom@codesourcery.com>
27137
27138	PR target/84952
27139	* config/nvptx/nvptx.c (nvptx_single): Don't neuter bar.sync.
27140	(nvptx_process_pars): Emit bar.sync asap and alap.
27141
271422018-03-20  Tom de Vries  <tom@codesourcery.com>
27143
27144	PR target/84954
27145	* config/nvptx/nvptx.c (prevent_branch_around_nothing): Also update
27146	seen_label if seen_label is already set.
27147
271482018-03-20  Jakub Jelinek  <jakub@redhat.com>
27149
27150	PR target/84945
27151	* config/i386/i386.c (fold_builtin_cpu): For features above 31
27152	use __cpu_features2 variable instead of __cpu_model.__cpu_features[0].
27153	Use 1U instead of 1.  Formatting fixes.
27154
27155	PR c/84953
27156	* builtins.c (fold_builtin_strpbrk): For strpbrk(x, "") use type
27157	instead of TREE_TYPE (s1) for the return value.
27158
271592018-03-19  Jakub Jelinek  <jakub@redhat.com>
27160
27161	PR tree-optimization/84946
27162	* gimple-ssa-store-merging.c (mem_valid_for_store_merging): Compute
27163	bitsize + bitsize in poly_uint64 rather than poly_int64.
27164
27165	PR sanitizer/78651
27166	* dwarf2asm.c: Include fold-const.c.
27167	(dw2_output_indirect_constant_1): Set DECL_INITIAL (decl) to ADDR_EXPR
27168	of decl rather than decl itself.
27169
27170	PR rtl-optimization/84643
27171	* memmodel.h (enum memmodel): Add MEMMODEL_MAX enumerator.
27172
271732018-03-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
27174
27175	PR sanitizer/78651
27176	* dwarf2asm.c (dw2_output_indirect_constant_1): Disable ASan before
27177	calling assemble_variable.
27178
271792018-03-19  Sudakshina Das  <sudi.das@arm.com>
27180
27181	PR target/81647
27182	* config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Modify
27183	instructions for UNLT, UNLE, UNGT, UNGE, UNEQ, UNORDERED and ORDERED.
27184
271852018-03-19  Jim Wilson  <jimw@sifive.com>
27186
27187	PR bootstrap/84856
27188	* config/riscv/riscv.c (riscv_function_arg_boundary): Use
27189	PREFERRED_STACK_BOUNDARY instead of STACK_BOUNDARY.
27190	(riscv_first_stack_step): Likewise.
27191	(riscv_option_override): Use STACK_BOUNDARY instead of
27192	MIN_STACK_BOUNDARY.
27193	* config/riscv/riscv.h (STACK_BOUNDARY): Renamed from
27194	MIN_STACK_BOUNDARY.
27195	(BIGGEST_ALIGNMENT): Set to 128.
27196	(PREFERRED_STACK_BOUNDARY): Renamed from STACK_BOUNDARY.
27197	(RISCV_STACK_ALIGN): Use PREFERRED_STACK_BOUNDARY instead of
27198	STACK_BOUNDARY.
27199
272002018-03-19  Richard Biener  <rguenther@suse.de>
27201
27202	PR tree-optimization/84933
27203	* tree-vrp.c (set_and_canonicalize_value_range): Treat out-of-bound
27204	values as -INF/INF when canonicalizing an ANTI_RANGE to a RANGE.
27205
272062018-03-19  Richard Biener  <rguenther@suse.de>
27207
27208	PR tree-optimization/84859
27209	* tree-ssa-phiopt.c (single_trailing_store_in_bb): New function.
27210	(cond_if_else_store_replacement): Perform sinking operation on
27211	single-store BBs regardless of MAX_STORES_TO_SINK setting.
27212	Generalize what a BB with a single eligible store is.
27213
272142018-03-19  Richard Biener  <rguenther@suse.de>
27215
27216	PR tree-optimization/84929
27217	* tree-data-ref.c (analyze_siv_subscript_cst_affine): Guard
27218	chrec_is_positive against non-chrec arg.
27219
272202018-03-19  Tamar Christina  <tamar.christina@arm.com>
27221
27222	PR target/84711
27223	* config/arm/arm.c (arm_can_change_mode_class): revert r258554.
27224
272252018-03-18  Martin Liska  <mliska@suse.cz>
27226
27227	PR rtl-optimization/84635
27228	* regrename.c (build_def_use): Use matches_mode only when
27229	matches >= 0.
27230
272312018-03-18  Richard Sandiford  <richard.sandiford@linaro.org>
27232
27233	PR tree-optimization/84913
27234	* tree-vect-loop.c (vectorizable_reduction): Don't try to
27235	vectorize chains of COND_EXPRs.
27236
272372018-03-18  Chung-Ju Wu  <jasonwucj@gmail.com>
27238
27239	* config/nds32/nds32.h (MAX_REGS_PER_ADDRESS): Fix the value.
27240
272412018-03-18  Chung-Ju Wu  <jasonwucj@gmail.com>
27242
27243	* config/nds32/nds32.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
27244
272452018-03-18  Chung-Ju Wu  <jasonwucj@gmail.com>
27246
27247	* config/nds32/nds32.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
27248
272492018-03-17  Chung-Ju Wu  <jasonwucj@gmail.com>
27250	    Kito Cheng  <kito.cheng@gmail.com>
27251
27252	* config/nds32/nds32-protos.h (nds32_adjust_reg_alloc_order): Declare.
27253	* config/nds32/nds32.c (nds32_reg_alloc_order_for_speed): New array.
27254	(nds32_adjust_reg_alloc_order): New function.
27255	* config/nds32/nds32.h (ADJUST_REG_ALLOC_ORDER): Define.
27256
272572018-03-17  Kito Cheng  <kito.cheng@gmail.com>
27258
27259	* config/nds32/nds32.c (nds32_asm_output_mi_thunk,
27260	nds32_print_operand, nds32_print_operand_address): Use
27261	HOST_WIDE_INT_PRINT_DEC instead.
27262
272632018-03-17  Chung-Ju Wu  <jasonwucj@gmail.com>
27264
27265	* config/nds32/nds32.c (nds32_register_priority): Modify cost.
27266
272672018-03-17  Jakub Jelinek  <jakub@redhat.com>
27268
27269	PR target/84902
27270	* config/i386/i386.c (initial_ix86_tune_features,
27271	initial_ix86_arch_features): Use unsigned HOST_WIDE_INT rather than
27272	unsigned long long.
27273	(set_ix86_tune_features): Change ix86_tune_mask from unsigned int
27274	to unsigned HOST_WIDE_INT, initialize to HOST_WIDE_INT_1U << ix86_tune
27275	rather than 1u << ix86_tune.  Formatting fix.
27276	(ix86_option_override_internal): Change ix86_arch_mask from
27277	unsigned int to unsigned HOST_WIDE_INT, initialize to
27278	HOST_WIDE_INT_1U << ix86_arch rather than 1u << ix86_arch.
27279	(ix86_function_specific_restore): Likewise.
27280
272812018-03-16  Jakub Jelinek  <jakub@redhat.com>
27282
27283	PR target/84899
27284	* postreload.c (reload_combine_recognize_pattern): Perform
27285	INTVAL addition in unsigned HOST_WIDE_INT type to avoid UB and
27286	truncate_int_for_mode the result for the destination's mode.
27287
27288	PR c/84909
27289	* hsa-gen.c (mem_type_for_type): Fix comment typo.
27290	* tree-vect-loop-manip.c (vect_create_cond_for_niters_checks):
27291	Likewise.
27292	* gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
27293	Likewise.
27294
272952018-03-16  Vladimir Makarov  <vmakarov@redhat.com>
27296
27297	PR target/84876
27298	* lra-assigns.c (lra_split_hard_reg_for): Don't use
27299	regno_allocno_class_array and sorted_pseudos.
27300	* lra-constraints.c (spill_hard_reg_in_range): Ignore hard regs in
27301	insns where regno is used.
27302
273032018-03-16  Martin Liska  <mliska@suse.cz>
27304
27305	PR ipa/84833
27306	* multiple_target.c (create_dispatcher_calls): Redirect
27307	reference in the symbol table.
27308
273092018-03-16  Martin Liska  <mliska@suse.cz>
27310
27311	PR ipa/84722
27312	* multiple_target.c (create_dispatcher_calls): Redirect also
27313	an alias.
27314
273152018-03-16  Jakub Jelinek  <jakub@redhat.com>
27316
27317	PR c++/79937
27318	PR c++/82410
27319	* tree.h (TARGET_EXPR_NO_ELIDE): Define.
27320	* gimplify.c (gimplify_modify_expr_rhs): Don't elide TARGET_EXPRs with
27321	TARGET_EXPR_NO_ELIDE flag set unless *expr_p is INIT_EXPR.
27322
273232018-03-16  Julia Koval  <julia.koval@intel.com>
27324
27325	* doc/invoke.texi (Skylake Server): Add CLWB.
27326	Cannonlake): Remove CLWB.
27327
273282018-03-16  Jakub Jelinek  <jakub@redhat.com>
27329
27330	PR tree-optimization/84841
27331	* tree-ssa-reassoc.c (INTEGER_CONST_TYPE): Change to 1 << 4 from
27332	1 << 3.
27333	(FLOAT_ONE_CONST_TYPE): Define.
27334	(constant_type): Return FLOAT_ONE_CONST_TYPE for -1.0 and 1.0.
27335	(sort_by_operand_rank): Put entries with higher constant_type last
27336	rather than first to match comments.
27337
273382018-03-15  Sandra Loosemore  <sandra@codesourcery.com>
27339
27340	* config/nios2/nios2.md (movsi_internal): Fix thinko in
27341	split predicate.
27342
273432018-03-15  Jakub Jelinek  <jakub@redhat.com>
27344
27345	PR c++/79085
27346	* calls.c (expand_call): For TREE_ADDRESSABLE rettype ignore alignment
27347	check and use address of target always.
27348
273492018-03-15  H.J. Lu  <hongjiu.lu@intel.com>
27350
27351	PR target/84574
27352	* config/i386/i386.c (indirect_thunk_needed): Update comments.
27353	(indirect_thunk_bnd_needed): Likewise.
27354	(indirect_thunks_used): Likewise.
27355	(indirect_thunks_bnd_used): Likewise.
27356	(indirect_return_needed): New.
27357	(indirect_return_bnd_needed): Likewise.
27358	(output_indirect_thunk_function): Add a bool argument for
27359	function return.
27360	(output_indirect_thunk_function): Don't generate alias for
27361	function return thunk.
27362	(ix86_code_end): Call output_indirect_thunk_function to generate
27363	function return thunks.
27364	(ix86_output_function_return): Set indirect_return_bnd_needed
27365	and indirect_return_needed instead of indirect_thunk_bnd_needed
27366	and indirect_thunk_needed.
27367
273682018-03-15  Olga Makhotina  <olga.makhotina@intel.com>
27369
27370	* config/i386/sgxintrin.h (_enclv_u32): New intrinsic.
27371	(__enclv_bc, __enclv_cd, __enclv_generic): New definitions.
27372	(ERDINFO, ETRACKC, ELDBC, ELDUC): New leaves.
27373
273742018-03-15  David Malcolm  <dmalcolm@redhat.com>
27375	    Paul Hua  <paul.hua.gm@gmail.com>
27376
27377	PR c/84852
27378	* gcc.dg/fixits-pr84852-1.c: Fix filename in dg-regexp.
27379
273802018-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
27381
27382	* config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add back the
27383	TARGET_DOUBLE_FLOAT and TARGET_SINGLE_FLOAT conditions on the DFmode
27384	resp. SFmode cases.
27385
273862018-03-15  Tamar Christina  <tamar.christina@arm.com>
27387
27388	PR target/84711
27389	* config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE
27390	instead of GET_MODE_SIZE when comparing Units.
27391
273922018-03-15  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
27393
27394	PR target/68256
27395	* varasm.c (hash_section): Return an unchangeble hash value
27396	* config/aarch64/aarch64.c (aarch64_use_blocks_for_constant_p):
27397	Return !aarch64_can_use_per_function_literal_pools_p ().
27398
273992018-03-15  Jakub Jelinek  <jakub@redhat.com>
27400
27401	PR target/84860
27402	* optabs.c (emit_conditional_move): Pass address of cmode's copy
27403	rather than address of cmode as last argument to prepare_cmp_insn.
27404
274052018-03-15  Julia Koval  <julia.koval@intel.com>
27406
27407	* config/i386/i386.c (F_AVX512VBMI2, F_GFNI, F_VPCLMULQDQ,
27408	F_AVX512VNNI, F_AVX512BITALG): New.
27409
274102018-03-14  John David Anglin  <danglin@gcc.gnu.org>
27411
27412	PR target/83451
27413	* config/pa/pa.c (pa_emit_move_sequence):  Always emit secondary reload
27414	insn for floating-point loads and stores.
27415
274162018-03-14  Carl Love  <cel@us.ibm.com>
27417
27418	* config/rs6000/rs6000-c.c: Add macro definitions for
27419	ALTIVEC_BUILTIN_VEC_PERMXOR.
27420	* config/rs6000/rs6000.h: Add #define for vec_permxor builtin.
27421	* config/rs6000/rs6000-builtin.def: Add macro expansions for VPERMXOR.
27422	* config/rs6000/altivec.md (altivec_vpermxor): New define expand.
27423	* config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Add case
27424	UNSPEC_VPERMXOR.
27425	* config/doc/extend.texi: Add prototypes for vec_permxor.
27426
274272018-03-14  David Malcolm  <dmalcolm@redhat.com>
27428
27429	PR c/84852
27430	* diagnostic-show-locus.c (class layout_point): Convert m_line
27431	from int to linenum_type.
27432	(line_span::comparator): Use linenum "compare" function when
27433	comparing line numbers.
27434	(test_line_span): New function.
27435	(layout_range::contains_point): Convert param "row" from int to
27436	linenum_type.
27437	(layout_range::intersects_line_p): Likewise.
27438	(layout::will_show_line_p): Likewise.
27439	(layout::print_source_line): Likewise.
27440	(layout::should_print_annotation_line_p): Likewise.
27441	(layout::print_annotation_line): Likewise.
27442	(layout::print_leading_fixits): Likewise.
27443	(layout::annotation_line_showed_range_p): Likewise.
27444	(struct line_corrections): Likewise for field m_row.
27445	(line_corrections::line_corrections): Likewise for param "row".
27446	(layout::print_trailing_fixits): Likewise.
27447	(layout::get_state_at_point): Likewise.
27448	(layout::get_x_bound_for_row): Likewise.
27449	(layout::print_line): Likewise.
27450	(diagnostic_show_locus): Likewise for locals "last_line" and "row".
27451	(selftest::diagnostic_show_locus_c_tests): Call test_line_span.
27452	* input.c (selftest::test_linenum_comparisons): New function.
27453	(selftest::input_c_tests): Call it.
27454	* selftest.c (selftest::test_assertions): Test ASSERT_GT,
27455	ASSERT_GT_AT, ASSERT_LT, and ASSERT_LT_AT.
27456	* selftest.h (ASSERT_GT): New macro.
27457	(ASSERT_GT_AT): New macro.
27458	(ASSERT_LT): New macro.
27459	(ASSERT_LT_AT): New macro.
27460
274612018-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
27462
27463	PR rtl-optimization/84780
27464	* combine.c (distribute_links): Don't make a link based on pc_rtx.
27465
274662018-03-14  Martin Liska  <mliska@suse.cz>
27467
27468	* tree.c (record_node_allocation_statistics): Use
27469	get_stats_node_kind.
27470	(get_stats_node_kind): New function extracted from
27471	record_node_allocation_statistics.
27472	(free_node): Use get_stats_node_kind.
27473
274742018-03-14  Richard Biener  <rguenther@suse.de>
27475
27476	* tree-ssa-pre.c (compute_antic_aux): Remove code that asserts
27477	that the value-set of ANTIC_IN doesn't grow.
27478
27479	Revert
27480	* tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs
27481	member.
27482	(BB_VISITED_WITH_VISITED_SUCCS): New define.
27483	(compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS.
27484
274852018-03-14  Julia Koval  <julia.koval@intel.com>
27486
27487	* config.gcc (icelake-client, icelake-server): New.
27488	(icelake): Remove.
27489	* config/i386/i386.c (initial_ix86_tune_features): Extend to 64 bit.
27490	(initial_ix86_arch_features): Ditto.
27491	(PTA_SKYLAKE): Add SGX.
27492	(PTA_ICELAKE): Remove.
27493	(PTA_ICELAKE_CLIENT): New.
27494	(PTA_ICELAKE_SERVER): New.
27495	(ix86_option_override_internal): Split up icelake on icelake client and
27496	icelake server.
27497	(get_builtin_code_for_version): Ditto.
27498	(fold_builtin_cpu): Ditto.
27499	* config/i386/driver-i386.c (config/i386/driver-i386.c): Ditto.
27500	* config/i386/i386-c.c (ix86_target_macros_internal): Ditto
27501	* config/i386/i386.h (processor_type): Ditto.
27502	* doc/invoke.texi: Ditto.
27503
275042018-03-14  Jakub Jelinek  <jakub@redhat.com>
27505
27506	PR sanitizer/83392
27507	* sanopt.c (maybe_optimize_ubsan_ptr_ifn): Handle also
27508	INTEGER_CST offset, add it together with bitpos / 8 and
27509	sign extend based on POINTER_SIZE.
27510
27511	PR target/84844
27512	Revert
27513	2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
27514
27515	PR target/78090
27516	* config/i386/constraints.md (Yc): New register constraint.
27517	* config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
27518	Use Yc constraint for alternative 2 of operand 0.  Remove
27519	preferred_for_speed attribute.
27520
275212018-03-14  Richard Biener  <rguenther@suse.de>
27522
27523	PR tree-optimization/84830
27524	* tree-ssa-pre.c (compute_antic_aux): Intersect the new ANTIC_IN
27525	with the old one to avoid oscillations.
27526
275272018-03-13  Vladimir Makarov  <vmakarov@redhat.com>
27528
27529	PR target/83712
27530	* lra-assigns.c (find_all_spills_for): Ignore uninteresting
27531	pseudos.
27532	(assign_by_spills): Return a flag of reload assignment failure.
27533	Do not process the reload assignment failures.  Do not spill other
27534	reload pseudos if they has the same reg class.  Update n if
27535	necessary.
27536	(lra_assign): Add a return arg.  Set up from the result of
27537	assign_by_spills call.
27538	(find_reload_regno_insns, lra_split_hard_reg_for): New functions.
27539	* lra-constraints.c (split_reg): Add a new arg.  Use it instead of
27540	usage_insns if it is not NULL.
27541	(spill_hard_reg_in_range): New function.
27542	(split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg.
27543	* lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New
27544	function prototypes.
27545	(lra_assign): Change prototype.
27546	* lra.c (lra): Add code to deal with fails by splitting hard reg
27547	live ranges.
27548
275492018-03-01  Palmer Dabbelt  <palmer@sifive.com>
27550
27551	* config/riscv/riscv.opt (mrelax): New option.
27552	* config/riscv/riscv.c (riscv_file_start): Emit ".option
27553	"norelax" when riscv_mrelax is disabled.
27554	* doc/invoke.texi (RISC-V): Document "-mrelax" and "-mno-relax".
27555
275562018-03-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
27557
27558	PR target/84743
27559	* config/rs6000/rs6000.c (rs6000_reassociation_width): Disable parallel
27560	reassociation for int modes.
27561
275622018-03-13  Richard Sandiford  <richard.sandiford@linaro.org>
27563
27564	* tree-vect-loop-manip.c (vect_maybe_permute_loop_masks):
27565	Reverse the choice between VEC_UNPACK_LO_EXPR and VEC_UNPACK_HI_EXPR
27566	for big-endian.
27567	* config/aarch64/iterators.md (hi_lanes_optab): New int attribute.
27568	* config/aarch64/aarch64-sve.md
27569	(*aarch64_sve_<perm_insn><perm_hilo><mode>): Rename to...
27570	(aarch64_sve_<perm_insn><perm_hilo><mode>): ...this.
27571	(*extend<mode><Vwide>2): Rename to...
27572	(aarch64_sve_extend<mode><Vwide>2): ...this.
27573	(vec_unpack<su>_<perm_hilo>_<mode>): Turn into a define_expand,
27574	renaming the old pattern to...
27575	(aarch64_sve_punpk<perm_hilo>_<mode>): ...this.  Only define
27576	unsigned packs.
27577	(vec_unpack<su>_<perm_hilo>_<SVE_BHSI:mode>): Turn into a
27578	define_expand, renaming the old pattern to...
27579	(aarch64_sve_<su>unpk<perm_hilo>_<SVE_BHSI:mode>): ...this.
27580	(*vec_unpacku_<perm_hilo>_<mode>_no_convert): Delete.
27581	(vec_unpacks_<perm_hilo>_<mode>): Take BYTES_BIG_ENDIAN into
27582	account when deciding which SVE instruction the optab should use.
27583	(vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Likewise.
27584
275852018-03-13  Richard Sandiford  <richard.sandiford@linaro.org>
27586
27587	* config/aarch64/aarch64.md (V4_REGNUM, V8_REGNUM, V12_REGNUM)
27588	(V20_REGNUM, V24_REGNUM, V28_REGNUM, P1_REGNUM, P2_REGNUM, P3_REGNUM)
27589	(P4_REGNUM, P5_REGNUM, P6_REGNUM, P8_REGNUM, P9_REGNUM, P10_REGNUM)
27590	(P11_REGNUM, P12_REGNUM, P13_REGNUM, P14_REGNUM): New define_constants.
27591	(tlsdesc_small_<mode>): Turn a define_expand and use
27592	tlsdesc_small_sve_<mode> for SVE.  Rename original define_insn to...
27593	(tlsdesc_small_advsimd_<mode>): ...this.
27594	(tlsdesc_small_sve_<mode>): New pattern.
27595
275962018-03-13  Richard Sandiford  <richard.sandiford@linaro.org>
27597
27598	* config/aarch64/iterators.md (UNSPEC_SMUL_HIGHPART)
27599	(UNSPEC_UMUL_HIGHPART): New constants.
27600	(MUL_HIGHPART): New int iteraor.
27601	(su): Handle UNSPEC_SMUL_HIGHPART and UNSPEC_UMUL_HIGHPART.
27602	* config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart): New
27603	define_expand.
27604	(*<su>mul<mode>3_highpart): New define_insn.
27605
276062018-03-13  Eric Botcazou  <ebotcazou@adacore.com>
27607
27608	PR lto/84805
27609	* ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of
27610	incomplete types.
27611
276122018-03-13  Martin Liska  <mliska@suse.cz>
27613
27614	PR ipa/84658.
27615	* (sem_item_optimizer::sem_item_optimizer): Initialize new
27616	vector.
27617	(sem_item_optimizer::~sem_item_optimizer): Release it.
27618	(sem_item_optimizer::merge_classes): Register variable aliases.
27619	(sem_item_optimizer::fixup_pt_set): New function.
27620	(sem_item_optimizer::fixup_points_to_sets): Likewise.
27621	* ipa-icf.h: Declare new variables and functions.
27622
276232018-03-13  Jakub Jelinek  <jakub@redhat.com>
27624
27625	PR middle-end/84834
27626	* match.pd ((A & C) != 0 ? D : 0): Use INTEGER_CST@2 instead of
27627	integer_pow2p@2 and test integer_pow2p in condition.
27628	(A < 0 ? C : 0): Similarly for @1.
27629
27630	PR middle-end/84831
27631	* stmt.c (parse_output_constraint): If the CONSTRAINT_LEN (*p, p)
27632	characters starting at p contain '\0' character, don't look beyond
27633	that.
27634
27635	PR target/84827
27636	* config/i386/i386.md (round<mode>2): For 387 fancy math, disable
27637	pattern if -ftrapping-math -fno-fp-int-builtin-inexact.
27638
27639	PR target/84828
27640	* reg-stack.c (change_stack): Change update_end var from int to
27641	rtx_insn *, if non-NULL don't update just BB_END (current_block), but
27642	also call set_block_for_insn on the newly added insns and rescan.
27643
27644	PR target/84786
27645	* config/i386/sse.md (sse2_loadhpd): Use Yv constraint rather than v
27646	on the last operand.
27647
27648	PR c++/84704
27649	* tree.c (stabilize_reference_1): Return save_expr (e) for
27650	STATEMENT_LIST even if it doesn't have side-effects.
27651
276522018-03-12  Jonathan Wakely  <jwakely@redhat.com>
27653
27654	* doc/invoke.texi (-mclflushopt): Fix spelling of option.
27655
276562018-03-12  Renlin Li  <renlin.li@arm.com>
27657
27658	* config/aarch64/aarch64.md (movhf_aarch64): Fix mode argument to
27659	aarch64_output_scalar_simd_mov_immediate.
27660
276612018-03-12  Martin Sebor  <msebor@redhat.com>
27662
27663	PR tree-optimization/83456
27664	* gimple-fold.c (gimple_fold_builtin_memory_op): Avoid warning
27665	for perfectly overlapping calls to memcpy.
27666	(gimple_fold_builtin_memory_chk): Same.
27667	(gimple_fold_builtin_strcpy): Handle no-warning.
27668	(gimple_fold_builtin_stxcpy_chk): Same.
27669	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Handle no-warning.
27670
276712018-03-12  Segher Boessenkool  <segher@kernel.crashing.org>
27672
27673	* config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add bool "named"
27674	parameter.  Use it for SFmode.
27675	(rs6000_function_arg_advance_1): Adjust.
27676	(rs6000_function_arg): Adjust.
27677	(rs6000_gimplify_va_arg): Pass false for that new parameter.
27678
276792018-03-12  Segher Boessenkool  <segher@kernel.crashing.org>
27680
27681	PR rtl-optimization/84169
27682	PR rtl-optimization/84780
27683	* combine.c (can_combine_p): Check for a 2-insn combination whether
27684	the destination register is used between the two insns, too.
27685
276862018-03-12  Richard Biener  <rguenther@suse.de>
27687
27688	PR tree-optimization/84803
27689	* tree-if-conv.c (ifcvt_memrefs_wont_trap): Don't do anything
27690	for refs DR analysis didn't process.
27691
276922018-03-12  Richard Biener  <rguenther@suse.de>
27693
27694	PR tree-optimization/84777
27695	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): For
27696	force-vectorize loops ignore whether we are optimizing for size.
27697
276982018-03-12  Chung-Ju Wu  <jasonwucj@gmail.com>
27699
27700	* config/nds32/nds32.c (nds32_md_asm_adjust): New function.
27701	(TARGET_MD_ASM_ADJUST): Define.
27702
277032018-03-12  Monk Chiang  <sh.chiang04@gmail.com>
27704	    Kito Cheng  <kito.cheng@gmail.com>
27705	    Chung-Ju Wu  <jasonwucj@gmail.com>
27706
27707	* config/nds32/nds32.c (nds32_compute_stack_frame,
27708	nds32_emit_stack_push_multiple, nds32_emit_stack_pop_multiple,
27709	nds32_emit_stack_v3push, nds32_emit_stack_v3pop,
27710	nds32_emit_adjust_frame, nds32_expand_prologue, nds32_expand_epilogue,
27711	nds32_expand_prologue_v3push, nds32_expand_epilogue_v3pop): Refine.
27712	* config/nds32/nds32.h (NDS32_FIRST_CALLEE_SAVE_GPR_REGNUM,
27713	NDS32_LAST_CALLEE_SAVE_GPR_REGNUM, NDS32_V3PUSH_AVAILABLE_P): New.
27714	* config/nds32/nds32.md (prologue, epilogue): Use macro
27715	NDS32_V3PUSH_AVAILABLE_P to do checking.
27716
277172018-03-11  Jakub Jelinek  <jakub@redhat.com>
27718
27719	PR debug/58150
27720	* dwarf2out.c (gen_enumeration_type_die): Don't guard adding
27721	DW_AT_declaration for ENUM_IS_OPAQUE on -gdwarf-4 or -gno-strict-dwarf,
27722	but on TYPE_SIZE.  Don't do anything for ENUM_IS_OPAQUE if not creating
27723	a new die.  Don't set TREE_ASM_WRITTEN if ENUM_IS_OPAQUE.  Guard
27724	addition of most attributes on !orig_type_die or the attribute not
27725	being present already.  Assert TYPE_VALUES is NULL for ENUM_IS_OPAQUE.
27726
277272018-03-11  Kito Cheng  <kito.cheng@gmail.com>
27728	    Chung-Ju Wu  <jasonwucj@gmail.com>
27729
27730	* config/nds32/nds32.c (nds32_cpu_cpp_builtins): Modify to define
27731	__NDS32_VH__ macro.
27732	* config/nds32/nds32.opt (mvh): New option.
27733
277342018-03-11  Kito Cheng  <kito.cheng@gmail.com>
27735	    Chung-Ju Wu  <jasonwucj@gmail.com>
27736
27737	* config/nds32/nds32-protos.h (nds32_cpu_cpp_builtins): Declare
27738	function.
27739	* config/nds32/nds32.c (nds32_cpu_cpp_builtins): New function.
27740	* config/nds32/nds32.h (TARGET_CPU_CPP_BUILTINS): Modify its
27741	definition.
27742
277432018-03-11  Kito Cheng  <kito.cheng@gmail.com>
27744	    Chung-Ju Wu  <jasonwucj@gmail.com>
27745
27746	* config/nds32/nds32-memory-manipulation.c (nds32_expand_strlen): New
27747	function.
27748	* config/nds32/nds32-multiple.md (strlensi): New pattern.
27749	* config/nds32/nds32-protos.h (nds32_expand_strlen): Declare function.
27750
277512018-03-11  Monk Chiang  <sh.chiang04@gmail.com>
27752	    Kito Cheng  <kito.cheng@gmail.com>
27753	    Chung-Ju Wu  <jasonwucj@gmail.com>
27754
27755	* config/nds32/constants.md (unspec_element): Add UNSPEC_FFB,
27756	UNSPEC_FFMISM and UNSPEC_FLMISM.
27757	* config/nds32/nds32-intrinsic.c (bdesc_2arg): Add builtin description
27758	for ffb, ffmism and flmism.
27759	* config/nds32/nds32-intrinsic.md (unspec_ffb): Define new pattern.
27760	(unspec_ffmism): Ditto.
27761	(unspec_flmism): Ditto.
27762	(nds32_expand_builtin_impl): Check if string extension is available.
27763	* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FFB,
27764	NDS32_BUILTIN_FFMISM and NDS32_BUILTIN_FLMISM.
27765
277662018-03-10  Vladimir Makarov  <vmakarov@redhat.com>
27767
27768	Reverting patch:
27769	2018-03-09  Vladimir Makarov  <vmakarov@redhat.com>
27770
27771	PR target/83712
27772	* lra-assigns.c (assign_by_spills): Return a flag of reload
27773	assignment failure.  Do not process the reload assignment
27774	failures.  Do not spill other reload pseudos if they has the same
27775	reg class.
27776	(lra_assign): Add a return arg.  Set up from the result of
27777	assign_by_spills call.
27778	(find_reload_regno_insns, lra_split_hard_reg_for): New functions.
27779	* lra-constraints.c (split_reg): Add a new arg.  Use it instead of
27780	usage_insns if it is not NULL.
27781	(spill_hard_reg_in_range): New function.
27782	(split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg.
27783	* lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New
27784	function prototypes.
27785	(lra_assign): Change prototype.
27786	* lra.c (lra): Add code to deal with fails by splitting hard reg
27787	live ranges.
27788
277892018-03-10  H.J. Lu  <hongjiu.lu@intel.com>
27790
27791	PR target/84807
27792	* config/i386/i386.opt: Replace Enforcment with Enforcement.
27793
277942018-03-10  Alexandre Oliva  <aoliva@redhat.com>
27795
27796	PR debug/84620
27797	* dwarf2out.h (dw_val_class): Add dw_val_class_symview.
27798	(dw_val_node): Add val_symbolic_view.
27799	* dwarf2out.c (dw_line_info_table): Add symviews_since_reset.
27800	(symview_upper_bound): New.
27801	(new_line_info_table): Initialize symviews_since_reset.
27802	(dwarf2out_source_line): Count symviews_since_reset and set
27803	symview_upper_bound.
27804	(dw_val_equal_p): Handle symview.
27805	(add_AT_symview): New.
27806	(print_dw_val): Handle symview.
27807	(attr_checksum, attr_checksum_ordered): Likewise.
27808	(same_dw_val_p, size_of_die): Likewise.
27809	(value_format, output_die): Likewise.
27810	(add_high_low_attributes): Use add_AT_symview for entry_view.
27811	(dwarf2out_finish): Reset symview_upper_bound, clear
27812	zero_view_p.
27813
278142018-03-09  Peter Bergner  <bergner@vnet.ibm.com>
27815
27816	PR target/83969
27817	* config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New prototype.
27818	Add strict argument and use it.
27819	(rs6000_split_multireg_move): Update for new strict argument.
27820	(mem_operand_gpr): Disallow all non-offsettable addresses.
27821	* config/rs6000/rs6000.md (*movdi_internal64): Use YZ constraint.
27822
278232018-03-09  Jakub Jelinek  <jakub@redhat.com>
27824
27825	PR target/84772
27826	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Mark va_arg_tmp
27827	temporary TREE_ADDRESSABLE before gimplification of BUILT_IN_MEMCPY.
27828	* config/powerpcspe/powerpcspe.c (rs6000_gimplify_va_arg): Likewise.
27829
27830	PR c++/84767
27831	* tree-inline.c (copy_tree_body_r): For INDIRECT_REF of a remapped
27832	decl, use remap_type if we want to use the type.
27833
278342018-03-09  Martin Sebor  <msebor@redhat.com>
27835
27836	PR tree-optimization/84526
27837	* gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
27838	Remove dead code.
27839	(builtin_access::generic_overlap): Be prepared to handle non-array
27840	base objects.
27841
278422018-03-09  Alexandre Oliva  <aoliva@redhat.com>
27843
27844	PR rtl-optimization/84682
27845	* lra-constraints.c (process_address_1): Check is_address flag
27846	for address constraints.
27847	(process_alt_operands): Likewise.
27848	* lra.c (lra_set_insn_recog_data): Pass asm operand locs to
27849	preprocess_constraints.
27850	* recog.h (preprocess_constraints): Add oploc parameter.
27851	Adjust callers.
27852	* recog.c (preprocess_constraints): Test address_operand for
27853	CT_ADDRESS constraints.
27854
278552018-03-09  Vladimir Makarov  <vmakarov@redhat.com>
27856
27857	PR target/83712
27858	* lra-assigns.c (assign_by_spills): Return a flag of reload
27859	assignment failure.  Do not process the reload assignment
27860	failures.  Do not spill other reload pseudos if they has the same
27861	reg class.
27862	(lra_assign): Add a return arg.  Set up from the result of
27863	assign_by_spills call.
27864	(find_reload_regno_insns, lra_split_hard_reg_for): New functions.
27865	* lra-constraints.c (split_reg): Add a new arg.  Use it instead of
27866	usage_insns if it is not NULL.
27867	(spill_hard_reg_in_range): New function.
27868	(split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg.
27869	* lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New
27870	function prototypes.
27871	(lra_assign): Change prototype.
27872	* lra.c (lra): Add code to deal with fails by splitting hard reg
27873	live ranges.
27874
278752018-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27876
27877	PR target/83193
27878	* common/config/arm/arm-common.c (arm_parse_arch_option_name):
27879	Accept complain bool parameter.  Only emit errors if it is true.
27880	(arm_parse_cpu_option_name): Likewise.
27881	(arm_target_thumb_only): Adjust callers of the above.
27882	* config/arm/arm-protos.h (arm_parse_cpu_option_name): Adjust
27883	prototype to take a default true bool parameter.
27884	(arm_parse_arch_option_name): Likewise.
27885
278862018-03-09  David Malcolm  <dmalcolm@redhat.com>
27887	    Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
27888
27889	PR jit/64089
27890	PR jit/84288
27891	* Makefile.in (LD_VERSION_SCRIPT_OPTION, LD_SONAME_OPTION): New.
27892	* configure: Regenerate.
27893	* configure.ac ("linker --version-script option"): New.
27894	("linker soname option"): New.
27895
278962018-03-09  Richard Biener  <rguenther@suse.de>
27897
27898	PR tree-optimization/84775
27899	* tree-if-conv.c (add_bb_predicate_gimplified_stmts): Delink
27900	immediate uses of predicate stmts and mark them modified.
27901
27902	Revert
27903	PR tree-optimization/84178
27904	* tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates
27905	to caller.
27906	(version_loop_for_if_conversion): Delay update_ssa call.
27907	(tree_if_conversion): Delay update_ssa until after predicate
27908	insertion.
27909
279102018-03-09  Eric Botcazou  <ebotcazou@adacore.com>
27911
27912	PR target/84763
27913	* config/i386/winnt.c (i386_pe_seh_cold_init): Use small pre-allocation
27914	when the function accesses prior frames.
27915
279162018-03-08  Jakub Jelinek  <jakub@redhat.com>
27917
27918	PR debug/84456
27919	* dwarf2out.c (dw_loc_list): If list && loc_list->first->next, call
27920	gen_llsym, otherwise call maybe_gen_llsym.
27921
27922	PR inline-asm/84742
27923	* recog.c (asm_operand_ok): Return 0 if multi-character constraint
27924	has ',' character inside of it.
27925
279262018-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27927
27928	PR target/84748
27929	* config/aarch64/aarch64.md (*compare_cstore<mode>_insn): Mark pattern
27930	as clobbering CC_REGNUM.
27931
279322018-03-08  Richard Biener  <rguenther@suse.de>
27933
27934	PR middle-end/84552
27935	* tree-scalar-evolution.c: Include tree-into-ssa.h.
27936	(follow_copies_to_constant): Do not follow SSA names registered
27937	for update.
27938
279392018-03-08  Richard Biener  <rguenther@suse.de>
27940
27941	PR tree-optimization/84178
27942	* tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates
27943	to caller.
27944	(version_loop_for_if_conversion): Delay update_ssa call.
27945	(tree_if_conversion): Delay update_ssa until after predicate
27946	insertion.
27947
279482018-03-08  David Malcolm  <dmalcolm@redhat.com>
27949
27950	PR tree-optimization/84178
27951	* tree-if-conv.c (release_bb_predicate): Remove the
27952	the assertion that the stmts have NULL use_ops.
27953	Discard the statements, asserting that they haven't
27954	yet been added to a BB.
27955
279562018-03-08  Richard Biener  <rguenther@suse.de>
27957
27958	PR tree-optimization/84746
27959	* tree-ssa-pre.c (find_leader_in_sets): Deal with SET1 being NULL.
27960	(phi_translate): Pass in destination ANTIC_OUT set.
27961	(phi_translate_1): Likewise.  For a simplified result lookup
27962	a leader in ANTIC_OUT and AVAIL_OUT, not the ANTIC_IN sets.
27963	(phi_translate_set): Adjust.
27964	(do_pre_regular_insertion): Likewise.
27965	(do_pre_partial_partial_insertion): Likewise.
27966
279672018-03-08  Martin Liska  <mliska@suse.cz>
27968
27969	PR gcov-profile/84735
27970	* doc/gcov.texi: Document usage of profile files.
27971	* gcov-io.h: Document changes in the format.
27972
279732018-03-08  Alexandre Oliva  <aoliva@redhat.com>
27974
27975	PR debug/84404
27976	PR debug/84408
27977	* dwarf2out.c (struct dw_line_info_table): Update comments for
27978	view == -1.
27979	(FORCE_RESET_NEXT_VIEW): New.
27980	(FORCE_RESETTING_VIEW_P): New.
27981	(RESETTING_VIEW_P): Check for -1 too.
27982	(ZERO_VIEW_P): Likewise.
27983	(new_line_info_table): Force-reset next view.
27984	(dwarf2out_begin_function): Likewise.
27985	(dwarf2out_source_line): Simplify zero_view_p initialization.
27986	Test FORCE_RESETTING_VIEW_P and RESETTING_VIEW_P instead of
27987	view directly.  Omit view when omitting .loc at line 0.
27988
279892018-03-08  Jakub Jelinek  <jakub@redhat.com>
27990
27991	PR tree-optimization/84740
27992	* tree-switch-conversion.c (process_switch): Call build_constructors
27993	only if info.phi_count is non-zero.
27994
27995	PR tree-optimization/84739
27996	* tree-tailcall.c (find_tail_calls): Check call arguments against
27997	DECL_ARGUMENTS (current_function_decl) rather than
27998	DECL_ARGUMENTS (func) when checking for tail recursion.
27999
280002018-03-07  Jakub Jelinek  <jakub@redhat.com>
28001
28002	* doc/contrib.texi: Add entries for Martin Liska, David Malcolm,
28003	Marek Polacek, extend Vladimir Makarov's, Jonathan Wakely's and
28004	Volker Reichelt's entry and add entries for people that perform
28005	GCC fuzzy testing and report numerous bugs.
28006
280072018-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
28008
28009	PR target/82411
28010	* config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Don't put
28011	readonly data in sdata, if that is disabled.
28012	* config/rs6000/sysv4.opt (mreadonly-in-sdata): New option.
28013	* doc/invoke.texi (RS/6000 and PowerPC Options): Document
28014	-mreadonly-in-sdata option.
28015
280162018-03-07  Martin Sebor  <msebor@redhat.com>
28017
28018	PR tree-optimization/84468
28019	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Consider successor
28020	basic block when looking for nul assignment.
28021
280222018-03-07  Eric Botcazou  <ebotcazou@adacore.com>
28023
28024	PR target/84277
28025	* except.h (output_function_exception_table): Adjust prototype.
28026	* except.c (output_function_exception_table): Remove FNNAME parameter
28027	and add SECTION parameter.  Ouput one part of the table at a time.
28028	* final.c (final_scan_insn_1) <NOTE_INSN_SWITCH_TEXT_SECTIONS>: Output
28029	the first part of the exception table and emit unwind directives.
28030	* config/i386/i386-protos.h (i386_pe_end_cold_function): Declare.
28031	(i386_pe_seh_cold_init): Likewise.
28032	* config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro.
28033	(ASM_DECLARE_COLD_FUNCTION_SIZE): Likewise.
28034	* config/i386/i386.c (x86_expand_epilogue): Fix wording in comment.
28035	(ix86_output_call_insn): Emit a nop in one more case for SEH.
28036	* config/i386/winnt.c: Include except.h.
28037	(struct seh_frame_state): Add reg_offset, after_prologue and
28038	in_cold_section fields.
28039	(i386_pe_seh_end_prologue): Set seh->after_prologue.
28040	(i386_pe_seh_cold_init): New function.
28041	(i386_pe_seh_fini): Add COLD parameter and bail out if it is not equal
28042	to seh->in_cold_section.
28043	(seh_emit_push): Record the offset of the push.
28044	(seh_emit_save): Record the offet of the save.
28045	(i386_pe_seh_unwind_emit): Deal with NOTE_INSN_SWITCH_TEXT_SECTIONS.
28046	Test seh->after_prologue to disregard the epilogue.
28047	(i386_pe_end_function): Pass FALSE to i386_pe_seh_fini.
28048	(i386_pe_end_cold_function): New function.
28049
280502018-03-07  Jakub Jelinek  <jakub@redhat.com>
28051
28052	PR fortran/84565
28053	* config/aarch64/predicates.md (aarch64_simd_reg_or_zero): Use
28054	aarch64_simd_or_scalar_imm_zero rather than aarch64_simd_imm_zero.
28055
28056	PR c++/84704
28057	* gimple-expr.c (create_tmp_var_raw): Set DECL_NAMELESS flag
28058	on tmp_var.
28059	* tree-pretty-print.c (dump_decl_name): For TDF_COMPARE_DEBUG,
28060	don't print names of DECL_NAMELESS DECL_IGNORED_P decls.
28061
28062	PR middle-end/84723
28063	* multiple_target.c: Include tree-inline.h and intl.h.
28064	(expand_target_clones): Diagnose and fail if node->definition and
28065	!tree_versionable_function_p (node->decl).
28066
280672018-03-06  John David Anglin  <danglin@gcc.gnu.org>
28068
28069	* config/pa/pa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use
28070	sprint_ul.
28071	(ASM_OUTPUT_ADDR_VEC_ELT): Revise for above change.
28072	(ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
28073	* config/pa/pa64-hpux.h (ASM_GENERATE_INTERNAL_LABEL): Revise as above.
28074
280752018-03-06  Jakub Jelinek  <jakub@redhat.com>
28076
28077	PR target/84710
28078	* combine.c (try_combine): Use reg_or_subregno instead of handling
28079	just paradoxical SUBREGs and REGs.
28080
280812018-03-06  Claudiu Zissulescu  <claziss@synopsys.com>
28082
28083	* config/arc/arc.c (arc_finalize_pic): Remove function.
28084	(arc_must_save_register): We use single base PIC register, remove
28085	checks to save/restore the PIC register.
28086	(arc_expand_prologue): Likewise.
28087	* config/arc/arc-protos.h (arc_set_default_type_attributes):
28088	Remove.
28089	(arc_verify_short): Likewise.
28090	(arc_attr_type): Likewise.
28091	* config/arc/arc.c (arc_set_default_type_attributes): Remove.
28092	(walk_stores): Likewise.
28093	(arc_address_cost): Make it static.
28094	(arc_verify_short): Likewise.
28095	(branch_dest): Likewise.
28096	(arc_attr_type): Likewise.
28097	* config/arc/arc.c (TARGET_ADJUST_INSN_LENGTH): Remove.
28098	(TARGET_INSN_LENGTH_PARAMETERS): Likewise.
28099	(arc_final_prescan_insn): Remove inserting the nops due to
28100	hardware hazards.  It is done in reorg step.
28101	(insn_length_variant_t): Remove.
28102	(insn_length_parameters_t): Likewise.
28103	(arc_insn_length_parameters): Likewise.
28104	(arc_get_insn_variants): Likewise.
28105	* config/arc/arc.h (TARGET_UPSIZE_DBR): Remove.
28106
281072018-03-06  Jakub Jelinek  <jakub@redhat.com>
28108
28109	PR inline-asm/84683
28110	* reg-stack.c (move_for_stack_reg): If any_malformed_asm, avoid
28111	assertion failure.
28112
28113	PR tree-optimization/84687
28114	* omp-simd-clone.c (simd_clone_create): Clear DECL_BUILT_IN_CLASS
28115	on new_node->decl.
28116	* match.pd (pow(C,x)*expN(y) -> expN(logN(C)*x+y)): New optimization.
28117
281182018-03-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28119
28120	* config/rs6000/rs6000-builtin.def (rs6000_speculation_barrier):
28121	Rename to ppc_speculation_barrier.
28122	* config/rs6000/rs6000.c (rs6000_init_builtins): Rename builtin to
28123	__builtin_ppc_speculation_barrier.
28124
281252018-03-05  Jakub Jelinek  <jakub@redhat.com>
28126
28127	PR target/84700
28128	* combine.c (combine_simplify_rtx): Don't try to simplify if
28129	if_then_else_cond returned non-NULL, but either true_rtx or false_rtx
28130	are equal to x.
28131
281322018-03-05  Segher Boessenkool  <segher@kernel.crashing.org>
28133
28134	* config/rs6000/rs6000.c (rs6000_loop_align): Don't align tiny loops
28135	to 32 bytes when compiling for POWER9.
28136
281372018-03-05  Jakub Jelinek  <jakub@redhat.com>
28138
28139	PR target/84564
28140	* config/i386/i386.c (ix86_function_ok_for_sibcall): Check for
28141	regparm >= 3 with no arg reg available also for calls with
28142	flag_force_indirect_call.  Pass decl to ix86_function_regparm.
28143
28144	PR target/84524
28145	* config/i386/sse.md (*<code><mode>3): Replace <mask_prefix3> with
28146	orig,vex.
28147	(*<plusminus_insn><mode>3): Likewise.  Remove <mask_operand3> uses.
28148
281492018-03-05  Peter Bergner  <bergner@vnet.ibm.com>
28150
28151	PR target/84264
28152	* config/rs6000/vector.md (mov<mode>): Disallow altivec memory operands.
28153
281542018-03-05  Richard Biener  <rguenther@suse.de>
28155
28156	PR tree-optimization/84486
28157	* tree-ssa-pre.c (create_expression_by_pieces): Remove dead code.
28158	When inserting a __builtin_assume_aligned call set the LHS
28159	SSA name alignment info accordingly.
28160
281612018-03-05  Wilco Dijkstra  <wdijkstr@arm.com>
28162
28163	PR tree-optimization/84114
28164	* config/aarch64/aarch64.c (aarch64_reassociation_width)
28165	Avoid reassociation of FLOAT_MODE addition.
28166
281672018-03-05  Olga Makhotina  <olga.makhotina@intel.com>
28168
28169	* common/config/i386/i386-common.c (OPTION_MASK_ISA_PCONFIG_SET,
28170	OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_SET,
28171	OPTION_MASK_ISA_WBNOINVD_UNSET): New definitions.
28172	(ix86_handle_option): Handle -mpconfig and -mwbnoinvd.
28173	* config.gcc (pconfigintrin.h, wbnoinvdintrin.h) : Add headers.
28174	* config/i386/cpuid.h (bit_PCONFIG, bit_WBNOINVD): New.
28175	* config/i386/driver-i386.c (host_detect_local_cpu): Detect -mpconfig
28176	and -mwbnoinvd.
28177	* config/i386/i386-builtin.def (__builtin_ia32_wbnoinvd,
28178	__builtin_ia32_wbinvd): New builtins.
28179	(SPECIAL_ARGS2): New.
28180	* config/i386/i386-c.c (__WBNOINVD__, __PCONFIG__): New.
28181	(SPECIAL_ARGS2): New.
28182	* config/i386/i386.c (ix86_target_string): Add -mpconfig and -mwbnoinvd.
28183	(ix86_valid_target_attribute_inner_p): Ditto.
28184	(ix86_init_mmx_sse_builtins): Add special_args2.
28185	* config/i386/i386.h (TARGET_PCONFIG, TARGET_PCONFIG_P, TARGET_WBNOINVD,
28186	TARGET_WBNOINVD_P): New.
28187	* config/i386/i386.md (UNSPECV_WBINVD, UNSPECV_WBNOINVD): New.
28188	(define_insn "wbinvd", define_insn "wbnoinvd"): New.
28189	* config/i386/i386.opt: Add -mpconfig and -mwbnoinvd.
28190	* config/i386/immintrin.h (_wbinvd): New intrinsic.
28191	* config/i386/pconfigintrin.h: New file.
28192	* config/i386/wbnoinvdintrin.h: Ditto.
28193	* config/i386/x86intrin.h: Add headers pconfigintrin.h and
28194	wbnoinvdintrin.h.
28195	* doc/invoke.texi (-mpconfig, -mwbnoinvd): New.
28196
281972018-03-05  Richard Biener  <rguenther@suse.de>
28198
28199	PR tree-optimization/84670
28200	* tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs
28201	member.
28202	(BB_VISITED_WITH_VISITED_SUCCS): New define.
28203	(compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS.
28204	(compute_antic_aux): Only assert the number of values in ANTIC_IN
28205	doesn't grow if all successors (recursively) were visited at least
28206	once.
28207
282082018-03-05  Richard Biener  <rguenther@suse.de>
28209
28210	PR tree-optimization/84650
28211	* tree-ssa-loop-im.c (pass_lim::execute): Reset the SCEV cache
28212	if executed in the loop pipeline.
28213
282142018-03-05  Sandra Loosemore  <sandra@codesourcery.com>
28215
28216	* doc/configfiles.texi (Configuration Files): Move info about
28217	conditionalizing $target-protos.h to...
28218	* doc/sourcebuild.texi (Back End): Here.  Explain how $target.h
28219	differs from $target-protos.h.
28220
282212018-03-05  Kito Cheng  <kito.cheng@gmail.com>
28222	    Chung-Ju Wu  <jasonwucj@gmail.com>
28223
28224	* config/nds32/nds32-protos.h (nds32_expand_setmem): Declare.
28225	* config/nds32/nds32-multiple.md (setmemsi): Define.
28226	* config/nds32/nds32-memory-manipulation.c
28227	(nds32_gen_dup_4_byte_to_word_value): New.
28228	(emit_setmem_word_loop): New.
28229	(emit_setmem_byte_loop): New.
28230	(nds32_expand_setmem_loop): New.
28231	(nds32_expand_setmem_loop_v3m): New.
28232	(nds32_expand_setmem_unroll): New.
28233	(nds32_expand_setmem): New.
28234
282352018-03-04  Kito Cheng  <kito.cheng@gmail.com>
28236	    Chung-Ju Wu  <jasonwucj@gmail.com>
28237
28238	* config/nds32/nds32-memory-manipulation.c
28239	(nds32_emit_load_store): New.
28240	(nds32_emit_post_inc_load_store): New.
28241	(nds32_emit_mem_move): New.
28242	(nds32_emit_mem_move_block): New.
28243	(nds32_expand_movmemsi_loop_unknown_size): New.
28244	(nds32_expand_movmemsi_loop_known_size): New.
28245	(nds32_expand_movmemsi_loop): New.
28246	(nds32_expand_movmemsi_unroll): New.
28247	(nds32_expand_movmemqi): Rename ...
28248	(nds32_expand_movmemsi): ... to this.
28249	* config/nds32/nds32-multiple.md (movmemqi): Rename ...
28250	(movmemsi): ... to this.
28251	* config/nds32/nds32-protos.h (nds32_expand_movmemqi): Rename ...
28252	(nds32_expand_movmemsi): ... to this.
28253
282542018-03-04  Kito Cheng  <kito.cheng@gmail.com>
28255	    Monk Chiang  <sh.chiang04@gmail.com>
28256	    Chung-Ju Wu  <jasonwucj@gmail.com>
28257
28258	* config/nds32/nds32-protos.h
28259	(nds32_expand_load_multiple): New arguments.
28260	(nds32_expand_store_multiple): Ditto.
28261	(nds32_valid_multiple_load_store): Rename ...
28262	(nds32_valid_multiple_load_store_p): ... to this.
28263	* config/nds32/nds32-memory-manipulation.c
28264	(nds32_expand_load_multiple): Refine implementation.
28265	(nds32_expand_store_multiple): Ditto.
28266	* config/nds32/nds32-multiple.md
28267	(load_multiple): Update nds32_expand_load_multiple interface.
28268	(store_multiple): Update nds32_expand_store_multiple interface.
28269	* config/nds32/nds32-predicates.c
28270	(nds32_valid_multiple_load_store): Rename ...
28271	(nds32_valid_multiple_load_store_p): ... to this and refine
28272	implementation.
28273	* config/nds32/predicates.md
28274	(nds32_load_multiple_and_update_address_operation): New predicate.
28275	(nds32_store_multiple_and_update_address_operation): New predicate.
28276
282772018-03-04  Kito Cheng  <kito.cheng@gmail.com>
28278	    Chung-Ju Wu  <jasonwucj@gmail.com>
28279
28280	* config/nds32/nds32.md (type): Add load_multiple and store_multiple.
28281	(combo): New attribute.
28282	* config/nds32/nds32-multiple.md: Refine patterns with new attributes.
28283
282842018-03-03  Chung-Ju Wu  <jasonwucj@gmail.com>
28285
28286	* config/nds32/nds32.opt: Change -mcmodel= default value.
28287
282882018-03-03  Kito Cheng  <kito.cheng@gmail.com>
28289	    Monk Chiang  <sh.chiang04@gmail.com>
28290	    Chung-Ju Wu  <jasonwucj@gmail.com>
28291
28292	* config/nds32/constants.md (unspec_element): New enum.
28293	* config/nds32/constraints.md (Umw): New constraint.
28294	* config/nds32/nds32-intrinsic.c: Add more builtin functions.
28295	* config/nds32/nds32-intrinsic.md: Likewise.
28296	* config/nds32/nds32-md-auxiliary.c (nds32_regno_to_enable4): New.
28297	(nds32_valid_smw_lwm_base_p): New.
28298	(nds32_output_smw_single_word): New.
28299	(nds32_output_lmw_single_word): New.
28300	(nds32_expand_unaligned_load): New.
28301	(nds32_expand_unaligned_store): New.
28302	* config/nds32/nds32-protos.h (nds32_valid_smw_lwm_base_p): Declare.
28303	(nds32_output_smw_single_word): Declare.
28304	(nds32_output_lmw_single_word): Declare.
28305	(nds32_expand_unaligned_load): Declare.
28306	(nds32_expand_unaligned_store): Declare.
28307	* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_UALOAD_HW,
28308	NDS32_BUILTIN_UALOAD_W, NDS32_BUILTIN_UALOAD_DW,
28309	NDS32_BUILTIN_UASTORE_HW, NDS32_BUILTIN_UASTORE_W,
28310	NDS32_BUILTIN_UASTORE_DW.
28311	* config/nds32/predicates.md (nds32_lmw_smw_base_operand): New
28312	predicate.
28313
283142018-03-03  Monk Chiang  <sh.chiang04@gmail.com>
28315	    Kito Cheng  <kito.cheng@gmail.com>
28316	    Chung-Ju Wu  <jasonwucj@gmail.com>
28317
28318	* config/nds32/nds32-intrinsic.c
28319	(nds32_expand_builtin_null_ftype_reg): Delete.
28320	(nds32_expand_builtin_reg_ftype_imm): Ditto.
28321	(nds32_expand_builtin_null_ftype_reg_imm): Ditto.
28322	(nds32_read_argument): New.
28323	(nds32_legitimize_target): Ditto.
28324	(nds32_legitimize_argument): Ditto.
28325	(nds32_check_constant_argument): Ditto.
28326	(nds32_expand_unop_builtin): Ditto.
28327	(nds32_expand_unopimm_builtin): Ditto.
28328	(nds32_expand_binop_builtin): Ditto.
28329	(nds32_builtin_decl_impl): Ditto.
28330	(builtin_description): Ditto.
28331	(nds32_expand_builtin_impl): Rewrite with new infrastructure.
28332	(nds32_init_builtins_impl): Ditto.
28333	* config/nds32/nds32.c (TARGET_BUILTIN_DECL): Define.
28334	(nds32_builtin_decl): New.
28335	* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_COUNT.
28336	* config/nds32/nds32-protos.h (nds32_builtin_decl_impl): Declare.
28337
283382018-03-02  Jeff Law  <law@redhat.com>
28339
28340	* reorg.c (stop_search_p): Handle DEBUG_INSN.
28341	(redundant_insn, fill_simple_delay_slots): Likewise.
28342	(fill_slots_from_thread): Likewise.
28343	* resource.c (mark_referenced_resources): Likewise.
28344	(mark_set_resources, find_dead_or_set_registers): Likewise.
28345
283462018-03-02  Jakub Jelinek  <jakub@redhat.com>
28347
28348	* substring-locations.h (format_warning_va): Formatting fix for
28349	ATTRIBUTE_GCC_DIAG.
28350	(format_warning_at_substring): Fix up ATTRIBUTE_GCC_DIAG second
28351	argument.
28352	(format_warning_n_va, format_warning_at_substring_n): New prototypes.
28353	* substring-locations.c: Include intl.h.
28354	(format_warning_va): Turned into small wrapper around
28355	format_warning_n_va, renamed to ...
28356	(format_warning_n_va): ... this, add N and PLURAL_GMSGID arguments,
28357	rename GMSGID to SINGULAR_GMSGID, if SINGULAR_GMSGID != PLURAL_GMSGID,
28358	use ngettext.
28359	(format_warning_at_substring_n): New function.
28360	* gimple-ssa-sprintf.c: Remove GCC diagnostic ignored pragma.
28361	(fmtwarn): Add ATTRIBUTE_GCC_DIAG.  Turn into a copy of
28362	format_warning_at_substring with just a shorter name instead of
28363	const function pointer.
28364	(fmtwarn_n): New function.
28365	(maybe_warn, format_directive, parse_directive): Use fmtwarn_n where
28366	appropriate, get rid of all the fmtstr temporaries, move conditionals
28367	with G_() wrapped string literals directly into fmtwarn arguments,
28368	cast dir.len to (int), formatting fixes.
28369
283702018-03-02  Thomas Schwinge  <thomas@codesourcery.com>
28371
28372	* doc/invoke.texi: Remove "Cilk Plus" references.
28373
283742018-03-02  Jakub Jelinek  <jakub@redhat.com>
28375	    Richard Biener  <rguenther@suse.de>
28376
28377	PR ipa/84628
28378	* expr.c (expand_expr_real_1) <case CALL_EXPR>: Don't emit diagnostics
28379	for error or warning attributes if CALL_FROM_THUNK_P is set.
28380	Formatting fixes.
28381
283822018-03-02  Jakub Jelinek  <jakub@redhat.com>
28383
28384	PR target/56540
28385	* config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Predefine
28386	__SIZEOF_128__ macro if HPUX_LONG_DOUBLE_LIBRARY.
28387
28388	PR target/56540
28389	* config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Predefine
28390	__SIZEOF_{FPREG,FLOAT{80,128}}__ macros.
28391
28392	* predict.c (test_prediction_value_range): Use PROB_UNINITIALIZED
28393	instead of -1U in last predictors element's probability member.
28394
283952018-03-02  Eric Botcazou  <ebotcazou@adacore.com>
28396
28397	PR ipa/83983
28398	* ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both
28399	arguments if they are comparable.
28400
284012018-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
28402
28403	PR tree-optimization/84634
28404	* tree-vect-stmts.c (vectorizable_store, vectorizable_load): Replace
28405	masks and masked_loop_p with a single loop_masks, making sure it's
28406	null for bb vectorization.
28407
284082018-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
28409
28410	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence)
28411	(vect_analyze_data_ref_access): Use loop->safe_len rather than
28412	loop->force_vectorize to check whether there is no alias.
28413
284142018-03-02  Jakub Jelinek  <jakub@redhat.com>
28415
28416	PR target/84614
28417	* rtl.h (prev_real_nondebug_insn, next_real_nondebug_insn): New
28418	prototypes.
28419	* emit-rtl.c (next_real_insn, prev_real_insn): Fix up function
28420	comments.
28421	(next_real_nondebug_insn, prev_real_nondebug_insn): New functions.
28422	* cfgcleanup.c (try_head_merge_bb): Use prev_real_nondebug_insn
28423	instead of a loop around prev_real_insn.
28424	* combine.c (move_deaths): Use prev_real_nondebug_insn instead of
28425	prev_real_insn.
28426
28427	PR inline-asm/84625
28428	* config/i386/i386.c (ix86_print_operand): Use conditional
28429	output_operand_lossage instead of gcc_assert if CONST_VECTOR is not
28430	zero vector.
28431
284322018-03-02  Richard Biener  <rguenther@suse.de>
28433
28434	PR tree-optimization/84427
28435	* tree-ssa-pre.c (bitmap_remove_expr_from_set): Remove.
28436	(bitmap_set_subtract_values): Rewrite to handle multiple
28437	exprs per value.
28438	(clean): Likewise.
28439	(prune_clobbered_mems): Likewise.
28440	(phi_translate): Take edge instead of pred/phiblock.
28441	(phi_translate_1): Likewise.
28442	(phi_translate_set): Likewise.  Insert all translated
28443	exprs for a value into the set, keeping possibly multiple
28444	expressions per value.
28445	(compute_antic_aux): Adjust for phi_translate changes.
28446	When intersecting union the expressions and prune those
28447	not in the final value set, keeping possibly multiple
28448	expressions per value.  Do not use value-insertion
28449	for unioning ANTIC_OUT U EXP_GEN - TMP_GEN but merge
28450	all expressions.  Add verification that the value-sets
28451	only shrink during iteration.
28452	(compute_partial_antic_aux): Adjust for the phi_translate changes.
28453	(do_pre_regular_insertion): Likewise.
28454	(do_pre_partial_partial_insertion): Likewise.
28455
284562018-03-02  Richard Biener  <rguenther@suse.de>
28457
28458	PR target/82005
28459	* config/darwin.c (saved_debug_info_level): New static global.
28460	(darwin_asm_lto_start): Disable debug info generation for LTO out.
28461	(darwin_asm_lto_end): Restore debug info generation settings.
28462
284632018-03-01  Martin Liska  <mliska@suse.cz>
28464
28465	PR sanitizer/82484
28466	* sanopt.c (sanitize_rewrite_addressable_params): Do not handle
28467	volatile arguments.
28468
284692018-03-01  Richard Biener  <rguenther@suse.de>
28470
28471	PR debug/84645
28472	* dwarf2out.c (gen_variable_die): Properly handle late VLA
28473	type annotation with LTO when debug was disabled at compile-time.
28474
284752018-03-01  Matthew Fortune  <mfortune@gmail.com>
28476
28477	* config/mips/mips.c (mips_final_prescan_insn): Fix incorrect
28478	XINT with INTVAL.
28479	(mips_final_postscan_insn): Likewise.
28480
284812018-03-01  Richard Sandiford  <richard.sandiford@linaro.org>
28482
28483	PR rtl-optimization/84528
28484	* alias.c (init_alias_target): Add commentary.
28485	(init_alias_analysis): Only give HARD_FRAME_POINTER_REGNUM
28486	a unique base value if the frame pointer is not eliminated
28487	to the stack pointer.
28488
284892018-03-01  Tom de Vries  <tom@codesourcery.com>
28490
28491	PR rtl-optimization/83327
28492	* lra-int.h (hard_regs_spilled_into): Declare.
28493	* lra.c (hard_regs_spilled_into): Define.
28494	(init_reg_info): Init hard_regs_spilled_into.
28495	* lra-spills.c (assign_spill_hard_regs): Update hard_regs_spilled_into.
28496	* lra-lives.c (make_hard_regno_born, make_hard_regno_dead)
28497	(process_bb_lives): Handle hard_regs_spilled_into.
28498	(lra_create_live_ranges_1): Before doing liveness propagation, clear
28499	regs in all_hard_regs_bitmap if set in hard_regs_spilled_into.
28500
285012018-02-28  David Edelsohn  <dje.gcc@gmail.com>
28502
28503	* config.gcc (powerpc-ibm-aix7.1.*): New stanza.
28504	(powerpc-ibm-aix[789]*): Default to AIX 7.2.
28505	* config/rs6000/aix71.h (TARGET_DEFAULT): Revert to Power4 ISA.
28506	* config/rs6000/aix72.h: New file.
28507
285082018-02-28  Jakub Jelinek  <jakub@redhat.com>
28509
28510	* gimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n
28511	instead of warning_at with conditional singular and plural messages
28512	where possible.
28513
28514	PR target/52991
28515	* stor-layout.c (update_alignment_for_field): For
28516	targetm.ms_bitfield_layout_p (rli->t), if !is_bitfield
28517	&& !DECL_PACKED (field), do the alignment update, just use
28518	only desired_align instead of MAX (type_align, desired_align)
28519	as the alignment.
28520	(place_field): Don't do known_align < desired_align handling
28521	early if targetm.ms_bitfield_layout_p (rli->t) and rli->prev_field
28522	is non-NULL, instead do it after rli->prev_field handling and
28523	only if not within a bitfield word.  For DECL_PACKED (field)
28524	use type_align of BITS_PER_UNIT.
28525
285262018-02-28  Eric Botcazou  <ebotcazou@adacore.com>
28527
28528	* config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Remove
28529	superfluous parentheses and trailing spaces.
28530
285312018-02-28  Richard Biener  <rguenther@suse.de>
28532
28533	PR tree-optimization/84584
28534	* graphite-scop-detection.c (scop_detection::add_scop): Discard
28535	SCoPs with fake exit edge.
28536
285372018-02-28  Martin Liska  <mliska@suse.cz>
28538
28539	PR testsuite/84597
28540	* timevar.c (timer::print): Fix format to properly print 100%
28541	values.
28542
285432018-02-28  Richard Biener  <rguenther@suse.de>
28544
28545	PR middle-end/84607
28546	* genmatch.c (capture_info::walk_match): Do not mark
28547	captured expressions without operands as expr_p given
28548	they act more like predicates and should be subject to
28549	"lost tail" side-effect preserving.
28550
285512018-02-28  Alexandre Oliva  <aoliva@redhat.com>
28552
28553	PR rtl-optimization/81611
28554	* auto-inc-dec.c (attempt_change): Move dead note from
28555	mem_insn if it's the next use of regno
28556	(find_address): Take address use of reg holding
28557	non-incremented value.  Add parm to limit search to the named
28558	reg only.
28559	(merge_in_block): Attempt to use a mem insn that is the next
28560	use of the original regno.
28561
285622018-02-27  Martin Sebor  <msebor@redhat.com>
28563
28564	PR c++/83871
28565	* doc/invoke.texi (-Wmissing-attributes): New option.
28566	* print-tree.c (print_node): Handle DECL_UNINLINABLE.
28567
285682018-02-27  Martin Sebor  <msebor@redhat.com>
28569
28570	PR translation/84207
28571	* diagnostic-core.h (warning_n, error_n, inform_n): Change
28572	n argument to unsigned HOST_WIDE_INT.
28573	* diagnostic.c (warning_n, error_n, inform_n): Ditto.
28574	(diagnostic_n_impl): Ditto.  Handle arguments in excess of LONG_MAX.
28575	* gimple-ssa-sprintf.c (format_directive): Simplify inform_n call.
28576	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Use warning_n.
28577
285782018-02-27  Richard Biener  <rguenther@suse.de>
28579
28580	PR tree-optimization/84512
28581	* tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
28582	Do not use the estimate returned from record_stmt_cost for
28583	the scalar iteration cost but sum properly using add_stmt_cost.
28584
285852018-02-27  Richard Biener  <rguenther@suse.de>
28586
28587	PR tree-optimization/84466
28588	* graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
28589	Adjust last change to less strictly validate use operands.
28590
285912018-02-27  Martin Liska  <mliska@suse.cz>
28592
28593	PR gcov-profile/84548
28594	* gcov.c (process_file): Allow partial overlap and consider it
28595	also as group functions.
28596	(output_lines): Properly calculate range of lines for a group.
28597
285982018-02-27  Martin Liska  <mliska@suse.cz>
28599
28600	* timevar.c (timer::print_row): Remove 'usr', 'sys', 'wall' and
28601	'ggc' suffixes.  Change first column width.
28602	(timer::print): Fix formatting of the column.
28603
286042018-02-27  Alexandre Oliva  <aoliva@redhat.com>
28605
28606	* tree-ssa-live.c (remove_unused_scope_block_p): Do not
28607	preserve inline entry blocks for the sake of debug inline
28608	entry point markers alone.
28609	(remove_unused_locals): Suggest in comments a better place to
28610	force the preservation of inline entry blocks that are
28611	otherwise unused, but do not preserve them.
28612
286132018-02-26  H.J. Lu  <hongjiu.lu@intel.com>
28614
28615	* config/i386/i386.c (ix86_output_indirect_jmp): Update comments.
28616
286172018-02-26  H.J. Lu  <hongjiu.lu@intel.com>
28618
28619	PR target/84039
28620	* config/i386/constraints.md (Bs): Replace
28621	ix86_indirect_branch_register with
28622	TARGET_INDIRECT_BRANCH_REGISTER.
28623	(Bw): Likewise.
28624	* config/i386/i386.md (indirect_jump): Likewise.
28625	(tablejump): Likewise.
28626	(*sibcall_memory): Likewise.
28627	(*sibcall_value_memory): Likewise.
28628	Peepholes of indirect call and jump via memory: Likewise.
28629	(*sibcall_GOT_32): Disallowed for TARGET_INDIRECT_BRANCH_REGISTER.
28630	(*sibcall_value_GOT_32): Likewise.
28631	* config/i386/predicates.md (indirect_branch_operand): Likewise.
28632	(GOT_memory_operand): Likewise.
28633	(call_insn_operand): Likewise.
28634	(sibcall_insn_operand): Likewise.
28635	(GOT32_symbol_operand): Likewise.
28636	* config/i386/i386.h (TARGET_INDIRECT_BRANCH_REGISTER): New.
28637
286382018-02-26  Eric Botcazou  <ebotcazou@adacore.com>
28639
28640	PR rtl-optimization/83496
28641	* reorg.c (steal_delay_list_from_target): Change REDUNDANT array from
28642	booleans to RTXes.  Call fix_reg_dead_note on every non-null element.
28643	(steal_delay_list_from_fallthrough): Call fix_reg_dead_note on a
28644	redundant insn, if any.
28645	(relax_delay_slots): Likewise.
28646	(update_reg_unused_notes): Rename REDUNDANT_INSN to OTHER_INSN.
28647
286482018-02-26  Richard Sandiford  <richard.sandiford@linaro.org>
28649
28650	PR tree-optimization/83965
28651	* tree-vect-patterns.c (vect_reassociating_reduction_p): Assume
28652	that grouped statements are part of a reduction chain.  Return
28653	true if the statement is not marked as a reduction itself but
28654	is part of a group.
28655	(vect_recog_dot_prod_pattern): Don't check whether the statement
28656	is part of a group here.
28657	(vect_recog_sad_pattern): Likewise.
28658	(vect_recog_widen_sum_pattern): Likewise.
28659
286602018-02-26  Eric Botcazou  <ebotcazou@adacore.com>
28661
28662	PR debug/84545
28663	* final.c (rest_of_clean_state): Also look for calls inside sequences.
28664
286652018-02-26  H.J. Lu  <hongjiu.lu@intel.com>
28666
28667	PR target/84530
28668	* config/i386/i386-protos.h (ix86_output_indirect_jmp): Remove
28669	the bool argument.
28670	(ix86_output_indirect_function_return): New prototype.
28671	(ix86_split_simple_return_pop_internal): Likewise.
28672	* config/i386/i386.c (indirect_return_via_cx): New.
28673	(indirect_return_via_cx_bnd): Likewise.
28674	(indirect_thunk_name): Handle return va CX_REG.
28675	(output_indirect_thunk_function): Create alias for
28676	__x86_return_thunk_[re]cx and __x86_return_thunk_[re]cx_bnd.
28677	(ix86_output_indirect_jmp): Remove the bool argument.
28678	(ix86_output_indirect_function_return): New function.
28679	(ix86_split_simple_return_pop_internal): Likewise.
28680	* config/i386/i386.md (*indirect_jump): Don't pass false
28681	to ix86_output_indirect_jmp.
28682	(*tablejump_1): Likewise.
28683	(simple_return_pop_internal): Change it to define_insn_and_split.
28684	Call ix86_split_simple_return_pop_internal to split it for
28685	-mfunction-return=.
28686	(simple_return_indirect_internal): Call
28687	ix86_output_indirect_function_return instead of
28688	ix86_output_indirect_jmp.
28689
286902018-02-26  Jakub Jelinek  <jakub@redhat.com>
28691
28692	PR bootstrap/84405
28693	* vec.h (vec_default_construct): For BROKEN_VALUE_INITIALIZATION use
28694	memset and value initialization afterwards.
28695
286962018-02-26  Christophe Lyon  <christophe.lyon@linaro.org>
28697
28698	* Makefile.in (lto-wrapper): Use ALL_LINKERFLAGS.
28699
287002018-02-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28701
28702	PR target/84521
28703	* common/config/aarch64/aarch64-common.c
28704	(aarch_option_optimization_table[]): Switch
28705	off fomit-frame-pointer
28706
287072018-02-26  Kito Cheng  <kito.cheng@gmail.com>
28708	    Chung-Ju Wu  <jasonwucj@gmail.com>
28709
28710	* config/nds32/nds32-multiple.md (load_multiple): Disallow
28711	volatile memory.
28712	(store_multiple): Ditto.
28713
287142018-02-26  Kito Cheng  <kito.cheng@gmail.com>
28715
28716	* config.gcc: Add --with-cpu support for nds32 target.
28717	* config/nds32/nds32-opts.h (nds32_cpu_type): New.
28718	* config/nds32/nds32.opt: Add -mcpu= option.
28719
287202018-02-25  Segher Boessenkool  <segher@kernel.crashing.org>
28721
28722	* config/rs6000/rs6000.opt (mvrsave=no, mvrsave=yes, isel=no,
28723	isel=yes): Warn for these deprecated options.
28724
287252018-02-23  David Edelsohn  <dje.gcc@gmail.com>
28726
28727	* config/rs6000/aix71.h (TARGET_DEFAULT): Change to
28728	ISA_2_5_MASKS_EMBEDDED.
28729
287302018-02-23  Jakub Jelinek  <jakub@redhat.com>
28731
28732	* ipa-prop.c (ipa_vr_ggc_hash_traits::hash): Hash p->min and
28733	p->max as pointers rather than using iterative_hash_expr.
28734
287352018-02-23  Carl Love  <cel@us.ibm.com>
28736
28737	* config/rs6000/rs6000-builtin.def: Change VSIGNED2 and VUNSIGNED2
28738	macro expansions from BU_VSX_2 to BU_P8V_VSX_2 and BU_VSX_OVERLOAD_2 to
28739	BU_P8V_OVERLOAD_2.
28740	* config/rs6000/rs6000-c.c: Change VSX_BUILTIN_VEC_VSIGNED2 to
28741	P8V_BUILTIN_VEC_VSIGNED2.  Change VSX_BUILTIN_VEC_VUNSIGNED2 to
28742	P8V_BUILTIN_VEC_VUNSIGNED2.
28743
287442018-02-22  Vladimir Makarov  <vmakarov@redhat.com>
28745
28746	PR target/81572
28747	* lra-int.h (LRA_UNKNOWN_ALT, LRA_NON_CLOBBERED_ALT): New macros.
28748	* lra.c (lra_set_insn_recog_data, lra_update_insn_recog_data): Use
28749	LRA_UNKNOWN_ALT.
28750	* lra-constraints.c (curr_insn_transform): Set up
28751	LRA_NON_CLOBBERED_ALT for moves processed on the fast path.  Use
28752	LRA_UNKNOWN_ALT.
28753	(remove_inheritance_pseudos): Use LRA_UNKNOWN_ALT.
28754	* lra-eliminations.c (spill_pseudos): Ditto.
28755	(process_insn_for_elimination): Ditto.
28756	* lra-lives.c (reg_early_clobber_p): Use the new macros.
28757	* lra-spills.c (spill_pseudos): Use LRA_UNKNOWN_ALT and
28758	LRA_NON_CLOBBERED_ALT.
28759
287602018-02-22  Martin Sebor  <msebor@redhat.com>
28761
28762	PR tree-optimization/84480
28763	* gimple-fold.c (gimple_fold_builtin_strcpy): Move warnings
28764	to maybe_diag_stxncpy_trunc.  Call it.
28765	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Integrate warnings
28766	from gimple_fold_builtin_strcpy.  Print inlining stack.
28767	(handle_builtin_stxncpy): Print inlining stack.
28768	* tree-ssa-strlen.h (maybe_diag_stxncpy_trunc): Declare.
28769
287702018-02-22  H.J. Lu  <hongjiu.lu@intel.com>
28771
28772	PR target/84176
28773	* config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
28774	error when -mindirect-branch=thunk-extern, -fcf-protection=branch
28775	and -fcheck-pointer-bounds are used together.
28776	(indirect_thunk_prefix): New enum.
28777	(indirect_thunk_need_prefix): New function.
28778	(indirect_thunk_name): Replace need_bnd_p with need_prefix.  Use
28779	"_nt" instead of "_bnd" for NOTRACK prefix.
28780	(output_indirect_thunk): Replace need_bnd_p with need_prefix.
28781	(output_indirect_thunk_function): Likewise.
28782	(): Likewise.
28783	(ix86_code_end): Update output_indirect_thunk_function calls.
28784	(ix86_output_indirect_branch_via_reg): Replace
28785	ix86_bnd_prefixed_insn_p with indirect_thunk_need_prefix.
28786	(ix86_output_indirect_branch_via_push): Likewise.
28787	(ix86_output_function_return): Likewise.
28788	* doc/invoke.texi: Document -mindirect-branch=thunk-extern is
28789	incompatible with -fcf-protection=branch and
28790	-fcheck-pointer-bounds.
28791
287922018-02-22  Steve Ellcey  <sellcey@cavium.com>
28793
28794	PR target/83335
28795	* config/aarch64/aarch64.c (aarch64_print_address_internal):
28796	Change gcc_assert call to output_operand_lossage.
28797
287982018-02-22  Steve Ellcey  <sellcey@cavium.com>
28799
28800	* doc/extend.texi (__builtin_extend_pointer): Document builtin.
28801
288022018-02-22  DJ Delorie  <dj@redhat.com>
28803	    Sebastian Perta  <sebastian.perta@renesas.com>
28804	    Oleg Endo  <olegendo@gcc.gnu.org>
28805
28806	* config/rx/rx.c (rx_rtx_costs): New function.
28807	(TARGET_RTX_COSTS): Override to use rx_rtx_costs.
28808
288092018-02-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28810
28811	* config/arm/t-multilib: Map Armv8-R to Armv7 multilibs.
28812
288132018-02-22  Martin Liska  <mliska@suse.cz>
28814
28815	PR driver/83193
28816	* common/config/arm/arm-common.c (arm_print_hint_for_cpu_option):
28817	Add "native" as a possible value.
28818
288192018-02-22  Martin Liska  <mliska@suse.cz>
28820
28821	PR driver/83193
28822	* config/i386/i386.c (ix86_option_override_internal):
28823	Add "native" as a possible value for -march and -mtune.
28824
288252018-02-22  Jakub Jelinek  <jakub@redhat.com>
28826
28827	PR target/84502
28828	* stor-layout.c (finalize_type_size): Propagate TYPE_EMPTY_P flag
28829	to all type variants.
28830
28831	PR tree-optimization/84503
28832	* gimple-ssa-store-merging.c (merged_store_group::merge_into): Compute
28833	width as info->bitpos + info->bitsize - start.
28834	(merged_store_group::merge_overlapping): Simplify width computation.
28835	(check_no_overlap): New function.
28836	(imm_store_chain_info::try_coalesce_bswap): Compute expected
28837	start + width and last_order of the group, fail if check_no_overlap
28838	fails.
28839	(imm_store_chain_info::coalesce_immediate_stores): Don't merge info
28840	to group if check_no_overlap fails.
28841
288422018-02-21  Segher Boessenkool  <segher@kernel.crashing.org>
28843
28844	* config/rs6000/altivec.md: Delete contraint arguments to
28845	define_expand, define_split, and define_peephole2, and in
28846	define_insn_and_split if always unused.
28847	* config/rs6000/darwin.md: Ditto.
28848	* config/rs6000/dfp.md: Ditto.
28849	* config/rs6000/rs6000.md: Ditto.
28850	* config/rs6000/sync.md: Ditto.
28851	* config/rs6000/vector.md: Ditto.
28852	* config/rs6000/vsx.md: Ditto.
28853
288542018-02-21  Segher Boessenkool  <segher@kernel.crashing.org>
28855
28856	* config/rs6000/altivec.md: Write output control strings as braced
28857	blocks instead of double-quoted strings.
28858	* config/rs6000/darwin.md: Ditto.
28859	* config/rs6000/rs6000.md: Ditto.
28860	* config/rs6000/vector.md: Ditto.
28861	* config/rs6000/vsx.md: Ditto.
28862
288632018-02-21  Jason Merrill  <jason@redhat.com>
28864
28865	PR c++/84314 - ICE with templates and fastcall attribute.
28866	* attribs.c (build_type_attribute_qual_variant): Remove assert.
28867
288682018-02-21  Jan Hubicka  <hubicka@ucw.cz>
28869
28870	* ipa-cp.c (determine_versionability): Fix comment typos.
28871
288722018-02-21  Jan Hubicka  <hubicka@ucw.cz>
28873
28874	PR c/84229
28875	* ipa-cp.c (determine_versionability): Do not version functions caling
28876	va_arg_pack.
28877
288782018-02-21  Martin Liska  <mliska@suse.cz>
28879
28880	PR driver/83193
28881	* config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch):
28882	Add "native" as a possible value.
28883	* config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT):  Define
28884	the macro when native cpu detection is available.
28885
288862018-02-21  Martin Liska  <mliska@suse.cz>
28887
28888	PR driver/83193
28889	* common/config/arm/arm-common.c (arm_print_hint_for_arch_option):
28890	Add "native" as a possible value.
28891	* config/arm/arm.h (HAVE_LOCAL_CPU_DETECT): Define the macro
28892	when native cpu detection is available.
28893
288942018-02-21  Jakub Jelinek  <jakub@redhat.com>
28895	    Martin Sebor  <msebor@redhat.com>
28896
28897	PR tree-optimization/84478
28898	* gimple-fold.h (get_range_strlen): Add a bool argument defaulted to
28899	false.
28900	* gimple-fold.c (get_range_strlen): Make minlen const and assume it
28901	can't be NULL.  Change FUZZY from bool to int, for 1 add PHI/COND_EXPR
28902	support which is conservatively correct, for 2 only stay conservative
28903	for maxlen.  Formatting and comment capitalization fixes.  Add STRICT
28904	argument to the 2 argument get_range_strlen, adjust 6 arg
28905	get_range_strlen caller and clear minmaxlen[0] and [1] if it returned
28906	false.
28907	(get_maxval_strlen): Adjust 6 arg get_range_strlen caller.
28908	(gimple_fold_builtin_strlen): Pass true as last argument to
28909	get_range_strlen.
28910
289112018-02-20  Martin Sebor  <msebor@redhat.com>
28912
28913	PR middle-end/84095
28914	* gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): New.
28915	(builtin_memref::set_base_and_offset): Same.  Handle inner references.
28916	(builtin_memref::builtin_memref): Factor out parts into
28917	set_base_and_offset and call it.
28918
289192018-02-20  Richard Sandiford  <richard.sandiford@linaro.org>
28920
28921	PR middle-end/84406
28922	* optabs-query.c (find_widening_optab_handler_and_mode): If from_mode
28923	is a scalar_int_mode, assert that to_mode is a scalar_int_mode with
28924	greater precision.  If to_mode is a MODE_PARTIAL_INT, stop the
28925	search at the associated MODE_INT.
28926
289272018-02-20  Jeff Law  <law@redhat.com>
28928
28929	PR middle-end/82123
28930	PR tree-optimization/81592
28931	PR middle-end/79257
28932	* gimple-ssa-sprintf.c (format_integer): Query EVRP range analyzer
28933	for range data rather than using global data.
28934	* gimple-ssa-sprintf.c (get_int_range): Query EVRP range analyzer for
28935	range data rather than using global data.
28936	* gimple-ssa-sprintf.c (get_int_range): Accept vr_values parameter
28937	pass it to children as needed.
28938	(struct directive::fmtresult): Similarly.
28939	(struct directive::set_width): Similarly.
28940	(struct directive::set_precision): Similarly.
28941	(format_integer, format_directive, parse_directive): Similarly.
28942	(format_none): Accept unnamed vr_values parameter.
28943	(format_percent, format_floating, format_character): Similarly.
28944	(format_string, format_plain): Similarly.
28945	* gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Query
28946	the EVRP range analyzer for range data rather than using global data.
28947	* gimple-ssa-sprintf.c: Include alloc-pool.h, vr-values.h and
28948	gimple-ssa-evrp-analyze.h
28949	(class sprintf_dom_walker): Add after_dom_children member function.
28950	Add evrp_range_analyzer member.
28951	(sprintf_dom_walker::before_dom_children): Call into the EVRP
28952	range analyzer as needed.
28953	(sprintf_dom_walker::after_dom_children): New member function.
28954	* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::enter): Do nothing
28955	if not optimizing.
28956	(evrp_range_analyzer::record_ranges_from_stmt): Likewise.
28957	(evrp_range_analyzer::pop_to_marker): Likewise.
28958
289592018-02-20  Richard Sandiford  <richard.sandiford@linaro.org>
28960
28961	PR tree-optimization/84419
28962	* internal-fn.c (expand_call_mem_ref): Create a TARGET_MEM_REF
28963	with the required type if its current type is compatible but
28964	different.
28965
289662018-02-20  Jakub Jelinek  <jakub@redhat.com>
28967
28968	PR middle-end/82004
28969	* match.pd (pow(C,x) -> exp(log(C)*x)): Delay all folding until
28970	after vectorization.
28971
289722018-02-20  Martin Liska  <mliska@suse.cz>
28973
28974	PR driver/83193
28975	* config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): Print
28976	possible values if we don't have a hint.
28977
289782018-02-20  Martin Liska  <mliska@suse.cz>
28979
28980	PR c/84310
28981	PR target/79747
28982	* final.c (shorten_branches): Build align_tab array with one
28983	more element.
28984	* opts.c (finish_options): Add alignment option limit check.
28985	(MAX_CODE_ALIGN): Likewise.
28986	(MAX_CODE_ALIGN_VALUE): Likewise.
28987	* doc/invoke.texi: Document maximum allowed option value for
28988	all -falign-* options.
28989
289902018-02-19  Jakub Jelinek  <jakub@redhat.com>
28991
28992	PR target/84146
28993	* reg-notes.def (REG_CALL_ARG_LOCATION): New reg note.
28994	* insn-notes.def (NOTE_INSN_CALL_ARG_LOCATION): Remove.
28995	* var-tracking.c (emit_note_insn_var_location): Remove all references
28996	to NOTE_INSN_CALL_ARG_LOCATION.
28997	(emit_notes_in_bb): Emit arguments as REG_CALL_ARG_LOCATION note on
28998	the CALL_INSN rather than separate NOTE_INSN_CALL_ARG_LOCATION note.
28999	Use copy_rtx_if_shared.
29000	* dwarf2out.c (gen_subprogram_die): Use XEXP with 0 instead of
29001	NOTE_VAR_LOCATION on ca_loc->call_arg_loc_note.
29002	(dwarf2out_var_location): Remove handling of
29003	NOTE_INSN_CALL_ARG_LOCATION, instead handle REG_CALL_ARG_LOCATION note
29004	on call_insn.
29005	* final.c (final_scan_insn): Remove all references to
29006	NOTE_INSN_CALL_ARG_LOCATION.
29007	(rest_of_clean_state): Likewise.  Remove REG_CALL_ARG_LOCATION notes
29008	before dumping final insns.
29009	* except.c (emit_note_eh_region_end): Remove all references to
29010	NOTE_INSN_CALL_ARG_LOCATION.
29011	* config/alpha/alpha.c (alpha_pad_function_end): Likewise.
29012	* config/c6x/c6x.c (c6x_gen_bundles): Likewise.
29013	* config/arc/arc.c (hwloop_optimize): Likewise.
29014	* config/arm/arm.c (create_fix_barrier): Likewise.
29015	* config/s390/s390.c (s390_chunkify_start): Likewise.
29016	* config/sh/sh.c (find_barrier): Likewise.
29017	* config/i386/i386.c (rest_of_insert_endbranch,
29018	ix86_seh_fixup_eh_fallthru): Likewise.
29019	* config/xtensa/xtensa.c (hwloop_optimize): Likewise.
29020	* config/iq2000/iq2000.c (final_prescan_insn): Likewise.
29021	* config/frv/frv.c (frv_function_prologue): Likewise.
29022	* emit-rtl.c (try_split): Likewise.  Copy over REG_CALL_ARG_LOCATION
29023	reg note.
29024	(note_outside_basic_block_p): Remove all references to
29025	NOTE_INSN_CALL_ARG_LOCATION.
29026	* gengtype.c (adjust_field_rtx_def): Likewise.
29027	* print-rtl.c (rtx_writer::print_rtx_operand_code_0, print_insn):
29028	Likewise.
29029	* jump.c (cleanup_barriers, delete_related_insns): Likewise.
29030	* cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
29031
29032	PR c++/84444
29033	* builtins.c (builtin_mathfn_code): Don't check if CALL_EXPR_FN (t)
29034	is ADDR_EXPR.
29035
29036	PR tree-optimization/84452
29037	* tree-vect-patterns.c (vect_recog_pow_pattern): Don't call
29038	expand_simd_clones if targetm.simd_clone.compute_vecsize_and_simdlen
29039	is NULL.
29040
290412018-02-19  Martin Liska  <mliska@suse.cz>
29042
29043	PR sanitizer/82183
29044	* passes.def: Put pass_sancov_O0 before pass_lower_switch with -O0.
29045
290462018-02-19  Martin Liska  <mliska@suse.cz>
29047	    Richard Sandiford  <richard.sandiford@linaro.org>
29048
29049	PR tree-optimization/82491
29050	* gimple-fold.c (get_base_constructor): Make earlier bail out
29051	to prevent ubsan.
29052
290532018-02-19  Carl Love  <cel@us.ibm.com>
29054
29055	* config/rs6000/rs6000-builtin.def: Change NEG macro expansions from
29056	BU_ALTIVEC_A to BU_P8V_AV_1 and BU_ALTIVEC_OVERLOAD_1 to
29057	BU_P8V_OVERLOAD_1.
29058	* config/rs6000/rs6000-c.c: Change ALTIVEC_BUILTIN_VEC_NEG to
29059	P8V_BUILTIN_VEC_NEG.
29060
290612018-02-19  Sebastian Perta  <sebastian.perta@renesas.com>
29062
29063	* config/rl78/rl78.md (movdf): New define expand.
29064
290652018-02-19  Martin Liska  <mliska@suse.cz>
29066
29067	PR other/80589
29068	* doc/invoke.texi: Fix typo.
29069	* params.def (PARAM_MAX_LOOP_HEADER_INSNS): Likewise.
29070
290712018-02-18  Segher Boessenkool  <segher@kernel.crashing.org>
29072
29073	* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
29074	handle rs6000_single_float and rs6000_double_float specially for
29075	e500 family CPUs.
29076
290772018-02-16  Jeff Law  <law@redhat.com>
29078
29079	* config/rx/rx.c (add_pop_cfi_notes): New function.;
29080	(pop_regs): Use it.
29081
290822018-02-16  Jakub Jelinek  <jakub@redhat.com>
29083
29084	PR ipa/84425
29085	* ipa-inline.c (inline_small_functions): Fix a typo.
29086
290872018-02-16  Nathan Sidwell  <nathan@acm.org>
29088
29089	* doc/extend.texi (Backwards Compatibility): Americanize 'behaviour'.
29090
290912018-02-16  Carl Love  <cel@us.ibm.com>
29092
29093	* config/rs6000/rs6000-builtin.def: Add BU_P8V_VSX_2 macro definition.
29094	Change FLOAT2 expansions from BU_VSX_2 to BU_P8V_VSX_2 and
29095	from BU_VSX_OVERLOAD_2 to BU_P8V_OVERLOAD_2.
29096	* config/rs6000/rs6000-c.c: Changed macro VSX_BUILTIN_VEC_FLOAT2
29097	expansion to P8V_BUILTIN_VEC_FLOAT2.
29098
290992018-02-16  Vladimir Makarov  <vmakarov@redhat.com>
29100
29101	PR rtl-optimization/70023
29102	* lra-constraints.c (inherit_in_ebb): Take hard reg mode of
29103	src_regno into account.
29104
291052018-02-16  Carl Love  <cel@us.ibm.com>
29106
29107	* config/rs6000/altivec.h: Remove vec_vextract4b and vec_vinsert4b.
29108	* config/rs6000/rs6000-builtin.def: Remove macro expansion for
29109	VEXTRACT4B, VINSERT4B, VINSERT4B_DI and VEXTRACT4B.
29110	* config/rs6000/rs6000.c: Remove case statements for
29111	P9V_BUILTIN_VEXTRACT4B, P9V_BUILTIN_VEC_VEXTRACT4B,
29112	P9V_BUILTIN_VINSERT4B, P9V_BUILTIN_VINSERT4B_DI,
29113	and P9V_BUILTIN_VEC_VINSERT4B.
29114	* config/rs6000/rs6000-c.c (altivec_expand_builtin): Remove entries for
29115	P9V_BUILTIN_VEC_VEXTRACT4B and P9V_BUILTIN_VEC_VINSERT4B.
29116	* config/rs6000/vsx.md:
29117	* doc/extend.texi: Remove vec_vextract4b, non ABI definitions for
29118	vec_insert4b.
29119
291202018-02-16  Carl Love  <cel@us.ibm.com>
29121
29122	* config/rs6000/altivec.h: Add builtin names vec_extract4b
29123	vec_insert4b.
29124	* config/rs6000/rs6000-builtin.def: Add INSERT4B and EXTRACT4B
29125	definitions.
29126	* config/rs6000/rs6000-c.c: Add the definitions for
29127	P9V_BUILTIN_VEC_EXTRACT4B and P9V_BUILTIN_VEC_INSERT4B.
29128	* config/rs6000/rs6000.c (altivec_expand_builtin): Add
29129	P9V_BUILTIN_EXTRACT4B and P9V_BUILTIN_INSERT4B case statements.
29130	* config/rs6000/vsx.md: Add define_insn extract4b.  Add define_expand
29131	definition for insert4b and define insn *insert3b_internal.
29132	* doc/extend.texi: Add documentation for vec_extract4b.
29133
291342018-02-16  Nathan Sidwell  <nathan@acm.org>
29135
29136	* doc/extend.texi (Backwards Compatibility): Mention friend
29137	injection.  Note for-scope is deprecated.
29138	* doc/invoke.texi (-ffriend-injection): Deprecate.
29139
291402018-02-16  Segher Boessenkool  <segher@kernel.crashing.org>
29141
29142	* combine.c (try_combine): When adjusting LOG_LINKS for the destination
29143	that moved to I2, also allow destinations that are a paradoxical
29144	subreg (instead of a normal reg).
29145
291462018-02-16  Oleg Endo  <olegendo@gcc.gnu.org>
29147
29148	PR target/83831
29149	* config/rx/rx.c (rx_fuse_in_memory_bitop): Convert shift operand
29150	to QImode.
29151
291522018-02-16  Richard Biener  <rguenther@suse.de>
29153
29154	PR tree-optimization/84037
29155	PR tree-optimization/84016
29156	PR target/82862
29157	* config/i386/i386.c (ix86_builtin_vectorization_cost):
29158	Adjust vec_construct for the fact we need additional higher latency
29159	128bit inserts for AVX256 and AVX512 vector builds.
29160	(ix86_add_stmt_cost): Scale vector construction cost for
29161	elementwise loads.
29162
291632018-02-16  Richard Biener  <rguenther@suse.de>
29164
29165	PR tree-optimization/84417
29166	* tree-ssa.c (non_rewritable_mem_ref_base): Properly constrain
29167	the MEM_REF offset when conversion to BIT_FIELD_REF is desired.
29168	(non_rewritable_lvalue_p): Likewise, use poly-ints.
29169
291702018-02-16  Martin Liska  <mliska@suse.cz>
29171
29172	PR sanitizer/84307
29173	* internal-fn.def (ASAN_CHECK): Set proper flags.
29174	(ASAN_MARK): Likewise.
29175
291762018-02-16  Julia Koval  <julia.koval@intel.com>
29177
29178	* config/i386/i386.c (ix86_option_override_internal): Remove PTA_CLWB
29179	from PTA_CANNONLAKE.
29180
291812018-02-16  Jakub Jelinek  <jakub@redhat.com>
29182
29183	PR target/84272
29184	* config/aarch64/cortex-a57-fma-steering.c (fma_forest::merge_forest):
29185	Use ++iter rather than iter++ for std::list iterators.
29186	(func_fma_steering::dfs): Likewise.  Don't delete nodes right away,
29187	defer deleting them until all nodes in the forest are processed.  Do
29188	free even leaf nodes.  Change to_process into auto_vec.
29189
29190	PR bootstrap/84405
29191	* system.h (BROKEN_VALUE_INITIALIZATION): Define for GCC < 4.3.
29192	* vec.h (vec_default_construct): Use memset instead of placement new
29193	if BROKEN_VALUE_INITIALIZATION is defined.
29194	* hash-table.h (hash_table<Descriptor, Allocator>::empty_slow): Use
29195	memset instead of value initialization if BROKEN_VALUE_INITIALIZATION
29196	is defined.
29197
29198	PR rtl-optimization/83723
29199	* lra-int.h (lra_substitute_pseudo): Add DEBUG_P argument.
29200	* lra.c (lra_substitute_pseudo): Likewise.  If true, use
29201	gen_rtx_raw_SUBREG instead of gen_rtx_SUBREG.  Pass DEBUG_P to
29202	recursive calls.
29203	(lra_substitute_pseudo_within_insn): Adjust lra_substitute_pseudo
29204	callers.
29205	* lra-constraints.c (inherit_reload_reg, split_reg): Likewise.
29206
292072018-02-16  Eric Botcazou  <ebotcazou@adacore.com>
29208
29209	PR rtl-optimization/81443
29210	* rtlanal.c (num_sign_bit_copies1) <SUBREG>: Do not propagate results
29211	from inner REGs to paradoxical SUBREGs.
29212
292132018-02-16  Richard Biener  <rguenther@suse.de>
29214
29215	PR tree-optimization/84399
29216	* graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
29217	For operands we can analyze at their definition make sure we can
29218	analyze them at each use as well.
29219
292202018-02-16  Richard Biener  <rguenther@suse.de>
29221
29222	PR tree-optimization/84190
29223	* tree-ssa.c (non_rewritable_mem_ref_base): Do not touch
29224	volatile accesses if the decl isn't volatile.
29225
292262018-02-15  Jason Merrill  <jason@redhat.com>
29227
29228	PR c++/84314 - ICE with templates and fastcall attribute.
29229	* attribs.c (build_type_attribute_qual_variant): Don't clobber
29230	TYPE_CANONICAL on an existing type.
29231
292322018-02-15  Jakub Jelinek  <jakub@redhat.com>
29233
29234	PR tree-optimization/84383
29235	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Don't look at
29236	dstoff nor call operand_equal_p if dstbase is NULL.
29237
29238	PR tree-optimization/84334
29239	* match.pd ((A +- CST1) +- CST2 -> A + CST3): If A is
29240	also a CONSTANT_CLASS_P, punt.
29241
292422018-02-14  Jim Wilson  <jimw@sifive.com>
29243
29244	* config/riscv/riscv.c (riscv_first_stack_step): Move locals after
29245	first SMALL_OPERAND check.  New local min_second_step.  Move assert
29246	to where locals are set.  Add TARGET_RVC support.
29247	* config/riscv/riscv.h (C_SxSP_BITS, SWSP_REACH, SDSP_REACH): New.
29248
292492018-02-14  Indu Bhagat  <indu.bhagat@oracle.com>
29250
29251	* doc/invoke.texi: Correct -Wformat-overflow code sample.
29252
292532018-02-14  Martin Sebor  <msebor@redhat.com>
29254
29255	PR tree-optimization/83698
29256	* gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For
29257	arrays constrain the offset range to their bounds.
29258	(builtin_access::strcat_overlap): Adjust the bounds of overlap offset.
29259	(builtin_access::overlap): Avoid setting the size of overlap if it's
29260	already been set.
29261	(maybe_diag_overlap): Also consider arrays when deciding what values
29262	of offsets to include in diagnostics.
29263
292642018-02-14  Martin Sebor  <msebor@redhat.com>
29265
29266	PR c/84108
29267	* attribs.c (diag_attr_exclusions): Consider the exclusion(s)
29268	that correspond to the kind of a declaration.
29269
292702018-02-14  John David Anglin  <danglin@gcc.gnu.org>
29271
29272	PR target/83984
29273	* config/pa/pa.md: Load address of PIC label using the linkage table
29274	if the label is nonlocal.
29275
292762018-02-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
29277
29278	* config/rs6000/rs6000.c (rs6000_option_override_internal): Issue
29279	warning message if user requests -maltivec=be.
29280	* doc/invoke.texi: Document deprecation of -maltivec=be.
29281
292822018-02-14  Will Schmidt  <will_schmidt@vnet.ibm.com>
29283
29284	PR target/84220
29285	* config/rs6000/rs6000-c.c: Update definitions for
29286	ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SLDW,
29287	VEC_XXSLDWI and ALTIVEC_BUILTIN_VEC_XXPERMDI builtins.
29288
292892018-02-14  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
29290
29291	PR target/84239
29292	* config/i386/cetintrin.h: Remove _rdssp[d|q] and
29293	add _get_ssp intrinsics. Remove argument from
29294	__builtin_ia32_rdssp[d|q].
29295	* config/i386/i386-builtin-types.def: Add UINT_FTYPE_VOID.
29296	* config/i386/i386-builtin.def: Remove argument from
29297	__builtin_ia32_rdssp[d|q].
29298	* config/i386/i386.c: Use UINT_FTYPE_VOID. Use
29299	ix86_expand_special_args_builtin for _rdssp[d|q].
29300	* config/i386/i386.md: Remove argument from rdssp[si|di] insn.
29301	Clear register before usage.
29302	* doc/extend.texi: Remove argument from __builtin_ia32_rdssp[d|q].
29303	Add documentation for new _get_ssp and _inc_ssp intrinsics.
29304
293052018-02-14  Richard Sandiford  <richard.sandiford@linaro.org>
29306
29307	PR tree-optimization/84357
29308	* tree-data-ref.c (object_address_invariant_in_loop_p): Check
29309	operand 1 of an ARRAY_REF too.
29310
293112018-02-14  Oleg Endo  <olegendo@gcc.gnu.org>
29312
29313	PR target/83831
29314	* config/rx/rx-protos.h (rx_reg_dead_or_unused_after_insn,
29315	rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New
29316	declarations.
29317	(set_of_reg): New struct.
29318	(rx_find_set_of_reg, rx_find_use_of_reg): New functions.
29319	* config/rx/rx.c (rx_reg_dead_or_unused_after_insn,
29320	rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New
29321	functions.
29322	* config/rx/rx.md (andsi3, iorsi3, xorsi3): Convert to insn_and_split.
29323	Split into bitclr, bitset, bitinvert patterns if appropriate.
29324	(*bitset, *bitinvert, *bitclr): Convert to named insn_and_split and
29325	use rx_fuse_in_memory_bitop.
29326	(*bitset_in_memory, *bitinvert_in_memory, *bitclr_in_memory): Convert
29327	to named insn, correct maximum insn length.
29328
293292018-02-14  Jozef Lawrynowicz  <jozefl.gcc@gmail.com>
29330
29331	PR target/79242
29332	* machmode.def: Define a complex mode for PARTIAL_INT.
29333	* genmodes.c (complex_class): Return MODE_COMPLEX_INT for
29334	MODE_PARTIAL_INT.
29335	* doc/rtl.texi: Document CSPImode.
29336	* config/msp430/msp430.c (msp430_hard_regno_nregs): Add CPSImode
29337	handling.
29338	(msp430_hard_regno_nregs_with_padding): Likewise.
29339
293402018-02-13  Peter Bergner  <bergner@vnet.ibm.com>
29341
29342	PR target/84279
29343	* config/rs6000/rs6000.c (mem_operand_gpr): Disallow altivec addresses.
29344
293452018-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
29346
29347	PR rtl-optimization/84169
29348	* combine.c (try_combine): New variable split_i2i3.  Set it to true if
29349	we generated a parallel as new i3 and we split that to new i2 and i3
29350	instructions.  Handle split_i2i3 similar to swap_i2i3: scan the
29351	LOG_LINKs of i3 to see which of those need to link to i2 now.  Link
29352	those to i2, not i1.  Partially rewrite this scan code.
29353
293542018-02-13  Jakub Jelinek  <jakub@redhat.com>
29355
29356	PR c/82210
29357	* stor-layout.c (place_field): For variable length fields, adjust
29358	offset_align afterwards not just based on the field's alignment,
29359	but also on the size.
29360
29361	PR middle-end/84309
29362	* match.pd (pow(C,x) -> exp(log(C)*x)): Use exp2s and log2s instead
29363	of exps and logs in the use_exp2 case.
29364
293652018-02-13  Jeff Law  <law@redhat.com>
29366
29367	* config/rl/rl78.c (rl78_attribute_table): Fix terminator and
29368	entry for "vector".
29369
29370	* config/rl78/rl78.c (rl78_handle_func_attribute): Mark
29371	ARGS as unused.
29372
293732018-02-13  Alexandre Oliva  <aoliva@redhat.com>
29374
29375	PR debug/84342
29376	PR debug/84319
29377	* common.opt (gas-loc-support, gas-locview-support): New.
29378	(ginline-points, ginternal-reset-location-views): New.
29379	* doc/invoke.texi: Document them.  Use @itemx where intended.
29380	(gvariable-location-views): Adjust.
29381	* target.def (reset_location_view): New.
29382	* doc/tm.texi.in (DWARF2_ASM_VIEW_DEBUG_INFO): New.
29383	(TARGET_RESET_LOCATION_VIEW): New.
29384	* doc/tm.texi: Rebuilt.
29385	* dwarf2out.c (dwarf2out_default_as_loc_support): New.
29386	(dwarf2out_default_as_locview_support): New.
29387	(output_asm_line_debug_info): Use option variables.
29388	(dwarf2out_maybe_output_loclist_view_pair): Likewise.
29389	(output_loc_list): Likewise.
29390	(add_high_low_attributes): Check option variables.
29391	Don't output entry view attribute in strict mode.
29392	(gen_inlined_subroutine_die): Check option variables.
29393	(dwarf2out_inline_entry): Likewise.
29394	(init_sections_and_labels): Likewise.
29395	(dwarf2out_early_finish): Likewise.
29396	(maybe_reset_location_view): New, from...
29397	(dwarf2out_var_location): ... here.  Call it.
29398	* debug.h (dwarf2out_default_as_loc_support): Declare.
29399	(dwarf2out_default_as_locview_support): Declare.
29400	* hooks.c (hook_int_rtx_insn_0): New.
29401	* hooks.h (hook_int_rtx_insn_0): Declare.
29402	* toplev.c (process_options): Take -gas-loc-support and
29403	-gas-locview-support from dwarf2out.  Enable
29404	-gvariable-location-views by default only with locview
29405	assembler support.  Enable -ginternal-reset-location-views by
29406	default only if the target defines the corresponding hook.
29407	Enable -ginline-points by default if location views are
29408	enabled; force it disabled if statement frontiers are
29409	disabled.
29410	* tree-inline.c (expand_call_inline): Check option variables.
29411	* tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
29412
294132018-02-13  Richard Sandiford  <richard.sandiford@linaro.org>
29414
29415	PR tree-optimization/84321
29416	* tree-vrp.c (intersect_range_with_nonzero_bits): Fix VR_ANTI_RANGE
29417	handling.  Also check whether the anti-range contains any values
29418	that satisfy the mask; switch to a VR_RANGE if not.
29419
294202018-02-13  Paolo Bonzini  <bonzini@gnu.org>
29421
29422	PR sanitizer/84340
29423	* internal-fn.def (ASAN_CHECK, ASAN_MARK): Revert changes to fnspec.
29424
294252018-02-13  Martin Jambor  <mjambor@suse.cz>
29426
29427	PR c++/83990
29428	* ipa-param-manipulation.c (ipa_modify_call_arguments): Use location
29429	of call statements, also set location of a load to a temporary.
29430
294312018-02-13  Sebastian Perta  <sebastian.perta@renesas.com>
29432
29433	* config/rl78/rl78.c (add_vector_labels): New function.
29434	* config/rl78/rl78.c (rl78_handle_vector_attribute): New function.
29435	* config/rl78/rl78.c (rl78_start_function): Call add_vector_labels.
29436	* config/rl78/rl78.c (rl78_handle_func_attribute): Removed the assert
29437	which checks that no arguments are passed.
29438	* config/rl78/rl78.c (rl78_attribute_table): Add "vector" attribute.
29439	* doc/extend.texi: Documentation for the new attribute.
29440
294412018-02-13  Andreas Schwab  <schwab@suse.de>
29442
29443	* config/riscv/linux.h (CPP_SPEC): Define.
29444
294452018-02-13  Jakub Jelinek  <jakub@redhat.com>
29446
29447	PR target/84335
29448	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Pass
29449	OPTION_MASK_ISA_AES | OPTION_MASK_ISA_SSE2 instead of
29450	OPTION_MASK_ISA_AES as first argument to def_builtin_const
29451	for AES builtins.  Pass OPTION_MASK_ISA_PCLMUL | OPTION_MASK_ISA_SSE2
29452	instead of OPTION_MASK_ISA_PCLMUL as first argument to
29453	def_builtin_const for __builtin_ia32_pclmulqdq128 builtin.
29454	* config/i386/wmmintrin.h: If __SSE2__ is not defined, enable it
29455	temporarily for AES and PCLMUL builtins.
29456
29457	PR tree-optimization/84339
29458	* gimple-fold.c (get_range_strlen): Set *FLEXP to true when handling
29459	ARRAY_REF where first operand is array_at_struct_end_p COMPONENT_REF.
29460	Formatting fixes.
29461
29462	PR middle-end/84309
29463	* match.pd (pow(C,x) -> exp(log(C)*x)): Optimize instead into
29464	exp2(log2(C)*x) if C is a power of 2 and c99 runtime is available.
29465	* generic-match-head.c (canonicalize_math_after_vectorization_p): New
29466	inline function.
29467	* gimple-match-head.c (canonicalize_math_after_vectorization_p): New
29468	inline function.
29469	* omp-simd-clone.h: New file.
29470	* omp-simd-clone.c: Include omp-simd-clone.h.
29471	(expand_simd_clones): No longer static.
29472	* tree-vect-patterns.c: Include fold-const-call.h, attribs.h,
29473	cgraph.h and omp-simd-clone.h.
29474	(vect_recog_pow_pattern): Optimize pow(C,x) to exp(log(C)*x).
29475	(vect_recog_widen_shift_pattern): Formatting fix.
29476	(vect_pattern_recog_1): Don't check optab for calls.
29477
29478	PR target/84336
29479	* config/i386/sse.md (<avx512>_vpermi2var<mode>3_mask): Force
29480	operands[2] into a REG before using gen_lowpart on it.
29481
294822018-02-12  Jeff Law  <law@redhat.com>
29483
29484	PR target/83760
29485	* config/sh/sh.c (find_barrier): Consider a sibling call
29486	a barrier as well.
29487
29488	* cse.c (try_back_substitute_reg): Move any REG_ARGS_SIZE note when
29489	successfully back substituting a reg.
29490
294912018-02-12  Richard Biener  <rguenther@suse.de>
29492
29493	PR tree-optimization/84037
29494	* tree-vect-slp.c (vect_analyze_slp_cost): Add visited
29495	parameter, move visited init to caller.
29496	(vect_slp_analyze_operations): Separate cost from validity
29497	check, initialize visited once for all instances.
29498	(vect_schedule_slp): Analyze map to CSE vectorized nodes once
29499	for all instances.
29500	* tree-vect-stmts.c (vect_model_simple_cost): Make early
29501	out an assert.
29502	(vect_model_promotion_demotion_cost): Likewise.
29503	(vectorizable_bswap): Guard cost modeling with !slp_node
29504	instead of !PURE_SLP_STMT to avoid double-counting on hybrid
29505	SLP stmts.
29506	(vectorizable_call): Likewise.
29507	(vectorizable_conversion): Likewise.
29508	(vectorizable_assignment): Likewise.
29509	(vectorizable_shift): Likewise.
29510	(vectorizable_operation): Likewise.
29511	(vectorizable_store): Likewise.
29512	(vectorizable_load): Likewise.
29513	(vectorizable_condition): Likewise.
29514	(vectorizable_comparison): Likewise.
29515
295162018-02-12  Paolo Bonzini  <bonzini@gnu.org>
29517
29518	PR sanitizer/84307
29519	* internal-fn.def (ASAN_CHECK): Fix fnspec to account for return value.
29520	(ASAN_MARK): Fix fnspec to account for return value, change pointer
29521	argument from 'R' to 'W' so that the pointed-to datum is clobbered.
29522
295232018-02-08  Jan Hubicka  <hubicka@ucw.cz>
29524
29525	PR middle-end/83665
29526	* params.def (inline-min-speedup): Increase from 8 to 15.
29527	(max-inline-insns-auto): Decrease from 40 to 30.
29528	* ipa-split.c (consider_split): Add some buffer for function to
29529	be considered inlining candidate.
29530	* invoke.texi (max-inline-insns-auto, inline-min-speedup): UPdate
29531	default values.
29532
295332018-02-12  Richard Biener  <rguenther@suse.de>
29534
29535	PR tree-optimization/84037
29536	* tree-vect-slp.c (vect_build_slp_tree_2): Try swapping the
29537	matched stmts if we cannot swap the non-matched ones.
29538
295392018-02-12  Olga Makhotina  <olga.makhotina@intel.com>
29540
29541	* config/i386/avx512fintrin.h (_mm_mask_scalef_round_sd,
29542	_mm_maskz_scalef_round_sd, _mm_mask_scalef_round_ss,
29543	_mm_maskz_scalef_round_ss): New intrinsics.
29544	(__builtin_ia32_scalefsd_round, __builtin_ia32_scalefss_round): Fix.
29545	* config/i386/i386-builtin.def (__builtin_ia32_scalefsd_round,
29546	__builtin_ia32_scalefss_round): Remove.
29547	(__builtin_ia32_scalefsd_mask_round,
29548	__builtin_ia32_scalefss_mask_round): New intrinsics.
29549	* config/i386/sse.md (vmscalef<mode><round_name>): Renamed to ...
29550	(vmscalef<mode><mask_scalar_name><round_scalar_name>): ... this.
29551	((match_operand:VF_128 2 "<round_nimm_predicate>"
29552	"<round_constraint>")): Changed to ...
29553	((match_operand:VF_128 2 "<round_scalar_nimm_predicate>"
29554	"<round_scalar_constraint>")): ... this.
29555	("vscalef<ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|
29556	%0, %1, %2<round_op3>}"): Changed to ...
29557	("vscalef<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%2, %1,
29558	%0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %1,
29559	%2<round_scalar_mask_op3>}"): ... this.
29560	* config/i386/subst.md (round_scalar_nimm_predicate): New.
29561
295622018-02-12  Olga Makhotina  <olga.makhotina@intel.com>
29563
29564	* config/i386/avx512fintrin.h (_mm_mask_sqrt_round_sd)
29565	(_mm_maskz_sqrt_round_sd, _mm_mask_sqrt_round_ss)
29566	(_mm_maskz_sqrt_round_ss): New intrinsics.
29567	(__builtin_ia32_sqrtsd_round, __builtin_ia32_sqrtss_round): Remove.
29568	(__builtin_ia32_sqrtsd_mask_round)
29569	(__builtin_ia32_sqrtss_mask_round): New builtins.
29570	* config/i386/i386-builtin.def (__builtin_ia32_sqrtsd_round)
29571	(__builtin_ia32_sqrtss_round): Remove.
29572	(__builtin_ia32_sqrtsd_mask_round)
29573	(__builtin_ia32_sqrtss_mask_round): New builtins.
29574	* config/i386/sse.md (vmsqrt<mode>2<round_name>): Renamed to ...
29575	(vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): ... this.
29576	((match_operand:VF_128 1 "vector_operand"
29577	"xBm,<round_constraint>")): Changed to ...
29578	((match_operand:VF_128 1 "vector_operand"
29579	"xBm,<round_scalar_constraint>")): ... this.
29580	(vsqrt<ssescalarmodesuffix>\t{<round_op3>%1, %2, %0|
29581	%0, %2, %<iptr>1<round_op3>}): Changed to ...
29582	(vsqrt<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%1, %2,
29583	%0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %2,
29584	%<iptr>1<round_scalar_mask_op3>}): ... this.
29585	((set_attr "prefix" "<round_prefix>")): Changed to ...
29586	((set_attr "prefix" "<round_scalar_prefix>")): ... this.
29587
295882018-02-11  Steven Munroe  <munroesj@gcc.gnu.org>
29589
29590	PR target/84266
29591	* config/rs6000/mmintrin.h (_mm_cmpeq_pi32 [_ARCH_PWR9]):
29592	Cast vec_cmpeq result to correct type.
29593	* config/rs6000/mmintrin.h (_mm_cmpgt_pi32 [_ARCH_PWR9]):
29594	Cast vec_cmpgt result to correct type.
29595
295962018-02-11  Alexandre Oliva  <aoliva@redhat.com>
29597
29598	* final.c (final_scan_insn_1): Renamed from...
29599	(final_scan_insn): ... this.  New wrapper, to recover
29600	seen from the outermost call in recursive ones.
29601	* config/sparc/sparc.c (output_return): Drop seen from call.
29602	(output_sibcall): Likewise.
29603	* config/visium/visium.c (output_branch): Likewise.
29604
296052018-02-10  John David Anglin  <danglin@gcc.gnu.org>
29606
29607	* config/pa/pa.c (hppa_profile_hook): Mark SYMBOL_REF for _mcount as
29608	function label.
29609
296102018-02-10  Alan Modra  <amodra@gmail.com>
29611
29612	PR target/84300
29613	* config/rs6000/rs6000.md (split_stack_return): Remove (use ..).
29614	Specify LR as an input.
29615
296162018-02-10  Jakub Jelinek  <jakub@redhat.com>
29617
29618	PR sanitizer/83987
29619	* omp-low.c (maybe_remove_omp_member_access_dummy_vars,
29620	remove_member_access_dummy_vars): New functions.
29621	(lower_omp_for, lower_omp_taskreg, lower_omp_target,
29622	lower_omp_1, execute_lower_omp): Use them.
29623
29624	PR rtl-optimization/84308
29625	* shrink-wrap.c (spread_components): Release todo vector.
29626
296272018-02-09  Vladimir Makarov  <vmakarov@redhat.com>
29628
29629	PR rtl-optimization/57193
29630	* ira-color.c (struct allocno_color_data): Add member
29631	conflict_allocno_hard_prefs.
29632	(update_conflict_allocno_hard_prefs): New.
29633	(bucket_allocno_compare_func): Add a preference based on
29634	conflict_allocno_hard_prefs.
29635	(push_allocno_to_stack): Update conflict_allocno_hard_prefs.
29636	(color_allocnos): Remove a dead code.  Initiate
29637	conflict_allocno_hard_prefs.  Call update_costs_from_prefs.
29638
296392018-02-09  Jakub Jelinek  <jakub@redhat.com>
29640
29641	PR target/84226
29642	* config/rs6000/vsx.md (p9_xxbrq_v16qi): Change input operand
29643	constraint from =wa to wa.  Avoid a subreg on the output operand,
29644	instead use a pseudo and subreg it in a move.
29645	(p9_xxbrd_<mode>): Changed to ...
29646	(p9_xxbrd_v2di): ... this insn, without VSX_D iterator.
29647	(p9_xxbrd_v2df): New expander.
29648	(p9_xxbrw_<mode>): Changed to ...
29649	(p9_xxbrw_v4si): ... this insn, without VSX_W iterator.
29650	(p9_xxbrw_v4sf): New expander.
29651
296522018-02-09  Sebastian Perta  <sebastian.perta@renesas.com>
29653
29654	* config/rx/rx.md (movsicc): Update expander to be matched by GCC.
29655
296562018-02-09  Peter Bergner  <bergner@vnet.ibm.com>
29657
29658	PR target/83926
29659	* config/rs6000/vsx.md (vsx_mul_v2di): Handle generating a 64-bit
29660	multiply in 32-bit mode.
29661	(vsx_div_v2di): Handle generating a 64-bit signed divide in 32-bit mode.
29662	(vsx_udiv_v2di): Handle generating a 64-bit unsigned divide in 32-bit
29663	mode.
29664
296652018-02-09  Sebastian Perta  <sebastian.perta@renesas.com>
29666
29667	* config/rx/constraints.md (CALL_OP_SYMBOL_REF): Added new constraint
29668	to allow or block "symbol_ref" depending on the value of TARGET_JSR.
29669	* config/rx/rx.md (call_internal): Use CALL_OP_SYMBOL_REF.
29670	* config/rx/rx.md (call_value_internal): Use CALL_OP_SYMBOL_REF.
29671
296722018-02-09  Pierre-Marie de Rodat  <derodat@adacore.com>
29673
29674	PR lto/84213
29675	* dwarf2out.c (is_trivial_indirect_ref): New function.
29676	(dwarf2out_late_global_decl): Do not generate a location
29677	attribute for variables that have a non-trivial DECL_VALUE_EXPR
29678	and that are not defined in the current unit.
29679
296802018-02-09  Eric Botcazou  <ebotcazou@adacore.com>
29681
29682	* optabs.c (prepare_cmp_insn): Try harder to emit a direct comparison
29683	instead of a libcall for UNORDERED.
29684
296852018-02-09  Tamar Christina  <tamar.christina@arm.com>
29686
29687	PR target/82641
29688	* config/arm/arm-c.c (arm_cpu_builtins): Un-define __ARM_FEATURE_LDREX,
29689	__ARM_ARCH_PROFILE, __ARM_ARCH_ISA_THUMB, __ARM_FP and __ARM_NEON_FP.
29690
296912018-02-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29692
29693	PR target/PR84295
29694	* config/s390/s390.c (s390_set_current_function): Invoke
29695	s390_indirect_branch_settings also if fndecl didn't change.
29696
296972018-02-09  Alexandre Oliva  <aoliva@redhat.com>
29698
29699	* config/rs6000/rs6000.md (blockage): Set length to zero.
29700
297012018-02-09  Eric Botcazou  <ebotcazou@adacore.com>
29702
29703	* expr.c (optimize_bitfield_assignment_op): Remove obsolete assertion.
29704
297052018-02-09  Jakub Jelinek  <jakub@redhat.com>
29706
29707	PR sanitizer/84285
29708	* gcc.c (STATIC_LIBASAN_LIBS, STATIC_LIBTSAN_LIBS,
29709	STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS): Handle -static like
29710	-static-lib*san.
29711
29712	PR debug/84252
29713	* var-tracking.c (vt_add_function_parameter): Punt for non-onepart
29714	PARALLEL incoming that failed vt_get_decl_and_offset check.
29715
29716	PR middle-end/84237
29717	* output.h (bss_initializer_p): Add NAMED argument, defaulted to false.
29718	* varasm.c (bss_initializer_p): Add NAMED argument, if true, ignore
29719	TREE_READONLY bit.
29720	(get_variable_section): For decls in named .bss* sections pass true as
29721	second argument to bss_initializer_p.
29722
297232018-02-09  Marek Polacek  <polacek@redhat.com>
29724	    Jakub Jelinek  <jakub@redhat.com>
29725
29726	PR c++/83659
29727	* fold-const.c (fold_indirect_ref_1): Use VECTOR_TYPE_P macro.
29728	Formatting fixes.  Verify first that tree_fits_poly_int64_p (op01).
29729	Sync some changes from cxx_fold_indirect_ref.
29730
297312018-02-09  Alexandre Oliva  <aoliva@redhat.com>
29732
29733	* cfgexpand.c (expand_gimple_basic_block): Handle inline entry
29734	markers.
29735	* dwarf2out.c (dwarf2_debug_hooks): Enable inline_entry hook.
29736	(BLOCK_INLINE_ENTRY_LABEL): New.
29737	(dwarf2out_var_location): Disregard inline entry markers.
29738	(inline_entry_data): New struct.
29739	(inline_entry_data_hasher): New hashtable type.
29740	(inline_entry_data_hasher::hash): New.
29741	(inline_entry_data_hasher::equal): New.
29742	(inline_entry_data_table): New variable.
29743	(add_high_low_attributes): Add DW_AT_entry_pc and
29744	DW_AT_GNU_entry_view attributes if a pending entry is found
29745	in inline_entry_data_table.  Add old entry_pc attribute only
29746	if debug nonbinding markers are disabled.
29747	(gen_inlined_subroutine_die): Set BLOCK_DIE if nonbinding
29748	markers are enabled.
29749	(block_within_block_p, dwarf2out_inline_entry): New.
29750	(dwarf2out_finish): Check that no entries remained in
29751	inline_entry_data_table.
29752	* final.c (reemit_insn_block_notes): Handle inline entry notes.
29753	(final_scan_insn, notice_source_line): Likewise.
29754	(rest_of_clean_state): Skip inline entry markers.
29755	* gimple-pretty-print.c (dump_gimple_debug): Handle inline entry
29756	markers.
29757	* gimple.c (gimple_build_debug_inline_entry): New.
29758	* gimple.h (enum gimple_debug_subcode): Add
29759	GIMPLE_DEBUG_INLINE_ENTRY.
29760	(gimple_build_debug_inline_entry): Declare.
29761	(gimple_debug_inline_entry_p): New.
29762	(gimple_debug_nonbind_marker_p): Adjust.
29763	* insn-notes.def (INLINE_ENTRY): New.
29764	* print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle
29765	inline entry marker notes.
29766	(print_insn): Likewise.
29767	* rtl.h	(NOTE_MARKER_P): Add INLINE_ENTRY support.
29768	(INSN_DEBUG_MARKER_KIND): Likewise.
29769	(GEN_RTX_DEBUG_MARKER_INLINE_ENTRY_PAT): New.
29770	* tree-inline.c	(expand_call_inline): Build and insert
29771	debug_inline_entry stmt.
29772	* tree-ssa-live.c (remove_unused_scope_block_p): Preserve
29773	inline entry blocks early, if nonbind markers are enabled.
29774	(dump_scope_block): Dump fragment info.
29775	* var-tracking.c (reemit_marker_as_note): Handle inline entry note.
29776	* doc/gimple.texi (gimple_debug_inline_entry_p): New.
29777	(gimple_build_debug_inline_entry): New.
29778	* doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers):
29779	Enable/disable inline entry points too.
29780	* doc/rtl.texi (NOTE_INSN_INLINE_ENTRY): New.
29781	(DEBUG_INSN): Describe inline entry markers.
29782
29783	* common.opt (gvariable-location-views): New.
29784	(gvariable-location-views=incompat5): New.
29785	* config.in: Rebuilt.
29786	* configure: Rebuilt.
29787	* configure.ac: Test assembler for view support.
29788	* dwarf2asm.c (dw2_asm_output_symname_uleb128): New.
29789	* dwarf2asm.h (dw2_asm_output_symname_uleb128): Declare.
29790	* dwarf2out.c (var_loc_view): New typedef.
29791	(struct dw_loc_list_struct): Add vl_symbol, vbegin, vend.
29792	(dwarf2out_locviews_in_attribute): New.
29793	(dwarf2out_locviews_in_loclist): New.
29794	(dw_val_equal_p): Compare val_view_list of dw_val_class_view_lists.
29795	(enum dw_line_info_opcode): Add LI_adv_address.
29796	(struct dw_line_info_table): Add view.
29797	(RESET_NEXT_VIEW, RESETTING_VIEW_P): New macros.
29798	(DWARF2_ASM_VIEW_DEBUG_INFO): Define default.
29799	(zero_view_p): New variable.
29800	(ZERO_VIEW_P): New macro.
29801	(output_asm_line_debug_info): New.
29802	(struct var_loc_node): Add view.
29803	(add_AT_view_list, AT_loc_list): New.
29804	(add_var_loc_to_decl): Add view param.  Test it against last.
29805	(new_loc_list): Add view params.  Record them.
29806	(AT_loc_list_ptr): Handle loc and view lists.
29807	(view_list_to_loc_list_val_node): New.
29808	(print_dw_val): Handle dw_val_class_view_list.
29809	(size_of_die): Likewise.
29810	(value_format): Likewise.
29811	(loc_list_has_views): New.
29812	(gen_llsym): Set vl_symbol too.
29813	(maybe_gen_llsym, skip_loc_list_entry): New.
29814	(dwarf2out_maybe_output_loclist_view_pair): New.
29815	(output_loc_list): Output view list or entries too.
29816	(output_view_list_offset): New.
29817	(output_die): Handle dw_val_class_view_list.
29818	(output_dwarf_version): New.
29819	(output_compilation_unit_header): Use it.
29820	(output_skeleton_debug_sections): Likewise.
29821	(output_rnglists, output_line_info): Likewise.
29822	(output_pubnames, output_aranges): Update version comments.
29823	(output_one_line_info_table): Output view numbers in asm comments.
29824	(dw_loc_list): Determine current endview, pass it to new_loc_list.
29825	Call maybe_gen_llsym.
29826	(loc_list_from_tree_1): Adjust.
29827	(add_AT_location_description): Create view list attribute if
29828	needed, check it's absent otherwise.
29829	(convert_cfa_to_fb_loc_list): Adjust.
29830	(maybe_emit_file): Call output_asm_line_debug_info for test.
29831	(dwarf2out_var_location): Reset views as needed.  Precompute
29832	add_var_loc_to_decl args.  Call get_attr_min_length only if we have the
29833	attribute.  Set view.
29834	(new_line_info_table): Reset next view.
29835	(set_cur_line_info_table): Call output_asm_line_debug_info for test.
29836	(dwarf2out_source_line): Likewise.  Output view resets and labels to
29837	the assembler, or select appropriate line info opcodes.
29838	(prune_unused_types_walk_attribs): Handle dw_val_class_view_list.
29839	(optimize_string_length): Catch it.  Adjust.
29840	(resolve_addr): Copy vl_symbol along with ll_symbol.  Handle
29841	dw_val_class_view_list, and remove it if no longer needed.
29842	(hash_loc_list): Hash view numbers.
29843	(loc_list_hasher::equal): Compare them.
29844	(optimize_location_lists): Check whether a view list symbol is
29845	needed, and whether the locview attribute is present, and
29846	whether they match.  Remove the locview attribute if no longer
29847	needed.
29848	(index_location_lists): Call skip_loc_list_entry for test.
29849	(dwarf2out_finish): Call output_asm_line_debug_info for test.
29850	Use output_dwarf_version.
29851	* dwarf2out.h (enum dw_val_class): Add dw_val_class_view_list.
29852	(struct dw_val_node): Add val_view_list.
29853	* final.c (SEEN_NEXT_VIEW): New.
29854	(set_next_view_needed): New.
29855	(clear_next_view_needed): New.
29856	(maybe_output_next_view): New.
29857	(final_start_function): Rename to...
29858	(final_start_function_1): ... this.  Take pointer to FIRST,
29859	add SEEN parameter.  Emit param bindings in the initial view.
29860	(final_start_function): Reintroduce SEEN-less interface.
29861	(final): Rename to...
29862	(final_1): ... this.  Take SEEN parameter.  Output final pending
29863	next view at the end.
29864	(final): Reintroduce seen-less interface.
29865	(final_scan_insn): Output pending next view before switching
29866	sections or ending a block.  Mark the next view as needed when
29867	outputting variable locations.  Notify debug backend of section
29868	changes, and of location view changes.
29869	(rest_of_handle_final): Adjust.
29870	* toplev.c (process_options): Autodetect value for debug variable
29871	location views option.  Warn on incompat5 without -gdwarf-5.
29872	* doc/invoke.texi (gvariable-location-views): New.
29873	(gvariable-location-views=incompat5): New.
29874	(gno-variable-location-views): New.
29875
298762018-02-08  David Malcolm  <dmalcolm@redhat.com>
29877
29878	PR tree-optimization/84136
29879	* tree-cfg.c (find_taken_edge_computed_goto): Remove assertion
29880	that the result of find_edge is non-NULL.
29881
298822018-02-08  Sergey Shalnov  <sergey.shalnov@intel.com>
29883
29884	PR target/83008
29885	* config/i386/x86-tune-costs.h (skylake_cost): Fix cost of
29886	storing integer register in SImode.  Fix cost of 256 and 512
29887	byte aligned SSE register store.
29888
298892018-02-08  Sergey Shalnov  <sergey.shalnov@intel.com>
29890
29891	* config/i386/i386.c (ix86_multiplication_cost): Fix
29892	multiplication cost for TARGET_AVX512DQ.
29893
298942018-02-08  Marek Polacek  <polacek@redhat.com>
29895
29896	PR tree-optimization/84238
29897	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Verify the result of
29898	get_range_strlen.
29899
299002018-02-08  Richard Sandiford  <richard.sandiford@linaro.org>
29901
29902	PR tree-optimization/84265
29903	* tree-vect-stmts.c (vectorizable_store): Don't treat
29904	VMAT_CONTIGUOUS accesses as grouped.
29905	(vectorizable_load): Likewise.
29906
299072018-02-08  Richard Sandiford  <richard.sandiford@linaro.org>
29908
29909	PR tree-optimization/81635
29910	* wide-int.h (wi::round_down_for_mask, wi::round_up_for_mask): Declare.
29911	* wide-int.cc (wi::round_down_for_mask, wi::round_up_for_mask)
29912	(test_round_for_mask): New functions.
29913	(wide_int_cc_tests): Call test_round_for_mask.
29914	* tree-vrp.h (intersect_range_with_nonzero_bits): Declare.
29915	* tree-vrp.c (intersect_range_with_nonzero_bits): New function.
29916	* tree-data-ref.c (split_constant_offset_1): Use it to refine the
29917	range returned by get_range_info.
29918
299192018-02-08  Jan Hubicka  <hubicka@ucw.cz>
29920
29921	PR ipa/81360
29922	* cgraph.h (symtab_node::output_to_lto_symbol_table_p): Declare
29923	* symtab.c: Include builtins.h
29924	(symtab_node::output_to_lto_symbol_table_p): Move here
29925	from lto-streamer-out.c:output_symbol_p.
29926	* lto-streamer-out.c (write_symbol): Turn early exit to assert.
29927	(output_symbol_p): Move all logic to symtab.c
29928	(produce_symtab): Update.
29929
299302018-02-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29931
29932	* config/s390/s390-opts.h (enum indirect_branch): Define.
29933	* config/s390/s390-protos.h (s390_return_addr_from_memory)
29934	(s390_indirect_branch_via_thunk)
29935	(s390_indirect_branch_via_inline_thunk): Add function prototypes.
29936	(enum s390_indirect_branch_type): Define.
29937	* config/s390/s390.c (struct s390_frame_layout, struct
29938	machine_function): Remove.
29939	(indirect_branch_prez10thunk_mask, indirect_branch_z10thunk_mask)
29940	(indirect_branch_table_label_no, indirect_branch_table_name):
29941	Define variables.
29942	(INDIRECT_BRANCH_NUM_OPTIONS): Define macro.
29943	(enum s390_indirect_branch_option): Define.
29944	(s390_return_addr_from_memory): New function.
29945	(s390_handle_string_attribute): New function.
29946	(s390_attribute_table): Add new attribute handler.
29947	(s390_execute_label): Handle UNSPEC_EXECUTE_JUMP patterns.
29948	(s390_indirect_branch_via_thunk): New function.
29949	(s390_indirect_branch_via_inline_thunk): New function.
29950	(s390_function_ok_for_sibcall): When jumping via thunk disallow
29951	sibling call optimization for non z10 compiles.
29952	(s390_emit_call): Force indirect branch target to be a single
29953	register.  Add r1 clobber for non-z10 compiles.
29954	(s390_emit_epilogue): Emit return jump via return_use expander.
29955	(s390_reorg): Handle JUMP_INSNs as execute targets.
29956	(s390_option_override_internal): Perform validity checks for the
29957	new command line options.
29958	(s390_indirect_branch_attrvalue): New function.
29959	(s390_indirect_branch_settings): New function.
29960	(s390_set_current_function): Invoke s390_indirect_branch_settings.
29961	(s390_output_indirect_thunk_function):  New function.
29962	(s390_code_end): Implement target hook.
29963	(s390_case_values_threshold): Implement target hook.
29964	(TARGET_ASM_CODE_END, TARGET_CASE_VALUES_THRESHOLD): Define target
29965	macros.
29966	* config/s390/s390.h (struct s390_frame_layout)
29967	(struct	machine_function): Move here from s390.c.
29968	(TARGET_INDIRECT_BRANCH_NOBP_RET)
29969	(TARGET_INDIRECT_BRANCH_NOBP_JUMP)
29970	(TARGET_INDIRECT_BRANCH_NOBP_JUMP_THUNK)
29971	(TARGET_INDIRECT_BRANCH_NOBP_JUMP_INLINE_THUNK)
29972	(TARGET_INDIRECT_BRANCH_NOBP_CALL)
29973	(TARGET_DEFAULT_INDIRECT_BRANCH_TABLE)
29974	(TARGET_INDIRECT_BRANCH_THUNK_NAME_EXRL)
29975	(TARGET_INDIRECT_BRANCH_THUNK_NAME_EX)
29976	(TARGET_INDIRECT_BRANCH_TABLE): Define macros.
29977	* config/s390/s390.md (UNSPEC_EXECUTE_JUMP)
29978	(INDIRECT_BRANCH_THUNK_REGNUM): Define constants.
29979	(mnemonic attribute): Add values which aren't recognized
29980	automatically.
29981	("*cjump_long", "*icjump_long", "*basr", "*basr_r"): Disable
29982	pattern for branch conversion.  Fix mnemonic attribute.
29983	("*c<code>", "*sibcall_br", "*sibcall_value_br", "*return"): Emit
29984	indirect branch via thunk if requested.
29985	("indirect_jump", "<code>"): Expand patterns for branch conversion.
29986	("*indirect_jump"): Disable for branch conversion using out of
29987	line thunks.
29988	("indirect_jump_via_thunk<mode>_z10")
29989	("indirect_jump_via_thunk<mode>")
29990	("indirect_jump_via_inlinethunk<mode>_z10")
29991	("indirect_jump_via_inlinethunk<mode>", "*casesi_jump")
29992	("casesi_jump_via_thunk<mode>_z10", "casesi_jump_via_thunk<mode>")
29993	("casesi_jump_via_inlinethunk<mode>_z10")
29994	("casesi_jump_via_inlinethunk<mode>", "*basr_via_thunk<mode>_z10")
29995	("*basr_via_thunk<mode>", "*basr_r_via_thunk_z10")
29996	("*basr_r_via_thunk", "return<mode>_prez10"): New pattern.
29997	("*indirect2_jump"): Disable for branch conversion.
29998	("casesi_jump"): Turn into expander and expand patterns for branch
29999	conversion.
30000	("return_use"): New expander.
30001	("*return"): Emit return via thunk and rename it to ...
30002	("*return<mode>"): ... this one.
30003	* config/s390/s390.opt: Add new options and and enum for the
30004	option values.
30005
300062018-02-08  Richard Sandiford  <richard.sandiford@linaro.org>
30007
30008	* lra-constraints.c (match_reload): Unconditionally use
30009	gen_lowpart_SUBREG, rather than selecting between that
30010	and equivalent gen_rtx_SUBREG code.
30011
300122018-02-08  Richard Biener  <rguenther@suse.de>
30013
30014	PR tree-optimization/84233
30015	* tree-ssa-phiprop.c (propagate_with_phi): Use separate
30016	changed flag instead of boguously re-using phi_inserted.
30017
300182018-02-08  Martin Jambor  <mjambor@suse.cz>
30019
30020	* hsa-gen.c (get_symbol_for_decl): Set program allocation for
30021	static local variables.
30022
300232018-02-08  Richard Biener  <rguenther@suse.de>
30024
30025	PR tree-optimization/84278
30026	* tree-vect-stmts.c (vectorizable_store): When looking for
30027	smaller vector types to perform grouped strided loads/stores
30028	make sure the mode is supported by the target.
30029	(vectorizable_load): Likewise.
30030
300312018-02-08  Wilco Dijkstra  <wdijkstr@arm.com>
30032
30033	* config/aarch64/aarch64.c (aarch64_components_for_bb):
30034	Increase LDP/STP opportunities by adding adjacent callee-saves.
30035
300362018-02-08  Wilco Dijkstra  <wdijkstr@arm.com>
30037
30038	PR rtl-optimization/84068
30039	PR rtl-optimization/83459
30040	* haifa-sched.c (rank_for_schedule): Fix SCHED_PRESSURE_MODEL sorting.
30041
300422018-02-08  Aldy Hernandez  <aldyh@redhat.com>
30043
30044	PR tree-optimization/84224
30045	* gimple-ssa-warn-alloca.c (pass_walloca::execute): Remove assert.
30046	* calls.c (gimple_alloca_call_p): Only return TRUE when we have
30047	non-zero arguments.
30048
300492018-02-07  Iain Sandoe  <iain@codesourcery.com>
30050
30051	PR target/84113
30052	* config/rs6000/altivec.md (*restore_world): Remove LR use.
30053	* config/rs6000/predicates.md (restore_world_operation): Adjust op
30054	count, remove one USE.
30055
300562018-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
30057
30058	* doc/install.texi (Configuration): Document the
30059	--with-long-double-format={ibm,ieee} PowerPC configuration
30060	options.
30061
30062	PR target/84154
30063	* config/rs6000/rs6000.md (fix_trunc<SFDF:mode><QHI:mode>2):
30064	Convert from define_expand to be define_insn_and_split.  Rework
30065	float/double/_Float128 conversions to QI/HI/SImode to work with
30066	both ISA 2.07 (power8) or ISA 3.0 (power9).  Fix regression where
30067	conversions to QI/HImode types did a store and then a load to
30068	truncate the value.  For conversions to VSX registers, don't split
30069	the insn, instead emit the code directly.  Use the code iterator
30070	any_fix to combine signed and unsigned conversions.
30071	(fix<uns>_trunc<SFDF:mode>si2_p8): Likewise.
30072	(fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise.
30073	(fix_trunc<IEEE128:mode><QHI:mode>2): Likewise.
30074	(fix<uns>_trunc<SFDF:mode><QHI:mode>2): Likewise.
30075	(fix_<mode>di2_hw): Likewise.
30076	(fixuns_<mode>di2_hw): Likewise.
30077	(fix_<mode>si2_hw): Likewise.
30078	(fixuns_<mode>si2_hw): Likewise.
30079	(fix<uns>_<IEEE128:mode><SDI:mode>2_hw): Likewise.
30080	(fix<uns>_trunc<IEEE128:mode><QHI:mode>2): Likewise.
30081	(fctiw<u>z_<mode>_smallint): Rename fctiw<u>z_<mode>_smallint to
30082	fix<uns>_trunc<SFDF:mode>si2_p8.
30083	(fix_trunc<SFDF:mode><QHI:mode>2_internal): Delete, no longer used.
30084	(fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
30085	(fix<uns>_<mode>_mem): Likewise.
30086	(fctiw<u>z_<mode>_mem): Likewise.
30087	(fix<uns>_<mode>_mem): Likewise.
30088	(fix<uns>_trunc<SFDF:mode><QHSI:mode>2_mem): On ISA 3.0, prevent
30089	the register allocator from doing a direct move to the GPRs to do
30090	a store, and instead use the ISA 3.0 store byte/half-word from
30091	vector register instruction.  For IEEE 128-bit floating point,
30092	also optimize stores of 32-bit ints.
30093	(fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Likewise.
30094
300952018-02-07  Alan Hayward  <alan.hayward@arm.com>
30096
30097	* genextract.c (push_pathstr_operand): New function to support
30098	[a-zA-Z].
30099	(walk_rtx): Call push_pathstr_operand.
30100	(print_path): Support [a-zA-Z].
30101
301022018-02-07  Richard Biener  <rguenther@suse.de>
30103
30104	PR tree-optimization/84037
30105	* tree-vectorizer.h (struct _loop_vec_info): Add ivexpr_map member.
30106	(cse_and_gimplify_to_preheader): Declare.
30107	(vect_get_place_in_interleaving_chain): Likewise.
30108	* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
30109	ivexpr_map.
30110	(_loop_vec_info::~_loop_vec_info): Delete it.
30111	(cse_and_gimplify_to_preheader): New function.
30112	* tree-vect-slp.c (vect_get_place_in_interleaving_chain): Export.
30113	* tree-vect-stmts.c (vectorizable_store): CSE base and steps.
30114	(vectorizable_load): Likewise.  For grouped stores always base
30115	the IV on the first element.
30116	* tree-vect-loop-manip.c (vect_loop_versioning): Unshare versioning
30117	condition before gimplifying.
30118
301192018-02-07  Jakub Jelinek  <jakub@redhat.com>
30120
30121	* tree-eh.c (operation_could_trap_helper_p): Ignore honor_trapv for
30122	*DIV_EXPR and *MOD_EXPR.
30123
301242018-02-07  H.J. Lu  <hongjiu.lu@intel.com>
30125
30126	PR target/84248
30127	* config/i386/i386.c (ix86_option_override_internal): Mask out
30128	the CF_SET bit when checking -fcf-protection.
30129
301302018-02-07  Tom de Vries  <tom@codesourcery.com>
30131
30132	PR libgomp/84217
30133	* omp-expand.c (expand_oacc_collapse_init): Ensure diff_type is large
30134	enough.
30135
301362018-02-07  Richard Biener  <rguenther@suse.de>
30137
30138	PR tree-optimization/84204
30139	* tree-chrec.c (chrec_fold_plus_1): Remove size limiting in
30140	this place.
30141
30142	PR tree-optimization/84205
30143	* graphite-isl-ast-to-gimple.c (binary_op_to_tree): Also
30144	special-case isl_ast_op_zdiv_r.
30145
30146	PR tree-optimization/84223
30147	* graphite-scop-detection.c (gather_bbs::before_dom_children):
30148	Only add conditions from within the region.
30149	(gather_bbs::after_dom_children): Adjust.
30150
301512018-02-07  Georg-Johann Lay  <avr@gjlay.de>
30152
30153	PR target/84209
30154	* config/avr/avr.h (GENERAL_REGNO_P, GENERAL_REG_P): New macros.
30155	* config/avr/avr.md: Only post-reload split REG-REG moves if
30156	either register is GENERAL_REG_P.
30157
301582018-02-07  Jakub Jelinek  <jakub@redhat.com>
30159
30160	PR tree-optimization/84235
30161	* tree-ssa-scopedtables.c
30162	(avail_exprs_stack::simplify_binary_operation): Fir MINUS_EXPR, punt
30163	if the subtraction is performed in floating point type where NaNs are
30164	honored.  For *DIV_EXPR, punt for ALL_FRACT_MODE_Ps where we can't
30165	build 1.  Formatting fix.
30166
301672018-02-06  Jakub Jelinek  <jakub@redhat.com>
30168
30169	PR target/84146
30170	* config/i386/i386.c (rest_of_insert_endbranch): Only skip
30171	NOTE_INSN_CALL_ARG_LOCATION after a call, not anything else,
30172	and skip it regardless of bb boundaries.  Use CALL_P macro,
30173	don't test INSN_P (insn) together with CALL_P or JUMP_P check
30174	unnecessarily, formatting fix.
30175
301762018-02-06  Michael Collison  <michael.collison@arm.com>
30177
30178	* config/arm/thumb2.md:
30179	(*thumb2_mov_negscc): Split only if TARGET_THUMB2 && !arm_restrict_it.
30180	(*thumb_mov_notscc): Ditto.
30181
301822018-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
30183
30184	PR target/84154
30185	* config/rs6000/rs6000.md (su code attribute): Use "u" for
30186	unsigned_fix, not "s".
30187
301882018-02-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30189
30190	* configure.ac (gcc_fn_eh_frame_ro): New function.
30191	(gcc_cv_as_cfi_directive): Check both 32 and 64-bit assembler for
30192	correct .eh_frame permissions.
30193	* configure: Regenerate.
30194
301952018-02-06  Andrew Jenner  <andrew@codeourcery.com>
30196
30197	* doc/invoke.texi: Add section for the PowerPC SPE backend. Remove
30198	irrelevant options.
30199
302002018-02-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30201
30202	* config/rs6000/rs6000.c (rs6000_option_override_internal):
30203	Display warning message for -mno-speculate-indirect-jumps.
30204
302052018-02-06  Andrew Jenner  <andrew@codesourcery.com>
30206
30207	* config/powerpcspe/powerpcspe.opt: (msimple-fpu, mfpu) Add
30208	Undocumented.
30209	* config/powerpcspe/sysv4.opt (mbit-align): Likewise.
30210
302112018-02-06  Aldy Hernandez  <aldyh@redhat.com>
30212
30213	PR tree-optimization/84225
30214	* tree-eh.c (find_trapping_overflow): Only call
30215	operation_no_trapping_overflow when ANY_INTEGRAL_TYPE_P.
30216
302172018-02-06  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
30218
30219	PR target/84145
30220	* config/i386/i386.c: Reimplement the check of possible options
30221	-mibt/-mshstk conbination. Change error messages.
30222	* doc/invoke.texi: Fix a typo: remove extra '='.
30223
302242018-02-06  Marek Polacek  <polacek@redhat.com>
30225
30226	PR tree-optimization/84228
30227	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Skip debug statements.
30228
302292018-02-06  Tamar Christina  <tamar.christina@arm.com>
30230
30231	PR target/82641
30232	* config/arm/arm.c (arm_print_asm_arch_directives): Record already
30233	emitted arch directives.
30234	* config/arm/arm-c.c (arm_cpu_builtins): Undefine __ARM_ARCH and
30235	__ARM_FEATURE_COPROC before changing architectures.
30236
302372018-02-06  Richard Biener  <rguenther@suse.de>
30238
30239	* config/i386/i386.c (print_reg): Fix typo.
30240	(ix86_loop_unroll_adjust): Do not unroll beyond the original nunroll.
30241
302422018-02-06  Eric Botcazou  <ebotcazou@adacore.com>
30243
30244	* configure: Regenerate.
30245
302462018-02-05  Martin Sebor  <msebor@redhat.com>
30247
30248	PR tree-optimization/83369
30249	* tree-ssa-ccp.c (pass_post_ipa_warn::execute): Use %G to print
30250	inlining context.
30251
302522018-02-05  Martin Liska  <mliska@suse.cz>
30253
30254	* doc/invoke.texi: Cherry-pick upstream r323995.
30255
302562018-02-05  Richard Sandiford  <richard.sandiford@linaro.org>
30257
30258	* ira.c (ira_init_register_move_cost): Adjust comment.
30259
302602018-02-05  Martin Liska  <mliska@suse.cz>
30261
30262	PR gcov-profile/84137
30263	* doc/gcov.texi: Fix typo in documentation.
30264
302652018-02-05  Martin Liska  <mliska@suse.cz>
30266
30267	PR gcov-profile/83879
30268	* doc/gcov.texi: Document necessity of --dynamic-list-data when
30269	using dlopen functionality.
30270
302712018-02-05  Olga Makhotina  <olga.makhotina@intel.com>
30272
30273	* config/i386/avx512dqintrin.h (_mm_mask_range_sd, _mm_maskz_range_sd,
30274	_mm_mask_range_round_sd, _mm_maskz_range_round_sd, _mm_mask_range_ss,
30275	_mm_maskz_range_ss, _mm_mask_range_round_ss,
30276	_mm_maskz_range_round_ss): New intrinsics.
30277	(__builtin_ia32_rangesd128_round)
30278	(__builtin_ia32_rangess128_round): Remove.
30279	(__builtin_ia32_rangesd128_mask_round,
30280	__builtin_ia32_rangess128_mask_round): New builtins.
30281	* config/i386/i386-builtin.def (__builtin_ia32_rangesd128_round,
30282	__builtin_ia32_rangess128_round): Remove.
30283	(__builtin_ia32_rangesd128_mask_round,
30284	__builtin_ia32_rangess128_mask_round): New builtins.
30285	* config/i386/sse.md (ranges<mode><round_saeonly_name>): Renamed to ...
30286	(ranges<mode><mask_scalar_name><round_saeonly_scalar_name>): ... this.
30287	((match_operand:VF_128 2 "<round_saeonly_nimm_predicate>"
30288	"<round_saeonly_constraint>")): Changed to ...
30289	((match_operand:VF_128 2 "<round_saeonly_scalar_nimm_predicate>"
30290	"<round_saeonly_scalar_constraint>")): ... this.
30291	("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
30292	%0, %1, %2<round_saeonly_op4>, %3}"): Changed to ...
30293	("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_scalar_mask_op4>%2,
30294	%1, %0<mask_scalar_operand4>|%0<mask_scalar_operand4>, %1,
30295	%2<round_saeonly_scalar_mask_op4>, %3}"): ... this.
30296
302972018-02-02  Andrew Jenner  <andrew@codesourcery.com>
30298
30299	* config/powerpcspe/powerpcspe.opt: Add Undocumented to irrelevant
30300	options.
30301	* config/powerpcspe/powerpcspe-tables.opt (rs6000_cpu_opt_value):
30302	Remove all values except native, 8540 and 8548.
30303
303042018-02-02  H.J. Lu  <hongjiu.lu@intel.com>
30305
30306	* config/i386/i386.c (ix86_output_function_return): Pass
30307	INVALID_REGNUM, instead of -1, as invalid register number to
30308	indirect_thunk_name and output_indirect_thunk.
30309
303102018-02-02  Julia Koval  <julia.koval@intel.com>
30311
30312	* config.gcc: Add -march=icelake.
30313	* config/i386/driver-i386.c (host_detect_local_cpu): Detect icelake.
30314	* config/i386/i386-c.c (ix86_target_macros_internal): Handle icelake.
30315	* config/i386/i386.c (processor_costs): Add m_ICELAKE.
30316	(PTA_ICELAKE, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES, PTA_AVX512VBMI2,
30317	PTA_VPCLMULQDQ, PTA_RDPID, PTA_AVX512BITALG): New.
30318	(processor_target_table): Add icelake.
30319	(ix86_option_override_internal): Handle new PTAs.
30320	(get_builtin_code_for_version): Handle icelake.
30321	(M_INTEL_COREI7_ICELAKE): New.
30322	(fold_builtin_cpu): Handle icelake.
30323	* config/i386/i386.h (TARGET_ICELAKE, PROCESSOR_ICELAKE): New.
30324	* doc/invoke.texi: Add -march=icelake.
30325
303262018-02-02  Julia Koval  <julia.koval@intel.com>
30327
30328	* config/i386/i386.c (ix86_option_override_internal): Change flags type
30329	to wide_int_bitmask.
30330	* wide-int-bitmask.h: New.
30331
303322018-02-02  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
30333
30334	PR target/84066
30335	* config/i386/i386.md: Replace Pmode with word_mode in
30336	builtin_setjmp_setup and builtin_longjmp to support x32.
30337
303382018-02-01  Peter Bergner  <bergner@vnet.ibm.com>
30339
30340	PR target/56010
30341	PR target/83743
30342	* config/rs6000/driver-rs6000.c: #include "diagnostic.h".
30343	#include "opts.h".
30344	(rs6000_supported_cpu_names): New static variable.
30345	(linux_cpu_translation_table): Likewise.
30346	(elf_platform) <cpu>: Define new static variable and use it.
30347	Translate kernel AT_PLATFORM name to canonical name if needed.
30348	Error if platform name is unknown.
30349
303502018-02-01  Aldy Hernandez  <aldyh@redhat.com>
30351
30352	PR target/84089
30353	* config/pa/predicates.md (base14_operand): Handle E_VOIDmode.
30354
303552018-02-01  Jeff Law  <law@redhat.com>
30356
30357	PR target/84128
30358	* config/i386/i386.c (release_scratch_register_on_entry): Add new
30359	OFFSET and RELEASE_VIA_POP arguments.  Use SP+OFFSET to restore
30360	the scratch if RELEASE_VIA_POP is false.
30361	(ix86_adjust_stack_and_probe_stack_clash): Un-constify SIZE.
30362	If we have to save a temporary register, decrement SIZE appropriately.
30363	Pass new arguments to release_scratch_register_on_entry.
30364	(ix86_adjust_stack_and_probe): Likewise.
30365	(ix86_emit_probe_stack_range): Pass new arguments to
30366	release_scratch_register_on_entry.
30367
303682018-02-01  Uros Bizjak  <ubizjak@gmail.com>
30369
30370	PR rtl-optimization/84157
30371	* combine.c (change_zero_ext): Use REG_P predicate in
30372	front of HARD_REGISTER_P predicate.
30373
303742018-02-01  Georg-Johann Lay  <avr@gjlay.de>
30375
30376	* config/avr/avr.c (avr_option_override): Move disabling of
30377	-fdelete-null-pointer-checks to...
30378	* common/config/avr/avr-common.c (avr_option_optimization_table):
30379	...here.
30380
303812018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
30382
30383	PR tree-optimization/81635
30384	* tree-data-ref.c (split_constant_offset_1): For types that
30385	wrap on overflow, try to use range info to prove that wrapping
30386	cannot occur.
30387
303882018-02-01  Renlin Li  <renlin.li@arm.com>
30389
30390	PR target/83370
30391	* config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
30392	TAILCALL_ADDR_REGS.
30393	(aarch64_register_move_cost): Likewise.
30394	* config/aarch64/aarch64.h (reg_class): Rename CALLER_SAVE_REGS to
30395	TAILCALL_ADDR_REGS.
30396	(REG_CLASS_NAMES): Likewise.
30397	(REG_CLASS_CONTENTS): Rename CALLER_SAVE_REGS to
30398	TAILCALL_ADDR_REGS. Remove IP registers.
30399	* config/aarch64/aarch64.md (Ucs): Update register constraint.
30400
304012018-02-01  Richard Biener  <rguenther@suse.de>
30402
30403	* domwalk.h (dom_walker::dom_walker): Add additional constructor
30404	for specifying RPO order and allow NULL for that.
30405	* domwalk.c (dom_walker::dom_walker): Likewise.
30406	(dom_walker::walk): Handle NULL RPO order.
30407	* tree-into-ssa.c (rewrite_dom_walker): Do not walk dom children
30408	in RPO order.
30409	(rewrite_update_dom_walker): Likewise.
30410	(mark_def_dom_walker): Likewise.
30411
304122018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
30413
30414	* config/aarch64/aarch64-protos.h (aarch64_split_sve_subreg_move)
30415	(aarch64_maybe_expand_sve_subreg_move): Declare.
30416	* config/aarch64/aarch64.md (UNSPEC_REV_SUBREG): New unspec.
30417	* config/aarch64/predicates.md (aarch64_any_register_operand): New
30418	predicate.
30419	* config/aarch64/aarch64-sve.md (mov<mode>): Optimize subreg moves
30420	that are semantically a reverse operation.
30421	(*aarch64_sve_mov<mode>_subreg_be): New pattern.
30422	* config/aarch64/aarch64.c (aarch64_maybe_expand_sve_subreg_move):
30423	(aarch64_replace_reg_mode, aarch64_split_sve_subreg_move): New
30424	functions.
30425	(aarch64_can_change_mode_class): For big-endian, forbid changes
30426	between two SVE modes if they have different element sizes.
30427
304282018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
30429
30430	* config/aarch64/aarch64.c (aarch64_expand_sve_const_vector): Prefer
30431	the TImode handling for big-endian targets.
30432
304332018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
30434
30435	* config/aarch64/aarch64-sve.md (sve_ld1rq): Replace with...
30436	(*sve_ld1rq<Vesize>): ... this new pattern.  Handle all element sizes,
30437	not just bytes.
30438	* config/aarch64/aarch64.c (aarch64_expand_sve_widened_duplicate):
30439	Remove BSWAP handing for big-endian targets and use the form of
30440	LD1RQ appropariate for the mode.
30441
304422018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
30443
30444	* config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Handle
30445	all CONST_VECTOR_DUPLICATE_P vectors, not just those with a single
30446	duplicated element.
30447
304482018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
30449
30450	PR tearget/83845
30451	* config/aarch64/aarch64.c (aarch64_secondary_reload): Tighten
30452	check for operands that need to go through aarch64_sve_reload_be.
30453
304542018-02-01  Jakub Jelinek  <jakub@redhat.com>
30455
30456	PR tree-optimization/81661
30457	PR tree-optimization/84117
30458	* tree-eh.h (rewrite_to_non_trapping_overflow): Declare.
30459	* tree-eh.c: Include gimplify.h.
30460	(find_trapping_overflow, replace_trapping_overflow,
30461	rewrite_to_non_trapping_overflow): New functions.
30462	* tree-vect-loop.c: Include tree-eh.h.
30463	(vect_get_loop_niters): Use rewrite_to_non_trapping_overflow.
30464	* tree-data-ref.c: Include tree-eh.h.
30465	(get_segment_min_max): Use rewrite_to_non_trapping_overflow.
30466
304672018-01-31  Uros Bizjak  <ubizjak@gmail.com>
30468
30469	PR rtl-optimization/84123
30470	* combine.c (change_zero_ext): Check if hard register satisfies
30471	can_change_dest_mode before calling gen_lowpart_SUBREG.
30472
304732018-01-31  Vladimir Makarov  <vmakarov@redhat.com>
30474
30475	PR target/82444
30476	* ira.c (ira_init_register_move_cost): Remove assert.
30477
304782018-01-31  Eric Botcazou  <ebotcazou@adacore.com>
30479
30480	PR rtl-optimization/84071
30481	* doc/tm.texi.in (WORD_REGISTER_OPERATIONS): Add explicit case.
30482	* doc/tm.texi: Regenerate.
30483
304842018-01-31  Richard Biener  <rguenther@suse.de>
30485
30486	PR tree-optimization/84132
30487	* tree-data-ref.c (analyze_miv_subscript): Properly
30488	check whether evolution_function_is_affine_multivariate_p
30489	before calling gcd_of_steps_may_divide_p.
30490
304912018-01-31  Julia Koval  <julia.koval@intel.com>
30492
30493	PR target/83618
30494	* config/i386/i386.c (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
30495	* config/i386/i386.md (rdpid_rex64) New.
30496	(rdpid): Make 32bit only.
30497
304982018-01-29  Aldy Hernandez  <aldyh@redhat.com>
30499
30500	PR lto/84105
30501	* tree-pretty-print.c (dump_generic_node): Handle a TYPE_NAME with
30502	an IDENTIFIER_NODE for FUNCTION_TYPE's.
30503
305042018-01-31  Eric Botcazou  <ebotcazou@adacore.com>
30505
30506	Revert
30507	2018-01-12  Eric Botcazou  <ebotcazou@adacore.com>
30508
30509	* config/sparc/sparc.md (vxworks_load_got): Set the GOT register.
30510
305112018-01-31  Eric Botcazou  <ebotcazou@adacore.com>
30512
30513	PR rtl-optimization/84071
30514	* combine.c (record_dead_and_set_regs_1): Record the source unmodified
30515	for a paradoxical SUBREG on a WORD_REGISTER_OPERATIONS target.
30516
305172018-01-31  Claudiu Zissulescu  <claziss@synopsys.com>
30518
30519	* config/arc/arc.c (arc_handle_aux_attribute): New function.
30520	(arc_attribute_table): Add 'aux' attribute.
30521	(arc_in_small_data_p): Consider aux like variables.
30522	(arc_is_aux_reg_p): New function.
30523	(arc_asm_output_aligned_decl_local): Ignore 'aux' like variables.
30524	(arc_get_aux_arg): New function.
30525	(prepare_move_operands): Handle aux-register access.
30526	(arc_handle_aux_attribute): New function.
30527	* doc/extend.texi (ARC Variable attributes): Add subsection.
30528
305292018-01-31  Claudiu Zissulescu  <claziss@synopsys.com>
30530
30531	* config/arc/arc-protos.h (arc_is_uncached_mem_p): Function proto.
30532	* config/arc/arc.c (arc_handle_uncached_attribute): New function.
30533	(arc_attribute_table): Add 'uncached' attribute.
30534	(arc_print_operand): Print '.di' flag for uncached memory
30535	accesses.
30536	(arc_in_small_data_p): Do not consider for small data the uncached
30537	types.
30538	(arc_is_uncached_mem_p): New function.
30539	* config/arc/predicates.md (compact_store_memory_operand): Check
30540	for uncached memory accesses.
30541	(nonvol_nonimm_operand): Likewise.
30542	* doc/extend.texi (ARC Type Attribute): New subsection.
30543
305442018-01-31  Jakub Jelinek  <jakub@redhat.com>
30545
30546	PR c/84100
30547	* common.opt (falign-functions=, falign-jumps=, falign-labels=,
30548	falign-loops=): Add Optimization flag.
30549
305502018-01-30  Jeff Law  <law@redhat.com>
30551
30552	PR target/84064
30553	* i386.c (ix86_adjust_stack_and_probe_stack_clash): New argument
30554	INT_REGISTERS_SAVED.  Check it prior to calling
30555	get_scratch_register_on_entry.
30556	(ix86_adjust_stack_and_probe): Similarly.
30557	(ix86_emit_probe_stack_range): Similarly.
30558	(ix86_expand_prologue): Corresponding changes.
30559
305602018-01-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30561
30562	PR target/40411
30563	* config/sol2.h (STARTFILE_ARCH_SPEC): Use -std=c*,
30564	-std=iso9899:199409 instead of -pedantic to select values-Xc.o.
30565
305662018-01-30  Vladimir Makarov  <vmakarov@redhat.com>
30567
30568	PR target/84112
30569	* lra-constraints.c (curr_insn_transform): Process AND in the
30570	address.
30571
305722018-01-30  Jakub Jelinek  <jakub@redhat.com>
30573
30574	PR rtl-optimization/83986
30575	* sched-deps.c (sched_analyze_insn): For frame related insns, add anti
30576	dependence against last_pending_memory_flush in addition to
30577	pending_jump_insns.
30578
305792018-01-30  Alexandre Oliva  <aoliva@redhat.com>
30580
30581	PR tree-optimization/81611
30582	* tree-ssa-dom.c (simple_iv_increment_p): Skip intervening
30583	copies.
30584
305852018-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
30586
30587	PR target/83758
30588	* config/rs6000/rs6000.c (rs6000_internal_arg_pointer): Only return
30589	a reg rtx.
30590
305912018-01-30  Richard Biener  <rguenther@suse.de>
30592	    Jakub Jelinek  <jakub@redhat.com>
30593
30594	PR tree-optimization/84111
30595	* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Skip
30596	inner loops added during recursion, as they don't have up-to-date
30597	SSA form.
30598
305992018-01-30  Jan Hubicka  <hubicka@ucw.cz>
30600
30601	PR ipa/81360
30602	* ipa-inline.c (can_inline_edge_p): Break out late tests to...
30603	(can_inline_edge_by_limits_p): ... here.
30604	(can_early_inline_edge_p, check_callers,
30605	update_caller_keys, update_callee_keys, recursive_inlining,
30606	add_new_edges_to_heap, speculation_useful_p,
30607	inline_small_functions,
30608	inline_small_functions, flatten_function,
30609	inline_to_all_callers_1): Update.
30610
306112018-01-30  Jan Hubicka  <hubicka@ucw.cz>
30612
30613	* profile-count.c (profile_count::combine_with_ipa_count): Handle
30614	zeros correctly.
30615
306162018-01-30  Richard Biener  <rguenther@suse.de>
30617
30618	PR tree-optimization/83008
30619	* tree-vect-slp.c (vect_analyze_slp_cost_1): Properly cost
30620	invariant and constant vector uses in stmts when they need
30621	more than one stmt.
30622
306232018-01-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30624
30625	PR bootstrap/84017
30626	* configure.ac (gcc_cv_as_shf_merge): Disable on Solaris 10/x86.
30627	* configure: Regenerate.
30628
306292018-01-30  Richard Sandiford  <richard.sandiford@linaro.org>
30630
30631	* config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_0): New
30632	pattern.
30633	(*vec_extract<mode><Vel>_v128): Require a nonzero lane number.
30634	Use gen_rtx_REG rather than gen_lowpart.
30635
306362018-01-30  Richard Sandiford  <richard.sandiford@linaro.org>
30637
30638	* lra-constraints.c (match_reload): Use subreg_lowpart_offset
30639	rather than 0 when creating partial subregs.
30640
306412018-01-30  Richard Sandiford  <richard.sandiford@linaro.org>
30642
30643	* vec-perm-indices.c (vec_perm_indices::series_p): Give examples
30644	of usage.
30645
306462018-01-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
30647
30648	PR target/81550
30649	* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): If DFmode
30650	and SFmode can go in Altivec registers (-mcpu=power7 for DFmode,
30651	-mcpu=power8 for SFmode) don't set the PRE_INCDEC or PRE_MODIFY
30652	flags.  This restores the settings used before the 2017-07-24.
30653	Turning off pre increment/decrement/modify allows IVOPTS to
30654	optimize DF/SF loops where the index is an int.
30655
306562018-01-29  Richard Biener  <rguenther@suse.de>
30657	    Kelvin Nilsen  <kelvin@gcc.gnu.org>
30658
30659	PR bootstrap/80867
30660	* tree-vect-stmts.c (vectorizable_call): Don't call
30661	targetm.vectorize_builtin_md_vectorized_function if callee is
30662	NULL.
30663
306642018-01-22  Carl Love  <cel@us.ibm.com>
30665
30666	* doc/extend.tex: Fix typo in second arg in
30667	__builtin_bcdadd_{lt|eq|gt|ov} and __builtin_bcdsub_{lt|eq|gt|ov}.
30668
306692018-01-29  Richard Biener  <rguenther@suse.de>
30670
30671	PR tree-optimization/84086
30672	* tree-ssanames.c: Include cfgloop.h and tree-scalar-evolution.h.
30673	(flush_ssaname_freelist): When SSA names were released reset
30674	the SCEV hash table.
30675
306762018-01-29  Richard Biener  <rguenther@suse.de>
30677
30678	PR tree-optimization/84057
30679	* tree-ssa-loop-ivcanon.c (unloop_loops): Deal with already
30680	removed paths when removing edges.
30681
306822018-01-27  H.J. Lu  <hongjiu.lu@intel.com>
30683
30684	* doc/invoke.texi: Replace -mfunction-return==@var{choice} with
30685	-mfunction-return=@var{choice}.
30686
306872018-01-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30688
30689	PR diagnostic/84034
30690	* diagnostic-show-locus.c (get_line_width_without_trailing_whitespace):
30691	Handle CR like TAB.
30692	(layout::print_source_line): Likewise.
30693	(test_get_line_width_without_trailing_whitespace): Add test cases.
30694
306952018-01-27  Jakub Jelinek  <jakub@redhat.com>
30696
30697	PR middle-end/84040
30698	* sched-deps.c (sched_macro_fuse_insns): Return immediately for
30699	debug insns.
30700
307012018-01-26  Jim Wilson  <jimw@sifive.com>
30702
30703	* config/riscv/riscv.h (MAX_FIXED_MODE_SIZE): New.
30704
30705	* config/riscv/elf.h (LIB_SPEC): Don't include -lgloss when nosys.specs
30706	specified.
30707
307082018-01-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30709
30710	* config/aarch64/aarch64.md: Add peepholes for CMP + SUB -> SUBS
30711	and CMP + SUB-immediate -> SUBS.
30712
307132018-01-26  Martin Sebor  <msebor@redhat.com>
30714
30715	PR tree-optimization/83896
30716	* tree-ssa-strlen.c (get_string_len): Rename...
30717	(get_string_cst_length): ...to this.  Return HOST_WIDE_INT.
30718	Avoid assuming length is constant.
30719	(handle_char_store): Use HOST_WIDE_INT for string length.
30720
307212018-01-26  Uros Bizjak  <ubizjak@gmail.com>
30722
30723	PR target/81763
30724	* config/i386/i386.md (*andndi3_doubleword): Add earlyclobber
30725	to (=&r,r,rm) alternative. Add (=r,0,rm) and (=r,r,0) alternatives.
30726
307272018-01-26  Richard Biener  <rguenther@suse.de>
30728
30729	PR rtl-optimization/84003
30730	* dse.c (record_store): Only record redundant stores when
30731	the earlier store aliases at least all accesses the later one does.
30732
307332018-01-26  Jakub Jelinek  <jakub@redhat.com>
30734
30735	PR rtl-optimization/83985
30736	* dce.c (deletable_insn_p): Return false for separate shrink wrapping
30737	REG_CFA_RESTORE insns.
30738	(delete_unmarked_insns): Don't ignore separate shrink wrapping
30739	REG_CFA_RESTORE insns here.
30740
30741	PR c/83989
30742	* gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Don't
30743	use SSA_NAME_VAR as base for SSA_NAMEs with non-NULL SSA_NAME_VAR.
30744
307452018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
30746
30747	* config/arc/arc-arch.h (arc_tune_attr): Add ARC_TUNE_CORE_3.
30748	* config/arc/arc.c (arc_sched_issue_rate): Use ARC_TUNE_... .
30749	(arc_init): Likewise.
30750	(arc_override_options): Likewise.
30751	(arc_file_start): Choose Tag_ARC_CPU_variation based on arc_tune
30752	value.
30753	(hwloop_fail): Use TARGET_DBNZ when we want to check for dbnz insn
30754	support.
30755	* config/arc/arc.h (TARGET_DBNZ): Define.
30756	* config/arc/arc.md (attr tune): Add core_3, use ARC_TUNE_... to
30757	properly set the tune attribute.
30758	(dbnz): Use TARGET_DBNZ guard.
30759	* config/arc/arc.opt (mtune): Add core3 option.
30760
307612018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
30762
30763	* config/arc/arc.c (arc_delegitimize_address_0): Refactored to
30764	recognize new pic like addresses.
30765	(arc_delegitimize_address): Clean up.
30766
307672018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
30768
30769	* config/arc/arc-arches.def: Option mrf16 valid for all
30770	architectures.
30771	* config/arc/arc-c.def (__ARC_RF16__): New predefined macro.
30772	* config/arc/arc-cpus.def (em_mini): New cpu with rf16 on.
30773	* config/arc/arc-options.def (FL_RF16): Add mrf16 option.
30774	* config/arc/arc-tables.opt: Regenerate.
30775	* config/arc/arc.c (arc_conditional_register_usage): Handle
30776	reduced register file case.
30777	(arc_file_start): Set must have build attributes.
30778	* config/arc/arc.h (MAX_ARC_PARM_REGS): Conditional define using
30779	mrf16 option value.
30780	* config/arc/arc.opt (mrf16): Add new option.
30781	* config/arc/elf.h (ATTRIBUTE_PCS): Define.
30782	* config/arc/genmultilib.awk: Handle new mrf16 option.
30783	* config/arc/linux.h (ATTRIBUTE_PCS): Define.
30784	* config/arc/t-multilib: Regenerate.
30785	* doc/invoke.texi (ARC Options): Document mrf16 option.
30786
307872018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
30788
30789	* config/arc/arc-protos.h: Add arc_is_secure_call_p proto.
30790	* config/arc/arc.c (arc_handle_secure_attribute): New function.
30791	(arc_attribute_table): Add 'secure_call' attribute.
30792	(arc_print_operand): Print secure call operand.
30793	(arc_function_ok_for_sibcall): Don't optimize tail calls when
30794	secure.
30795	(arc_is_secure_call_p): New function.  * config/arc/arc.md
30796	(call_i): Add support for sjli instruction.
30797	(call_value_i): Likewise.
30798	* config/arc/constraints.md (Csc): New constraint.
30799
308002018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
30801	    John Eric Martin  <John.Martin@emmicro-us.com>
30802
30803	* config/arc/arc-protos.h: Add arc_is_jli_call_p proto.
30804	* config/arc/arc.c (_arc_jli_section): New struct.
30805	(arc_jli_section): New type.
30806	(rc_jli_sections): New static variable.
30807	(arc_handle_jli_attribute): New function.
30808	(arc_attribute_table): Add jli_always and jli_fixed attribute.
30809	(arc_file_end): New function.
30810	(TARGET_ASM_FILE_END): Define.
30811	(arc_print_operand): Reuse 'S' letter for JLI output instruction.
30812	(arc_add_jli_section): New function.
30813	(jli_call_scan): Likewise.
30814	(arc_reorg): Call jli_call_scan.
30815	(arc_output_addsi): Remove 'S' from printing asm operand.
30816	(arc_is_jli_call_p): New function.
30817	* config/arc/arc.md (movqi_insn): Remove 'S' from printing asm
30818	operand.
30819	(movhi_insn): Likewise.
30820	(movsi_insn): Likewise.
30821	(movsi_set_cc_insn): Likewise.
30822	(loadqi_update): Likewise.
30823	(load_zeroextendqisi_update): Likewise.
30824	(load_signextendqisi_update): Likewise.
30825	(loadhi_update): Likewise.
30826	(load_zeroextendhisi_update): Likewise.
30827	(load_signextendhisi_update): Likewise.
30828	(loadsi_update): Likewise.
30829	(loadsf_update): Likewise.
30830	(movsicc_insn): Likewise.
30831	(bset_insn): Likewise.
30832	(bxor_insn): Likewise.
30833	(bclr_insn): Likewise.
30834	(bmsk_insn): Likewise.
30835	(bicsi3_insn): Likewise.
30836	(cmpsi_cc_c_insn): Likewise.
30837	(movsi_ne): Likewise.
30838	(movsi_cond_exec): Likewise.
30839	(clrsbsi2): Likewise.
30840	(norm_f): Likewise.
30841	(normw): Likewise.
30842	(swap): Likewise.
30843	(divaw): Likewise.
30844	(flag): Likewise.
30845	(sr): Likewise.
30846	(kflag): Likewise.
30847	(ffs): Likewise.
30848	(ffs_f): Likewise.
30849	(fls): Likewise.
30850	(call_i): Remove 'S' asm letter, add jli instruction.
30851	(call_value_i): Likewise.
30852	* config/arc/arc.op (mjli-always): New option.
30853	* config/arc/constraints.md (Cji): New constraint.
30854	* config/arc/fpx.md (addsf3_fpx): Remove 'S' from printing asm
30855	operand.
30856	(subsf3_fpx): Likewise.
30857	(mulsf3_fpx): Likewise.
30858	* config/arc/simdext.md (vendrec_insn): Remove 'S' from printing
30859	asm operand.
30860	* doc/extend.texi (ARC): Document 'jli-always' and 'jli-fixed'
30861	function attrbutes.
30862	* doc/invoke.texi (ARC): Document mjli-always option.
30863
308642018-01-26  Sebastian Perta  <sebastian.perta@renesas.com>
30865
30866	* config/rl78/rl78.c (rl78_addsi3_internal): If operand 2 is const
30867	avoid addition with 0 and use incw and decw where possible.
30868
308692018-01-26  Richard Biener  <rguenther@suse.de>
30870
30871	PR tree-optimization/81082
30872	* fold-const.c (fold_plusminus_mult_expr): Do not perform the
30873	association if it requires casting to unsigned.
30874	* match.pd ((A * C) +- (B * C) -> (A+-B)): New patterns derived
30875	from fold_plusminus_mult_expr to catch important cases late when
30876	range info is available.
30877
308782018-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30879
30880	* config/i386/sol2.h (USE_HIDDEN_LINKONCE): Remove.
30881	* configure.ac (hidden_linkonce): New test.
30882	* configure: Regenerate.
30883	* config.in: Regenerate.
30884
308852018-01-26  Julia Koval  <julia.koval@intel.com>
30886
30887	* config/i386/avx512bitalgintrin.h (_mm512_bitshuffle_epi64_mask,
30888	_mm512_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask,
30889	_mm256_mask_bitshuffle_epi64_mask, _mm_bitshuffle_epi64_mask,
30890	_mm_mask_bitshuffle_epi64_mask): Fix type.
30891	* config/i386/i386-builtin-types.def (UHI_FTYPE_V2DI_V2DI_UHI,
30892	USI_FTYPE_V4DI_V4DI_USI): Remove.
30893	* config/i386/i386-builtin.def (__builtin_ia32_vpshufbitqmb512_mask,
30894	__builtin_ia32_vpshufbitqmb256_mask,
30895	__builtin_ia32_vpshufbitqmb128_mask): Fix types.
30896	* config/i386/i386.c (ix86_expand_args_builtin): Remove old types.
30897	* config/i386/sse.md (VI1_AVX512VLBW): Change types.
30898
308992018-01-26  Alan Modra  <amodra@gmail.com>
30900
30901	PR target/84033
30902	* config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Exclude
30903	UNSPEC_VBPERMQ.  Sort other unspecs.
30904
309052018-01-25  David Edelsohn  <dje.gcc@gmail.com>
30906
30907	* doc/invoke.texi (PowerPC Options): Document 'native' cpu type.
30908
309092018-01-25  Jan Hubicka  <hubicka@ucw.cz>
30910
30911	PR middle-end/83055
30912	* predict.c (drop_profile): Do not push/pop cfun; update also
30913	node->count.
30914	(handle_missing_profiles): Fix logic looking for zero profiles.
30915
309162018-01-25  Jakub Jelinek  <jakub@redhat.com>
30917
30918	PR middle-end/83977
30919	* ipa-fnsummary.c (compute_fn_summary): Clear can_change_signature
30920	on functions with #pragma omp declare simd or functions with simd
30921	attribute.
30922	* omp-simd-clone.c (expand_simd_clones): Revert 2018-01-24 change.
30923	* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
30924	Remove trailing \n from warning_at calls.
30925
309262018-01-25  Tom de Vries  <tom@codesourcery.com>
30927
30928	PR target/84028
30929	* config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call
30930	for neutered workers.
30931
309322018-01-24  Joseph Myers  <joseph@codesourcery.com>
30933
30934	PR target/68467
30935	* config/m68k/m68k.c (m68k_promote_function_mode): New function.
30936	(TARGET_PROMOTE_FUNCTION_MODE): New macro.
30937
309382018-01-24  Jeff Law  <law@redhat.com>
30939
30940	PR target/83994
30941	* i386.c (get_probe_interval): Move to earlier point.
30942	(ix86_compute_frame_layout): If -fstack-clash-protection and
30943	the frame is larger than the probe interval, then use pushes
30944	to save registers rather than reg->mem moves.
30945	(ix86_expand_prologue): Remove conditional for int_registers_saved
30946	assertion.
30947
309482018-01-24  Vladimir Makarov  <vmakarov@redhat.com>
30949
30950	PR target/84014
30951	* ira-build.c (setup_min_max_allocno_live_range_point): Set up
30952	min/max for never referenced object.
30953
309542018-01-24  Jakub Jelinek  <jakub@redhat.com>
30955
30956	PR middle-end/83977
30957	* tree.c (free_lang_data_in_decl): Don't clear DECL_ABSTRACT_ORIGIN
30958	here.
30959	* omp-low.c (create_omp_child_function): Remove "omp declare simd"
30960	attributes from DECL_ATTRIBUTES (decl) without affecting
30961	DECL_ATTRIBUTES (current_function_decl).
30962	* omp-simd-clone.c (expand_simd_clones): Ignore DECL_ARTIFICIAL
30963	functions with non-NULL DECL_ABSTRACT_ORIGIN.
30964
309652018-01-24  Richard Sandiford  <richard.sandiford@linaro.org>
30966
30967	PR tree-optimization/83979
30968	* fold-const.c (fold_comparison): Use constant_boolean_node
30969	instead of boolean_{true,false}_node.
30970
309712018-01-24  Jan Hubicka  <hubicka@ucw.cz>
30972
30973	* ipa-profile.c (ipa_propagate_frequency_1): Fix logic skipping calls
30974	with zero counts.
30975
309762018-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30977
30978	* config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
30979	Simplify the clause that sets the length attribute.
30980	(*call_value_indirect_nonlocal_sysv<mode>): Likewise.
30981	(*sibcall_nonlocal_sysv<mode>): Clean up code block; simplify the
30982	clause that sets the length attribute.
30983	(*sibcall_value_nonlocal_sysv<mode>): Likewise.
30984
309852018-01-24  Tom de Vries  <tom@codesourcery.com>
30986
30987	PR target/83589
30988	* config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_2): Define to 1.
30989	(nvptx_pc_set, nvptx_condjump_label): New function. Copy from jump.c.
30990	Add strict parameter.
30991	(prevent_branch_around_nothing): Insert dummy insn between branch to
30992	label and label with no ptx insn inbetween.
30993	* config/nvptx/nvptx.md (define_insn "fake_nop"): New insn.
30994
309952018-01-24  Tom de Vries  <tom@codesourcery.com>
30996
30997	PR target/81352
30998	* config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call
30999	for neutered threads in warp.
31000	* config/nvptx/nvptx.md (define_insn "exit"): New insn.
31001
310022018-01-24  Richard Biener  <rguenther@suse.de>
31003
31004	PR tree-optimization/83176
31005	* tree-chrec.c (chrec_fold_plus_1): Handle (signed T){(T) .. }
31006	operands.
31007
310082018-01-24  Richard Biener  <rguenther@suse.de>
31009
31010	PR tree-optimization/82819
31011	* graphite-isl-ast-to-gimple.c (binary_op_to_tree): Avoid
31012	code generating pluses that are no-ops in the target precision.
31013
310142018-01-24  Richard Biener  <rguenther@suse.de>
31015
31016	PR middle-end/84000
31017	* tree-cfg.c (replace_loop_annotate): Handle annot_expr_parallel_kind.
31018
310192018-01-23  Jan Hubicka  <hubicka@ucw.cz>
31020
31021	* cfgcleanup.c (try_crossjump_to_edge): Use combine_with_count
31022	to merge probabilities.
31023	* predict.c (probably_never_executed): Also mark as cold functions
31024	with global 0 profile and guessed local profile.
31025	* profile-count.c (profile_probability::combine_with_count): New
31026	member function.
31027	* profile-count.h (profile_probability::operator*,
31028	profile_probability::operator*=, profile_probability::operator/,
31029	profile_probability::operator/=): Reduce precision to adjusted
31030	and set value to guessed on contradictory divisions.
31031	(profile_probability::combine_with_freq): Remove.
31032	(profile_probability::combine_wiht_count): Declare.
31033	(profile_count::force_nonzero):: Set to adjusted.
31034	(profile_count::probability_in):: Set quality to adjusted.
31035	* tree-ssa-tail-merge.c (replace_block_by): Use
31036	combine_with_count.
31037
310382018-01-23  Andrew Waterman  <andrew@sifive.com>
31039	    Jim Wilson  <jimw@sifive.com>
31040
31041	* config/riscv/riscv.c (riscv_stack_boundary): New.
31042	(riscv_option_override): Set riscv_stack_boundary.  Handle
31043	riscv_preferred_stack_boundary_arg.
31044	* config/riscv/riscv.h (MIN_STACK_BOUNDARY, ABI_STACK_BOUNDARY): New.
31045	(BIGGEST_ALIGNMENT): Set to STACK_BOUNDARY.
31046	(STACK_BOUNDARY): Set to riscv_stack_boundary.
31047	(RISCV_STACK_ALIGN): Use STACK_BOUNDARY.
31048	* config/riscv/riscv.opt (mpreferred-stack-boundary): New.
31049	* doc/invoke.tex (RISC-V Options): Add -mpreferred-stack-boundary.
31050
310512018-01-23  H.J. Lu  <hongjiu.lu@intel.com>
31052
31053	PR target/83905
31054	* config/i386/i386.c (ix86_expand_prologue): Use cost reference
31055	of struct ix86_frame.
31056	(ix86_expand_epilogue): Likewise.  Add a local variable for
31057	the reg_save_offset field in struct ix86_frame.
31058
310592018-01-23  Bin Cheng  <bin.cheng@arm.com>
31060
31061	PR tree-optimization/82604
31062	* tree-loop-distribution.c (enum partition_kind): New enum item
31063	PKIND_PARTIAL_MEMSET.
31064	(partition_builtin_p): Support above new enum item.
31065	(generate_code_for_partition): Ditto.
31066	(compute_access_range): Differentiate cases that equality can be
31067	proven at all loops, the innermost loops or no loops.
31068	(classify_builtin_st, classify_builtin_ldst): Adjust call to above
31069	function.  Set PKIND_PARTIAL_MEMSET for partition appropriately.
31070	(finalize_partitions, distribute_loop): Don't fuse partition of
31071	PKIND_PARTIAL_MEMSET kind when distributing 3-level loop nest.
31072	(prepare_perfect_loop_nest): Distribute 3-level loop nest only if
31073	parloop is enabled.
31074
310752018-01-23  Martin Liska  <mliska@suse.cz>
31076
31077	* predict.def (PRED_INDIR_CALL): Set probability to PROB_EVEN in
31078	order to ignore the predictor.
31079	(PRED_POLYMORPHIC_CALL): Likewise.
31080	(PRED_RECURSIVE_CALL): Likewise.
31081
310822018-01-23  Martin Liska  <mliska@suse.cz>
31083
31084	* tree-profile.c (tree_profiling): Print function header to
31085	aware reader which function we are working on.
31086	* value-prof.c (gimple_find_values_to_profile): Do not print
31087	not interesting value histograms.
31088
310892018-01-23  Martin Liska  <mliska@suse.cz>
31090
31091	* profile-count.h (enum profile_quality): Add
31092	profile_uninitialized as the first value. Do not number values
31093	as they are zero based.
31094	(profile_count::verify): Update sanity check.
31095	(profile_probability::verify): Likewise.
31096
310972018-01-23  Nathan Sidwell  <nathan@acm.org>
31098
31099	* doc/invoke.texi (ffor-scope): Deprecate.
31100
311012018-01-23  David Malcolm  <dmalcolm@redhat.com>
31102
31103	PR tree-optimization/83510
31104	* domwalk.c (set_all_edges_as_executable): New function.
31105	(dom_walker::dom_walker): Convert bool param
31106	"skip_unreachable_blocks" to enum reachability.  Move setup of
31107	edge flags to set_all_edges_as_executable and only do it when
31108	reachability is REACHABLE_BLOCKS.
31109	* domwalk.h (enum dom_walker::reachability): New enum.
31110	(dom_walker::dom_walker): Convert bool param
31111	"skip_unreachable_blocks" to enum reachability.
31112	(set_all_edges_as_executable): New decl.
31113	* graphite-scop-detection.c  (gather_bbs::gather_bbs): Convert
31114	from false for "skip_unreachable_blocks" to ALL_BLOCKS for
31115	"reachability".
31116	* tree-ssa-dom.c (dom_opt_dom_walker::dom_opt_dom_walker): Likewise,
31117	but converting true to REACHABLE_BLOCKS.
31118	* tree-ssa-sccvn.c (sccvn_dom_walker::sccvn_dom_walker): Likewise.
31119	* tree-vrp.c
31120	(check_array_bounds_dom_walker::check_array_bounds_dom_walker):
31121	Likewise, but converting it to REACHABLE_BLOCKS_PRESERVING_FLAGS.
31122	(vrp_dom_walker::vrp_dom_walker): Likewise, but converting it to
31123	REACHABLE_BLOCKS.
31124	(vrp_prop::vrp_finalize): Call set_all_edges_as_executable
31125	if check_all_array_refs will be called.
31126
311272018-01-23  David Malcolm  <dmalcolm@redhat.com>
31128
31129	* tree.c (selftest::test_location_wrappers): Add more test
31130	coverage.
31131
311322018-01-23  David Malcolm  <dmalcolm@redhat.com>
31133
31134	* sbitmap.c (selftest::test_set_range): Fix memory leaks.
31135	(selftest::test_bit_in_range): Likewise.
31136
311372018-01-23  Richard Sandiford  <richard.sandiford@linaro.org>
31138
31139	PR testsuite/83888
31140	* doc/sourcebuild.texi (vect_float): Say that the selector
31141	only describes the situation when -funsafe-math-optimizations is on.
31142	(vect_float_strict): Document.
31143
311442018-01-23  Richard Sandiford  <richard.sandiford@linaro.org>
31145
31146	PR tree-optimization/83965
31147	* tree-vect-patterns.c (vect_reassociating_reduction_p): New function.
31148	(vect_recog_dot_prod_pattern, vect_recog_sad_pattern): Use it
31149	instead of checking only for a reduction.
31150	(vect_recog_widen_sum_pattern): Likewise.
31151
311522018-01-23  Jan Hubicka  <hubicka@ucw.cz>
31153
31154	* predict.c (probably_never_executed): Only use precise profile info.
31155	(compute_function_frequency): Skip after inlining hack since we now
31156	have quality checking.
31157
311582018-01-23  Jan Hubicka  <hubicka@ucw.cz>
31159
31160	* profile-count.h (profile_probability::very_unlikely,
31161	profile_probability::unlikely, profile_probability::even): Set
31162	precision to guessed.
31163
311642018-01-23  Richard Biener  <rguenther@suse.de>
31165
31166	PR tree-optimization/83963
31167	* graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
31168	Properly terminate dominator walk when crossing the exit edge not
31169	when visiting its source block.
31170
311712018-01-23  Jakub Jelinek  <jakub@redhat.com>
31172
31173	PR c++/83918
31174	* tree.c (maybe_wrap_with_location): Use NON_LVALUE_EXPR rather than
31175	VIEW_CONVERT_EXPR to wrap CONST_DECLs.
31176
311772018-01-22  Jakub Jelinek  <jakub@redhat.com>
31178
31179	PR tree-optimization/83957
31180	* omp-expand.c (expand_omp_for_generic): Ignore virtual PHIs.  Remove
31181	semicolon after for body surrounded by braces.
31182
31183	PR tree-optimization/83081
31184	* profile-count.h (profile_probability::split): New method.
31185	* dojump.c (do_jump_1) <case TRUTH_ANDIF_EXPR, case TRUTH_ORIF_EXPR>:
31186	Use profile_probability::split.
31187	(do_compare_rtx_and_jump): Fix adjustment of probabilities
31188	when splitting a single conditional jump into 2.
31189
311902018-01-22  David Malcolm  <dmalcolm@redhat.com>
31191
31192	PR tree-optimization/69452
31193	* tree-ssa-loop-im.c (class move_computations_dom_walker): Remove
31194	decl.
31195
311962018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
31197
31198	* config/rl78/rl78-expand.md (bswaphi2): New define_expand.
31199	* config/rl78/rl78-virt.md (*bswaphi2_virt): New define_insn.
31200	* config/rl78/rl78-real.md (*bswaphi2_real): New define_insn.
31201
312022018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
31203
31204	* config/rl78/rl78-protos.h (rl78_split_movdi): New function
31205	declaration.
31206	* config/rl78/rl78.md (movdi): New define_expand.
31207	* config/rl78/rl78.c (rl78_split_movdi): New function.
31208
312092018-01-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
31210
31211	PR target/83862
31212	* config/rs6000/rs6000-protos.h (rs6000_split_signbit): Delete,
31213	no longer used.
31214	* config/rs6000/rs6000.c (rs6000_split_signbit): Likewise.
31215	* config/rs6000/rs6000.md (signbit<mode>2): Change code for IEEE
31216	128-bit to produce an UNSPEC move to get the double word with the
31217	signbit and then a shift directly to do signbit.
31218	(signbit<mode>2_dm): Replace old IEEE 128-bit signbit
31219	implementation with a new version that just does either a direct
31220	move or a regular move.  Move memory interface to separate insns.
31221	Move insns so they are next to the expander.
31222	(signbit<mode>2_dm_mem_be): New combiner insns to combine load
31223	with signbit move.  Split big and little endian case.
31224	(signbit<mode>2_dm_mem_le): Likewise.
31225	(signbit<mode>2_dm_<su>ext): Delete, no longer used.
31226	(signbit<mode>2_dm2): Likewise.
31227
312282018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
31229
31230	* config/rl78/rl78.md (anddi3): New define_expand.
31231
312322018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
31233
31234	* config/rl78/rl78.md (umindi3): New define_expand.
31235
312362018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
31237
31238	* config/rl78/rl78.md (smindi3): New define_expand.
31239
312402018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
31241
31242	* config/rl78/rl78.md (smaxdi3): New define_expand.
31243
312442018-01-22  Carl Love  <cel@us.ibm.com>
31245
31246	* config/rs6000/rs6000-builtin.def (ST_ELEMREV_V1TI, LD_ELEMREV_V1TI,
31247	LVX_V1TI): Add macro expansion.
31248	* config/rs6000/rs6000-c.c (altivec_builtin_types): Add argument
31249	definitions for VSX_BUILTIN_VEC_XST_BE, VSX_BUILTIN_VEC_ST,
31250	VSX_BUILTIN_VEC_XL, LD_ELEMREV_V1TI builtins.
31251	* config/rs6000/rs6000-p8swap.c (insn_is_swappable_p);
31252	Change check to determine if the instruction is a byte reversing
31253	entry.  Fix typo in comment.
31254	* config/rs6000/rs6000.c (altivec_expand_builtin): Add case entry
31255	for VSX_BUILTIN_ST_ELEMREV_V1TI and VSX_BUILTIN_LD_ELEMREV_V1TI.
31256	Add def_builtin calls for new builtins.
31257	* config/rs6000/vsx.md (vsx_st_elemrev_v1ti, vsx_ld_elemrev_v1ti):
31258	Add define_insn expansion.
31259
312602018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
31261
31262	* config/rl78/rl78.md (umaxdi3): New define_expand.
31263
312642018-01-22  Sebastian Perta  <sebastian.perta@renesas.com>
31265
31266	* config/rl78/rl78.c (rl78_note_reg_set): Fixed dead reg check
31267	for non-QImode registers.
31268
312692018-01-22  Richard Biener  <rguenther@suse.de>
31270
31271	PR tree-optimization/83963
31272	* graphite-scop-detection.c (scop_detection::get_sese): Delay
31273	including the loop exit block.
31274	(scop_detection::merge_sese): Likewise.
31275	(scop_detection::add_scop): Do it here instead.
31276
312772018-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31278
31279	* doc/sourcebuild.texi (arm_softfloat): Document.
31280
312812018-01-21  John David Anglin  <danglin@gcc.gnu.org>
31282
31283	PR gcc/77734
31284	* config/pa/pa.c (pa_function_ok_for_sibcall): Use
31285	targetm.binds_local_p instead of TREE_PUBLIC to check local binding.
31286	Move TARGET_PORTABLE_RUNTIME check after TARGET_64BIT check.
31287
312882018-01-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31289	    David Edelsohn  <dje.gcc@gmail.com>
31290
31291	PR target/83946
31292	* config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
31293	Change "crset eq" to "crset 2".
31294	(*call_value_indirect_nonlocal_sysv<mode>): Likewise.
31295	(*call_indirect_aix<mode>_nospec): Likewise.
31296	(*call_value_indirect_aix<mode>_nospec): Likewise.
31297	(*call_indirect_elfv2<mode>_nospec): Likewise.
31298	(*call_value_indirect_elfv2<mode>_nospec): Likewise.
31299	(*sibcall_nonlocal_sysv<mode>): Change "crset eq" to "crset 2";
31300	change assembly output from . to $.
31301	(*sibcall_value_nonlocal_sysv<mode>): Likewise.
31302	(indirect_jump<mode>_nospec): Change assembly output from . to $.
31303	(*tablejump<mode>_internal1_nospec): Likewise.
31304
313052018-01-21  Oleg Endo  <olegendo@gcc.gnu.org>
31306
31307	PR target/80870
31308	* config/sh/sh_optimize_sett_clrt.cc:
31309	Use INCLUDE_ALGORITHM and INCLUDE_VECTOR instead of direct includes.
31310
313112018-01-20  Richard Sandiford  <richard.sandiford@linaro.org>
31312
31313	PR tree-optimization/83940
31314	* tree-vect-stmts.c (vect_truncate_gather_scatter_offset): Set
31315	offset_dt to vect_constant_def rather than vect_unknown_def_type.
31316	(vect_check_load_store_mask): Add a mask_dt_out parameter and
31317	use it to pass back the definition type.
31318	(vect_check_store_rhs): Likewise rhs_dt_out.
31319	(vect_build_gather_load_calls): Add a mask_dt argument and use
31320	it instead of a call to vect_is_simple_use.
31321	(vectorizable_store): Update calls to vect_check_load_store_mask
31322	and vect_check_store_rhs.  Use the dt returned by the latter instead
31323	of scatter_src_dt.  Use the cached mask_dt and gs_info.offset_dt
31324	instead of calls to vect_is_simple_use.  Pass the scalar rather
31325	than the vector operand to vect_is_simple_use when handling
31326	second and subsequent copies of an rhs value.
31327	(vectorizable_load): Update calls to vect_check_load_store_mask
31328	and vect_build_gather_load_calls.  Use the cached mask_dt and
31329	gs_info.offset_dt instead of calls to vect_is_simple_use.
31330
313312018-01-20  Jakub Jelinek  <jakub@redhat.com>
31332
31333	PR middle-end/83945
31334	* tree-emutls.c: Include gimplify.h.
31335	(lower_emutls_2): New function.
31336	(lower_emutls_1): If ADDR_EXPR is a gimple invariant and walk_tree
31337	with lower_emutls_2 callback finds some TLS decl in it, unshare_expr
31338	it before further processing.
31339
31340	PR target/83930
31341	* simplify-rtx.c (simplify_binary_operation_1) <case UMOD>: Use
31342	UINTVAL (trueop1) instead of INTVAL (op1).
31343
313442018-01-19  Jakub Jelinek  <jakub@redhat.com>
31345
31346	PR debug/81570
31347	PR debug/83728
31348	* dwarf2cfi.c (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define to
31349	INCOMING_FRAME_SP_OFFSET if not defined.
31350	(scan_trace): Add ENTRY argument.  If true and
31351	DEFAULT_INCOMING_FRAME_SP_OFFSET != INCOMING_FRAME_SP_OFFSET,
31352	emit a note to adjust the CFA offset.
31353	(create_cfi_notes): Adjust scan_trace callers.
31354	(create_cie_data): Use DEFAULT_INCOMING_FRAME_SP_OFFSET rather than
31355	INCOMING_FRAME_SP_OFFSET in the CIE.
31356	* config/i386/i386.h (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define.
31357	* config/stormy16/stormy16.h (DEFAULT_INCOMING_FRAME_SP_OFFSET):
31358	Likewise.
31359	* doc/tm.texi.in (DEFAULT_INCOMING_FRAME_SP_OFFSET): Document.
31360	* doc/tm.texi: Regenerated.
31361
313622018-01-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
31363
31364	PR rtl-optimization/83147
31365	* lra-constraints.c (remove_inheritance_pseudos): Use
31366	lra_substitute_pseudo_within_insn.
31367
313682018-01-19  Tom de Vries  <tom@codesourcery.com>
31369	    Cesar Philippidis  <cesar@codesourcery.com>
31370
31371	PR target/83920
31372	* config/nvptx/nvptx.c (nvptx_single): Fix jit workaround.
31373
313742018-01-19  Cesar Philippidis  <cesar@codesourcery.com>
31375
31376	PR target/83790
31377	* config/nvptx/nvptx.c (output_init_frag): Don't use generic address
31378	spaces for function labels.
31379
313802018-01-19  Martin Liska  <mliska@suse.cz>
31381
31382	* predict.def (PRED_LOOP_EXIT): Change from 85 to 89.
31383	(PRED_LOOP_EXIT_WITH_RECURSION): Change from 72 to 78.
31384	(PRED_LOOP_EXTRA_EXIT): Change from 83 to 67.
31385	(PRED_OPCODE_POSITIVE): Change from 64 to 59.
31386	(PRED_TREE_OPCODE_POSITIVE): Change from 64 to 59.
31387	(PRED_CONST_RETURN): Change from 69 to 65.
31388	(PRED_NULL_RETURN): Change from 91 to 71.
31389	(PRED_LOOP_IV_COMPARE_GUESS): Change from 98 to 64.
31390	(PRED_LOOP_GUARD): Change from 66 to 73.
31391
313922018-01-19  Martin Liska  <mliska@suse.cz>
31393
31394	* predict.c (predict_insn_def): Add new assert.
31395	(struct branch_predictor): Change type to signed integer.
31396	(test_prediction_value_range): Amend test to cover
31397	PROB_UNINITIALIZED.
31398	* predict.def (PRED_LOOP_ITERATIONS): Use the new constant.
31399	(PRED_LOOP_ITERATIONS_GUESSED): Likewise.
31400	(PRED_LOOP_ITERATIONS_MAX): Likewise.
31401	(PRED_LOOP_IV_COMPARE): Likewise.
31402	* predict.h (PROB_UNINITIALIZED): Define new constant.
31403
314042018-01-19  Martin Liska  <mliska@suse.cz>
31405
31406	* predict.c (dump_prediction): Add new format for
31407	analyze_brprob.py script which is enabled with -details
31408	suboption.
31409	* profile-count.h (precise_p): New function.
31410
314112018-01-19  Richard Sandiford  <richard.sandiford@linaro.org>
31412
31413	PR tree-optimization/83922
31414	* tree-vect-loop.c (vect_verify_full_masking): Return false if
31415	there are no statements that need masking.
31416	(vect_active_double_reduction_p): New function.
31417	(vect_analyze_loop_operations): Use it when handling phis that
31418	are not in the loop header.
31419
314202018-01-19  Richard Sandiford  <richard.sandiford@linaro.org>
31421
31422	PR tree-optimization/83914
31423	* tree-vect-loop.c (vectorizable_induction): Don't convert
31424	init_expr or apply the peeling adjustment for inductions
31425	that are nested within the vectorized loop.
31426
314272018-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31428
31429	* config/arm/thumb2.md (*thumb2_negsi2_short): Use RSB mnemonic
31430	instead of NEG.
31431
314322018-01-18  Jakub Jelinek  <jakub@redhat.com>
31433
31434	PR sanitizer/81715
31435	PR testsuite/83882
31436	* function.h (gimplify_parameters): Add gimple_seq * argument.
31437	* function.c: Include gimple.h and options.h.
31438	(gimplify_parameters): Add cleanup argument, add CLOBBER stmts
31439	for the added local temporaries if needed.
31440	* gimplify.c (gimplify_body): Adjust gimplify_parameters caller,
31441	if there are any parameter cleanups, wrap whole body into a
31442	try/finally with the cleanups.
31443
314442018-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
31445
31446	PR target/82964
31447	* config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
31448	Use GET_MODE_CLASS for scalar floating point.
31449
314502018-01-18  Jan Hubicka  <hubicka@ucw.cz>
31451
31452	PR ipa/82256
31453	patch by PaX Team
31454	* cgraphclones.c (cgraph_node::create_version_clone_with_body):
31455	Fix call of call_cgraph_insertion_hooks.
31456
314572018-01-18  Martin Sebor  <msebor@redhat.com>
31458
31459	* doc/invoke.texi (-Wclass-memaccess): Tweak text.
31460
314612018-01-18  Jan Hubicka  <hubicka@ucw.cz>
31462
31463	PR ipa/83619
31464	* cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Update edge
31465	frequencies.
31466
314672018-01-18  Boris Kolpackov  <boris@codesynthesis.com>
31468
31469	PR other/70268
31470	* common.opt: (-ffile-prefix-map): New option.
31471	* opts.c (common_handle_option): Defer it.
31472	* opts-global.c (handle_common_deferred_options): Handle it.
31473	* debug.h (remap_debug_filename, add_debug_prefix_map): Move to...
31474	* file-prefix-map.h: New file.
31475	(remap_debug_filename, add_debug_prefix_map): ...here.
31476	(add_macro_prefix_map, add_file_prefix_map, remap_macro_filename): New.
31477	* final.c (debug_prefix_map, add_debug_prefix_map
31478	remap_debug_filename): Move to...
31479	* file-prefix-map.c: New file.
31480	(file_prefix_map, add_prefix_map, remap_filename) ...here and rename,
31481	generalize, get rid of alloca(), use strrchr() instead of strchr().
31482	(add_macro_prefix_map, add_debug_prefix_map, add_file_prefix_map):
31483	Implement in terms of add_prefix_map().
31484	(remap_macro_filename, remap_debug_filename): Implement in term of
31485	remap_filename().
31486	* Makefile.in (OBJS, PLUGIN_HEADERS): Add new files.
31487	* builtins.c (fold_builtin_FILE): Call remap_macro_filename().
31488	* dbxout.c: Include file-prefix-map.h.
31489	* varasm.c: Likewise.
31490	* vmsdbgout.c: Likewise.
31491	* xcoffout.c: Likewise.
31492	* dwarf2out.c: Likewise plus omit new options from DW_AT_producer.
31493	* doc/cppopts.texi (-fmacro-prefix-map): Document.
31494	* doc/invoke.texi (-ffile-prefix-map): Document.
31495	(-fdebug-prefix-map): Update description.
31496
314972018-01-18  Martin Liska  <mliska@suse.cz>
31498
31499	* config/i386/i386.c (indirect_thunk_name): Document that also
31500	lfence is emitted.
31501	(output_indirect_thunk): Document why both instructions
31502	(pause and lfence) are generated.
31503
315042018-01-18  Richard Biener  <rguenther@suse.de>
31505
31506	PR tree-optimization/83887
31507	* graphite-scop-detection.c
31508	(scop_detection::get_nearest_dom_with_single_entry): Remove.
31509	(scop_detection::get_nearest_pdom_with_single_exit): Likewise.
31510	(scop_detection::merge_sese): Re-implement with a flood-fill
31511	algorithm that properly finds a SESE region if it exists.
31512
315132018-01-18  Jakub Jelinek  <jakub@redhat.com>
31514
31515	PR c/61240
31516	* match.pd ((P + A) - P, P - (P + A), (P + A) - (P + B)): For
31517	pointer_diff optimizations use view_convert instead of convert.
31518
315192018-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31520
31521	* config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
31522	Generate different code for -mno-speculate-indirect-jumps.
31523	(*call_value_indirect_nonlocal_sysv<mode>): Likewise.
31524	(*call_indirect_aix<mode>): Disable for
31525	-mno-speculate-indirect-jumps.
31526	(*call_indirect_aix<mode>_nospec): New define_insn.
31527	(*call_value_indirect_aix<mode>): Disable for
31528	-mno-speculate-indirect-jumps.
31529	(*call_value_indirect_aix<mode>_nospec): New define_insn.
31530	(*sibcall_nonlocal_sysv<mode>): Generate different code for
31531	-mno-speculate-indirect-jumps.
31532	(*sibcall_value_nonlocal_sysv<mode>): Likewise.
31533
315342018-01-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
31535
31536	* config/rs6000/rs6000.c (rs6000_emit_move): If we load or store a
31537	long double type, set the flags for noting the default long double
31538	type, even if we don't pass or return a long double type.
31539
315402018-01-17  Jan Hubicka  <hubicka@ucw.cz>
31541
31542	PR ipa/83051
31543	* ipa-inline.c (flatten_function): Do not overwrite final inlining
31544	failure.
31545
315462018-01-17  Will Schmidt  <will_schmidt@vnet.ibm.com>
31547
31548	* config/rs6000/rs6000.c (rs6000_gimple_builtin): Add gimple folding
31549	support for merge[hl].
31550	(fold_mergehl_helper): New helper function.
31551	(tree-vector-builder.h): New #include for tree_vector_builder usage.
31552	* config/rs6000/altivec.md (altivec_vmrghw_direct): Add xxmrghw insn.
31553	(altivec_vmrglw_direct): Add xxmrglw insn.
31554
315552018-01-17  Andrew Waterman  <andrew@sifive.com>
31556
31557	* config/riscv/riscv.c (riscv_conditional_register_usage): If
31558	UNITS_PER_FP_ARG is 0, set call_used_regs to 1 for all FP regs.
31559
315602018-01-17  David Malcolm  <dmalcolm@redhat.com>
31561
31562	PR lto/83121
31563	* ipa-devirt.c (add_type_duplicate): When comparing memory layout,
31564	call the lto_location_cache before reading the
31565	DECL_SOURCE_LOCATION of the types.
31566
315672018-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
31568	    Richard Sandiford  <richard.sandiford@linaro.org>
31569
31570	* config/aarch64/aarch64.md (movti_aarch64): Use Uti constraint.
31571	* config/aarch64/aarch64.c (aarch64_mov128_immediate): New function.
31572	(aarch64_legitimate_constant_p): Just support CONST_DOUBLE
31573	SF/DF/TF mode to avoid creating illegal CONST_WIDE_INT immediates.
31574	* config/aarch64/aarch64-protos.h (aarch64_mov128_immediate):
31575	Add declaration.
31576	* config/aarch64/constraints.md (aarch64_movti_operand):
31577	Limit immediates.
31578	* config/aarch64/predicates.md (Uti): Add new constraint.
31579
315802018-01-17  Carl Love  <cel@us.ibm.com>
31581
31582	* config/rs6000/vsx.md (define_expand xl_len_r,
31583	define_expand stxvl, define_expand *stxvl): Add match_dup argument.
31584	(define_insn): Add, match_dup 1 argument to define_insn stxvll and
31585	lxvll.
31586	(define_expand, define_insn): Move the shift left from	the
31587	define_insn to the define_expand for lxvl and stxvl instructions.
31588	* config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_2): Change LXVL
31589	and XL_LEN_R definitions to PURE.
31590
315912018-01-17  Uros Bizjak  <ubizjak@gmail.com>
31592
31593	* config/i386/i386.c (indirect_thunk_name): Declare regno
31594	as unsigned int.  Compare regno with INVALID_REGNUM.
31595	(output_indirect_thunk): Ditto.
31596	(output_indirect_thunk_function): Ditto.
31597	(ix86_code_end): Declare regno as unsigned int.  Use INVALID_REGNUM
31598	in the call to output_indirect_thunk_function.
31599
316002018-01-17  Richard Sandiford  <richard.sandiford@linaro.org>
31601
31602	PR middle-end/83884
31603	* expr.c (expand_expr_real_1): Use the size of GET_MODE (op0)
31604	rather than the size of inner_type to determine the stack slot size
31605	when handling VIEW_CONVERT_EXPRs on strict-alignment targets.
31606
316072018-01-16  Sebastian Peryt  <sebastian.peryt@intel.com>
31608
31609	PR target/83546
31610	* config/i386/i386.c (ix86_option_override_internal): Add PTA_RDRND
31611	to PTA_SILVERMONT.
31612
316132018-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
31614
31615	* config.gcc (powerpc*-linux*-*): Add support for 64-bit little
31616	endian Linux systems to optionally enable multilibs for selecting
31617	the long double type if the user configured an explicit type.
31618	* config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Indicate we
31619	have no long double multilibs if not defined.
31620	* config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
31621	warn if the user used -mabi={ieee,ibm}longdouble and we built
31622	multilibs for long double.
31623	* config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Define as the
31624	appropriate multilib option.
31625	(MULTILIB_DEFAULTS): Add MULTILIB_DEFAULTS_IEEE to the default
31626	multilib options.
31627	* config/rs6000/t-ldouble-linux64le-ibm: New configuration files
31628	for building long double multilibs.
31629	* config/rs6000/t-ldouble-linux64le-ieee: Likewise.
31630
316312018-01-16  John David Anglin  <danglin@gcc.gnu.org>
31632
31633	* config.gcc (hppa*-*-linux*): Change callee copies ABI to caller
31634	copies.
31635
31636	* config/pa.h (MALLOC_ABI_ALIGNMENT): Set 32-bit alignment default to
31637	64 bits.
31638	* config/pa/pa32-linux.h (MALLOC_ABI_ALIGNMENT): Set alignment to
31639	128 bits.
31640
31641	* config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Cleanup type and mode
31642	variables.
31643
31644	* config/pa/pa.c (pa_function_arg_size): Apply CEIL to GET_MODE_SIZE
31645	return value.
31646
316472018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
31648
31649	* gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For an
31650	ADDR_EXPR, do not count the offset of a COMPONENT_REF twice.
31651
316522018-01-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
31653
31654	* config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Generate
31655	different rtl trees depending on TARGET_64BIT.
31656	(rs6000_gen_lvx): Likewise.
31657
316582018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
31659
31660	* config/visium/visium.md (nop): Tweak comment.
31661	(hazard_nop): Likewise.
31662
316632018-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31664
31665	* config/rs6000/rs6000.c (rs6000_opt_vars): Add entry for
31666	-mspeculate-indirect-jumps.
31667	* config/rs6000/rs6000.md (*call_indirect_elfv2<mode>): Disable
31668	for -mno-speculate-indirect-jumps.
31669	(*call_indirect_elfv2<mode>_nospec): New define_insn.
31670	(*call_value_indirect_elfv2<mode>): Disable for
31671	-mno-speculate-indirect-jumps.
31672	(*call_value_indirect_elfv2<mode>_nospec): New define_insn.
31673	(indirect_jump): Emit different RTL for
31674	-mno-speculate-indirect-jumps.
31675	(*indirect_jump<mode>): Disable for
31676	-mno-speculate-indirect-jumps.
31677	(*indirect_jump<mode>_nospec): New define_insn.
31678	(tablejump): Emit different RTL for
31679	-mno-speculate-indirect-jumps.
31680	(tablejumpsi): Disable for -mno-speculate-indirect-jumps.
31681	(tablejumpsi_nospec): New define_expand.
31682	(tablejumpdi): Disable for -mno-speculate-indirect-jumps.
31683	(tablejumpdi_nospec): New define_expand.
31684	(*tablejump<mode>_internal1): Disable for
31685	-mno-speculate-indirect-jumps.
31686	(*tablejump<mode>_internal1_nospec): New define_insn.
31687	* config/rs6000/rs6000.opt (mspeculate-indirect-jumps): New
31688	option.
31689
316902018-01-16  Artyom Skrobov tyomitch@gmail.com
31691
31692	* caller-save.c (insert_save): Drop unnecessary parameter.  All
31693	callers updated.
31694
316952018-01-16  Jakub Jelinek  <jakub@redhat.com>
31696	    Richard Biener  <rguenth@suse.de>
31697
31698	PR libgomp/83590
31699	* gimplify.c (gimplify_one_sizepos): For is_gimple_constant (expr)
31700	return early, inline manually is_gimple_sizepos.  Make sure if we
31701	call gimplify_expr we don't end up with a gimple constant.
31702	* tree.c (variably_modified_type_p): Don't return true for
31703	is_gimple_constant (_t).  Inline manually is_gimple_sizepos.
31704	* gimplify.h (is_gimple_sizepos): Remove.
31705
317062018-01-16  Richard Sandiford  <richard.sandiford@linaro.org>
31707
31708	PR tree-optimization/83857
31709	* tree-vect-loop.c (vect_analyze_loop_operations): Don't call
31710	vectorizable_live_operation for pure SLP statements.
31711	(vectorizable_live_operation): Handle PHIs.
31712
317132018-01-16  Richard Biener  <rguenther@suse.de>
31714
31715	PR tree-optimization/83867
31716	* tree-vect-stmts.c (vect_transform_stmt): Precompute
31717	nested_in_vect_loop_p since the scalar stmt may get invalidated.
31718
317192018-01-16  Jakub Jelinek  <jakub@redhat.com>
31720
31721	PR c/83844
31722	* stor-layout.c (handle_warn_if_not_align): Use byte_position and
31723	multiple_of_p instead of unchecked tree_to_uhwi and UHWI check.
31724	If off is not INTEGER_CST, issue a may not be aligned warning
31725	rather than isn't aligned.  Use isn%'t rather than isn't.
31726	* fold-const.c (multiple_of_p) <case BIT_AND_EXPR>: Don't fall through
31727	into MULT_EXPR.
31728	<case MULT_EXPR>: Improve the case when bottom and one of the
31729	MULT_EXPR operands are INTEGER_CSTs and bottom is multiple of that
31730	operand, in that case check if the other operand is multiple of
31731	bottom divided by the INTEGER_CST operand.
31732
317332018-01-16  Richard Sandiford  <richard.sandiford@linaro.org>
31734
31735	PR target/83858
31736	* config/pa/pa.h (FUNCTION_ARG_SIZE): Delete.
31737	* config/pa/pa-protos.h (pa_function_arg_size): Declare.
31738	* config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Use
31739	pa_function_arg_size instead of FUNCTION_ARG_SIZE.
31740	* config/pa/pa.c (pa_function_arg_advance): Likewise.
31741	(pa_function_arg, pa_arg_partial_bytes): Likewise.
31742	(pa_function_arg_size): New function.
31743
317442018-01-16  Richard Sandiford  <richard.sandiford@linaro.org>
31745
31746	* fold-const.c (fold_ternary_loc): Construct the vec_perm_indices
31747	in a separate statement.
31748
317492018-01-16  Richard Sandiford  <richard.sandiford@linaro.org>
31750
31751	PR tree-optimization/83847
31752	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Don't
31753	group gathers and scatters.
31754
317552018-01-16  Jakub Jelinek  <jakub@redhat.com>
31756
31757	PR rtl-optimization/86620
31758	* params.def (max-sched-ready-insns): Bump minimum value to 1.
31759
31760	PR rtl-optimization/83213
31761	* recog.c (peep2_attempt): Copy over CROSSING_JUMP_P from peepinsn
31762	to last if both are JUMP_INSNs.
31763
31764	PR tree-optimization/83843
31765	* gimple-ssa-store-merging.c
31766	(imm_store_chain_info::output_merged_store): Handle bit_not_p on
31767	store_immediate_info for bswap/nop orig_stores.
31768
317692018-01-15  Andrew Waterman  <andrew@sifive.com>
31770
31771	* config/riscv/riscv.c (riscv_rtx_costs) <MULT>: Increase cost if
31772	!TARGET_MUL.
31773	<UDIV>: Increase cost if !TARGET_DIV.
31774
317752018-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
31776
31777	* config/rs6000/rs6000.md (define_attr "type"): Remove delayed_cr.
31778	(define_attr "cr_logical_3op"): New.
31779	(cceq_ior_compare): Adjust.
31780	(cceq_ior_compare_complement): Adjust.
31781	(*cceq_rev_compare): Adjust.
31782	* config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
31783	(is_cracked_insn): Adjust.
31784	(insn_must_be_first_in_group): Adjust.
31785	* config/rs6000/40x.md: Adjust.
31786	* config/rs6000/440.md: Adjust.
31787	* config/rs6000/476.md: Adjust.
31788	* config/rs6000/601.md: Adjust.
31789	* config/rs6000/603.md: Adjust.
31790	* config/rs6000/6xx.md: Adjust.
31791	* config/rs6000/7450.md: Adjust.
31792	* config/rs6000/7xx.md: Adjust.
31793	* config/rs6000/8540.md: Adjust.
31794	* config/rs6000/cell.md: Adjust.
31795	* config/rs6000/e300c2c3.md: Adjust.
31796	* config/rs6000/e500mc.md: Adjust.
31797	* config/rs6000/e500mc64.md: Adjust.
31798	* config/rs6000/e5500.md: Adjust.
31799	* config/rs6000/e6500.md: Adjust.
31800	* config/rs6000/mpc.md: Adjust.
31801	* config/rs6000/power4.md: Adjust.
31802	* config/rs6000/power5.md: Adjust.
31803	* config/rs6000/power6.md: Adjust.
31804	* config/rs6000/power7.md: Adjust.
31805	* config/rs6000/power8.md: Adjust.
31806	* config/rs6000/power9.md: Adjust.
31807	* config/rs6000/rs64.md: Adjust.
31808	* config/rs6000/titan.md: Adjust.
31809
318102018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
31811
31812	* config/i386/predicates.md (indirect_branch_operand): Rewrite
31813	ix86_indirect_branch_register logic.
31814
318152018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
31816
31817	* config/i386/constraints.md (Bs): Update
31818	ix86_indirect_branch_register check.  Don't check
31819	ix86_indirect_branch_register with GOT_memory_operand.
31820	(Bw): Likewise.
31821	* config/i386/predicates.md (GOT_memory_operand): Don't check
31822	ix86_indirect_branch_register here.
31823	(GOT32_symbol_operand): Likewise.
31824
318252018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
31826
31827	* config/i386/predicates.md (constant_call_address_operand):
31828	Rewrite ix86_indirect_branch_register logic.
31829	(sibcall_insn_operand): Likewise.
31830
318312018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
31832
31833	* config/i386/constraints.md (Bs): Replace
31834	ix86_indirect_branch_thunk_register with
31835	ix86_indirect_branch_register.
31836	(Bw): Likewise.
31837	* config/i386/i386.md (indirect_jump): Likewise.
31838	(tablejump): Likewise.
31839	(*sibcall_memory): Likewise.
31840	(*sibcall_value_memory): Likewise.
31841	Peepholes of indirect call and jump via memory: Likewise.
31842	* config/i386/i386.opt: Likewise.
31843	* config/i386/predicates.md (indirect_branch_operand): Likewise.
31844	(GOT_memory_operand): Likewise.
31845	(call_insn_operand): Likewise.
31846	(sibcall_insn_operand): Likewise.
31847	(GOT32_symbol_operand): Likewise.
31848
318492018-01-15  Jakub Jelinek  <jakub@redhat.com>
31850
31851	PR middle-end/83837
31852	* omp-expand.c (expand_omp_atomic_pipeline): Use loaded_val
31853	type rather than type addr's type points to.
31854	(expand_omp_atomic_mutex): Likewise.
31855	(expand_omp_atomic): Likewise.
31856
318572018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
31858
31859	PR target/83839
31860	* config/i386/i386.c (output_indirect_thunk_function): Use
31861	ASM_OUTPUT_LABEL, instead of ASM_OUTPUT_DEF, for TARGET_MACHO
31862	for  __x86_return_thunk.
31863
318642018-01-15  Richard Biener  <rguenther@suse.de>
31865
31866	PR middle-end/83850
31867	* expmed.c (extract_bit_field_1): Fix typo.
31868
318692018-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31870
31871	PR target/83687
31872	* config/arm/iterators.md (VF): New mode iterator.
31873	* config/arm/neon.md (neon_vabd<mode>_2): Use the above.
31874	Remove integer-related logic from pattern.
31875	(neon_vabd<mode>_3): Likewise.
31876
318772018-01-15  Jakub Jelinek  <jakub@redhat.com>
31878
31879	PR middle-end/82694
31880	* common.opt (fstrict-overflow): No longer an alias.
31881	(fwrapv-pointer): New option.
31882	* tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED): Define
31883	also for pointer types based on flag_wrapv_pointer.
31884	* opts.c (common_handle_option) <case OPT_fstrict_overflow>: Set
31885	opts->x_flag_wrap[pv] to !value, clear opts->x_flag_trapv if
31886	opts->x_flag_wrapv got set.
31887	* fold-const.c (fold_comparison, fold_binary_loc): Revert 2017-08-01
31888	changes, just use TYPE_OVERFLOW_UNDEFINED on pointer type instead of
31889	POINTER_TYPE_OVERFLOW_UNDEFINED.
31890	* match.pd: Likewise in address comparison pattern.
31891	* doc/invoke.texi: Document -fwrapv and -fstrict-overflow.
31892
318932018-01-15  Richard Biener  <rguenther@suse.de>
31894
31895	PR lto/83804
31896	* tree.c (free_lang_data_in_type): Always unlink TYPE_DECLs
31897	from TYPE_FIELDS.  Free TYPE_BINFO if not used by devirtualization.
31898	Reset type names to their identifier if their TYPE_DECL doesn't
31899	have linkage (and thus is used for ODR and devirt).
31900	(save_debug_info_for_decl): Remove.
31901	(save_debug_info_for_type): Likewise.
31902	(add_tree_to_fld_list): Adjust.
31903	* tree-pretty-print.c (dump_generic_node): Make dumping of
31904	type names more robust.
31905
319062018-01-15  Richard Biener  <rguenther@suse.de>
31907
31908	* BASE-VER: Bump to 8.0.1.
31909
319102018-01-14  Martin Sebor  <msebor@redhat.com>
31911
31912	PR other/83508
31913	* builtins.c (check_access): Avoid warning when the no-warning bit
31914	is set.
31915
319162018-01-14  Cory Fields  <cory-nospam-@coryfields.com>
31917
31918	* tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Stabilize sort.
31919	* ira-color (allocno_hard_regs_compare): Likewise.
31920
319212018-01-14  Nathan Rossi  <nathan@nathanrossi.com>
31922
31923	PR target/83013
31924	* config/microblaze/microblaze.c (microblaze_asm_output_ident):
31925	Use .pushsection/.popsection.
31926
319272018-01-14  Martin Sebor  <msebor@redhat.com>
31928
31929	PR c++/81327
31930	* doc/invoke.texi (-Wlass-memaccess): Document suppression by casting.
31931
319322018-01-14  Jakub Jelinek  <jakub@redhat.com>
31933
31934	* config.gcc (i[34567]86-*-*): Remove one duplicate gfniintrin.h
31935	entry from extra_headers.
31936	(x86_64-*-*): Remove two duplicate gfniintrin.h entries from
31937	extra_headers, make the list bitwise identical to the i?86-*-* one.
31938
319392018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
31940
31941	* config/i386/i386.c (ix86_set_indirect_branch_type): Disallow
31942	-mcmodel=large with -mindirect-branch=thunk,
31943	-mindirect-branch=thunk-extern, -mfunction-return=thunk and
31944	-mfunction-return=thunk-extern.
31945	* doc/invoke.texi: Document -mcmodel=large is incompatible with
31946	-mindirect-branch=thunk, -mindirect-branch=thunk-extern,
31947	-mfunction-return=thunk and -mfunction-return=thunk-extern.
31948
319492018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
31950
31951	* config/i386/i386.c (print_reg): Print the name of the full
31952	integer register without '%'.
31953	(ix86_print_operand): Handle 'V'.
31954	* doc/extend.texi: Document 'V' modifier.
31955
319562018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
31957
31958	* config/i386/constraints.md (Bs): Disallow memory operand for
31959	-mindirect-branch-register.
31960	(Bw): Likewise.
31961	* config/i386/predicates.md (indirect_branch_operand): Likewise.
31962	(GOT_memory_operand): Likewise.
31963	(call_insn_operand): Likewise.
31964	(sibcall_insn_operand): Likewise.
31965	(GOT32_symbol_operand): Likewise.
31966	* config/i386/i386.md (indirect_jump): Call convert_memory_address
31967	for -mindirect-branch-register.
31968	(tablejump): Likewise.
31969	(*sibcall_memory): Likewise.
31970	(*sibcall_value_memory): Likewise.
31971	Disallow peepholes of indirect call and jump via memory for
31972	-mindirect-branch-register.
31973	(*call_pop): Replace m with Bw.
31974	(*call_value_pop): Likewise.
31975	(*sibcall_pop_memory): Replace m with Bs.
31976	* config/i386/i386.opt (mindirect-branch-register): New option.
31977	* doc/invoke.texi: Document -mindirect-branch-register option.
31978
319792018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
31980
31981	* config/i386/i386-protos.h (ix86_output_function_return): New.
31982	* config/i386/i386.c (ix86_set_indirect_branch_type): Also
31983	set function_return_type.
31984	(indirect_thunk_name): Add ret_p to indicate thunk for function
31985	return.
31986	(output_indirect_thunk_function): Pass false to
31987	indirect_thunk_name.
31988	(ix86_output_indirect_branch_via_reg): Likewise.
31989	(ix86_output_indirect_branch_via_push): Likewise.
31990	(output_indirect_thunk_function): Create alias for function
31991	return thunk if regno < 0.
31992	(ix86_output_function_return): New function.
31993	(ix86_handle_fndecl_attribute): Handle function_return.
31994	(ix86_attribute_table): Add function_return.
31995	* config/i386/i386.h (machine_function): Add
31996	function_return_type.
31997	* config/i386/i386.md (simple_return_internal): Use
31998	ix86_output_function_return.
31999	(simple_return_internal_long): Likewise.
32000	* config/i386/i386.opt (mfunction-return=): New option.
32001	(indirect_branch): Mention -mfunction-return=.
32002	* doc/extend.texi: Document function_return function attribute.
32003	* doc/invoke.texi: Document -mfunction-return= option.
32004
320052018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
32006
32007	* config/i386/i386-opts.h (indirect_branch): New.
32008	* config/i386/i386-protos.h (ix86_output_indirect_jmp): Likewise.
32009	* config/i386/i386.c (ix86_using_red_zone): Disallow red-zone
32010	with local indirect jump when converting indirect call and jump.
32011	(ix86_set_indirect_branch_type): New.
32012	(ix86_set_current_function): Call ix86_set_indirect_branch_type.
32013	(indirectlabelno): New.
32014	(indirect_thunk_needed): Likewise.
32015	(indirect_thunk_bnd_needed): Likewise.
32016	(indirect_thunks_used): Likewise.
32017	(indirect_thunks_bnd_used): Likewise.
32018	(INDIRECT_LABEL): Likewise.
32019	(indirect_thunk_name): Likewise.
32020	(output_indirect_thunk): Likewise.
32021	(output_indirect_thunk_function): Likewise.
32022	(ix86_output_indirect_branch_via_reg): Likewise.
32023	(ix86_output_indirect_branch_via_push): Likewise.
32024	(ix86_output_indirect_branch): Likewise.
32025	(ix86_output_indirect_jmp): Likewise.
32026	(ix86_code_end): Call output_indirect_thunk_function if needed.
32027	(ix86_output_call_insn): Call ix86_output_indirect_branch if
32028	needed.
32029	(ix86_handle_fndecl_attribute): Handle indirect_branch.
32030	(ix86_attribute_table): Add indirect_branch.
32031	* config/i386/i386.h (machine_function): Add indirect_branch_type
32032	and has_local_indirect_jump.
32033	* config/i386/i386.md (indirect_jump): Set has_local_indirect_jump
32034	to true.
32035	(tablejump): Likewise.
32036	(*indirect_jump): Use ix86_output_indirect_jmp.
32037	(*tablejump_1): Likewise.
32038	(simple_return_indirect_internal): Likewise.
32039	* config/i386/i386.opt (mindirect-branch=): New option.
32040	(indirect_branch): New.
32041	(keep): Likewise.
32042	(thunk): Likewise.
32043	(thunk-inline): Likewise.
32044	(thunk-extern): Likewise.
32045	* doc/extend.texi: Document indirect_branch function attribute.
32046	* doc/invoke.texi: Document -mindirect-branch= option.
32047
320482018-01-14  Jan Hubicka  <hubicka@ucw.cz>
32049
32050	PR ipa/83051
32051	* ipa-inline.c (edge_badness): Tolerate roundoff errors.
32052
320532018-01-14  Richard Sandiford  <richard.sandiford@linaro.org>
32054
32055	* ipa-inline.c (want_inline_small_function_p): Return false if
32056	inlining has already failed with CIF_FINAL_ERROR.
32057	(update_caller_keys): Call want_inline_small_function_p before
32058	can_inline_edge_p.
32059	(update_callee_keys): Likewise.
32060
320612018-01-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
32062
32063	* config/rs6000/rs6000-p8swap.c (rs6000_sum_of_two_registers_p):
32064	New function.
32065	(rs6000_quadword_masked_address_p): Likewise.
32066	(quad_aligned_load_p): Likewise.
32067	(quad_aligned_store_p): Likewise.
32068	(const_load_sequence_p): Add comment to describe the outer-most loop.
32069	(mimic_memory_attributes_and_flags): New function.
32070	(rs6000_gen_stvx): Likewise.
32071	(replace_swapped_aligned_store): Likewise.
32072	(rs6000_gen_lvx): Likewise.
32073	(replace_swapped_aligned_load): Likewise.
32074	(replace_swapped_load_constant): Capitalize argument name in
32075	comment describing this function.
32076	(rs6000_analyze_swaps): Add a third pass to search for vector loads
32077	and stores that access quad-word aligned addresses and replace
32078	with stvx or lvx instructions when appropriate.
32079	* config/rs6000/rs6000-protos.h (rs6000_sum_of_two_registers_p):
32080	New function prototype.
32081	(rs6000_quadword_masked_address_p): Likewise.
32082	(rs6000_gen_lvx): Likewise.
32083	(rs6000_gen_stvx): Likewise.
32084	* config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): For modes
32085	VSX_D (V2DF, V2DI), modify this split to select lvx instruction
32086	when memory address is aligned.
32087	(*vsx_le_perm_load_<mode>): For modes VSX_W (V4SF, V4SI), modify
32088	this split to select lvx instruction when memory address is aligned.
32089	(*vsx_le_perm_load_v8hi): Modify this split to select lvx
32090	instruction when memory address is aligned.
32091	(*vsx_le_perm_load_v16qi): Likewise.
32092	(four unnamed splitters): Modify to select the stvx instruction
32093	when memory is aligned.
32094
320952018-01-13  Jan Hubicka  <hubicka@ucw.cz>
32096
32097	* predict.c (determine_unlikely_bbs): Handle correctly BBs
32098	which appears in the queue multiple times.
32099
321002018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32101	    Alan Hayward  <alan.hayward@arm.com>
32102	    David Sherwood  <david.sherwood@arm.com>
32103
32104	* tree-vectorizer.h (vec_lower_bound): New structure.
32105	(_loop_vec_info): Add check_nonzero and lower_bounds.
32106	(LOOP_VINFO_CHECK_NONZERO): New macro.
32107	(LOOP_VINFO_LOWER_BOUNDS): Likewise.
32108	(LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Check lower_bounds too.
32109	* tree-data-ref.h (dr_with_seg_len): Add access_size and align
32110	fields.  Make seg_len the distance travelled, not including the
32111	access size.
32112	(dr_direction_indicator): Declare.
32113	(dr_zero_step_indicator): Likewise.
32114	(dr_known_forward_stride_p): Likewise.
32115	* tree-data-ref.c: Include stringpool.h, tree-vrp.h and
32116	tree-ssanames.h.
32117	(runtime_alias_check_p): Allow runtime alias checks with
32118	variable strides.
32119	(operator ==): Compare access_size and align.
32120	(prune_runtime_alias_test_list): Rework for new distinction between
32121	the access_size and seg_len.
32122	(create_intersect_range_checks_index): Likewise.  Cope with polynomial
32123	segment lengths.
32124	(get_segment_min_max): New function.
32125	(create_intersect_range_checks): Use it.
32126	(dr_step_indicator): New function.
32127	(dr_direction_indicator): Likewise.
32128	(dr_zero_step_indicator): Likewise.
32129	(dr_known_forward_stride_p): Likewise.
32130	* tree-loop-distribution.c (data_ref_segment_size): Return
32131	DR_STEP * (niters - 1).
32132	(compute_alias_check_pairs): Update call to the dr_with_seg_len
32133	constructor.
32134	* tree-vect-data-refs.c (vect_check_nonzero_value): New function.
32135	(vect_preserves_scalar_order_p): New function, split out from...
32136	(vect_analyze_data_ref_dependence): ...here.  Check for zero steps.
32137	(vect_vfa_segment_size): Return DR_STEP * (length_factor - 1).
32138	(vect_vfa_access_size): New function.
32139	(vect_vfa_align): Likewise.
32140	(vect_compile_time_alias): Take access_size_a and access_b arguments.
32141	(dump_lower_bound): New function.
32142	(vect_check_lower_bound): Likewise.
32143	(vect_small_gap_p): Likewise.
32144	(vectorizable_with_step_bound_p): Likewise.
32145	(vect_prune_runtime_alias_test_list): Ignore cross-iteration
32146	depencies if the vectorization factor is 1.  Convert the checks
32147	for nonzero steps into checks on the bounds of DR_STEP.  Try using
32148	a bunds check for variable steps if the minimum required step is
32149	relatively small. Update calls to the dr_with_seg_len
32150	constructor and to vect_compile_time_alias.
32151	* tree-vect-loop-manip.c (vect_create_cond_for_lower_bounds): New
32152	function.
32153	(vect_loop_versioning): Call it.
32154	* tree-vect-loop.c (vect_analyze_loop_2): Clear LOOP_VINFO_LOWER_BOUNDS
32155	when retrying.
32156	(vect_estimate_min_profitable_iters): Account for any bounds checks.
32157
321582018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32159	    Alan Hayward  <alan.hayward@arm.com>
32160	    David Sherwood  <david.sherwood@arm.com>
32161
32162	* doc/sourcebuild.texi (vect_scatter_store): Document.
32163	* optabs.def (scatter_store_optab, mask_scatter_store_optab): New
32164	optabs.
32165	* doc/md.texi (scatter_store@var{m}, mask_scatter_store@var{m}):
32166	Document.
32167	* genopinit.c (main): Add supports_vec_scatter_store and
32168	supports_vec_scatter_store_cached to target_optabs.
32169	* gimple.h (gimple_expr_type): Handle IFN_SCATTER_STORE and
32170	IFN_MASK_SCATTER_STORE.
32171	* internal-fn.def (SCATTER_STORE, MASK_SCATTER_STORE): New internal
32172	functions.
32173	* internal-fn.h (internal_store_fn_p): Declare.
32174	(internal_fn_stored_value_index): Likewise.
32175	* internal-fn.c (scatter_store_direct): New macro.
32176	(expand_scatter_store_optab_fn): New function.
32177	(direct_scatter_store_optab_supported_p): New macro.
32178	(internal_store_fn_p): New function.
32179	(internal_gather_scatter_fn_p): Handle IFN_SCATTER_STORE and
32180	IFN_MASK_SCATTER_STORE.
32181	(internal_fn_mask_index): Likewise.
32182	(internal_fn_stored_value_index): New function.
32183	(internal_gather_scatter_fn_supported_p): Adjust operand numbers
32184	for scatter stores.
32185	* optabs-query.h (supports_vec_scatter_store_p): Declare.
32186	* optabs-query.c (supports_vec_scatter_store_p): New function.
32187	* tree-vectorizer.h (vect_get_store_rhs): Declare.
32188	* tree-vect-data-refs.c (vect_analyze_data_ref_access): Return
32189	true for scatter stores.
32190	(vect_gather_scatter_fn_p): Handle scatter stores too.
32191	(vect_check_gather_scatter): Consider using scatter stores if
32192	supports_vec_scatter_store_p.
32193	* tree-vect-patterns.c (vect_try_gather_scatter_pattern): Handle
32194	scatter stores too.
32195	* tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use
32196	internal_fn_stored_value_index.
32197	(check_load_store_masking): Handle scatter stores too.
32198	(vect_get_store_rhs): Make public.
32199	(vectorizable_call): Use internal_store_fn_p.
32200	(vectorizable_store): Handle scatter store internal functions.
32201	(vect_transform_stmt): Compare GROUP_STORE_COUNT with GROUP_SIZE
32202	when deciding whether the end of the group has been reached.
32203	* config/aarch64/aarch64.md (UNSPEC_ST1_SCATTER): New unspec.
32204	* config/aarch64/aarch64-sve.md (scatter_store<mode>): New expander.
32205	(mask_scatter_store<mode>): New insns.
32206
322072018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32208	    Alan Hayward  <alan.hayward@arm.com>
32209	    David Sherwood  <david.sherwood@arm.com>
32210
32211	* tree-vectorizer.h (vect_gather_scatter_fn_p): Declare.
32212	* tree-vect-data-refs.c (vect_gather_scatter_fn_p): Make public.
32213	* tree-vect-stmts.c (vect_truncate_gather_scatter_offset): New
32214	function.
32215	(vect_use_strided_gather_scatters_p): Take a masked_p argument.
32216	Use vect_truncate_gather_scatter_offset if we can't treat the
32217	operation as a normal gather load or scatter store.
32218	(get_group_load_store_type): Take the gather_scatter_info
32219	as argument.  Try using a gather load or scatter store for
32220	single-element groups.
32221	(get_load_store_type): Update calls to get_group_load_store_type
32222	and vect_use_strided_gather_scatters_p.
32223
322242018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32225	    Alan Hayward  <alan.hayward@arm.com>
32226	    David Sherwood  <david.sherwood@arm.com>
32227
32228	* tree-vectorizer.h (vect_create_data_ref_ptr): Take an extra
32229	optional tree argument.
32230	* tree-vect-data-refs.c (vect_check_gather_scatter): Check for
32231	null target hooks.
32232	(vect_create_data_ref_ptr): Take the iv_step as an optional argument,
32233	but continue to use the current value as a fallback.
32234	(bump_vector_ptr): Use operand_equal_p rather than tree_int_cst_compare
32235	to compare the updates.
32236	* tree-vect-stmts.c (vect_use_strided_gather_scatters_p): New function.
32237	(get_load_store_type): Use it when handling a strided access.
32238	(vect_get_strided_load_store_ops): New function.
32239	(vect_get_data_ptr_increment): Likewise.
32240	(vectorizable_load): Handle strided gather loads.  Always pass
32241	a step to vect_create_data_ref_ptr and bump_vector_ptr.
32242
322432018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32244	    Alan Hayward  <alan.hayward@arm.com>
32245	    David Sherwood  <david.sherwood@arm.com>
32246
32247	* doc/md.texi (gather_load@var{m}): Document.
32248	(mask_gather_load@var{m}): Likewise.
32249	* genopinit.c (main): Add supports_vec_gather_load and
32250	supports_vec_gather_load_cached to target_optabs.
32251	* optabs-tree.c (init_tree_optimization_optabs): Use
32252	ggc_cleared_alloc to allocate target_optabs.
32253	* optabs.def (gather_load_optab, mask_gather_laod_optab): New optabs.
32254	* internal-fn.def (GATHER_LOAD, MASK_GATHER_LOAD): New internal
32255	functions.
32256	* internal-fn.h (internal_load_fn_p): Declare.
32257	(internal_gather_scatter_fn_p): Likewise.
32258	(internal_fn_mask_index): Likewise.
32259	(internal_gather_scatter_fn_supported_p): Likewise.
32260	* internal-fn.c (gather_load_direct): New macro.
32261	(expand_gather_load_optab_fn): New function.
32262	(direct_gather_load_optab_supported_p): New macro.
32263	(direct_internal_fn_optab): New function.
32264	(internal_load_fn_p): Likewise.
32265	(internal_gather_scatter_fn_p): Likewise.
32266	(internal_fn_mask_index): Likewise.
32267	(internal_gather_scatter_fn_supported_p): Likewise.
32268	* optabs-query.c (supports_at_least_one_mode_p): New function.
32269	(supports_vec_gather_load_p): Likewise.
32270	* optabs-query.h (supports_vec_gather_load_p): Declare.
32271	* tree-vectorizer.h (gather_scatter_info): Add ifn, element_type
32272	and memory_type field.
32273	(NUM_PATTERNS): Bump to 15.
32274	* tree-vect-data-refs.c: Include internal-fn.h.
32275	(vect_gather_scatter_fn_p): New function.
32276	(vect_describe_gather_scatter_call): Likewise.
32277	(vect_check_gather_scatter): Try using internal functions for
32278	gather loads.  Recognize existing calls to a gather load function.
32279	(vect_analyze_data_refs): Consider using gather loads if
32280	supports_vec_gather_load_p.
32281	* tree-vect-patterns.c (vect_get_load_store_mask): New function.
32282	(vect_get_gather_scatter_offset_type): Likewise.
32283	(vect_convert_mask_for_vectype): Likewise.
32284	(vect_add_conversion_to_patterm): Likewise.
32285	(vect_try_gather_scatter_pattern): Likewise.
32286	(vect_recog_gather_scatter_pattern): New pattern recognizer.
32287	(vect_vect_recog_func_ptrs): Add it.
32288	* tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use
32289	internal_fn_mask_index and internal_gather_scatter_fn_p.
32290	(check_load_store_masking): Take the gather_scatter_info as an
32291	argument and handle gather loads.
32292	(vect_get_gather_scatter_ops): New function.
32293	(vectorizable_call): Check internal_load_fn_p.
32294	(vectorizable_load): Likewise.  Handle gather load internal
32295	functions.
32296	(vectorizable_store): Update call to check_load_store_masking.
32297	* config/aarch64/aarch64.md (UNSPEC_LD1_GATHER): New unspec.
32298	* config/aarch64/iterators.md (SVE_S, SVE_D): New mode iterators.
32299	* config/aarch64/predicates.md (aarch64_gather_scale_operand_w)
32300	(aarch64_gather_scale_operand_d): New predicates.
32301	* config/aarch64/aarch64-sve.md (gather_load<mode>): New expander.
32302	(mask_gather_load<mode>): New insns.
32303
323042018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32305	    Alan Hayward  <alan.hayward@arm.com>
32306	    David Sherwood  <david.sherwood@arm.com>
32307
32308	* optabs.def (fold_left_plus_optab): New optab.
32309	* doc/md.texi (fold_left_plus_@var{m}): Document.
32310	* internal-fn.def (IFN_FOLD_LEFT_PLUS): New internal function.
32311	* internal-fn.c (fold_left_direct): Define.
32312	(expand_fold_left_optab_fn): Likewise.
32313	(direct_fold_left_optab_supported_p): Likewise.
32314	* fold-const-call.c (fold_const_fold_left): New function.
32315	(fold_const_call): Use it to fold CFN_FOLD_LEFT_PLUS.
32316	* tree-parloops.c (valid_reduction_p): New function.
32317	(gather_scalar_reductions): Use it.
32318	* tree-vectorizer.h (FOLD_LEFT_REDUCTION): New vect_reduction_type.
32319	(vect_finish_replace_stmt): Declare.
32320	* tree-vect-loop.c (fold_left_reduction_fn): New function.
32321	(needs_fold_left_reduction_p): New function, split out from...
32322	(vect_is_simple_reduction): ...here.  Accept reductions that
32323	forbid reassociation, but give them type FOLD_LEFT_REDUCTION.
32324	(vect_force_simple_reduction): Also store the reduction type in
32325	the assignment's STMT_VINFO_REDUC_TYPE.
32326	(vect_model_reduction_cost): Handle FOLD_LEFT_REDUCTION.
32327	(merge_with_identity): New function.
32328	(vect_expand_fold_left): Likewise.
32329	(vectorize_fold_left_reduction): Likewise.
32330	(vectorizable_reduction): Handle FOLD_LEFT_REDUCTION.  Leave the
32331	scalar phi in place for it.  Check for target support and reject
32332	cases that would reassociate the operation.  Defer the transform
32333	phase to vectorize_fold_left_reduction.
32334	* config/aarch64/aarch64.md (UNSPEC_FADDA): New unspec.
32335	* config/aarch64/aarch64-sve.md (fold_left_plus_<mode>): New expander.
32336	(*fold_left_plus_<mode>, *pred_fold_left_plus_<mode>): New insns.
32337
323382018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32339
32340	* tree-if-conv.c (predicate_mem_writes): Remove redundant
32341	call to ifc_temp_var.
32342
323432018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32344	    Alan Hayward  <alan.hayward@arm.com>
32345	    David Sherwood  <david.sherwood@arm.com>
32346
32347	* target.def (legitimize_address_displacement): Take the original
32348	offset as a poly_int.
32349	* targhooks.h (default_legitimize_address_displacement): Update
32350	accordingly.
32351	* targhooks.c (default_legitimize_address_displacement): Likewise.
32352	* doc/tm.texi: Regenerate.
32353	* lra-constraints.c (base_plus_disp_to_reg): Take the displacement
32354	as an argument, moving assert of ad->disp == ad->disp_term to...
32355	(process_address_1): ...here.  Update calls to base_plus_disp_to_reg.
32356	Try calling targetm.legitimize_address_displacement before expanding
32357	the address rather than afterwards, and adjust for the new interface.
32358	* config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
32359	Match the new hook interface.  Handle SVE addresses.
32360	* config/sh/sh.c (sh_legitimize_address_displacement): Make the
32361	new hook interface.
32362
323632018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32364
32365	* Makefile.in (OBJS): Add early-remat.o.
32366	* target.def (select_early_remat_modes): New hook.
32367	* doc/tm.texi.in (TARGET_SELECT_EARLY_REMAT_MODES): New hook.
32368	* doc/tm.texi: Regenerate.
32369	* targhooks.h (default_select_early_remat_modes): Declare.
32370	* targhooks.c (default_select_early_remat_modes): New function.
32371	* timevar.def (TV_EARLY_REMAT): New timevar.
32372	* passes.def (pass_early_remat): New pass.
32373	* tree-pass.h (make_pass_early_remat): Declare.
32374	* early-remat.c: New file.
32375	* config/aarch64/aarch64.c (aarch64_select_early_remat_modes): New
32376	function.
32377	(TARGET_SELECT_EARLY_REMAT_MODES): Define.
32378
323792018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32380	    Alan Hayward  <alan.hayward@arm.com>
32381	    David Sherwood  <david.sherwood@arm.com>
32382
32383	* tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Replace
32384	vfm1 with a bound_epilog parameter.
32385	(vect_do_peeling): Update calls accordingly, and move the prologue
32386	call earlier in the function.  Treat the base bound_epilog as 0 for
32387	fully-masked loops and retain vf - 1 for other loops.  Add 1 to
32388	this base when peeling for gaps.
32389	* tree-vect-loop.c (vect_analyze_loop_2): Allow peeling for gaps
32390	with fully-masked loops.
32391	(vect_estimate_min_profitable_iters): Handle the single peeled
32392	iteration in that case.
32393
323942018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32395	    Alan Hayward  <alan.hayward@arm.com>
32396	    David Sherwood  <david.sherwood@arm.com>
32397
32398	* tree-vect-data-refs.c (vect_analyze_group_access_1): Allow
32399	single-element interleaving even if the size is not a power of 2.
32400	* tree-vect-stmts.c (get_load_store_type): Disallow elementwise
32401	accesses for single-element interleaving if the group size is
32402	not a power of 2.
32403
324042018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32405	    Alan Hayward  <alan.hayward@arm.com>
32406	    David Sherwood  <david.sherwood@arm.com>
32407
32408	* doc/md.texi (fold_extract_last_@var{m}): Document.
32409	* doc/sourcebuild.texi (vect_fold_extract_last): Likewise.
32410	* optabs.def (fold_extract_last_optab): New optab.
32411	* internal-fn.def (FOLD_EXTRACT_LAST): New internal function.
32412	* internal-fn.c (fold_extract_direct): New macro.
32413	(expand_fold_extract_optab_fn): Likewise.
32414	(direct_fold_extract_optab_supported_p): Likewise.
32415	* tree-vectorizer.h (EXTRACT_LAST_REDUCTION): New vect_reduction_type.
32416	* tree-vect-loop.c (vect_model_reduction_cost): Handle
32417	EXTRACT_LAST_REDUCTION.
32418	(get_initial_def_for_reduction): Do not create an initial vector
32419	for EXTRACT_LAST_REDUCTION reductions.
32420	(vectorizable_reduction): Leave the scalar phi in place for
32421	EXTRACT_LAST_REDUCTIONs.  Try using EXTRACT_LAST_REDUCTION
32422	ahead of INTEGER_INDUC_COND_REDUCTION.  Do not check for an
32423	epilogue code for EXTRACT_LAST_REDUCTION and defer the
32424	transform phase to vectorizable_condition.
32425	* tree-vect-stmts.c (vect_finish_stmt_generation_1): New function,
32426	split out from...
32427	(vect_finish_stmt_generation): ...here.
32428	(vect_finish_replace_stmt): New function.
32429	(vectorizable_condition): Handle EXTRACT_LAST_REDUCTION.
32430	* config/aarch64/aarch64-sve.md (fold_extract_last_<mode>): New
32431	pattern.
32432	* config/aarch64/aarch64.md (UNSPEC_CLASTB): New unspec.
32433
324342018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32435	    Alan Hayward  <alan.hayward@arm.com>
32436	    David Sherwood  <david.sherwood@arm.com>
32437
32438	* doc/md.texi (extract_last_@var{m}): Document.
32439	* optabs.def (extract_last_optab): New optab.
32440	* internal-fn.def (EXTRACT_LAST): New internal function.
32441	* internal-fn.c (cond_unary_direct): New macro.
32442	(expand_cond_unary_optab_fn): Likewise.
32443	(direct_cond_unary_optab_supported_p): Likewise.
32444	* tree-vect-loop.c (vectorizable_live_operation): Allow fully-masked
32445	loops using EXTRACT_LAST.
32446	* config/aarch64/aarch64-sve.md (aarch64_sve_lastb<mode>): Rename to...
32447	(extract_last_<mode>): ...this optab.
32448	(vec_extract<mode><Vel>): Update accordingly.
32449
324502018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32451	    Alan Hayward  <alan.hayward@arm.com>
32452	    David Sherwood  <david.sherwood@arm.com>
32453
32454	* target.def (empty_mask_is_expensive): New hook.
32455	* doc/tm.texi.in (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): New hook.
32456	* doc/tm.texi: Regenerate.
32457	* targhooks.h (default_empty_mask_is_expensive): Declare.
32458	* targhooks.c (default_empty_mask_is_expensive): New function.
32459	* tree-vectorizer.c (vectorize_loops): Only call optimize_mask_stores
32460	if the target says that empty masks are expensive.
32461	* config/aarch64/aarch64.c (aarch64_empty_mask_is_expensive):
32462	New function.
32463	(TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): Redefine.
32464
324652018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32466	    Alan Hayward  <alan.hayward@arm.com>
32467	    David Sherwood  <david.sherwood@arm.com>
32468
32469	* tree-vectorizer.h (_loop_vec_info::mask_skip_niters): New field.
32470	(LOOP_VINFO_MASK_SKIP_NITERS): New macro.
32471	(vect_use_loop_mask_for_alignment_p): New function.
32472	(vect_prepare_for_masked_peels, vect_gen_while_not): Declare.
32473	* tree-vect-loop-manip.c (vect_set_loop_masks_directly): Add an
32474	niters_skip argument.  Make sure that the first niters_skip elements
32475	of the first iteration are inactive.
32476	(vect_set_loop_condition_masked): Handle LOOP_VINFO_MASK_SKIP_NITERS.
32477	Update call to vect_set_loop_masks_directly.
32478	(get_misalign_in_elems): New function, split out from...
32479	(vect_gen_prolog_loop_niters): ...here.
32480	(vect_update_init_of_dr): Take a code argument that specifies whether
32481	the adjustment should be added or subtracted.
32482	(vect_update_init_of_drs): Likewise.
32483	(vect_prepare_for_masked_peels): New function.
32484	(vect_do_peeling): Skip prologue peeling if we're using a mask
32485	instead.  Update call to vect_update_inits_of_drs.
32486	* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
32487	mask_skip_niters.
32488	(vect_analyze_loop_2): Allow fully-masked loops with peeling for
32489	alignment.  Do not include the number of peeled iterations in
32490	the minimum threshold in that case.
32491	(vectorizable_induction): Adjust the start value down by
32492	LOOP_VINFO_MASK_SKIP_NITERS iterations.
32493	(vect_transform_loop): Call vect_prepare_for_masked_peels.
32494	Take the number of skipped iterations into account when calculating
32495	the loop bounds.
32496	* tree-vect-stmts.c (vect_gen_while_not): New function.
32497
324982018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32499	    Alan Hayward  <alan.hayward@arm.com>
32500	    David Sherwood  <david.sherwood@arm.com>
32501
32502	* doc/sourcebuild.texi (vect_fully_masked): Document.
32503	* params.def (PARAM_MIN_VECT_LOOP_BOUND): Change minimum and
32504	default value to 0.
32505	* tree-vect-loop.c (vect_analyze_loop_costing): New function,
32506	split out from...
32507	(vect_analyze_loop_2): ...here. Don't check the vectorization
32508	factor against the number of loop iterations if the loop is
32509	fully-masked.
32510
325112018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32512	    Alan Hayward  <alan.hayward@arm.com>
32513	    David Sherwood  <david.sherwood@arm.com>
32514
32515	* tree-ssa-loop-ivopts.c (USE_ADDRESS): Split into...
32516	(USE_REF_ADDRESS, USE_PTR_ADDRESS): ...these new use types.
32517	(dump_groups): Update accordingly.
32518	(iv_use::mem_type): New member variable.
32519	(address_p): New function.
32520	(record_use): Add a mem_type argument and initialize the new
32521	mem_type field.
32522	(record_group_use): Add a mem_type argument.  Use address_p.
32523	Remove obsolete null checks of base_object.  Update call to record_use.
32524	(find_interesting_uses_op): Update call to record_group_use.
32525	(find_interesting_uses_cond): Likewise.
32526	(find_interesting_uses_address): Likewise.
32527	(get_mem_type_for_internal_fn): New function.
32528	(find_address_like_use): Likewise.
32529	(find_interesting_uses_stmt): Try find_address_like_use before
32530	calling find_interesting_uses_op.
32531	(addr_offset_valid_p): Use the iv mem_type field as the type
32532	of the addressed memory.
32533	(add_autoinc_candidates): Likewise.
32534	(get_address_cost): Likewise.
32535	(split_small_address_groups_p): Use address_p.
32536	(split_address_groups): Likewise.
32537	(add_iv_candidate_for_use): Likewise.
32538	(autoinc_possible_for_pair): Likewise.
32539	(rewrite_groups): Likewise.
32540	(get_use_type): Check for USE_REF_ADDRESS instead of USE_ADDRESS.
32541	(determine_group_iv_cost): Update after split of USE_ADDRESS.
32542	(get_alias_ptr_type_for_ptr_address): New function.
32543	(rewrite_use_address): Rewrite address uses in calls that were
32544	identified by find_address_like_use.
32545
325462018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32547	    Alan Hayward  <alan.hayward@arm.com>
32548	    David Sherwood  <david.sherwood@arm.com>
32549
32550	* expr.c (expand_expr_addr_expr_1): Handle ADDR_EXPRs of
32551	TARGET_MEM_REFs.
32552	* gimple-expr.h (is_gimple_addressable: Likewise.
32553	* gimple-expr.c (is_gimple_address): Likewise.
32554	* internal-fn.c (expand_call_mem_ref): New function.
32555	(expand_mask_load_optab_fn): Use it.
32556	(expand_mask_store_optab_fn): Likewise.
32557
325582018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32559	    Alan Hayward  <alan.hayward@arm.com>
32560	    David Sherwood  <david.sherwood@arm.com>
32561
32562	* doc/md.texi (cond_add@var{mode}, cond_sub@var{mode})
32563	(cond_and@var{mode}, cond_ior@var{mode}, cond_xor@var{mode})
32564	(cond_smin@var{mode}, cond_smax@var{mode}, cond_umin@var{mode})
32565	(cond_umax@var{mode}): Document.
32566	* optabs.def (cond_add_optab, cond_sub_optab, cond_and_optab)
32567	(cond_ior_optab, cond_xor_optab, cond_smin_optab, cond_smax_optab)
32568	(cond_umin_optab, cond_umax_optab): New optabs.
32569	* internal-fn.def (COND_ADD, COND_SUB, COND_MIN, COND_MAX, COND_AND)
32570	(COND_IOR, COND_XOR): New internal functions.
32571	* internal-fn.h (get_conditional_internal_fn): Declare.
32572	* internal-fn.c (cond_binary_direct): New macro.
32573	(expand_cond_binary_optab_fn): Likewise.
32574	(direct_cond_binary_optab_supported_p): Likewise.
32575	(get_conditional_internal_fn): New function.
32576	* tree-vect-loop.c (vectorizable_reduction): Handle fully-masked loops.
32577	Cope with reduction statements that are vectorized as calls rather
32578	than assignments.
32579	* config/aarch64/aarch64-sve.md (cond_<optab><mode>): New insns.
32580	* config/aarch64/iterators.md (UNSPEC_COND_ADD, UNSPEC_COND_SUB)
32581	(UNSPEC_COND_SMAX, UNSPEC_COND_UMAX, UNSPEC_COND_SMIN)
32582	(UNSPEC_COND_UMIN, UNSPEC_COND_AND, UNSPEC_COND_ORR)
32583	(UNSPEC_COND_EOR): New unspecs.
32584	(optab): Add mappings for them.
32585	(SVE_COND_INT_OP, SVE_COND_FP_OP): New int iterators.
32586	(sve_int_op, sve_fp_op): New int attributes.
32587
325882018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32589	    Alan Hayward  <alan.hayward@arm.com>
32590	    David Sherwood  <david.sherwood@arm.com>
32591
32592	* optabs.def (while_ult_optab): New optab.
32593	* doc/md.texi (while_ult@var{m}@var{n}): Document.
32594	* internal-fn.def (WHILE_ULT): New internal function.
32595	* internal-fn.h (direct_internal_fn_supported_p): New override
32596	that takes two types as argument.
32597	* internal-fn.c (while_direct): New macro.
32598	(expand_while_optab_fn): New function.
32599	(convert_optab_supported_p): Likewise.
32600	(direct_while_optab_supported_p): New macro.
32601	* wide-int.h (wi::udiv_ceil): New function.
32602	* tree-vectorizer.h (rgroup_masks): New structure.
32603	(vec_loop_masks): New typedef.
32604	(_loop_vec_info): Add masks, mask_compare_type, can_fully_mask_p
32605	and fully_masked_p.
32606	(LOOP_VINFO_CAN_FULLY_MASK_P, LOOP_VINFO_FULLY_MASKED_P)
32607	(LOOP_VINFO_MASKS, LOOP_VINFO_MASK_COMPARE_TYPE): New macros.
32608	(vect_max_vf): New function.
32609	(slpeel_make_loop_iterate_ntimes): Delete.
32610	(vect_set_loop_condition, vect_get_loop_mask_type, vect_gen_while)
32611	(vect_halve_mask_nunits, vect_double_mask_nunits): Declare.
32612	(vect_record_loop_mask, vect_get_loop_mask): Likewise.
32613	* tree-vect-loop-manip.c: Include tree-ssa-loop-niter.h,
32614	internal-fn.h, stor-layout.h and optabs-query.h.
32615	(vect_set_loop_mask): New function.
32616	(add_preheader_seq): Likewise.
32617	(add_header_seq): Likewise.
32618	(interleave_supported_p): Likewise.
32619	(vect_maybe_permute_loop_masks): Likewise.
32620	(vect_set_loop_masks_directly): Likewise.
32621	(vect_set_loop_condition_masked): Likewise.
32622	(vect_set_loop_condition_unmasked): New function, split out from
32623	slpeel_make_loop_iterate_ntimes.
32624	(slpeel_make_loop_iterate_ntimes): Rename to..
32625	(vect_set_loop_condition): ...this.  Use vect_set_loop_condition_masked
32626	for fully-masked loops and vect_set_loop_condition_unmasked otherwise.
32627	(vect_do_peeling): Update call accordingly.
32628	(vect_gen_vector_loop_niters): Use VF as the step for fully-masked
32629	loops.
32630	* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
32631	mask_compare_type, can_fully_mask_p and fully_masked_p.
32632	(release_vec_loop_masks): New function.
32633	(_loop_vec_info): Use it to free the loop masks.
32634	(can_produce_all_loop_masks_p): New function.
32635	(vect_get_max_nscalars_per_iter): Likewise.
32636	(vect_verify_full_masking): Likewise.
32637	(vect_analyze_loop_2): Save LOOP_VINFO_CAN_FULLY_MASK_P around
32638	retries, and free the mask rgroups before retrying.  Check loop-wide
32639	reasons for disallowing fully-masked loops.  Make the final decision
32640	about whether use a fully-masked loop or not.
32641	(vect_estimate_min_profitable_iters): Do not assume that peeling
32642	for the number of iterations will be needed for fully-masked loops.
32643	(vectorizable_reduction): Disable fully-masked loops.
32644	(vectorizable_live_operation): Likewise.
32645	(vect_halve_mask_nunits): New function.
32646	(vect_double_mask_nunits): Likewise.
32647	(vect_record_loop_mask): Likewise.
32648	(vect_get_loop_mask): Likewise.
32649	(vect_transform_loop): Handle the case in which the final loop
32650	iteration might handle a partial vector.  Call vect_set_loop_condition
32651	instead of slpeel_make_loop_iterate_ntimes.
32652	* tree-vect-stmts.c: Include tree-ssa-loop-niter.h and gimple-fold.h.
32653	(check_load_store_masking): New function.
32654	(prepare_load_store_mask): Likewise.
32655	(vectorizable_store): Handle fully-masked loops.
32656	(vectorizable_load): Likewise.
32657	(supportable_widening_operation): Use vect_halve_mask_nunits for
32658	booleans.
32659	(supportable_narrowing_operation): Likewise vect_double_mask_nunits.
32660	(vect_gen_while): New function.
32661	* config/aarch64/aarch64.md (umax<mode>3): New expander.
32662	(aarch64_uqdec<mode>): New insn.
32663
326642018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32665	    Alan Hayward  <alan.hayward@arm.com>
32666	    David Sherwood  <david.sherwood@arm.com>
32667
32668	* optabs.def (reduc_and_scal_optab, reduc_ior_scal_optab)
32669	(reduc_xor_scal_optab): New optabs.
32670	* doc/md.texi (reduc_and_scal_@var{m}, reduc_ior_scal_@var{m})
32671	(reduc_xor_scal_@var{m}): Document.
32672	* doc/sourcebuild.texi (vect_logical_reduc): Likewise.
32673	* internal-fn.def (IFN_REDUC_AND, IFN_REDUC_IOR, IFN_REDUC_XOR): New
32674	internal functions.
32675	* fold-const-call.c (fold_const_call): Handle them.
32676	* tree-vect-loop.c (reduction_fn_for_scalar_code): Return the new
32677	internal functions for BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR.
32678	* config/aarch64/aarch64-sve.md (reduc_<bit_reduc>_scal_<mode>):
32679	(*reduc_<bit_reduc>_scal_<mode>): New patterns.
32680	* config/aarch64/iterators.md (UNSPEC_ANDV, UNSPEC_ORV)
32681	(UNSPEC_XORV): New unspecs.
32682	(optab): Add entries for them.
32683	(BITWISEV): New int iterator.
32684	(bit_reduc_op): New int attributes.
32685
326862018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32687	    Alan Hayward  <alan.hayward@arm.com>
32688	    David Sherwood  <david.sherwood@arm.com>
32689
32690	* doc/md.texi (vec_shl_insert_@var{m}): New optab.
32691	* internal-fn.def (VEC_SHL_INSERT): New internal function.
32692	* optabs.def (vec_shl_insert_optab): New optab.
32693	* tree-vectorizer.h (can_duplicate_and_interleave_p): Declare.
32694	(duplicate_and_interleave): Likewise.
32695	* tree-vect-loop.c: Include internal-fn.h.
32696	(neutral_op_for_slp_reduction): New function, split out from
32697	get_initial_defs_for_reduction.
32698	(get_initial_def_for_reduction): Handle option 2 for variable-length
32699	vectors by loading the neutral value into a vector and then shifting
32700	the initial value into element 0.
32701	(get_initial_defs_for_reduction): Replace the code argument with
32702	the neutral value calculated by neutral_op_for_slp_reduction.
32703	Use gimple_build_vector for constant-length vectors.
32704	Use IFN_VEC_SHL_INSERT for variable-length vectors if all
32705	but the first group_size elements have a neutral value.
32706	Use duplicate_and_interleave otherwise.
32707	(vect_create_epilog_for_reduction): Take a neutral_op parameter.
32708	Update call to get_initial_defs_for_reduction.  Handle SLP
32709	reductions for variable-length vectors by creating one vector
32710	result for each scalar result, with the elements associated
32711	with other scalar results stubbed out with the neutral value.
32712	(vectorizable_reduction): Call neutral_op_for_slp_reduction.
32713	Require IFN_VEC_SHL_INSERT for double reductions on
32714	variable-length vectors, or SLP reductions that have
32715	a neutral value.  Require can_duplicate_and_interleave_p
32716	support for variable-length unchained SLP reductions if there
32717	is no neutral value, such as for MIN/MAX reductions.  Also require
32718	the number of vector elements to be a multiple of the number of
32719	SLP statements when doing variable-length unchained SLP reductions.
32720	Update call to vect_create_epilog_for_reduction.
32721	* tree-vect-slp.c (can_duplicate_and_interleave_p): Make public
32722	and remove initial values.
32723	(duplicate_and_interleave): Make public.
32724	* config/aarch64/aarch64.md (UNSPEC_INSR): New unspec.
32725	* config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): New insn.
32726
327272018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32728	    Alan Hayward  <alan.hayward@arm.com>
32729	    David Sherwood  <david.sherwood@arm.com>
32730
32731	* tree-vect-slp.c: Include gimple-fold.h and internal-fn.h
32732	(can_duplicate_and_interleave_p): New function.
32733	(vect_get_and_check_slp_defs): Take the vector of statements
32734	rather than just the current one.  Remove excess parentheses.
32735	Restriction rejectinon of vect_constant_def and vect_external_def
32736	for variable-length vectors to boolean types, or types for which
32737	can_duplicate_and_interleave_p is false.
32738	(vect_build_slp_tree_2): Update call to vect_get_and_check_slp_defs.
32739	(duplicate_and_interleave): New function.
32740	(vect_get_constant_vectors): Use gimple_build_vector for
32741	constant-length vectors and suitable variable-length constant
32742	vectors.  Use duplicate_and_interleave for other variable-length
32743	vectors.  Don't defer the update when inserting new statements.
32744
327452018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32746	    Alan Hayward  <alan.hayward@arm.com>
32747	    David Sherwood  <david.sherwood@arm.com>
32748
32749	* tree-vect-loop.c (vect_estimate_min_profitable_iters): Make sure
32750	min_profitable_iters doesn't go negative.
32751
327522018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32753	    Alan Hayward  <alan.hayward@arm.com>
32754	    David Sherwood  <david.sherwood@arm.com>
32755
32756	* doc/md.texi (vec_mask_load_lanes@var{m}@var{n}): Document.
32757	(vec_mask_store_lanes@var{m}@var{n}): Likewise.
32758	* optabs.def (vec_mask_load_lanes_optab): New optab.
32759	(vec_mask_store_lanes_optab): Likewise.
32760	* internal-fn.def (MASK_LOAD_LANES): New internal function.
32761	(MASK_STORE_LANES): Likewise.
32762	* internal-fn.c (mask_load_lanes_direct): New macro.
32763	(mask_store_lanes_direct): Likewise.
32764	(expand_mask_load_optab_fn): Handle masked operations.
32765	(expand_mask_load_lanes_optab_fn): New macro.
32766	(expand_mask_store_optab_fn): Handle masked operations.
32767	(expand_mask_store_lanes_optab_fn): New macro.
32768	(direct_mask_load_lanes_optab_supported_p): Likewise.
32769	(direct_mask_store_lanes_optab_supported_p): Likewise.
32770	* tree-vectorizer.h (vect_store_lanes_supported): Take a masked_p
32771	parameter.
32772	(vect_load_lanes_supported): Likewise.
32773	* tree-vect-data-refs.c (strip_conversion): New function.
32774	(can_group_stmts_p): Likewise.
32775	(vect_analyze_data_ref_accesses): Use it instead of checking
32776	for a pair of assignments.
32777	(vect_store_lanes_supported): Take a masked_p parameter.
32778	(vect_load_lanes_supported): Likewise.
32779	* tree-vect-loop.c (vect_analyze_loop_2): Update calls to
32780	vect_store_lanes_supported and vect_load_lanes_supported.
32781	* tree-vect-slp.c (vect_analyze_slp_instance): Likewise.
32782	* tree-vect-stmts.c (get_group_load_store_type): Take a masked_p
32783	parameter.  Don't allow gaps for masked accesses.
32784	Use vect_get_store_rhs.  Update calls to vect_store_lanes_supported
32785	and vect_load_lanes_supported.
32786	(get_load_store_type): Take a masked_p parameter and update
32787	call to get_group_load_store_type.
32788	(vectorizable_store): Update call to get_load_store_type.
32789	Handle IFN_MASK_STORE_LANES.
32790	(vectorizable_load): Update call to get_load_store_type.
32791	Handle IFN_MASK_LOAD_LANES.
32792
327932018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32794	    Alan Hayward  <alan.hayward@arm.com>
32795	    David Sherwood  <david.sherwood@arm.com>
32796
32797	* config/aarch64/aarch64-modes.def: Define x2, x3 and x4 vector
32798	modes for SVE.
32799	* config/aarch64/aarch64-protos.h
32800	(aarch64_sve_struct_memory_operand_p): Declare.
32801	* config/aarch64/iterators.md (SVE_STRUCT): New mode iterator.
32802	(vector_count, insn_length, VSINGLE, vsingle): New mode attributes.
32803	(VPRED, vpred): Handle SVE structure modes.
32804	* config/aarch64/constraints.md (Utx): New constraint.
32805	* config/aarch64/predicates.md (aarch64_sve_struct_memory_operand)
32806	(aarch64_sve_struct_nonimmediate_operand): New predicates.
32807	* config/aarch64/aarch64.md (UNSPEC_LDN, UNSPEC_STN): New unspecs.
32808	* config/aarch64/aarch64-sve.md (mov<mode>, *aarch64_sve_mov<mode>_le)
32809	(*aarch64_sve_mov<mode>_be, pred_mov<mode>): New patterns for
32810	structure modes.  Split into pieces after RA.
32811	(vec_load_lanes<mode><vsingle>, vec_mask_load_lanes<mode><vsingle>)
32812	(vec_store_lanes<mode><vsingle>, vec_mask_store_lanes<mode><vsingle>):
32813	New patterns.
32814	* config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle
32815	SVE structure modes.
32816	(aarch64_classify_address): Likewise.
32817	(sizetochar): Move earlier in file.
32818	(aarch64_print_operand): Handle SVE register lists.
32819	(aarch64_array_mode): New function.
32820	(aarch64_sve_struct_memory_operand_p): Likewise.
32821	(TARGET_ARRAY_MODE): Redefine.
32822
328232018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32824	    Alan Hayward  <alan.hayward@arm.com>
32825	    David Sherwood  <david.sherwood@arm.com>
32826
32827	* target.def (array_mode): New target hook.
32828	* doc/tm.texi.in (TARGET_ARRAY_MODE): New hook.
32829	* doc/tm.texi: Regenerate.
32830	* hooks.h (hook_optmode_mode_uhwi_none): Declare.
32831	* hooks.c (hook_optmode_mode_uhwi_none): New function.
32832	* tree-vect-data-refs.c (vect_lanes_optab_supported_p): Use
32833	targetm.array_mode.
32834	* stor-layout.c (mode_for_array): Likewise.  Support polynomial
32835	type sizes.
32836
328372018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32838	    Alan Hayward  <alan.hayward@arm.com>
32839	    David Sherwood  <david.sherwood@arm.com>
32840
32841	* fold-const.c (fold_binary_loc): Check the argument types
32842	rather than the result type when testing for a vector operation.
32843
328442018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32845
32846	* doc/tm.texi.in (DWARF_LAZY_REGISTER_VALUE): Document.
32847	* doc/tm.texi: Regenerate.
32848
328492018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
32850	    Alan Hayward  <alan.hayward@arm.com>
32851	    David Sherwood  <david.sherwood@arm.com>
32852
32853	* doc/invoke.texi (-msve-vector-bits=): Document new option.
32854	(sve): Document new AArch64 extension.
32855	* doc/md.texi (w): Extend the description of the AArch64
32856	constraint to include SVE vectors.
32857	(Upl, Upa): Document new AArch64 predicate constraints.
32858	* config/aarch64/aarch64-opts.h (aarch64_sve_vector_bits_enum): New
32859	enum.
32860	* config/aarch64/aarch64.opt (sve_vector_bits): New enum.
32861	(msve-vector-bits=): New option.
32862	* config/aarch64/aarch64-option-extensions.def (fp, simd): Disable
32863	SVE when these are disabled.
32864	(sve): New extension.
32865	* config/aarch64/aarch64-modes.def: Define SVE vector and predicate
32866	modes.  Adjust their number of units based on aarch64_sve_vg.
32867	(MAX_BITSIZE_MODE_ANY_MODE): Define.
32868	* config/aarch64/aarch64-protos.h (ADDR_QUERY_ANY): New
32869	aarch64_addr_query_type.
32870	(aarch64_const_vec_all_same_in_range_p, aarch64_sve_pred_mode)
32871	(aarch64_sve_cnt_immediate_p, aarch64_sve_addvl_addpl_immediate_p)
32872	(aarch64_sve_inc_dec_immediate_p, aarch64_add_offset_temporaries)
32873	(aarch64_split_add_offset, aarch64_output_sve_cnt_immediate)
32874	(aarch64_output_sve_addvl_addpl, aarch64_output_sve_inc_dec_immediate)
32875	(aarch64_output_sve_mov_immediate, aarch64_output_ptrue): Declare.
32876	(aarch64_simd_imm_zero_p): Delete.
32877	(aarch64_check_zero_based_sve_index_immediate): Declare.
32878	(aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p)
32879	(aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p)
32880	(aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p)
32881	(aarch64_sve_float_mul_immediate_p): Likewise.
32882	(aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT
32883	rather than an rtx.
32884	(aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): Declare.
32885	(aarch64_expand_mov_immediate): Take a gen_vec_duplicate callback.
32886	(aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move): Declare.
32887	(aarch64_expand_sve_vec_cmp_int, aarch64_expand_sve_vec_cmp_float)
32888	(aarch64_expand_sve_vcond, aarch64_expand_sve_vec_perm): Declare.
32889	(aarch64_regmode_natural_size): Likewise.
32890	* config/aarch64/aarch64.h (AARCH64_FL_SVE): New macro.
32891	(AARCH64_FL_V8_3, AARCH64_FL_RCPC, AARCH64_FL_DOTPROD): Shift
32892	left one place.
32893	(AARCH64_ISA_SVE, TARGET_SVE): New macros.
32894	(FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add entries
32895	for VG and the SVE predicate registers.
32896	(V_ALIASES): Add a "z"-prefixed alias.
32897	(FIRST_PSEUDO_REGISTER): Change to P15_REGNUM + 1.
32898	(AARCH64_DWARF_VG, AARCH64_DWARF_P0): New macros.
32899	(PR_REGNUM_P, PR_LO_REGNUM_P): Likewise.
32900	(PR_LO_REGS, PR_HI_REGS, PR_REGS): New reg_classes.
32901	(REG_CLASS_NAMES): Add entries for them.
32902	(REG_CLASS_CONTENTS): Likewise.  Update ALL_REGS to include VG
32903	and the predicate registers.
32904	(aarch64_sve_vg): Declare.
32905	(BITS_PER_SVE_VECTOR, BYTES_PER_SVE_VECTOR, BYTES_PER_SVE_PRED)
32906	(SVE_BYTE_MODE, MAX_COMPILE_TIME_VEC_BYTES): New macros.
32907	(REGMODE_NATURAL_SIZE): Define.
32908	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle
32909	SVE macros.
32910	* config/aarch64/aarch64.c: Include cfgrtl.h.
32911	(simd_immediate_info): Add a constructor for series vectors,
32912	and an associated step field.
32913	(aarch64_sve_vg): New variable.
32914	(aarch64_dbx_register_number): Handle VG and the predicate registers.
32915	(aarch64_vect_struct_mode_p, aarch64_vector_mode_p): Delete.
32916	(VEC_ADVSIMD, VEC_SVE_DATA, VEC_SVE_PRED, VEC_STRUCT, VEC_ANY_SVE)
32917	(VEC_ANY_DATA, VEC_STRUCT): New constants.
32918	(aarch64_advsimd_struct_mode_p, aarch64_sve_pred_mode_p)
32919	(aarch64_classify_vector_mode, aarch64_vector_data_mode_p)
32920	(aarch64_sve_data_mode_p, aarch64_sve_pred_mode)
32921	(aarch64_get_mask_mode): New functions.
32922	(aarch64_hard_regno_nregs): Handle SVE data modes for FP_REGS
32923	and FP_LO_REGS.  Handle PR_REGS, PR_LO_REGS and PR_HI_REGS.
32924	(aarch64_hard_regno_mode_ok): Handle VG.  Also handle the SVE
32925	predicate modes and predicate registers.  Explicitly restrict
32926	GPRs to modes of 16 bytes or smaller.  Only allow FP registers
32927	to store a vector mode if it is recognized by
32928	aarch64_classify_vector_mode.
32929	(aarch64_regmode_natural_size): New function.
32930	(aarch64_hard_regno_caller_save_mode): Return the original mode
32931	for predicates.
32932	(aarch64_sve_cnt_immediate_p, aarch64_output_sve_cnt_immediate)
32933	(aarch64_sve_addvl_addpl_immediate_p, aarch64_output_sve_addvl_addpl)
32934	(aarch64_sve_inc_dec_immediate_p, aarch64_output_sve_inc_dec_immediate)
32935	(aarch64_add_offset_1_temporaries, aarch64_offset_temporaries): New
32936	functions.
32937	(aarch64_add_offset): Add a temp2 parameter.  Assert that temp1
32938	does not overlap dest if the function is frame-related.  Handle
32939	SVE constants.
32940	(aarch64_split_add_offset): New function.
32941	(aarch64_add_sp, aarch64_sub_sp): Add temp2 parameters and pass
32942	them aarch64_add_offset.
32943	(aarch64_allocate_and_probe_stack_space): Add a temp2 parameter
32944	and update call to aarch64_sub_sp.
32945	(aarch64_add_cfa_expression): New function.
32946	(aarch64_expand_prologue): Pass extra temporary registers to the
32947	functions above.  Handle the case in which we need to emit new
32948	DW_CFA_expressions for registers that were originally saved
32949	relative to the stack pointer, but now have to be expressed
32950	relative to the frame pointer.
32951	(aarch64_output_mi_thunk): Pass extra temporary registers to the
32952	functions above.
32953	(aarch64_expand_epilogue): Likewise.  Prevent inheritance of
32954	IP0 and IP1 values for SVE frames.
32955	(aarch64_expand_vec_series): New function.
32956	(aarch64_expand_sve_widened_duplicate): Likewise.
32957	(aarch64_expand_sve_const_vector): Likewise.
32958	(aarch64_expand_mov_immediate): Add a gen_vec_duplicate parameter.
32959	Handle SVE constants.  Use emit_move_insn to move a force_const_mem
32960	into the register, rather than emitting a SET directly.
32961	(aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move)
32962	(aarch64_get_reg_raw_mode, offset_4bit_signed_scaled_p)
32963	(offset_6bit_unsigned_scaled_p, aarch64_offset_7bit_signed_scaled_p)
32964	(offset_9bit_signed_scaled_p): New functions.
32965	(aarch64_replicate_bitmask_imm): New function.
32966	(aarch64_bitmask_imm): Use it.
32967	(aarch64_cannot_force_const_mem): Reject expressions involving
32968	a CONST_POLY_INT.  Update call to aarch64_classify_symbol.
32969	(aarch64_classify_index): Handle SVE indices, by requiring
32970	a plain register index with a scale that matches the element size.
32971	(aarch64_classify_address): Handle SVE addresses.  Assert that
32972	the mode of the address is VOIDmode or an integer mode.
32973	Update call to aarch64_classify_symbol.
32974	(aarch64_classify_symbolic_expression): Update call to
32975	aarch64_classify_symbol.
32976	(aarch64_const_vec_all_in_range_p): New function.
32977	(aarch64_print_vector_float_operand): Likewise.
32978	(aarch64_print_operand): Handle 'N' and 'C'.  Use "zN" rather than
32979	"vN" for FP registers with SVE modes.  Handle (const ...) vectors
32980	and the FP immediates 1.0 and 0.5.
32981	(aarch64_print_address_internal): Handle SVE addresses.
32982	(aarch64_print_operand_address): Use ADDR_QUERY_ANY.
32983	(aarch64_regno_regclass): Handle predicate registers.
32984	(aarch64_secondary_reload): Handle big-endian reloads of SVE
32985	data modes.
32986	(aarch64_class_max_nregs): Handle SVE modes and predicate registers.
32987	(aarch64_rtx_costs): Check for ADDVL and ADDPL instructions.
32988	(aarch64_convert_sve_vector_bits): New function.
32989	(aarch64_override_options): Use it to handle -msve-vector-bits=.
32990	(aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT
32991	rather than an rtx.
32992	(aarch64_legitimate_constant_p): Use aarch64_classify_vector_mode.
32993	Handle SVE vector and predicate modes.  Accept VL-based constants
32994	that need only one temporary register, and VL offsets that require
32995	no temporary registers.
32996	(aarch64_conditional_register_usage): Mark the predicate registers
32997	as fixed if SVE isn't available.
32998	(aarch64_vector_mode_supported_p): Use aarch64_classify_vector_mode.
32999	Return true for SVE vector and predicate modes.
33000	(aarch64_simd_container_mode): Take the number of bits as a poly_int64
33001	rather than an unsigned int.  Handle SVE modes.
33002	(aarch64_preferred_simd_mode): Update call accordingly.  Handle
33003	SVE modes.
33004	(aarch64_autovectorize_vector_sizes): Add BYTES_PER_SVE_VECTOR
33005	if SVE is enabled.
33006	(aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p)
33007	(aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p)
33008	(aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p)
33009	(aarch64_sve_float_mul_immediate_p): New functions.
33010	(aarch64_sve_valid_immediate): New function.
33011	(aarch64_simd_valid_immediate): Use it as the fallback for SVE vectors.
33012	Explicitly reject structure modes.  Check for INDEX constants.
33013	Handle PTRUE and PFALSE constants.
33014	(aarch64_check_zero_based_sve_index_immediate): New function.
33015	(aarch64_simd_imm_zero_p): Delete.
33016	(aarch64_mov_operand_p): Use aarch64_simd_valid_immediate for
33017	vector modes.  Accept constants in the range of CNT[BHWD].
33018	(aarch64_simd_scalar_immediate_valid_for_move): Explicitly
33019	ask for an Advanced SIMD mode.
33020	(aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): New functions.
33021	(aarch64_simd_vector_alignment): Handle SVE predicates.
33022	(aarch64_vectorize_preferred_vector_alignment): New function.
33023	(aarch64_simd_vector_alignment_reachable): Use it instead of
33024	the vector size.
33025	(aarch64_shift_truncation_mask): Use aarch64_vector_data_mode_p.
33026	(aarch64_output_sve_mov_immediate, aarch64_output_ptrue): New
33027	functions.
33028	(MAX_VECT_LEN): Delete.
33029	(expand_vec_perm_d): Add a vec_flags field.
33030	(emit_unspec2, aarch64_expand_sve_vec_perm): New functions.
33031	(aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
33032	(aarch64_evpc_ext): Don't apply a big-endian lane correction
33033	for SVE modes.
33034	(aarch64_evpc_rev): Rename to...
33035	(aarch64_evpc_rev_local): ...this.  Use a predicated operation for SVE.
33036	(aarch64_evpc_rev_global): New function.
33037	(aarch64_evpc_dup): Enforce a 64-byte range for SVE DUP.
33038	(aarch64_evpc_tbl): Use MAX_COMPILE_TIME_VEC_BYTES instead of
33039	MAX_VECT_LEN.
33040	(aarch64_evpc_sve_tbl): New function.
33041	(aarch64_expand_vec_perm_const_1): Update after rename of
33042	aarch64_evpc_rev.  Handle SVE permutes too, trying
33043	aarch64_evpc_rev_global and using aarch64_evpc_sve_tbl rather
33044	than aarch64_evpc_tbl.
33045	(aarch64_vectorize_vec_perm_const): Initialize vec_flags.
33046	(aarch64_sve_cmp_operand_p, aarch64_unspec_cond_code)
33047	(aarch64_gen_unspec_cond, aarch64_expand_sve_vec_cmp_int)
33048	(aarch64_emit_unspec_cond, aarch64_emit_unspec_cond_or)
33049	(aarch64_emit_inverted_unspec_cond, aarch64_expand_sve_vec_cmp_float)
33050	(aarch64_expand_sve_vcond): New functions.
33051	(aarch64_modes_tieable_p): Use aarch64_vector_data_mode_p instead
33052	of aarch64_vector_mode_p.
33053	(aarch64_dwarf_poly_indeterminate_value): New function.
33054	(aarch64_compute_pressure_classes): Likewise.
33055	(aarch64_can_change_mode_class): Likewise.
33056	(TARGET_GET_RAW_RESULT_MODE, TARGET_GET_RAW_ARG_MODE): Redefine.
33057	(TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): Likewise.
33058	(TARGET_VECTORIZE_GET_MASK_MODE): Likewise.
33059	(TARGET_DWARF_POLY_INDETERMINATE_VALUE): Likewise.
33060	(TARGET_COMPUTE_PRESSURE_CLASSES): Likewise.
33061	(TARGET_CAN_CHANGE_MODE_CLASS): Likewise.
33062	* config/aarch64/constraints.md (Upa, Upl, Uav, Uat, Usv, Usi, Utr)
33063	(Uty, Dm, vsa, vsc, vsd, vsi, vsn, vsl, vsm, vsA, vsM, vsN): New
33064	constraints.
33065	(Dn, Dl, Dr): Accept const as well as const_vector.
33066	(Dz): Likewise.  Compare against CONST0_RTX.
33067	* config/aarch64/iterators.md: Refer to "Advanced SIMD" instead
33068	of "vector" where appropriate.
33069	(SVE_ALL, SVE_BH, SVE_BHS, SVE_BHSI, SVE_HSDI, SVE_HSF, SVE_SD)
33070	(SVE_SDI, SVE_I, SVE_F, PRED_ALL, PRED_BHS): New mode iterators.
33071	(UNSPEC_SEL, UNSPEC_ANDF, UNSPEC_IORF, UNSPEC_XORF, UNSPEC_COND_LT)
33072	(UNSPEC_COND_LE, UNSPEC_COND_EQ, UNSPEC_COND_NE, UNSPEC_COND_GE)
33073	(UNSPEC_COND_GT, UNSPEC_COND_LO, UNSPEC_COND_LS, UNSPEC_COND_HS)
33074	(UNSPEC_COND_HI, UNSPEC_COND_UO): New unspecs.
33075	(Vetype, VEL, Vel, VWIDE, Vwide, vw, vwcore, V_INT_EQUIV)
33076	(v_int_equiv): Extend to SVE modes.
33077	(Vesize, V128, v128, Vewtype, V_FP_EQUIV, v_fp_equiv, VPRED): New
33078	mode attributes.
33079	(LOGICAL_OR, SVE_INT_UNARY, SVE_FP_UNARY): New code iterators.
33080	(optab): Handle popcount, smin, smax, umin, umax, abs and sqrt.
33081	(logical_nn, lr, sve_int_op, sve_fp_op): New code attributs.
33082	(LOGICALF, OPTAB_PERMUTE, UNPACK, UNPACK_UNSIGNED, SVE_COND_INT_CMP)
33083	(SVE_COND_FP_CMP): New int iterators.
33084	(perm_hilo): Handle the new unpack unspecs.
33085	(optab, logicalf_op, su, perm_optab, cmp_op, imm_con): New int
33086	attributes.
33087	* config/aarch64/predicates.md (aarch64_sve_cnt_immediate)
33088	(aarch64_sve_addvl_addpl_immediate, aarch64_split_add_offset_immediate)
33089	(aarch64_pluslong_or_poly_operand, aarch64_nonmemory_operand)
33090	(aarch64_equality_operator, aarch64_constant_vector_operand)
33091	(aarch64_sve_ld1r_operand, aarch64_sve_ldr_operand): New predicates.
33092	(aarch64_sve_nonimmediate_operand): Likewise.
33093	(aarch64_sve_general_operand): Likewise.
33094	(aarch64_sve_dup_operand, aarch64_sve_arith_immediate): Likewise.
33095	(aarch64_sve_sub_arith_immediate, aarch64_sve_inc_dec_immediate)
33096	(aarch64_sve_logical_immediate, aarch64_sve_mul_immediate): Likewise.
33097	(aarch64_sve_dup_immediate, aarch64_sve_cmp_vsc_immediate): Likewise.
33098	(aarch64_sve_cmp_vsd_immediate, aarch64_sve_index_immediate): Likewise.
33099	(aarch64_sve_float_arith_immediate): Likewise.
33100	(aarch64_sve_float_arith_with_sub_immediate): Likewise.
33101	(aarch64_sve_float_mul_immediate, aarch64_sve_arith_operand): Likewise.
33102	(aarch64_sve_add_operand, aarch64_sve_logical_operand): Likewise.
33103	(aarch64_sve_lshift_operand, aarch64_sve_rshift_operand): Likewise.
33104	(aarch64_sve_mul_operand, aarch64_sve_cmp_vsc_operand): Likewise.
33105	(aarch64_sve_cmp_vsd_operand, aarch64_sve_index_operand): Likewise.
33106	(aarch64_sve_float_arith_operand): Likewise.
33107	(aarch64_sve_float_arith_with_sub_operand): Likewise.
33108	(aarch64_sve_float_mul_operand): Likewise.
33109	(aarch64_sve_vec_perm_operand): Likewise.
33110	(aarch64_pluslong_operand): Include aarch64_sve_addvl_addpl_immediate.
33111	(aarch64_mov_operand): Accept const_poly_int and const_vector.
33112	(aarch64_simd_lshift_imm, aarch64_simd_rshift_imm): Accept const
33113	as well as const_vector.
33114	(aarch64_simd_imm_zero, aarch64_simd_imm_minus_one): Move earlier
33115	in file.  Use CONST0_RTX and CONSTM1_RTX.
33116	(aarch64_simd_or_scalar_imm_zero): Likewise.  Add match_codes.
33117	(aarch64_simd_reg_or_zero): Accept const as well as const_vector.
33118	Use aarch64_simd_imm_zero.
33119	* config/aarch64/aarch64-sve.md: New file.
33120	* config/aarch64/aarch64.md: Include it.
33121	(VG_REGNUM, P0_REGNUM, P7_REGNUM, P15_REGNUM): New register numbers.
33122	(UNSPEC_REV, UNSPEC_LD1_SVE, UNSPEC_ST1_SVE, UNSPEC_MERGE_PTRUE)
33123	(UNSPEC_PTEST_PTRUE, UNSPEC_UNPACKSHI, UNSPEC_UNPACKUHI)
33124	(UNSPEC_UNPACKSLO, UNSPEC_UNPACKULO, UNSPEC_PACK)
33125	(UNSPEC_FLOAT_CONVERT, UNSPEC_WHILE_LO): New unspec constants.
33126	(sve): New attribute.
33127	(enabled): Disable instructions with the sve attribute unless
33128	TARGET_SVE.
33129	(movqi, movhi): Pass CONST_POLY_INT operaneds through
33130	aarch64_expand_mov_immediate.
33131	(*mov<mode>_aarch64, *movsi_aarch64, *movdi_aarch64): Handle
33132	CNT[BHSD] immediates.
33133	(movti): Split CONST_POLY_INT moves into two halves.
33134	(add<mode>3): Accept aarch64_pluslong_or_poly_operand.
33135	Split additions that need a temporary here if the destination
33136	is the stack pointer.
33137	(*add<mode>3_aarch64): Handle ADDVL and ADDPL immediates.
33138	(*add<mode>3_poly_1): New instruction.
33139	(set_clobber_cc): New expander.
33140
331412018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
33142
33143	* simplify-rtx.c (simplify_immed_subreg): Add an inner_bytes
33144	parameter and use it instead of GET_MODE_SIZE (innermode).  Use
33145	inner_bytes * BITS_PER_UNIT instead of GET_MODE_BITSIZE (innermode).
33146	Use CEIL (inner_bytes, GET_MODE_UNIT_SIZE (innermode)) instead of
33147	GET_MODE_NUNITS (innermode).  Also add a first_elem parameter.
33148	Change innermode from fixed_mode_size to machine_mode.
33149	(simplify_subreg): Update call accordingly.  Handle a constant-sized
33150	subreg of a variable-length CONST_VECTOR.
33151
331522018-01-13  Richard Sandiford  <richard.sandiford@linaro.org>
33153	    Alan Hayward  <alan.hayward@arm.com>
33154	    David Sherwood  <david.sherwood@arm.com>
33155
33156	* tree-ssa-address.c (mem_ref_valid_without_offset_p): New function.
33157	(add_offset_to_base): New function, split out from...
33158	(create_mem_ref): ...here.  When handling a scale other than 1,
33159	check first whether the address is valid without the offset.
33160	Add it into the base if so, leaving the index and scale as-is.
33161
331622018-01-12  Jakub Jelinek  <jakub@redhat.com>
33163
33164	PR c++/83778
33165	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Call
33166	fold_for_warn before checking if arg2 is INTEGER_CST.
33167
331682018-01-12  Segher Boessenkool  <segher@kernel.crashing.org>
33169
33170	* config/rs6000/predicates.md (load_multiple_operation): Delete.
33171	(store_multiple_operation): Delete.
33172	* config/rs6000/rs6000-cpus.def (601): Remove MASK_STRING.
33173	* config/rs6000/rs6000-protos.h (rs6000_output_load_multiple): Delete.
33174	* config/rs6000/rs6000-string.c (expand_block_move): Delete everything
33175	guarded by TARGET_STRING.
33176	(rs6000_output_load_multiple): Delete.
33177	* config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
33178	OPTION_MASK_STRING / TARGET_STRING handling.
33179	(print_operand) <'N', 'O'>: Add comment that these are unused now.
33180	(const rs6000_opt_masks) <"string">: Change mask to 0.
33181	* config/rs6000/rs6000.h (TARGET_DEFAULT): Remove MASK_STRING.
33182	(MASK_STRING): Delete.
33183	* config/rs6000/rs6000.md (*mov<mode>_string): Delete TARGET_STRING
33184	parts.  Simplify.
33185	(load_multiple): Delete.
33186	(*ldmsi8): Delete.
33187	(*ldmsi7): Delete.
33188	(*ldmsi6): Delete.
33189	(*ldmsi5): Delete.
33190	(*ldmsi4): Delete.
33191	(*ldmsi3): Delete.
33192	(store_multiple): Delete.
33193	(*stmsi8): Delete.
33194	(*stmsi7): Delete.
33195	(*stmsi6): Delete.
33196	(*stmsi5): Delete.
33197	(*stmsi4): Delete.
33198	(*stmsi3): Delete.
33199	(movmemsi_8reg): Delete.
33200	(corresponding unnamed define_insn): Delete.
33201	(movmemsi_6reg): Delete.
33202	(corresponding unnamed define_insn): Delete.
33203	(movmemsi_4reg): Delete.
33204	(corresponding unnamed define_insn): Delete.
33205	(movmemsi_2reg): Delete.
33206	(corresponding unnamed define_insn): Delete.
33207	(movmemsi_1reg): Delete.
33208	(corresponding unnamed define_insn): Delete.
33209	* config/rs6000/rs6000.opt (mno-string): New.
33210	(mstring): Replace by deprecation warning stub.
33211	* doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mstring.
33212
332132018-01-12  Jakub Jelinek  <jakub@redhat.com>
33214
33215	* regrename.c (regrename_do_replace): If replacing the same
33216	reg multiple times, try to reuse last created gen_raw_REG.
33217
33218	PR debug/81155
33219	* bb-reorder.c (pass_partition_blocks::gate): In lto don't partition
33220	main to workaround a bug in GDB.
33221
332222018-01-12  Tom de Vries  <tom@codesourcery.com>
33223
33224	PR target/83737
33225	* config.gcc (nvptx*-*-*): Set use_gcc_stdint=wrap.
33226
332272018-01-12  Vladimir Makarov  <vmakarov@redhat.com>
33228
33229	PR rtl-optimization/80481
33230	* ira-color.c (get_cap_member): New function.
33231	(allocnos_conflict_by_live_ranges_p): Use it.
33232	(slot_coalesced_allocno_live_ranges_intersect_p): Add assert.
33233	(setup_slot_coalesced_allocno_live_ranges): Ditto.
33234
332352018-01-12  Uros Bizjak  <ubizjak@gmail.com>
33236
33237	PR target/83628
33238	* config/alpha/alpha.md (*saddsi_1): New insn_ans_split pattern.
33239	(*saddl_se_1): Ditto.
33240	(*ssubsi_1): Ditto.
33241	(*ssubl_se_1): Ditto.
33242
332432018-01-12  Richard Sandiford  <richard.sandiford@linaro.org>
33244
33245	* tree-predcom.c (aff_combination_dr_offset): Use wi::to_poly_widest
33246	rather than wi::to_widest for DR_INITs.
33247	* tree-vect-data-refs.c (vect_find_same_alignment_drs): Use
33248	wi::to_poly_offset rather than wi::to_offset for DR_INIT.
33249	(vect_analyze_data_ref_accesses): Require both DR_INITs to be
33250	INTEGER_CSTs.
33251	(vect_analyze_group_access_1): Note that here.
33252
332532018-01-12  Richard Sandiford  <richard.sandiford@linaro.org>
33254
33255	* tree-vectorizer.c (get_vec_alignment_for_array_type): Handle
33256	polynomial type sizes.
33257
332582018-01-12  Richard Sandiford  <richard.sandiford@linaro.org>
33259
33260	* gimplify.c (gimple_add_tmp_var_fn): Allow variables to have a
33261	poly_uint64 size, rather than requiring an unsigned HOST_WIDE_INT size.
33262	(gimple_add_tmp_var): Likewise.
33263
332642018-01-12  Martin Liska  <mliska@suse.cz>
33265
33266	* gimple.c (gimple_alloc_counts): Use uint64_t instead of int.
33267	(gimple_alloc_sizes): Likewise.
33268	(dump_gimple_statistics): Use PRIu64 in printf format.
33269	* gimple.h: Change uint64_t to int.
33270
332712018-01-12  Martin Liska  <mliska@suse.cz>
33272
33273	* tree-core.h: Use uint64_t instead of int.
33274	* tree.c (tree_node_counts): Likewise.
33275	(tree_node_sizes): Likewise.
33276	(dump_tree_statistics): Use PRIu64 in printf format.
33277
332782018-01-12  Martin Liska  <mliska@suse.cz>
33279
33280	* Makefile.in: As qsort_chk is implemented in vec.c, add
33281	vec.o to linkage of gencfn-macros.
33282	* tree.c (build_new_poly_int_cst): Add CXX_MEM_STAT_INFO as it's
33283	passing the info to record_node_allocation_statistics.
33284	(test_vector_cst_patterns): Add CXX_MEM_STAT_INFO to declaration
33285	and pass the info.
33286	* ggc-common.c (struct ggc_usage): Add operator== and use
33287	it in operator< and compare function.
33288	* mem-stats.h (struct mem_usage): Likewise.
33289	* vec.c (struct vec_usage): Remove operator< and compare
33290	function. Can be simply inherited.
33291
332922018-01-12  Martin Jambor  <mjambor@suse.cz>
33293
33294	PR target/81616
33295	* params.def: New parameter PARAM_AVOID_FMA_MAX_BITS.
33296	* tree-ssa-math-opts.c: Include domwalk.h.
33297	(convert_mult_to_fma_1): New function.
33298	(fma_transformation_info): New type.
33299	(fma_deferring_state): Likewise.
33300	(cancel_fma_deferring): New function.
33301	(result_of_phi): Likewise.
33302	(last_fma_candidate_feeds_initial_phi): Likewise.
33303	(convert_mult_to_fma): Added deferring logic, split actual
33304	transformation to convert_mult_to_fma_1.
33305	(math_opts_dom_walker): New type.
33306	(math_opts_dom_walker::after_dom_children): New method, body moved
33307	here from pass_optimize_widening_mul::execute, added deferring logic
33308	bits.
33309	(pass_optimize_widening_mul::execute): Moved most of code to
33310	math_opts_dom_walker::after_dom_children.
33311	* config/i386/x86-tune.def (X86_TUNE_AVOID_128FMA_CHAINS): New.
33312	* config/i386/i386.c (ix86_option_override_internal): Added
33313	maybe_setting of PARAM_AVOID_FMA_MAX_BITS.
33314
333152018-01-12  Richard Biener  <rguenther@suse.de>
33316
33317	PR debug/83157
33318	* dwarf2out.c (gen_variable_die): Do not reset old_die for
33319	inline instance vars.
33320
333212018-01-12  Oleg Endo  <olegendo@gcc.gnu.org>
33322
33323	PR target/81819
33324	* config/rx/rx.c (rx_is_restricted_memory_address):
33325	Handle SUBREG case.
33326
333272018-01-12  Richard Biener  <rguenther@suse.de>
33328
33329	PR tree-optimization/80846
33330	* target.def (split_reduction): New target hook.
33331	* targhooks.c (default_split_reduction): New function.
33332	* targhooks.h (default_split_reduction): Declare.
33333	* tree-vect-loop.c (vect_create_epilog_for_reduction): If the
33334	target requests first reduce vectors by combining low and high
33335	parts.
33336	* tree-vect-stmts.c (vect_gen_perm_mask_any): Adjust.
33337	(get_vectype_for_scalar_type_and_size): Export.
33338	* tree-vectorizer.h (get_vectype_for_scalar_type_and_size): Declare.
33339	* doc/tm.texi.in (TARGET_VECTORIZE_SPLIT_REDUCTION): Document.
33340	* doc/tm.texi: Regenerate.
33341	* config/i386/i386.c (ix86_split_reduction): Implement
33342	TARGET_VECTORIZE_SPLIT_REDUCTION.
33343
333442018-01-12  Eric Botcazou  <ebotcazou@adacore.com>
33345
33346	PR target/83368
33347	* config/sparc/sparc.h (PIC_OFFSET_TABLE_REGNUM): Set to INVALID_REGNUM
33348	in PIC mode except for TARGET_VXWORKS_RTP.
33349	* config/sparc/sparc.c: Include cfgrtl.h.
33350	(TARGET_INIT_PIC_REG): Define.
33351	(TARGET_USE_PSEUDO_PIC_REG): Likewise.
33352	(sparc_pic_register_p): New predicate.
33353	(sparc_legitimate_address_p): Use it.
33354	(sparc_legitimize_pic_address): Likewise.
33355	(sparc_delegitimize_address): Likewise.
33356	(sparc_mode_dependent_address_p): Likewise.
33357	(gen_load_pcrel_sym): Remove 4th parameter.
33358	(load_got_register): Adjust call to above.  Remove obsolete stuff.
33359	(sparc_expand_prologue): Do not call load_got_register here.
33360	(sparc_flat_expand_prologue): Likewise.
33361	(sparc_output_mi_thunk): Set the pic_offset_table_rtx object.
33362	(sparc_use_pseudo_pic_reg): New function.
33363	(sparc_init_pic_reg): Likewise.
33364	* config/sparc/sparc.md (vxworks_load_got): Set the GOT register.
33365	(builtin_setjmp_receiver): Enable only for TARGET_VXWORKS_RTP.
33366
333672018-01-12  Christophe Lyon  <christophe.lyon@linaro.org>
33368
33369	* doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
33370	Add item for branch_cost.
33371
333722018-01-12  Eric Botcazou  <ebotcazou@adacore.com>
33373
33374	PR rtl-optimization/83565
33375	* rtlanal.c (nonzero_bits1): On WORD_REGISTER_OPERATIONS machines, do
33376	not extend the result to a larger mode for rotate operations.
33377	(num_sign_bit_copies1): Likewise.
33378
333792018-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33380
33381	PR target/40411
33382	* config/sol2.h (STARTFILE_ARCH_SPEC): Don't use with -shared or
33383	-symbolic.
33384	Use values-Xc.o for -pedantic.
33385	Link with values-xpg4.o for C90, values-xpg6.o otherwise.
33386
333872018-01-12  Martin Liska  <mliska@suse.cz>
33388
33389	PR ipa/83054
33390	* ipa-devirt.c (final_warning_record::grow_type_warnings):
33391	New function.
33392	(possible_polymorphic_call_targets): Use it.
33393	(ipa_devirt): Likewise.
33394
333952018-01-12  Martin Liska  <mliska@suse.cz>
33396
33397	* profile-count.h (enum profile_quality): Use 0 as invalid
33398	enum value of profile_quality.
33399
334002018-01-12  Chung-Ju Wu  <jasonwucj@gmail.com>
33401
33402	* doc/invoke.texi (NDS32 Options): Add -mext-perf, -mext-perf2 and
33403	-mext-string options.
33404
334052018-01-12  Richard Biener  <rguenther@suse.de>
33406
33407	* lto-streamer-out.c (DFS::DFS_write_tree_body): Process
33408	DECL_DEBUG_EXPR conditional on DECL_HAS_DEBUG_EXPR_P.
33409	* tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
33410	Likewise.
33411	* tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
33412
334132018-01-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
33414
33415	* configure.ac (--with-long-double-format): Add support for the
33416	configuration option to change the default long double format on
33417	PowerPC systems.
33418	* config.gcc (powerpc*-linux*-*): Likewise.
33419	* configure: Regenerate.
33420	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If long
33421	double is IEEE, define __KC__ and __KF__ to allow floatn.h to be
33422	used without modification.
33423
334242018-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33425
33426	* config/rs6000/rs6000-builtin.def (BU_P7_MISC_X): New #define.
33427	(SPEC_BARRIER): New instantiation of BU_P7_MISC_X.
33428	* config/rs6000/rs6000.c (rs6000_expand_builtin): Handle
33429	MISC_BUILTIN_SPEC_BARRIER.
33430	(rs6000_init_builtins): Likewise.
33431	* config/rs6000/rs6000.md (UNSPECV_SPEC_BARRIER): New UNSPECV
33432	enum value.
33433	(speculation_barrier): New define_insn.
33434	* doc/extend.texi: Document __builtin_speculation_barrier.
33435
334362018-01-11  Jakub Jelinek  <jakub@redhat.com>
33437
33438	PR target/83203
33439	* config/i386/i386.c (ix86_expand_vector_init_one_nonzero): If one_var
33440	is 0, for V{8,16}S[IF] and V[48]D[IF]mode use gen_vec_set<mode>_0.
33441	* config/i386/sse.md (VI8_AVX_AVX512F, VI4F_256_512): New mode
33442	iterators.
33443	(ssescalarmodesuffix): Add 512-bit vectors.  Use "d" or "q" for
33444	integral modes instead of "ss" and "sd".
33445	(vec_set<mode>_0): New define_insns for 256-bit and 512-bit
33446	vectors with 32-bit and 64-bit elements.
33447	(vecdupssescalarmodesuffix): New mode attribute.
33448	(vec_dup<mode>): Use it.
33449
334502018-01-11  H.J. Lu  <hongjiu.lu@intel.com>
33451
33452	PR target/83330
33453	* config/i386/i386.c (ix86_compute_frame_layout): Align stack
33454	frame if argument is passed on stack.
33455
334562018-01-11  Jakub Jelinek  <jakub@redhat.com>
33457
33458	PR target/82682
33459	* ree.c (combine_reaching_defs): Optimize also
33460	reg2=exp; reg1=reg2; reg2=any_extend(reg1); into
33461	reg2=any_extend(exp); reg1=reg2;, formatting fix.
33462
334632018-01-11  Jan Hubicka  <hubicka@ucw.cz>
33464
33465	PR middle-end/83189
33466	* gimple-ssa-isolate-paths.c (isolate_path): Fix profile update.
33467
334682018-01-11  Jan Hubicka  <hubicka@ucw.cz>
33469
33470	PR middle-end/83718
33471	* tree-inline.c (copy_cfg_body): Adjust num&den for scaling
33472	after they are computed.
33473
334742018-01-11  Bin Cheng  <bin.cheng@arm.com>
33475
33476	PR tree-optimization/83695
33477	* gimple-loop-linterchange.cc
33478	(tree_loop_interchange::interchange_loops): Call scev_reset_htab to
33479	reset cached scev information after interchange.
33480	(pass_linterchange::execute): Remove call to scev_reset_htab.
33481
334822018-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33483
33484	* config/arm/arm_neon.h (vfmlal_lane_low_u32, vfmlal_lane_high_u32,
33485	vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32, vfmlal_laneq_low_u32,
33486	vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32, vfmlal_laneq_high_u32,
33487	vfmlsl_lane_low_u32, vfmlsl_lane_high_u32, vfmlslq_laneq_low_u32,
33488	vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32, vfmlslq_laneq_high_u32,
33489	vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32): Define.
33490	* config/arm/arm_neon_builtins.def (vfmal_lane_low,
33491	vfmal_lane_lowv4hf, vfmal_lane_lowv8hf, vfmal_lane_high,
33492	vfmal_lane_highv4hf, vfmal_lane_highv8hf, vfmsl_lane_low,
33493	vfmsl_lane_lowv4hf, vfmsl_lane_lowv8hf, vfmsl_lane_high,
33494	vfmsl_lane_highv4hf, vfmsl_lane_highv8hf): New sets of builtins.
33495	* config/arm/iterators.md (VFMLSEL2, vfmlsel2): New mode attributes.
33496	(V_lane_reg): Likewise.
33497	* config/arm/neon.md (neon_vfm<vfml_op>l_lane_<vfml_half><VCVTF:mode>):
33498	New define_expand.
33499	(neon_vfm<vfml_op>l_lane_<vfml_half><vfmlsel2><mode>): Likewise.
33500	(vfmal_lane_low<mode>_intrinsic,
33501	vfmal_lane_low<vfmlsel2><mode>_intrinsic,
33502	vfmal_lane_high<vfmlsel2><mode>_intrinsic,
33503	vfmal_lane_high<mode>_intrinsic, vfmsl_lane_low<mode>_intrinsic,
33504	vfmsl_lane_low<vfmlsel2><mode>_intrinsic,
33505	vfmsl_lane_high<vfmlsel2><mode>_intrinsic,
33506	vfmsl_lane_high<mode>_intrinsic): New define_insns.
33507
335082018-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33509
33510	* config/arm/arm-cpus.in (fp16fml): New feature.
33511	(ALL_SIMD): Add fp16fml.
33512	(armv8.2-a): Add fp16fml as an option.
33513	(armv8.3-a): Likewise.
33514	(armv8.4-a): Add fp16fml as part of fp16.
33515	* config/arm/arm.h (TARGET_FP16FML): Define.
33516	* config/arm/arm-c.c (arm_cpu_builtins): Define __ARM_FEATURE_FP16_FML
33517	when appropriate.
33518	* config/arm/arm-modes.def (V2HF): Define.
33519	* config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
33520	vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32,
33521	vfmlslq_low_u32, vfmlalq_high_u32, vfmlslq_high_u32): Define.
33522	* config/arm/arm_neon_builtins.def (vfmal_low, vfmal_high,
33523	vfmsl_low, vfmsl_high): New set of builtins.
33524	* config/arm/iterators.md (PLUSMINUS): New code iterator.
33525	(vfml_op): New code attribute.
33526	(VFMLHALVES): New int iterator.
33527	(VFML, VFMLSEL): New mode attributes.
33528	(V_reg): Define mapping for V2HF.
33529	(V_hi, V_lo): New mode attributes.
33530	(VF_constraint): Likewise.
33531	(vfml_half, vfml_half_selector): New int attributes.
33532	* config/arm/neon.md (neon_vfm<vfml_op>l_<vfml_half><mode>): New
33533	define_expand.
33534	(vfmal_low<mode>_intrinsic, vfmsl_high<mode>_intrinsic,
33535	vfmal_high<mode>_intrinsic, vfmsl_low<mode>_intrinsic):
33536	New define_insn.
33537	* config/arm/t-arm-elf (v8_fps): Add fp16fml.
33538	* config/arm/t-multilib (v8_2_a_simd_variants): Add fp16fml.
33539	* config/arm/unspecs.md (UNSPEC_VFML_LO, UNSPEC_VFML_HI): New unspecs.
33540	* doc/invoke.texi (ARM Options): Document fp16fml.  Update armv8.4-a
33541	documentation.
33542	* doc/sourcebuild.texi (arm_fp16fml_neon_ok, arm_fp16fml_neon):
33543	Document new effective target and option set.
33544
335452018-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33546
33547	* config/arm/arm-cpus.in (armv8_4): New feature.
33548	(ARMv8_4a): New fgroup.
33549	(armv8.4-a): New arch.
33550	* config/arm/arm-tables.opt: Regenerate.
33551	* config/arm/t-aprofile: Add matching rules for -march=armv8.4-a.
33552	* config/arm/t-arm-elf (all_v8_archs): Add armv8.4-a.
33553	* config/arm/t-multilib (v8_4_a_simd_variants): New variable.
33554	Add matching rules for -march=armv8.4-a and extensions.
33555	* doc/invoke.texi (ARM Options): Document -march=armv8.4-a.
33556
335572018-01-11  Oleg Endo  <olegendo@gcc.gnu.org>
33558
33559	PR target/81821
33560	* config/rx/rx.md (BW): New mode attribute.
33561	(sync_lock_test_and_setsi): Add mode suffix to insn output.
33562
335632018-01-11  Richard Biener  <rguenther@suse.de>
33564
33565	PR tree-optimization/83435
33566	* graphite.c (canonicalize_loop_form): Ignore fake loop exit edges.
33567	* graphite-scop-detection.c (scop_detection::get_sese): Likewise.
33568	* tree-vrp.c (add_assert_info): Drop TREE_OVERFLOW if they appear.
33569
335702018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
33571	    Alan Hayward  <alan.hayward@arm.com>
33572	    David Sherwood  <david.sherwood@arm.com>
33573
33574	* config/aarch64/aarch64.c (aarch64_address_info): Add a const_offset
33575	field.
33576	(aarch64_classify_address): Initialize it.  Track polynomial offsets.
33577	(aarch64_print_address_internal): Use it to check for a zero offset.
33578
335792018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
33580	    Alan Hayward  <alan.hayward@arm.com>
33581	    David Sherwood  <david.sherwood@arm.com>
33582
33583	* config/aarch64/aarch64-modes.def (NUM_POLY_INT_COEFFS): Set to 2.
33584	* config/aarch64/aarch64-protos.h (aarch64_initial_elimination_offset):
33585	Return a poly_int64 rather than a HOST_WIDE_INT.
33586	(aarch64_offset_7bit_signed_scaled_p): Take the offset as a poly_int64
33587	rather than a HOST_WIDE_INT.
33588	* config/aarch64/aarch64.h (aarch64_frame): Protect with
33589	HAVE_POLY_INT_H rather than HOST_WIDE_INT.  Change locals_offset,
33590	hard_fp_offset, frame_size, initial_adjust, callee_offset and
33591	final_offset from HOST_WIDE_INT to poly_int64.
33592	* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
33593	to_constant when getting the number of units in an Advanced SIMD
33594	mode.
33595	(aarch64_builtin_vectorized_function): Check for a constant number
33596	of units.
33597	* config/aarch64/aarch64-simd.md (mov<mode>): Handle polynomial
33598	GET_MODE_SIZE.
33599	(aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): Use the nunits
33600	attribute instead of GET_MODE_NUNITS.
33601	* config/aarch64/aarch64.c (aarch64_hard_regno_nregs)
33602	(aarch64_class_max_nregs): Use the constant_lowest_bound of the
33603	GET_MODE_SIZE for fixed-size registers.
33604	(aarch64_const_vec_all_same_in_range_p): Use const_vec_duplicate_p.
33605	(aarch64_hard_regno_call_part_clobbered, aarch64_classify_index)
33606	(aarch64_mode_valid_for_sched_fusion_p, aarch64_classify_address)
33607	(aarch64_legitimize_address_displacement, aarch64_secondary_reload)
33608	(aarch64_print_operand, aarch64_print_address_internal)
33609	(aarch64_address_cost, aarch64_rtx_costs, aarch64_register_move_cost)
33610	(aarch64_short_vector_p, aapcs_vfp_sub_candidate)
33611	(aarch64_simd_attr_length_rglist, aarch64_operands_ok_for_ldpstp):
33612	Handle polynomial GET_MODE_SIZE.
33613	(aarch64_hard_regno_caller_save_mode): Likewise.  Return modes
33614	wider than SImode without modification.
33615	(tls_symbolic_operand_type): Use strip_offset instead of split_const.
33616	(aarch64_pass_by_reference, aarch64_layout_arg, aarch64_pad_reg_upward)
33617	(aarch64_gimplify_va_arg_expr): Assert that we don't yet handle
33618	passing and returning SVE modes.
33619	(aarch64_function_value, aarch64_layout_arg): Use gen_int_mode
33620	rather than GEN_INT.
33621	(aarch64_emit_probe_stack_range): Take the size as a poly_int64
33622	rather than a HOST_WIDE_INT, but call sorry if it isn't constant.
33623	(aarch64_allocate_and_probe_stack_space): Likewise.
33624	(aarch64_layout_frame): Cope with polynomial offsets.
33625	(aarch64_save_callee_saves, aarch64_restore_callee_saves): Take the
33626	start_offset as a poly_int64 rather than a HOST_WIDE_INT.  Track
33627	polynomial offsets.
33628	(offset_9bit_signed_unscaled_p, offset_12bit_unsigned_scaled_p)
33629	(aarch64_offset_7bit_signed_scaled_p): Take the offset as a
33630	poly_int64 rather than a HOST_WIDE_INT.
33631	(aarch64_get_separate_components, aarch64_process_components)
33632	(aarch64_expand_prologue, aarch64_expand_epilogue)
33633	(aarch64_use_return_insn_p): Handle polynomial frame offsets.
33634	(aarch64_anchor_offset): New function, split out from...
33635	(aarch64_legitimize_address): ...here.
33636	(aarch64_builtin_vectorization_cost): Handle polynomial
33637	TYPE_VECTOR_SUBPARTS.
33638	(aarch64_simd_check_vect_par_cnst_half): Handle polynomial
33639	GET_MODE_NUNITS.
33640	(aarch64_simd_make_constant, aarch64_expand_vector_init): Get the
33641	number of elements from the PARALLEL rather than the mode.
33642	(aarch64_shift_truncation_mask): Use GET_MODE_UNIT_BITSIZE
33643	rather than GET_MODE_BITSIZE.
33644	(aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_ext)
33645	(aarch64_evpc_rev, aarch64_evpc_dup, aarch64_evpc_zip)
33646	(aarch64_expand_vec_perm_const_1): Handle polynomial
33647	d->perm.length () and d->perm elements.
33648	(aarch64_evpc_tbl): Likewise.  Use nelt rather than GET_MODE_NUNITS.
33649	Apply to_constant to d->perm elements.
33650	(aarch64_simd_valid_immediate, aarch64_vec_fpconst_pow_of_2): Handle
33651	polynomial CONST_VECTOR_NUNITS.
33652	(aarch64_move_pointer): Take amount as a poly_int64 rather
33653	than an int.
33654	(aarch64_progress_pointer): Avoid temporary variable.
33655	* config/aarch64/aarch64.md (aarch64_<crc_variant>): Use
33656	the mode attribute instead of GET_MODE.
33657
336582018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
33659	    Alan Hayward  <alan.hayward@arm.com>
33660	    David Sherwood  <david.sherwood@arm.com>
33661
33662	* config/aarch64/aarch64.c (aarch64_force_temporary): Assert that
33663	x exists before using it.
33664	(aarch64_add_constant_internal): Rename to...
33665	(aarch64_add_offset_1): ...this.  Replace regnum with separate
33666	src and dest rtxes.  Handle the case in which they're different,
33667	including when the offset is zero.  Replace scratchreg with an rtx.
33668	Use 2 additions if there is no spare register into which we can
33669	move a 16-bit constant.
33670	(aarch64_add_constant): Delete.
33671	(aarch64_add_offset): Replace reg with separate src and dest
33672	rtxes.  Take a poly_int64 offset instead of a HOST_WIDE_INT.
33673	Use aarch64_add_offset_1.
33674	(aarch64_add_sp, aarch64_sub_sp): Take the scratch register as
33675	an rtx rather than an int.  Take the delta as a poly_int64
33676	rather than a HOST_WIDE_INT.  Use aarch64_add_offset.
33677	(aarch64_expand_mov_immediate): Update uses of aarch64_add_offset.
33678	(aarch64_expand_prologue): Update calls to aarch64_sub_sp,
33679	aarch64_allocate_and_probe_stack_space and aarch64_add_offset.
33680	(aarch64_expand_epilogue): Update calls to aarch64_add_offset
33681	and aarch64_add_sp.
33682	(aarch64_output_mi_thunk): Use aarch64_add_offset rather than
33683	aarch64_add_constant.
33684
336852018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
33686
33687	* config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
33688	Use scalar_float_mode.
33689
336902018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
33691
33692	* config/aarch64/aarch64-simd.md
33693	(aarch64_fml<f16mac1>l<f16quad>_low<mode>): Avoid GET_MODE_NUNITS.
33694	(aarch64_fml<f16mac1>l<f16quad>_high<mode>): Likewise.
33695	(aarch64_fml<f16mac1>l_lane_lowv2sf): Likewise.
33696	(aarch64_fml<f16mac1>l_lane_highv2sf): Likewise.
33697	(aarch64_fml<f16mac1>lq_laneq_lowv4sf): Likewise.
33698	(aarch64_fml<f16mac1>lq_laneq_highv4sf): Likewise.
33699	(aarch64_fml<f16mac1>l_laneq_lowv2sf): Likewise.
33700	(aarch64_fml<f16mac1>l_laneq_highv2sf): Likewise.
33701	(aarch64_fml<f16mac1>lq_lane_lowv4sf): Likewise.
33702	(aarch64_fml<f16mac1>lq_lane_highv4sf): Likewise.
33703
337042018-01-11  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
33705
33706	PR target/83514
33707	* config/arm/arm.c (arm_declare_function_name): Set arch_to_print if
33708	targ_options->x_arm_arch_string is non NULL.
33709
337102018-01-11  Tamar Christina  <tamar.christina@arm.com>
33711
33712	* config/aarch64/aarch64.h
33713	(AARCH64_FL_FOR_ARCH8_4): Add  AARCH64_FL_DOTPROD.
33714
337152018-01-11  Sudakshina Das  <sudi.das@arm.com>
33716
33717	PR target/82096
33718	* expmed.c (emit_store_flag_force): Swap if const op0
33719	and change VOIDmode to mode of op0.
33720
337212018-01-11  Richard Sandiford  <richard.sandiford@linaro.org>
33722
33723	PR rtl-optimization/83761
33724	* caller-save.c (replace_reg_with_saved_mem): Pass bits rather
33725	than bytes to mode_for_size.
33726
337272018-01-10  Jan Hubicka  <hubicka@ucw.cz>
33728
33729	PR middle-end/83189
33730	* gfortran.fortran-torture/compile/pr83189.f90: New testcase.
33731	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Handle zero
33732	profile.
33733
337342018-01-10  Jan Hubicka  <hubicka@ucw.cz>
33735
33736	PR middle-end/83575
33737	* cfgrtl.c (rtl_verify_edges): Only verify fixability of partition
33738	when in layout mode.
33739	(cfg_layout_finalize): Do not verify cfg before we are out of layout.
33740	* cfgcleanup.c (try_optimize_cfg): Only verify flow info when doing
33741	partition fixup.
33742
337432018-01-10  Michael Collison  <michael.collison@arm.com>
33744
33745	* config/aarch64/aarch64-modes.def (V2HF): New VECTOR_MODE.
33746	* config/aarch64/aarch64-option-extension.def: Add
33747	AARCH64_OPT_EXTENSION of 'fp16fml'.
33748	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
33749	(__ARM_FEATURE_FP16_FML): Define if TARGET_F16FML is true.
33750	* config/aarch64/predicates.md (aarch64_lane_imm3): New predicate.
33751	* config/aarch64/constraints.md (Ui7): New constraint.
33752	* config/aarch64/iterators.md (VFMLA_W): New mode iterator.
33753	(VFMLA_SEL_W): Ditto.
33754	(f16quad): Ditto.
33755	(f16mac1): Ditto.
33756	(VFMLA16_LOW): New int iterator.
33757	(VFMLA16_HIGH): Ditto.
33758	(UNSPEC_FMLAL): New unspec.
33759	(UNSPEC_FMLSL): Ditto.
33760	(UNSPEC_FMLAL2): Ditto.
33761	(UNSPEC_FMLSL2): Ditto.
33762	(f16mac): New code attribute.
33763	* config/aarch64/aarch64-simd-builtins.def
33764	(aarch64_fmlal_lowv2sf): Ditto.
33765	(aarch64_fmlsl_lowv2sf): Ditto.
33766	(aarch64_fmlalq_lowv4sf): Ditto.
33767	(aarch64_fmlslq_lowv4sf): Ditto.
33768	(aarch64_fmlal_highv2sf): Ditto.
33769	(aarch64_fmlsl_highv2sf): Ditto.
33770	(aarch64_fmlalq_highv4sf): Ditto.
33771	(aarch64_fmlslq_highv4sf): Ditto.
33772	(aarch64_fmlal_lane_lowv2sf): Ditto.
33773	(aarch64_fmlsl_lane_lowv2sf): Ditto.
33774	(aarch64_fmlal_laneq_lowv2sf): Ditto.
33775	(aarch64_fmlsl_laneq_lowv2sf): Ditto.
33776	(aarch64_fmlalq_lane_lowv4sf): Ditto.
33777	(aarch64_fmlsl_lane_lowv4sf): Ditto.
33778	(aarch64_fmlalq_laneq_lowv4sf): Ditto.
33779	(aarch64_fmlsl_laneq_lowv4sf): Ditto.
33780	(aarch64_fmlal_lane_highv2sf): Ditto.
33781	(aarch64_fmlsl_lane_highv2sf): Ditto.
33782	(aarch64_fmlal_laneq_highv2sf): Ditto.
33783	(aarch64_fmlsl_laneq_highv2sf): Ditto.
33784	(aarch64_fmlalq_lane_highv4sf): Ditto.
33785	(aarch64_fmlsl_lane_highv4sf): Ditto.
33786	(aarch64_fmlalq_laneq_highv4sf): Ditto.
33787	(aarch64_fmlsl_laneq_highv4sf): Ditto.
33788	* config/aarch64/aarch64-simd.md:
33789	(aarch64_fml<f16mac1>l<f16quad>_low<mode>): New pattern.
33790	(aarch64_fml<f16mac1>l<f16quad>_high<mode>): Ditto.
33791	(aarch64_simd_fml<f16mac1>l<f16quad>_low<mode>): Ditto.
33792	(aarch64_simd_fml<f16mac1>l<f16quad>_high<mode>): Ditto.
33793	(aarch64_fml<f16mac1>l_lane_lowv2sf): Ditto.
33794	(aarch64_fml<f16mac1>l_lane_highv2sf): Ditto.
33795	(aarch64_simd_fml<f16mac>l_lane_lowv2sf): Ditto.
33796	(aarch64_simd_fml<f16mac>l_lane_highv2sf): Ditto.
33797	(aarch64_fml<f16mac1>lq_laneq_lowv4sf): Ditto.
33798	(aarch64_fml<f16mac1>lq_laneq_highv4sf): Ditto.
33799	(aarch64_simd_fml<f16mac>lq_laneq_lowv4sf): Ditto.
33800	(aarch64_simd_fml<f16mac>lq_laneq_highv4sf): Ditto.
33801	(aarch64_fml<f16mac1>l_laneq_lowv2sf): Ditto.
33802	(aarch64_fml<f16mac1>l_laneq_highv2sf): Ditto.
33803	(aarch64_simd_fml<f16mac>l_laneq_lowv2sf): Ditto.
33804	(aarch64_simd_fml<f16mac>l_laneq_highv2sf): Ditto.
33805	(aarch64_fml<f16mac1>lq_lane_lowv4sf): Ditto.
33806	(aarch64_fml<f16mac1>lq_lane_highv4sf): Ditto.
33807	(aarch64_simd_fml<f16mac>lq_lane_lowv4sf): Ditto.
33808	(aarch64_simd_fml<f16mac>lq_lane_highv4sf): Ditto.
33809	* config/aarch64/arm_neon.h (vfmlal_low_u32): New intrinsic.
33810	(vfmlsl_low_u32): Ditto.
33811	(vfmlalq_low_u32): Ditto.
33812	(vfmlslq_low_u32): Ditto.
33813	(vfmlal_high_u32): Ditto.
33814	(vfmlsl_high_u32): Ditto.
33815	(vfmlalq_high_u32): Ditto.
33816	(vfmlslq_high_u32): Ditto.
33817	(vfmlal_lane_low_u32): Ditto.
33818	(vfmlsl_lane_low_u32): Ditto.
33819	(vfmlal_laneq_low_u32): Ditto.
33820	(vfmlsl_laneq_low_u32): Ditto.
33821	(vfmlalq_lane_low_u32): Ditto.
33822	(vfmlslq_lane_low_u32): Ditto.
33823	(vfmlalq_laneq_low_u32): Ditto.
33824	(vfmlslq_laneq_low_u32): Ditto.
33825	(vfmlal_lane_high_u32): Ditto.
33826	(vfmlsl_lane_high_u32): Ditto.
33827	(vfmlal_laneq_high_u32): Ditto.
33828	(vfmlsl_laneq_high_u32): Ditto.
33829	(vfmlalq_lane_high_u32): Ditto.
33830	(vfmlslq_lane_high_u32): Ditto.
33831	(vfmlalq_laneq_high_u32): Ditto.
33832	(vfmlslq_laneq_high_u32): Ditto.
33833	* config/aarch64/aarch64.h (AARCH64_FL_F16SML): New flag.
33834	(AARCH64_FL_FOR_ARCH8_4): New.
33835	(AARCH64_ISA_F16FML): New ISA flag.
33836	(TARGET_F16FML): New feature flag for fp16fml.
33837	(doc/invoke.texi): Document new fp16fml option.
33838
338392018-01-10  Michael Collison  <michael.collison@arm.com>
33840
33841	* config/aarch64/aarch64-builtins.c:
33842	(aarch64_types_ternopu_imm_qualifiers, TYPES_TERNOPUI): New.
33843	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
33844	(__ARM_FEATURE_SHA3): Define if TARGET_SHA3 is true.
33845	* config/aarch64/aarch64.h (AARCH64_FL_SHA3): New flags.
33846	(AARCH64_ISA_SHA3): New ISA flag.
33847	(TARGET_SHA3): New feature flag for sha3.
33848	* config/aarch64/iterators.md (sha512_op): New int attribute.
33849	(CRYPTO_SHA512): New int iterator.
33850	(UNSPEC_SHA512H): New unspec.
33851	(UNSPEC_SHA512H2): Ditto.
33852	(UNSPEC_SHA512SU0): Ditto.
33853	(UNSPEC_SHA512SU1): Ditto.
33854	* config/aarch64/aarch64-simd-builtins.def
33855	(aarch64_crypto_sha512hqv2di): New builtin.
33856	(aarch64_crypto_sha512h2qv2di): Ditto.
33857	(aarch64_crypto_sha512su0qv2di): Ditto.
33858	(aarch64_crypto_sha512su1qv2di): Ditto.
33859	(aarch64_eor3qv8hi): Ditto.
33860	(aarch64_rax1qv2di): Ditto.
33861	(aarch64_xarqv2di): Ditto.
33862	(aarch64_bcaxqv8hi): Ditto.
33863	* config/aarch64/aarch64-simd.md:
33864	(aarch64_crypto_sha512h<sha512_op>qv2di): New pattern.
33865	(aarch64_crypto_sha512su0qv2di): Ditto.
33866	(aarch64_crypto_sha512su1qv2di): Ditto.
33867	(aarch64_eor3qv8hi): Ditto.
33868	(aarch64_rax1qv2di): Ditto.
33869	(aarch64_xarqv2di): Ditto.
33870	(aarch64_bcaxqv8hi): Ditto.
33871	* config/aarch64/arm_neon.h (vsha512hq_u64): New intrinsic.
33872	(vsha512h2q_u64): Ditto.
33873	(vsha512su0q_u64): Ditto.
33874	(vsha512su1q_u64): Ditto.
33875	(veor3q_u16): Ditto.
33876	(vrax1q_u64): Ditto.
33877	(vxarq_u64): Ditto.
33878	(vbcaxq_u16): Ditto.
33879	* config/arm/types.md (crypto_sha512): New type attribute.
33880	(crypto_sha3): Ditto.
33881	(doc/invoke.texi): Document new sha3 option.
33882
338832018-01-10  Michael Collison  <michael.collison@arm.com>
33884
33885	* config/aarch64/aarch64-builtins.c:
33886	(aarch64_types_quadopu_imm_qualifiers, TYPES_QUADOPUI): New.
33887	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
33888	(__ARM_FEATURE_SM3): Define if TARGET_SM4 is true.
33889	(__ARM_FEATURE_SM4): Define if TARGET_SM4 is true.
33890	* config/aarch64/aarch64.h (AARCH64_FL_SM4): New flags.
33891	(AARCH64_ISA_SM4): New ISA flag.
33892	(TARGET_SM4): New feature flag for sm4.
33893	* config/aarch64/aarch64-simd-builtins.def
33894	(aarch64_sm3ss1qv4si): Ditto.
33895	(aarch64_sm3tt1aq4si): Ditto.
33896	(aarch64_sm3tt1bq4si): Ditto.
33897	(aarch64_sm3tt2aq4si): Ditto.
33898	(aarch64_sm3tt2bq4si): Ditto.
33899	(aarch64_sm3partw1qv4si): Ditto.
33900	(aarch64_sm3partw2qv4si): Ditto.
33901	(aarch64_sm4eqv4si): Ditto.
33902	(aarch64_sm4ekeyqv4si): Ditto.
33903	* config/aarch64/aarch64-simd.md:
33904	(aarch64_sm3ss1qv4si): Ditto.
33905	(aarch64_sm3tt<sm3tt_op>qv4si): Ditto.
33906	(aarch64_sm3partw<sm3part_op>qv4si): Ditto.
33907	(aarch64_sm4eqv4si): Ditto.
33908	(aarch64_sm4ekeyqv4si): Ditto.
33909	* config/aarch64/iterators.md (sm3tt_op): New int iterator.
33910	(sm3part_op): Ditto.
33911	(CRYPTO_SM3TT): Ditto.
33912	(CRYPTO_SM3PART): Ditto.
33913	(UNSPEC_SM3SS1): New unspec.
33914	(UNSPEC_SM3TT1A): Ditto.
33915	(UNSPEC_SM3TT1B): Ditto.
33916	(UNSPEC_SM3TT2A): Ditto.
33917	(UNSPEC_SM3TT2B): Ditto.
33918	(UNSPEC_SM3PARTW1): Ditto.
33919	(UNSPEC_SM3PARTW2): Ditto.
33920	(UNSPEC_SM4E): Ditto.
33921	(UNSPEC_SM4EKEY): Ditto.
33922	* config/aarch64/constraints.md (Ui2): New constraint.
33923	* config/aarch64/predicates.md (aarch64_imm2): New predicate.
33924	* config/arm/types.md (crypto_sm3): New type attribute.
33925	(crypto_sm4): Ditto.
33926	* config/aarch64/arm_neon.h (vsm3ss1q_u32): New intrinsic.
33927	(vsm3tt1aq_u32): Ditto.
33928	(vsm3tt1bq_u32): Ditto.
33929	(vsm3tt2aq_u32): Ditto.
33930	(vsm3tt2bq_u32): Ditto.
33931	(vsm3partw1q_u32): Ditto.
33932	(vsm3partw2q_u32): Ditto.
33933	(vsm4eq_u32): Ditto.
33934	(vsm4ekeyq_u32): Ditto.
33935	(doc/invoke.texi): Document new sm4 option.
33936
339372018-01-10  Michael Collison  <michael.collison@arm.com>
33938
33939	* config/aarch64/aarch64-arches.def (armv8.4-a): New architecture.
33940	* config/aarch64/aarch64.h (AARCH64_ISA_V8_4): New ISA flag.
33941	(AARCH64_FL_FOR_ARCH8_4): New.
33942	(AARCH64_FL_V8_4): New flag.
33943	(doc/invoke.texi): Document new armv8.4-a option.
33944
339452018-01-10  Michael Collison  <michael.collison@arm.com>
33946
33947	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
33948	(__ARM_FEATURE_AES): Define if TARGET_AES is true.
33949	(__ARM_FEATURE_SHA2): Define if TARGET_SHA2 is true.
33950	* config/aarch64/aarch64-option-extension.def: Add
33951	AARCH64_OPT_EXTENSION of 'sha2'.
33952	(aes): Add AARCH64_OPT_EXTENSION of 'aes'.
33953	(crypto): Disable sha2 and aes if crypto disabled.
33954	(crypto): Enable aes and sha2 if enabled.
33955	(simd): Disable sha2 and aes if simd disabled.
33956	* config/aarch64/aarch64.h (AARCH64_FL_AES, AARCH64_FL_SHA2):
33957	New flags.
33958	(AARCH64_ISA_AES, AARCH64_ISA_SHA2): New ISA flags.
33959	(TARGET_SHA2): New feature flag for sha2.
33960	(TARGET_AES): New feature flag for aes.
33961	* config/aarch64/aarch64-simd.md:
33962	(aarch64_crypto_aes<aes_op>v16qi): Make pattern
33963	conditional on TARGET_AES.
33964	(aarch64_crypto_aes<aesmc_op>v16qi): Ditto.
33965	(aarch64_crypto_sha1hsi): Make pattern conditional
33966	on TARGET_SHA2.
33967	(aarch64_crypto_sha1hv4si): Ditto.
33968	(aarch64_be_crypto_sha1hv4si): Ditto.
33969	(aarch64_crypto_sha1su1v4si): Ditto.
33970	(aarch64_crypto_sha1<sha1_op>v4si): Ditto.
33971	(aarch64_crypto_sha1su0v4si): Ditto.
33972	(aarch64_crypto_sha256h<sha256_op>v4si): Ditto.
33973	(aarch64_crypto_sha256su0v4si): Ditto.
33974	(aarch64_crypto_sha256su1v4si): Ditto.
33975	(doc/invoke.texi): Document new aes and sha2 options.
33976
339772018-01-10  Martin Sebor  <msebor@redhat.com>
33978
33979	PR tree-optimization/83781
33980	* gimple-fold.c (get_range_strlen): Avoid treating arrays of pointers
33981	as string arrays.
33982
339832018-01-11  Martin Sebor  <msebor@gmail.com>
33984	    Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
33985
33986	PR tree-optimization/83501
33987	PR tree-optimization/81703
33988
33989	* tree-ssa-strlen.c (get_string_cst): Rename...
33990	(get_string_len): ...to this.  Handle global constants.
33991	(handle_char_store): Adjust.
33992
339932018-01-10  Kito Cheng  <kito.cheng@gmail.com>
33994	    Jim Wilson  <jimw@sifive.com>
33995
33996	* config/riscv/riscv-protos.h (riscv_output_return): New.
33997	* config/riscv/riscv.c (struct machine_function): New naked_p field.
33998	(riscv_attribute_table, riscv_output_return),
33999	(riscv_handle_fndecl_attribute, riscv_naked_function_p),
34000	(riscv_allocate_stack_slots_for_args, riscv_warn_func_return): New.
34001	(riscv_compute_frame_info): Only compute frame->mask if not a naked
34002	function.
34003	(riscv_expand_prologue): Add early return for naked function.
34004	(riscv_expand_epilogue): Likewise.
34005	(riscv_function_ok_for_sibcall): Return false for naked function.
34006	(riscv_set_current_function): New.
34007	(TARGET_SET_CURRENT_FUNCTION, TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS),
34008	(TARGET_ATTRIBUTE_TABLE, TARGET_WARN_FUNC_RETURN): New.
34009	* config/riscv/riscv.md (simple_return): Call riscv_output_return.
34010	* doc/extend.texi (RISC-V Function Attributes): New.
34011
340122018-01-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
34013
34014	* config/rs6000/rs6000.c (is_complex_IBM_long_double): Explicitly
34015	check for 128-bit long double before checking TCmode.
34016	* config/rs6000/rs6000.h (FLOAT128_IEEE_P): Explicitly check for
34017	128-bit long doubles before checking TFmode or TCmode.
34018	(FLOAT128_IBM_P): Likewise.
34019
340202018-01-10  Martin Sebor  <msebor@redhat.com>
34021
34022	PR tree-optimization/83671
34023	* builtins.c (c_strlen): Unconditionally return zero for the empty
34024	string.
34025	Use -Warray-bounds for warnings.
34026	* gimple-fold.c (get_range_strlen): Handle non-constant lengths
34027	for non-constant array indices with COMPONENT_REF, arrays of
34028	arrays, and pointers to arrays.
34029	(gimple_fold_builtin_strlen): Determine and set length range for
34030	non-constant character arrays.
34031
340322018-01-10  Aldy Hernandez  <aldyh@redhat.com>
34033
34034	PR middle-end/81897
34035	* tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Skip
34036	empty blocks.
34037
340382018-01-10  Eric Botcazou  <ebotcazou@adacore.com>
34039
34040	* dwarf2out.c (dwarf2out_var_location): Do not pass NULL to fprintf.
34041
340422018-01-10  Peter Bergner  <bergner@vnet.ibm.com>
34043
34044	PR target/83399
34045	* config/rs6000/rs6000.c (print_operand) <'y'>: Use
34046	VECTOR_MEM_ALTIVEC_OR_VSX_P.
34047	* config/rs6000/vsx.md (*vsx_le_perm_load_<mode> for VSX_D): Use
34048	indexed_or_indirect_operand predicate.
34049	(*vsx_le_perm_load_<mode> for VSX_W): Likewise.
34050	(*vsx_le_perm_load_v8hi): Likewise.
34051	(*vsx_le_perm_load_v16qi): Likewise.
34052	(*vsx_le_perm_store_<mode> for VSX_D): Likewise.
34053	(*vsx_le_perm_store_<mode> for VSX_W): Likewise.
34054	(*vsx_le_perm_store_v8hi): Likewise.
34055	(*vsx_le_perm_store_v16qi): Likewise.
34056	(eight unnamed splitters): Likewise.
34057
340582018-01-10  Peter Bergner  <bergner@vnet.ibm.com>
34059
34060	* config/rs6000/x86intrin.h: Change #warning to #error. Update message.
34061	* config/rs6000/emmintrin.h: Likewise.
34062	* config/rs6000/mmintrin.h: Likewise.
34063	* config/rs6000/xmmintrin.h: Likewise.
34064
340652018-01-10  David Malcolm  <dmalcolm@redhat.com>
34066
34067	PR c++/43486
34068	* tree-core.h: Document EXPR_LOCATION_WRAPPER_P's usage of
34069	"public_flag".
34070	* tree.c (tree_nop_conversion): Return true for location wrapper
34071	nodes.
34072	(maybe_wrap_with_location): New function.
34073	(selftest::check_strip_nops): New function.
34074	(selftest::test_location_wrappers): New function.
34075	(selftest::tree_c_tests): Call it.
34076	* tree.h (STRIP_ANY_LOCATION_WRAPPER): New macro.
34077	(maybe_wrap_with_location): New decl.
34078	(EXPR_LOCATION_WRAPPER_P): New macro.
34079	(location_wrapper_p): New inline function.
34080	(tree_strip_any_location_wrapper): New inline function.
34081
340822018-01-10  H.J. Lu  <hongjiu.lu@intel.com>
34083
34084	PR target/83735
34085	* config/i386/i386.c (ix86_compute_frame_layout): Always adjust
34086	stack_realign_offset for the largest alignment of stack slot
34087	actually used.
34088	(ix86_find_max_used_stack_alignment): New function.
34089	(ix86_finalize_stack_frame_flags): Use it.  Set
34090	max_used_stack_alignment if we don't realign stack.
34091	* config/i386/i386.h (machine_function): Add
34092	max_used_stack_alignment.
34093
340942018-01-10  Christophe Lyon  <christophe.lyon@linaro.org>
34095
34096	* config/arm/arm.opt (-mbranch-cost): New option.
34097	* config/arm/arm.h (BRANCH_COST): Take arm_branch_cost into
34098	account.
34099
341002018-01-10  Segher Boessenkool  <segher@kernel.crashing.org>
34101
34102	PR target/83629
34103	* config/rs6000/rs6000.md (load_toc_v4_PIC_2, load_toc_v4_PIC_3b,
34104	load_toc_v4_PIC_3c): Wrap const term in CONST RTL.
34105
341062018-01-10  Richard Biener  <rguenther@suse.de>
34107
34108	PR debug/83765
34109	* dwarf2out.c (gen_subprogram_die): Hoist old_die && declaration
34110	early out so it also covers the case where we have a non-NULL
34111	origin.
34112
341132018-01-10  Richard Sandiford  <richard.sandiford@linaro.org>
34114
34115	PR tree-optimization/83753
34116	* tree-vect-stmts.c (get_group_load_store_type): Use VMAT_CONTIGUOUS
34117	for non-strided grouped accesses if the number of elements is 1.
34118
341192018-01-10  Jan Hubicka  <hubicka@ucw.cz>
34120
34121	PR target/81616
34122	* i386.c (ix86_vectorize_builtin_gather): Check TARGET_USE_GATHER.
34123	* i386.h (TARGET_USE_GATHER): Define.
34124	* x86-tune.def (X86_TUNE_USE_GATHER): New.
34125
341262018-01-10  Martin Liska  <mliska@suse.cz>
34127
34128	PR bootstrap/82831
34129	* basic-block.h (CLEANUP_NO_PARTITIONING): New define.
34130	* bb-reorder.c (pass_reorder_blocks::execute): Do not clean up
34131	partitioning.
34132	* cfgcleanup.c (try_optimize_cfg): Fix up partitioning if
34133	CLEANUP_NO_PARTITIONING is not set.
34134
341352018-01-10  Richard Sandiford  <richard.sandiford@linaro.org>
34136
34137	* doc/rtl.texi: Remove documentation of (const ...) wrappers
34138	for vectors, as a partial revert of r254296.
34139	* rtl.h (const_vec_p): Delete.
34140	(const_vec_duplicate_p): Don't test for vector CONSTs.
34141	(unwrap_const_vec_duplicate, const_vec_series_p): Likewise.
34142	* expmed.c (make_tree): Likewise.
34143
34144	Revert:
34145	* common.md (E, F): Use CONSTANT_P instead of checking for
34146	CONST_VECTOR.
34147	* emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of
34148	checking for CONST_VECTOR.
34149
341502018-01-09  Jan Hubicka  <hubicka@ucw.cz>
34151
34152	PR middle-end/83575
34153	* predict.c (force_edge_cold): Handle in more sane way edges
34154	with no prediction.
34155
341562018-01-09  Carl Love  <cel@us.ibm.com>
34157
34158	* config/rs6002/altivec.md (p8_vmrgow): Add support for V2DI, V2DF,
34159	V4SI, V4SF types.
34160	(p8_vmrgew): Add support for V2DI, V2DF, V4SF types.
34161	* config/rs6000/rs6000-builtin.def: Add definitions for FLOAT2_V2DF,
34162	VMRGEW_V2DI, VMRGEW_V2DF, VMRGEW_V4SF, VMRGOW_V4SI, VMRGOW_V4SF,
34163	VMRGOW_V2DI, VMRGOW_V2DF.  Remove definition for VMRGOW.
34164	* config/rs6000/rs6000-c.c (VSX_BUILTIN_VEC_FLOAT2,
34165	P8V_BUILTIN_VEC_VMRGEW, P8V_BUILTIN_VEC_VMRGOW):  Add definitions.
34166	* config/rs6000/rs6000-protos.h: Add extern defition for
34167	rs6000_generate_float2_double_code.
34168	* config/rs6000/rs6000.c (rs6000_generate_float2_double_code): Add
34169	function.
34170	* config/rs6000/vsx.md (vsx_xvcdpsp): Add define_insn.
34171	(float2_v2df): Add define_expand.
34172
341732018-01-09  Uros Bizjak  <ubizjak@gmail.com>
34174
34175	PR target/83628
34176	* combine.c (force_int_to_mode) <case ASHIFT>: Use mode instead of
34177	op_mode in the force_to_mode call.
34178
341792018-01-09  Richard Sandiford  <richard.sandiford@linaro.org>
34180
34181	* config/aarch64/aarch64.c (aarch64_evpc_trn): Use d.perm.series_p
34182	instead of checking each element individually.
34183	(aarch64_evpc_uzp): Likewise.
34184	(aarch64_evpc_zip): Likewise.
34185	(aarch64_evpc_ext): Likewise.
34186	(aarch64_evpc_rev): Likewise.
34187	(aarch64_evpc_dup): Test the encoding for a single duplicated element,
34188	instead of checking each element individually.  Return true without
34189	generating rtl if
34190	(aarch64_vectorize_vec_perm_const): Use all_from_input_p to test
34191	whether all selected elements come from the same input, instead of
34192	checking each element individually.  Remove calls to gen_rtx_REG,
34193	start_sequence and end_sequence and instead assert that no rtl is
34194	generated.
34195
341962018-01-09  Richard Sandiford  <richard.sandiford@linaro.org>
34197
34198	* config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Fix
34199	order of HIGH and CONST checks.
34200
342012018-01-09  Richard Sandiford  <richard.sandiford@linaro.org>
34202
34203	* tree-vect-stmts.c (permute_vec_elements): Create a fresh variable
34204	if the destination isn't an SSA_NAME.
34205
342062018-01-09  Richard Biener  <rguenther@suse.de>
34207
34208	PR tree-optimization/83668
34209	* graphite.c (canonicalize_loop_closed_ssa): Add edge argument,
34210	move prologue...
34211	(canonicalize_loop_form): ... here, renamed from ...
34212	(canonicalize_loop_closed_ssa_form): ... this and amended to
34213	swap successor edges for loop exit blocks to make us use
34214	the RPO order we need for initial schedule generation.
34215
342162018-01-09  Joseph Myers  <joseph@codesourcery.com>
34217
34218	PR tree-optimization/64811
34219	* match.pd: When optimizing comparisons with Inf, avoid
34220	introducing or losing exceptions from comparisons with NaN.
34221
342222018-01-09  Martin Liska  <mliska@suse.cz>
34223
34224	PR sanitizer/82517
34225	* asan.c (shadow_mem_size): Add gcc_assert.
34226
342272018-01-09  Georg-Johann Lay  <avr@gjlay.de>
34228
34229	Don't save registers in main().
34230
34231	PR target/83738
34232	* doc/invoke.texi (AVR Options) [-mmain-is-OS_task]: Document it.
34233	* config/avr/avr.opt (-mmain-is-OS_task): New target option.
34234	* config/avr/avr.c (avr_set_current_function): Don't error if
34235	naked, OS_task or OS_main are specified at the same time.
34236	(avr_function_ok_for_sibcall): Don't disable sibcalls for OS_task,
34237	OS_main.
34238	(avr_insert_attributes) [-mmain-is-OS_task] <main>: Add OS_task
34239	attribute.
34240	* common/config/avr/avr-common.c (avr_option_optimization_table):
34241	Switch on -mmain-is-OS_task for optimizing compilations.
34242
342432018-01-09  Richard Biener  <rguenther@suse.de>
34244
34245	PR tree-optimization/83572
34246	* graphite.c: Include cfganal.h.
34247	(graphite_transform_loops): Connect infinite loops to exit
34248	and remove fake edges at the end.
34249
342502018-01-09  Jan Hubicka  <hubicka@ucw.cz>
34251
34252	* ipa-inline.c (edge_badness): Revert accidental checkin.
34253
342542018-01-09  Jan Hubicka  <hubicka@ucw.cz>
34255
34256	PR ipa/80763
34257	* ipa-comdats.c (set_comdat_group): Only set comdat group of real
34258	symbols; not inline clones.
34259
342602018-01-09  Jakub Jelinek  <jakub@redhat.com>
34261
34262	PR target/83507
34263	* modulo-sched.c (schedule_reg_moves): Punt if we'd need to move
34264	hard registers.  Formatting fixes.
34265
34266	PR preprocessor/83722
34267	* gcc.c (try_generate_repro): Pass
34268	&temp_stderr_files[RETRY_ICE_ATTEMPTS - 1] rather than
34269	&temp_stdout_files[RETRY_ICE_ATTEMPTS - 1] as last argument to
34270	do_report_bug.
34271
342722018-01-08  Monk Chiang  <sh.chiang04@gmail.com>
34273	    Kito Cheng  <kito.cheng@gmail.com>
34274
34275	* config/riscv/riscv.c (machine_function::is_leaf): Remove field.
34276	(riscv_leaf_function_p): Delete.
34277	(riscv_function_ok_for_sibcall): Return false when TARGET_SAVE_RESTORE.
34278
342792018-01-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
34280
34281	* config/rs6000/rs6000-string.c (do_load_for_compare_from_addr): New
34282	function.
34283	(do_ifelse): New function.
34284	(do_isel): New function.
34285	(do_sub3): New function.
34286	(do_add3): New function.
34287	(do_load_mask_compare): New function.
34288	(do_overlap_load_compare): New function.
34289	(expand_compare_loop): New function.
34290	(expand_block_compare): Call expand_compare_loop() when appropriate.
34291	* config/rs6000/rs6000.opt (-mblock-compare-inline-limit): Change
34292	option description.
34293	(-mblock-compare-inline-loop-limit): New option.
34294
342952018-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34296
34297	PR target/83677
34298	* config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
34299	Reverse order of second and third operands in first alternative.
34300	* config/rs6000/rs6000.c (rs6000_expand_vector_set): Reverse order
34301	of first and second elements in UNSPEC_VPERMR vector.
34302	(altivec_expand_vec_perm_le): Likewise.
34303
343042018-01-08  Jeff Law  <law@redhat.com>
34305
34306	PR rtl-optimizatin/81308
34307	* tree-switch-conversion.c (cfg_altered): New file scoped static.
34308	(process_switch): If group_case_labels makes a change, then set
34309	cfg_altered.
34310	(pass_convert_switch::execute): If a switch is converted, then
34311	set cfg_altered.  Return TODO_cfg_cleanup if cfg_altered is true.
34312
34313	PR rtl-optimization/81308
34314	* recog.c (split_all_insns): Conditionally cleanup the CFG after
34315	splitting insns.
34316
343172018-01-08  Vidya Praveen  <vidyapraveen@arm.com>
34318
34319	PR target/83663 - Revert r255946
34320	* config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code
34321	generation for cases where splatting a value is not useful.
34322	* simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
34323	across a vec_duplicate and a paradoxical subreg forming a vector
34324	mode to a vec_concat.
34325
343262018-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34327
34328	* config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping rules for
34329	-march=armv8.3-a variants.
34330	* config/arm/t-multilib: Likewise.
34331	* config/arm/t-arm-elf: Likewise.  Handle dotprod extension.
34332
343332018-01-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
34334
34335	* config/rs6000/rs6000.md (cceq_ior_compare): Remove * so I can use it
34336	to generate rtl.
34337	(cceq_ior_compare_complement): Give it a name so I can use it, and
34338	change boolean_or_operator predicate to boolean_operator so it can
34339	be used to generate a crand.
34340	(eqne): New code iterator.
34341	(bd/bd_neg): New code_attrs.
34342	(<bd>_<mode>): New name for ctr<mode>_internal[12] now combined into
34343	a single define_insn.
34344	(<bd>tf_<mode>): A new insn pattern for the conditional form branch
34345	decrement (bdnzt/bdnzf/bdzt/bdzf).
34346	* config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Updated
34347	with the new names of the branch decrement patterns, and added the
34348	names of the branch decrement conditional patterns.
34349
343502018-01-08  Richard Biener  <rguenther@suse.de>
34351
34352	PR tree-optimization/83563
34353	* graphite.c (canonicalize_loop_closed_ssa_form): Reset the SCEV
34354	cache.
34355
343562018-01-08  Richard Biener  <rguenther@suse.de>
34357
34358	PR middle-end/83713
34359	* convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks.
34360
343612018-01-08  Richard Biener  <rguenther@suse.de>
34362
34363	PR tree-optimization/83685
34364	* tree-ssa-pre.c (create_expression_by_pieces): Do not insert
34365	references to abnormals.
34366
343672018-01-08  Richard Biener  <rguenther@suse.de>
34368
34369	PR lto/83719
34370	* dwarf2out.c (output_indirect_strings): Handle empty
34371	skeleton_debug_str_hash.
34372	(dwarf2out_early_finish): Index strings for -gsplit-dwarf.
34373
343742018-01-08  Claudiu Zissulescu  <claziss@synopsys.com>
34375
34376	* config/arc/arc.c (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Delete.
34377	(emit_store_direct): Likewise.
34378	(arc_trampoline_adjust_address): Likewise.
34379	(arc_asm_trampoline_template): New function.
34380	(arc_initialize_trampoline): Use asm_trampoline_template.
34381	(TARGET_ASM_TRAMPOLINE_TEMPLATE): Define.
34382	* config/arc/arc.h (TRAMPOLINE_SIZE): Adjust to 16.
34383	* config/arc/arc.md (flush_icache): Delete pattern.
34384
343852018-01-08  Claudiu Zissulescu  <claziss@synopsys.com>
34386
34387	* config/arc/arc-c.def (__ARC_UNALIGNED__): New define.
34388	* config/arc/arc.h (STRICT_ALIGNMENT): Control this macro using
34389	munaligned-access.
34390
343912018-01-08  Sebastian Huber  <sebastian.huber@embedded-brains.de>
34392
34393	PR target/83681
34394	* config/epiphany/epiphany.h (make_pass_mode_switch_use): Guard
34395	by not USED_FOR_TARGET.
34396	(make_pass_resolve_sw_modes): Likewise.
34397
343982018-01-08  Sebastian Huber  <sebastian.huber@embedded-brains.de>
34399
34400	* config/nios2/nios2.h (nios2_section_threshold): Guard by not
34401	USED_FOR_TARGET.
34402
344032018-01-08  Richard Biener  <rguenther@suse.de>
34404
34405	PR middle-end/83580
34406	* tree-data-ref.c (split_constant_offset): Remove STRIP_NOPS.
34407
344082018-01-08  Richard Biener  <rguenther@suse.de>
34409
34410	PR middle-end/83517
34411	* match.pd ((t * 2) / 2) -> t): Add missing :c.
34412
344132018-01-06  Aldy Hernandez  <aldyh@redhat.com>
34414
34415	PR middle-end/81897
34416	* tree-ssa-uninit.c (compute_control_dep_chain): Do not bail on
34417	basic blocks with a small number of successors.
34418	(convert_control_dep_chain_into_preds): Improve handling of
34419	forwarder blocks.
34420	(dump_predicates): Split apart into...
34421	(dump_pred_chain): ...here...
34422	(dump_pred_info): ...and here.
34423	(can_one_predicate_be_invalidated_p): Add debugging printfs.
34424	(can_chain_union_be_invalidated_p): Improve check for invalidation
34425	of paths.
34426	(uninit_uses_cannot_happen): Avoid unnecessary if
34427	convert_control_dep_chain_into_preds yielded nothing.
34428
344292018-01-06  Martin Sebor  <msebor@redhat.com>
34430
34431	PR tree-optimization/83640
34432	* gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Avoid
34433	subtracting negative offset from size.
34434	(builtin_access::overlap): Adjust offset bounds of the access to fall
34435	within the size of the object if possible.
34436
344372018-01-06  Richard Sandiford  <richard.sandiford@linaro.org>
34438
34439	PR rtl-optimization/83699
34440	* expmed.c (extract_bit_field_1): Restrict the vector usage of
34441	extract_bit_field_as_subreg to cases in which the extracted
34442	value is also a vector.
34443
34444	* lra-constraints.c (process_alt_operands): Test for the equivalence
34445	substitutions when detecting a possible reload cycle.
34446
344472018-01-06  Jakub Jelinek  <jakub@redhat.com>
34448
34449	PR debug/83480
34450	* toplev.c (process_options): Don't enable debug_nonbind_markers_p
34451	by default if flag_selective_schedling{,2}.  Formatting fixes.
34452
34453	PR rtl-optimization/83682
34454	* rtl.h (const_vec_duplicate_p): Only return true for VEC_DUPLICATE
34455	if it has non-VECTOR_MODE element mode.
34456	(vec_duplicate_p): Likewise.
34457
34458	PR middle-end/83694
34459	* cfgexpand.c (expand_debug_expr): Punt if mode1 is VOIDmode
34460	and bitsize might be greater than MAX_BITSIZE_MODE_ANY_INT.
34461
344622018-01-05  Jakub Jelinek  <jakub@redhat.com>
34463
34464	PR target/83604
34465	* config/i386/i386-builtin.def
34466	(__builtin_ia32_vgf2p8affineinvqb_v64qi,
34467	__builtin_ia32_vgf2p8affineqb_v64qi, __builtin_ia32_vgf2p8mulb_v64qi):
34468	Require also OPTION_MASK_ISA_AVX512F in addition to
34469	OPTION_MASK_ISA_GFNI.
34470	(__builtin_ia32_vgf2p8affineinvqb_v16qi_mask,
34471	__builtin_ia32_vgf2p8affineqb_v16qi_mask): Require
34472	OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_SSE in addition
34473	to OPTION_MASK_ISA_GFNI.
34474	(__builtin_ia32_vgf2p8mulb_v32qi_mask): Require
34475	OPTION_MASK_ISA_AVX512VL in addition to OPTION_MASK_ISA_GFNI and
34476	OPTION_MASK_ISA_AVX512BW.
34477	(__builtin_ia32_vgf2p8mulb_v16qi_mask): Require
34478	OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_AVX512BW in
34479	addition to OPTION_MASK_ISA_GFNI.
34480	(__builtin_ia32_vgf2p8affineinvqb_v16qi,
34481	__builtin_ia32_vgf2p8affineqb_v16qi, __builtin_ia32_vgf2p8mulb_v16qi):
34482	Require OPTION_MASK_ISA_SSE2 instead of OPTION_MASK_ISA_SSE in addition
34483	to OPTION_MASK_ISA_GFNI.
34484	* config/i386/i386.c (def_builtin): Change to builtin isa/isa2 being
34485	a requirement for all ISAs rather than any of them with a few
34486	exceptions.
34487	(ix86_add_new_builtins): Clear OPTION_MASK_ISA_64BIT from isa before
34488	processing.
34489	(ix86_expand_builtin): Require all ISAs from builtin's isa and isa2
34490	bitmasks to be enabled with 3 exceptions, instead of requiring any
34491	enabled ISA with lots of exceptions.
34492	* config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
34493	vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>):
34494	Change avx512bw in isa attribute to avx512f.
34495	* config/i386/sgxintrin.h: Add license boilerplate.
34496	* config/i386/vaesintrin.h: Likewise.  Fix macro spelling __AVX512F
34497	to __AVX512F__ and __AVX512VL to __AVX512VL__.
34498	(_mm256_aesdec_epi128, _mm256_aesdeclast_epi128, _mm256_aesenc_epi128,
34499	_mm256_aesenclast_epi128): Enable temporarily avx if __AVX__ is not
34500	defined.
34501	* config/i386/gfniintrin.h (_mm_gf2p8mul_epi8,
34502	_mm_gf2p8affineinv_epi64_epi8, _mm_gf2p8affine_epi64_epi8): Enable
34503	temporarily sse2 rather than sse if not enabled already.
34504
34505	PR target/83604
34506	* config/i386/sse.md (VI248_VLBW): Rename to ...
34507	(VI248_AVX512VL): ... this.  Don't guard V32HI with TARGET_AVX512BW.
34508	(vpshrd_<mode><mask_name>, vpshld_<mode><mask_name>,
34509	vpshrdv_<mode>, vpshrdv_<mode>_mask, vpshrdv_<mode>_maskz,
34510	vpshrdv_<mode>_maskz_1, vpshldv_<mode>, vpshldv_<mode>_mask,
34511	vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): Use VI248_AVX512VL
34512	mode iterator instead of VI248_VLBW.
34513
345142018-01-05  Jan Hubicka  <hubicka@ucw.cz>
34515
34516	* ipa-fnsummary.c (record_modified_bb_info): Add OP.
34517	(record_modified): Skip clobbers; add debug output.
34518	(param_change_prob): Use sreal frequencies.
34519
345202018-01-05  Richard Sandiford  <richard.sandiford@linaro.org>
34521
34522	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
34523	punt for user-aligned variables.
34524
345252018-01-05  Richard Sandiford  <richard.sandiford@linaro.org>
34526
34527	* tree-chrec.c (chrec_contains_symbols): Return true for
34528	POLY_INT_CST.
34529
345302018-01-05  Sudakshina Das  <sudi.das@arm.com>
34531
34532	PR target/82439
34533	* simplify-rtx.c (simplify_relational_operation_1): Add simplifications
34534	of (x|y) == x for BICS pattern.
34535
345362018-01-05  Jakub Jelinek  <jakub@redhat.com>
34537
34538	PR tree-optimization/83605
34539	* gimple-ssa-strength-reduction.c: Include tree-eh.h.
34540	(find_candidates_dom_walker::before_dom_children): Ignore stmts that
34541	can throw.
34542
345432018-01-05  Sebastian Huber  <sebastian.huber@embedded-brains.de>
34544
34545	* config.gcc (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration.
34546	* config/epiphany/rtems.h: New file.
34547
345482018-01-04  Jakub Jelinek  <jakub@redhat.com>
34549	    Uros Bizjak  <ubizjak@gmail.com>
34550
34551	PR target/83554
34552	* config/i386/i386.md (*<rotate_insn>hi3_1 splitter): Use
34553	QIreg_operand instead of register_operand predicate.
34554	* config/i386/i386.c (ix86_rop_should_change_byte_p,
34555	set_rop_modrm_reg_bits, ix86_mitigate_rop): Use -mmitigate-rop in
34556	comments instead of -fmitigate[-_]rop.
34557
345582018-01-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34559
34560	PR bootstrap/81926
34561	* cgraphunit.c (symbol_table::compile): Switch to text_section
34562	before calling assembly_start debug hook.
34563	* run-rtl-passes.c (run_rtl_passes): Likewise.
34564	Include output.h.
34565
345662018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
34567
34568	* tree-vrp.c (extract_range_from_binary_expr_1): Check
34569	range_int_cst_p rather than !symbolic_range_p before calling
34570	extract_range_from_multiplicative_op_1.
34571
345722018-01-04  Jeff Law  <law@redhat.com>
34573
34574	* tree-ssa-math-opts.c (execute_cse_reciprocals_1): Remove
34575	redundant test in assertion.
34576
345772018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
34578
34579	* doc/rtl.texi: Document machine_mode wrapper classes.
34580
345812018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
34582
34583	* fold-const.c (fold_ternary_loc): Check tree_fits_uhwi_p before
34584	using tree_to_uhwi.
34585
345862018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
34587
34588	* tree-ssa-forwprop.c (is_combined_permutation_identity): Allow
34589	the VEC_PERM_EXPR fold to fail.
34590
345912018-01-04  Jakub Jelinek  <jakub@redhat.com>
34592
34593	PR debug/83585
34594	* bb-reorder.c (insert_section_boundary_note): Set has_bb_partition
34595	to switched_sections.
34596
345972018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
34598
34599	PR target/83680
34600	* config/arm/arm.c (arm_vectorize_vec_perm_const): Fix inverted
34601	test for d.testing.
34602
346032018-01-04  Peter Bergner  <bergner@vnet.ibm.com>
34604
34605	PR target/83387
34606	* config/rs6000/rs6000.c (rs6000_discover_homogeneous_aggregate): Do not
34607	allow arguments in FP registers if TARGET_HARD_FLOAT is false.
34608
346092018-01-04  Jakub Jelinek  <jakub@redhat.com>
34610
34611	PR debug/83666
34612	* cfgexpand.c (expand_debug_expr) <case BIT_FIELD_REF>: Punt if mode
34613	is BLKmode and bitpos not zero or mode change is needed.
34614
346152018-01-04  Richard Sandiford  <richard.sandiford@linaro.org>
34616
34617	PR target/83675
34618	* config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Require
34619	TARGET_VIS2.
34620
346212018-01-04  Uros Bizjak  <ubizjak@gmail.com>
34622
34623	PR target/83628
34624	* config/alpha/alpha.md (*sadd<modesuffix>): Use ASHIFT
34625	instead of MULT rtx.  Update all corresponding splitters.
34626	(*saddl_se): Ditto.
34627	(*ssub<modesuffix>): Ditto.
34628	(*ssubl_se): Ditto.
34629	(*cmp_sadd_di): Update split patterns.
34630	(*cmp_sadd_si): Ditto.
34631	(*cmp_sadd_sidi): Ditto.
34632	(*cmp_ssub_di): Ditto.
34633	(*cmp_ssub_si): Ditto.
34634	(*cmp_ssub_sidi): Ditto.
34635	* config/alpha/predicates.md (const23_operand): New predicate.
34636	* config/alpha/alpha.c (alpha_rtx_costs) [PLUS, MINUS]:
34637	Look for ASHIFT, not MULT inner operand.
34638	(alpha_split_conditional_move): Update for *sadd<modesuffix> change.
34639
346402018-01-04  Martin Liska  <mliska@suse.cz>
34641
34642	PR gcov-profile/83669
34643	* gcov.c (output_intermediate_file): Add version to intermediate
34644	gcov file.
34645	* doc/gcov.texi: Document new field 'version' in intermediate
34646	file format. Fix location of '-k' option of gcov command.
34647
346482018-01-04  Martin Liska  <mliska@suse.cz>
34649
34650	PR ipa/82352
34651	* ipa-icf.c (sem_function::merge): Do not cross comdat boundary.
34652
346532018-01-04  Jakub Jelinek  <jakub@redhat.com>
34654
34655	* gimple-ssa-sprintf.c (parse_directive): Cast second dir.len to uhwi.
34656
346572018-01-03  Martin Sebor  <msebor@redhat.com>
34658
34659	PR tree-optimization/83655
34660	* gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): Avoid
34661	checking calls with invalid arguments.
34662
346632018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34664
34665	* tree-vect-stmts.c (vect_get_store_rhs): New function.
34666	(vectorizable_mask_load_store): Delete.
34667	(vectorizable_call): Return false for masked loads and stores.
34668	(vectorizable_store): Handle IFN_MASK_STORE.  Use vect_get_store_rhs
34669	instead of gimple_assign_rhs1.
34670	(vectorizable_load): Handle IFN_MASK_LOAD.
34671	(vect_transform_stmt): Don't set is_store for call_vec_info_type.
34672
346732018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34674
34675	* tree-vect-stmts.c (vect_build_gather_load_calls): New function,
34676	split out from..,
34677	(vectorizable_mask_load_store): ...here.
34678	(vectorizable_load): ...and here.
34679
346802018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34681
34682	* tree-vect-stmts.c (vect_build_all_ones_mask)
34683	(vect_build_zero_merge_argument): New functions, split out from...
34684	(vectorizable_load): ...here.
34685
346862018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34687
34688	* tree-vect-stmts.c (vect_check_store_rhs): New function,
34689	split out from...
34690	(vectorizable_mask_load_store): ...here.
34691	(vectorizable_store): ...and here.
34692
346932018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34694
34695	* tree-vect-stmts.c (vect_check_load_store_mask): New function,
34696	split out from...
34697	(vectorizable_mask_load_store): ...here.
34698
346992018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34700
34701	* tree-vectorizer.h (vec_load_store_type): Moved from tree-vec-stmts.c
34702	(vect_model_store_cost): Take a vec_load_store_type instead of a
34703	vect_def_type.
34704	* tree-vect-stmts.c (vec_load_store_type): Move to tree-vectorizer.h.
34705	(vect_model_store_cost): Take a vec_load_store_type instead of a
34706	vect_def_type.
34707	(vectorizable_mask_load_store): Update accordingly.
34708	(vectorizable_store): Likewise.
34709	* tree-vect-slp.c (vect_analyze_slp_cost_1): Update accordingly.
34710
347112018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34712
34713	* tree-vect-loop.c (vect_transform_loop): Stub out scalar
34714	IFN_MASK_LOAD calls here rather than...
34715	* tree-vect-stmts.c (vectorizable_mask_load_store): ...here.
34716
347172018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34718	    Alan Hayward  <alan.hayward@arm.com>
34719	    David Sherwood  <david.sherwood@arm.com>
34720
34721	* expmed.c (extract_bit_field_1): For vector extracts,
34722	fall back to extract_bit_field_as_subreg if vec_extract
34723	isn't available.
34724
347252018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34726	    Alan Hayward  <alan.hayward@arm.com>
34727	    David Sherwood  <david.sherwood@arm.com>
34728
34729	* lra-spills.c (pseudo_reg_slot_compare): Sort slots by whether
34730	they are variable or constant sized.
34731	(assign_stack_slot_num_and_sort_pseudos): Don't reuse variable-sized
34732	slots for constant-sized data.
34733
347342018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34735	    Alan Hayward  <alan.hayward@arm.com>
34736	    David Sherwood  <david.sherwood@arm.com>
34737
34738	* tree-vect-patterns.c (vect_recog_mask_conversion_pattern): When
34739	handling COND_EXPRs with boolean comparisons, try to find a better
34740	basis for the mask type than the boolean itself.
34741
347422018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34743
34744	* doc/rtl.texi (MAX_BITSIZE_MODE_ANY_MODE): Describe how the default
34745	is calculated and how it can be overridden.
34746	* genmodes.c (max_bitsize_mode_any_mode): New variable.
34747	(create_modes): Initialize it from MAX_BITSIZE_MODE_ANY_MODE,
34748	if defined.
34749	(emit_max_int): Use it to set the output MAX_BITSIZE_MODE_ANY_MODE,
34750	if nonzero.
34751
347522018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34753	    Alan Hayward  <alan.hayward@arm.com>
34754	    David Sherwood  <david.sherwood@arm.com>
34755
34756	* config/aarch64/aarch64-protos.h (aarch64_output_simd_mov_immediate):
34757	Remove the mode argument.
34758	(aarch64_simd_valid_immediate): Remove the mode and inverse
34759	arguments.
34760	* config/aarch64/iterators.md (bitsize): New iterator.
34761	* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>, and<mode>3)
34762	(ior<mode>3): Update calls to aarch64_output_simd_mov_immediate.
34763	* config/aarch64/constraints.md (Do, Db, Dn): Update calls to
34764	aarch64_simd_valid_immediate.
34765	* config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Likewise.
34766	(aarch64_reg_or_bic_imm): Likewise.
34767	* config/aarch64/aarch64.c (simd_immediate_info): Replace mvn
34768	with an insn_type enum and msl with a modifier_type enum.
34769	Replace element_width with a scalar_mode.  Change the shift
34770	to unsigned int.  Add constructors for scalar_float_mode and
34771	scalar_int_mode elements.
34772	(aarch64_vect_float_const_representable_p): Delete.
34773	(aarch64_can_const_movi_rtx_p)
34774	(aarch64_simd_scalar_immediate_valid_for_move)
34775	(aarch64_simd_make_constant): Update call to
34776	aarch64_simd_valid_immediate.
34777	(aarch64_advsimd_valid_immediate_hs): New function.
34778	(aarch64_advsimd_valid_immediate): Likewise.
34779	(aarch64_simd_valid_immediate): Remove mode and inverse
34780	arguments.  Rewrite to use the above.  Use const_vec_duplicate_p
34781	to detect duplicated constants and use aarch64_float_const_zero_rtx_p
34782	and aarch64_float_const_representable_p on the result.
34783	(aarch64_output_simd_mov_immediate): Remove mode argument.
34784	Update call to aarch64_simd_valid_immediate and use of
34785	simd_immediate_info.
34786	(aarch64_output_scalar_simd_mov_immediate): Update call
34787	accordingly.
34788
347892018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34790	    Alan Hayward  <alan.hayward@arm.com>
34791	    David Sherwood  <david.sherwood@arm.com>
34792
34793	* machmode.h (mode_precision): Prefix with CONST_MODE_PRECISION.
34794	(mode_nunits): Likewise CONST_MODE_NUNITS.
34795	* machmode.def (ADJUST_NUNITS): Document.
34796	* genmodes.c (mode_data::need_nunits_adj): New field.
34797	(blank_mode): Update accordingly.
34798	(adj_nunits): New variable.
34799	(print_maybe_const_decl): Replace CATEGORY with a NEEDS_ADJ
34800	parameter.
34801	(emit_mode_size_inline): Set need_bytesize_adj for all modes
34802	listed in adj_nunits.
34803	(emit_mode_nunits_inline): Set need_nunits_adj for all modes
34804	listed in adj_nunits.  Don't emit case statements for such modes.
34805	(emit_insn_modes_h): Emit definitions of CONST_MODE_NUNITS
34806	and CONST_MODE_PRECISION.  Make CONST_MODE_SIZE expand to
34807	nothing if adj_nunits is nonnull.
34808	(emit_mode_precision, emit_mode_nunits): Use print_maybe_const_decl.
34809	(emit_mode_unit_size, emit_mode_base_align, emit_mode_ibit)
34810	(emit_mode_fbit): Update use of print_maybe_const_decl.
34811	(emit_move_size): Likewise.  Treat the array as non-const
34812	if adj_nunits.
34813	(emit_mode_adjustments): Handle adj_nunits.
34814
348152018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34816
34817	* machmode.def (VECTOR_MODES_WITH_PREFIX): Document.
34818	* genmodes.c (VECTOR_MODES_WITH_PREFIX): New macro.
34819	(VECTOR_MODES): Use it.
34820	(make_vector_modes): Take the prefix as an argument.
34821
348222018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34823	    Alan Hayward  <alan.hayward@arm.com>
34824	    David Sherwood  <david.sherwood@arm.com>
34825
34826	* mode-classes.def (MODE_VECTOR_BOOL): New mode class.
34827	* machmode.h (INTEGRAL_MODE_P, VECTOR_MODE_P): Return true
34828	for MODE_VECTOR_BOOL.
34829	* machmode.def (VECTOR_BOOL_MODE): Document.
34830	* genmodes.c (VECTOR_BOOL_MODE): New macro.
34831	(make_vector_bool_mode): New function.
34832	(complete_mode, emit_mode_wider, emit_mode_adjustments): Handle
34833	MODE_VECTOR_BOOL.
34834	* lto-streamer-in.c (lto_input_mode_table): Likewise.
34835	* rtx-vector-builder.c (rtx_vector_builder::find_cached_value):
34836	Likewise.
34837	* stor-layout.c (int_mode_for_mode): Likewise.
34838	* tree.c (build_vector_type_for_mode): Likewise.
34839	* varasm.c (output_constant_pool_2): Likewise.
34840	* emit-rtl.c (init_emit_once): Make sure that CONST1_RTX (BImode) and
34841	CONSTM1_RTX (BImode) are the same thing.  Initialize const_tiny_rtx
34842	for MODE_VECTOR_BOOL.
34843	* expr.c (expand_expr_real_1): Use VECTOR_MODE_P instead of a list
34844	of mode class checks.
34845	* tree-vect-generic.c (expand_vector_operation): Use VECTOR_MODE_P
34846	instead of a list of mode class checks.
34847	(expand_vector_scalar_condition): Likewise.
34848	(type_for_widest_vector_mode): Handle BImode as an inner mode.
34849
348502018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34851	    Alan Hayward  <alan.hayward@arm.com>
34852	    David Sherwood  <david.sherwood@arm.com>
34853
34854	* machmode.h (mode_size): Change from unsigned short to
34855	poly_uint16_pod.
34856	(mode_to_bytes): Return a poly_uint16 rather than an unsigned short.
34857	(GET_MODE_SIZE): Return a constant if ONLY_FIXED_SIZE_MODES,
34858	or if measurement_type is not polynomial.
34859	(fixed_size_mode::includes_p): Check for constant-sized modes.
34860	* genmodes.c (emit_mode_size_inline): Make mode_size_inline
34861	return a poly_uint16 rather than an unsigned short.
34862	(emit_mode_size): Change the type of mode_size from unsigned short
34863	to poly_uint16_pod.  Use ZERO_COEFFS for the initializer.
34864	(emit_mode_adjustments): Cope with polynomial vector sizes.
34865	* lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value
34866	for GET_MODE_SIZE.
34867	* lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value
34868	for GET_MODE_SIZE.
34869	* auto-inc-dec.c (try_merge): Treat GET_MODE_SIZE as polynomial.
34870	* builtins.c (expand_ifn_atomic_compare_exchange_into_call): Likewise.
34871	* caller-save.c (setup_save_areas): Likewise.
34872	(replace_reg_with_saved_mem): Likewise.
34873	* calls.c (emit_library_call_value_1): Likewise.
34874	* combine-stack-adj.c (combine_stack_adjustments_for_block): Likewise.
34875	* combine.c (simplify_set, make_extraction, simplify_shift_const_1)
34876	(gen_lowpart_for_combine): Likewise.
34877	* convert.c (convert_to_integer_1): Likewise.
34878	* cse.c (equiv_constant, cse_insn): Likewise.
34879	* cselib.c (autoinc_split, cselib_hash_rtx): Likewise.
34880	(cselib_subst_to_values): Likewise.
34881	* dce.c (word_dce_process_block): Likewise.
34882	* df-problems.c (df_word_lr_mark_ref): Likewise.
34883	* dwarf2cfi.c (init_one_dwarf_reg_size): Likewise.
34884	* dwarf2out.c (multiple_reg_loc_descriptor, mem_loc_descriptor)
34885	(concat_loc_descriptor, concatn_loc_descriptor, loc_descriptor)
34886	(rtl_for_decl_location): Likewise.
34887	* emit-rtl.c (gen_highpart, widen_memory_access): Likewise.
34888	* expmed.c (extract_bit_field_1, extract_integral_bit_field): Likewise.
34889	* expr.c (emit_group_load_1, clear_storage_hints): Likewise.
34890	(emit_move_complex, emit_move_multi_word, emit_push_insn): Likewise.
34891	(expand_expr_real_1): Likewise.
34892	* function.c (assign_parm_setup_block_p, assign_parm_setup_block)
34893	(pad_below): Likewise.
34894	* gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise.
34895	* gimple-ssa-store-merging.c (rhs_valid_for_store_merging_p): Likewise.
34896	* ira.c (get_subreg_tracking_sizes): Likewise.
34897	* ira-build.c (ira_create_allocno_objects): Likewise.
34898	* ira-color.c (coalesced_pseudo_reg_slot_compare): Likewise.
34899	(ira_sort_regnos_for_alter_reg): Likewise.
34900	* ira-costs.c (record_operand_costs): Likewise.
34901	* lower-subreg.c (interesting_mode_p, simplify_gen_subreg_concatn)
34902	(resolve_simple_move): Likewise.
34903	* lra-constraints.c (get_reload_reg, operands_match_p): Likewise.
34904	(process_addr_reg, simplify_operand_subreg, curr_insn_transform)
34905	(lra_constraints): Likewise.
34906	(CONST_POOL_OK_P): Reject variable-sized modes.
34907	* lra-spills.c (slot, assign_mem_slot, pseudo_reg_slot_compare)
34908	(add_pseudo_to_slot, lra_spill): Likewise.
34909	* omp-low.c (omp_clause_aligned_alignment): Likewise.
34910	* optabs-query.c (get_best_extraction_insn): Likewise.
34911	* optabs-tree.c (expand_vec_cond_expr_p): Likewise.
34912	* optabs.c (expand_vec_perm_var, expand_vec_cond_expr): Likewise.
34913	(expand_mult_highpart, valid_multiword_target_p): Likewise.
34914	* recog.c (offsettable_address_addr_space_p): Likewise.
34915	* regcprop.c (maybe_mode_change): Likewise.
34916	* reginfo.c (choose_hard_reg_mode, record_subregs_of_mode): Likewise.
34917	* regrename.c (build_def_use): Likewise.
34918	* regstat.c (dump_reg_info): Likewise.
34919	* reload.c (complex_word_subreg_p, push_reload, find_dummy_reload)
34920	(find_reloads, find_reloads_subreg_address): Likewise.
34921	* reload1.c (eliminate_regs_1): Likewise.
34922	* rtlanal.c (for_each_inc_dec_find_inc_dec, rtx_cost): Likewise.
34923	* simplify-rtx.c (avoid_constant_pool_reference): Likewise.
34924	(simplify_binary_operation_1, simplify_subreg): Likewise.
34925	* targhooks.c (default_function_arg_padding): Likewise.
34926	(default_hard_regno_nregs, default_class_max_nregs): Likewise.
34927	* tree-cfg.c (verify_gimple_assign_binary): Likewise.
34928	(verify_gimple_assign_ternary): Likewise.
34929	* tree-inline.c (estimate_move_cost): Likewise.
34930	* tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
34931	* tree-ssa-loop-ivopts.c (add_autoinc_candidates): Likewise.
34932	(get_address_cost_ainc): Likewise.
34933	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
34934	(vect_supportable_dr_alignment): Likewise.
34935	* tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
34936	(vectorizable_reduction): Likewise.
34937	* tree-vect-stmts.c (vectorizable_assignment, vectorizable_shift)
34938	(vectorizable_operation, vectorizable_load): Likewise.
34939	* tree.c (build_same_sized_truth_vector_type): Likewise.
34940	* valtrack.c (cleanup_auto_inc_dec): Likewise.
34941	* var-tracking.c (emit_note_insn_var_location): Likewise.
34942	* config/arc/arc.h (ASM_OUTPUT_CASE_END): Use as_a <scalar_int_mode>.
34943	(ADDR_VEC_ALIGN): Likewise.
34944
349452018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34946	    Alan Hayward  <alan.hayward@arm.com>
34947	    David Sherwood  <david.sherwood@arm.com>
34948
34949	* machmode.h (mode_to_bits): Return a poly_uint16 rather than an
34950	unsigned short.
34951	(GET_MODE_BITSIZE): Return a constant if ONLY_FIXED_SIZE_MODES,
34952	or if measurement_type is polynomial.
34953	* calls.c (shift_return_value): Treat GET_MODE_BITSIZE as polynomial.
34954	* combine.c (make_extraction): Likewise.
34955	* dse.c (find_shift_sequence): Likewise.
34956	* dwarf2out.c (mem_loc_descriptor): Likewise.
34957	* expmed.c (store_integral_bit_field, extract_bit_field_1): Likewise.
34958	(extract_bit_field, extract_low_bits): Likewise.
34959	* expr.c (convert_move, convert_modes, emit_move_insn_1): Likewise.
34960	(optimize_bitfield_assignment_op, expand_assignment): Likewise.
34961	(store_expr_with_bounds, store_field, expand_expr_real_1): Likewise.
34962	* fold-const.c (optimize_bit_field_compare, merge_ranges): Likewise.
34963	* gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise.
34964	* reload.c (find_reloads): Likewise.
34965	* reload1.c (alter_reg): Likewise.
34966	* stor-layout.c (bitwise_mode_for_mode, compute_record_mode): Likewise.
34967	* targhooks.c (default_secondary_memory_needed_mode): Likewise.
34968	* tree-if-conv.c (predicate_mem_writes): Likewise.
34969	* tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
34970	* tree-vect-patterns.c (adjust_bool_pattern): Likewise.
34971	* tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
34972	* valtrack.c (dead_debug_insert_temp): Likewise.
34973	* varasm.c (mergeable_constant_section): Likewise.
34974	* config/sh/sh.h (LOCAL_ALIGNMENT): Use as_a <fixed_size_mode>.
34975
349762018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34977	    Alan Hayward  <alan.hayward@arm.com>
34978	    David Sherwood  <david.sherwood@arm.com>
34979
34980	* expr.c (expand_assignment): Cope with polynomial mode sizes
34981	when assigning to a CONCAT.
34982
349832018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
34984	    Alan Hayward  <alan.hayward@arm.com>
34985	    David Sherwood  <david.sherwood@arm.com>
34986
34987	* machmode.h (mode_precision): Change from unsigned short to
34988	poly_uint16_pod.
34989	(mode_to_precision): Return a poly_uint16 rather than an unsigned
34990	short.
34991	(GET_MODE_PRECISION): Return a constant if ONLY_FIXED_SIZE_MODES,
34992	or if measurement_type is not polynomial.
34993	(HWI_COMPUTABLE_MODE_P): Turn into a function.  Optimize the case
34994	in which the mode is already known to be a scalar_int_mode.
34995	* genmodes.c (emit_mode_precision): Change the type of mode_precision
34996	from unsigned short to poly_uint16_pod.  Use ZERO_COEFFS for the
34997	initializer.
34998	* lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value
34999	for GET_MODE_PRECISION.
35000	* lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value
35001	for GET_MODE_PRECISION.
35002	* combine.c (update_rsp_from_reg_equal): Treat GET_MODE_PRECISION
35003	as polynomial.
35004	(try_combine, find_split_point, combine_simplify_rtx): Likewise.
35005	(expand_field_assignment, make_extraction): Likewise.
35006	(make_compound_operation_int, record_dead_and_set_regs_1): Likewise.
35007	(get_last_value): Likewise.
35008	* convert.c (convert_to_integer_1): Likewise.
35009	* cse.c (cse_insn): Likewise.
35010	* expr.c (expand_expr_real_1): Likewise.
35011	* lra-constraints.c (simplify_operand_subreg): Likewise.
35012	* optabs-query.c (can_atomic_load_p): Likewise.
35013	* optabs.c (expand_atomic_load): Likewise.
35014	(expand_atomic_store): Likewise.
35015	* ree.c (combine_reaching_defs): Likewise.
35016	* rtl.h (partial_subreg_p, paradoxical_subreg_p): Likewise.
35017	* rtlanal.c (nonzero_bits1, lsb_bitfield_op_p): Likewise.
35018	* tree.h (type_has_mode_precision_p): Likewise.
35019	* ubsan.c (instrument_si_overflow): Likewise.
35020
350212018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35022	    Alan Hayward  <alan.hayward@arm.com>
35023	    David Sherwood  <david.sherwood@arm.com>
35024
35025	* tree.h (TYPE_VECTOR_SUBPARTS): Turn into a function and handle
35026	polynomial numbers of units.
35027	(SET_TYPE_VECTOR_SUBPARTS): Likewise.
35028	(valid_vector_subparts_p): New function.
35029	(build_vector_type): Remove temporary shim and take the number
35030	of units as a poly_uint64 rather than an int.
35031	(build_opaque_vector_type): Take the number of units as a
35032	poly_uint64 rather than an int.
35033	* tree.c (build_vector_from_ctor): Handle polynomial
35034	TYPE_VECTOR_SUBPARTS.
35035	(type_hash_canon_hash, type_cache_hasher::equal): Likewise.
35036	(uniform_vector_p, vector_type_mode, build_vector): Likewise.
35037	(build_vector_from_val): If the number of units is variable,
35038	use build_vec_duplicate_cst for constant operands and
35039	VEC_DUPLICATE_EXPR otherwise.
35040	(make_vector_type): Remove temporary is_constant ().
35041	(build_vector_type, build_opaque_vector_type): Take the number of
35042	units as a poly_uint64 rather than an int.
35043	(check_vector_cst): Handle polynomial TYPE_VECTOR_SUBPARTS and
35044	VECTOR_CST_NELTS.
35045	* cfgexpand.c (expand_debug_expr): Likewise.
35046	* expr.c (count_type_elements, categorize_ctor_elements_1): Likewise.
35047	(store_constructor, expand_expr_real_1): Likewise.
35048	(const_scalar_mask_from_tree): Likewise.
35049	* fold-const-call.c (fold_const_reduction): Likewise.
35050	* fold-const.c (const_binop, const_unop, fold_convert_const): Likewise.
35051	(operand_equal_p, fold_vec_perm, fold_ternary_loc): Likewise.
35052	(native_encode_vector, vec_cst_ctor_to_array): Likewise.
35053	(fold_relational_const): Likewise.
35054	(native_interpret_vector): Likewise.  Change the size from an
35055	int to an unsigned int.
35056	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Handle polynomial
35057	TYPE_VECTOR_SUBPARTS.
35058	(gimple_fold_indirect_ref, gimple_build_vector): Likewise.
35059	(gimple_build_vector_from_val): Use VEC_DUPLICATE_EXPR when
35060	duplicating a non-constant operand into a variable-length vector.
35061	* hsa-brig.c (hsa_op_immed::emit_to_buffer): Handle polynomial
35062	TYPE_VECTOR_SUBPARTS and VECTOR_CST_NELTS.
35063	* ipa-icf.c (sem_variable::equals): Likewise.
35064	* match.pd: Likewise.
35065	* omp-simd-clone.c (simd_clone_subparts): Likewise.
35066	* print-tree.c (print_node): Likewise.
35067	* stor-layout.c (layout_type): Likewise.
35068	* targhooks.c (default_builtin_vectorization_cost): Likewise.
35069	* tree-cfg.c (verify_gimple_comparison): Likewise.
35070	(verify_gimple_assign_binary): Likewise.
35071	(verify_gimple_assign_ternary): Likewise.
35072	(verify_gimple_assign_single): Likewise.
35073	* tree-pretty-print.c (dump_generic_node): Likewise.
35074	* tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
35075	(simplify_bitfield_ref, is_combined_permutation_identity): Likewise.
35076	* tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
35077	(vect_grouped_load_supported, vect_permute_load_chain): Likewise.
35078	(vect_shift_permute_load_chain): Likewise.
35079	* tree-vect-generic.c (nunits_for_known_piecewise_op): Likewise.
35080	(expand_vector_condition, optimize_vector_constructor): Likewise.
35081	(lower_vec_perm, get_compute_type): Likewise.
35082	* tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
35083	(get_initial_defs_for_reduction, vect_transform_loop): Likewise.
35084	* tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
35085	(vect_recog_mask_conversion_pattern): Likewise.
35086	* tree-vect-slp.c (vect_supported_load_permutation_p): Likewise.
35087	(vect_get_constant_vectors, vect_transform_slp_perm_load): Likewise.
35088	* tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
35089	(get_group_load_store_type, vectorizable_mask_load_store): Likewise.
35090	(vectorizable_bswap, simd_clone_subparts, vectorizable_assignment)
35091	(vectorizable_shift, vectorizable_operation, vectorizable_store)
35092	(vectorizable_load, vect_is_simple_cond, vectorizable_comparison)
35093	(supportable_widening_operation): Likewise.
35094	(supportable_narrowing_operation): Likewise.
35095	* tree-vector-builder.c (tree_vector_builder::binary_encoded_nelts):
35096	Likewise.
35097	* varasm.c (output_constant): Likewise.
35098
350992018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35100	    Alan Hayward  <alan.hayward@arm.com>
35101	    David Sherwood  <david.sherwood@arm.com>
35102
35103	* tree-vect-data-refs.c (vect_permute_store_chain): Reorganize
35104	so that both the length == 3 and length != 3 cases set up their
35105	own permute vectors.  Add comments explaining why we know the
35106	number of elements is constant.
35107	(vect_permute_load_chain): Likewise.
35108
351092018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35110	    Alan Hayward  <alan.hayward@arm.com>
35111	    David Sherwood  <david.sherwood@arm.com>
35112
35113	* machmode.h (mode_nunits): Change from unsigned char to
35114	poly_uint16_pod.
35115	(ONLY_FIXED_SIZE_MODES): New macro.
35116	(pod_mode::measurement_type, scalar_int_mode::measurement_type)
35117	(scalar_float_mode::measurement_type, scalar_mode::measurement_type)
35118	(complex_mode::measurement_type, fixed_size_mode::measurement_type):
35119	New typedefs.
35120	(mode_to_nunits): Return a poly_uint16 rather than an unsigned short.
35121	(GET_MODE_NUNITS): Return a constant if ONLY_FIXED_SIZE_MODES,
35122	or if measurement_type is not polynomial.
35123	* genmodes.c (ZERO_COEFFS): New macro.
35124	(emit_mode_nunits_inline): Make mode_nunits_inline return a
35125	poly_uint16.
35126	(emit_mode_nunits): Change the type of mode_nunits to poly_uint16_pod.
35127	Use ZERO_COEFFS when emitting initializers.
35128	* data-streamer.h (bp_pack_poly_value): New function.
35129	(bp_unpack_poly_value): Likewise.
35130	* lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value
35131	for GET_MODE_NUNITS.
35132	* lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value
35133	for GET_MODE_NUNITS.
35134	* tree.c (make_vector_type): Remove temporary shim and make
35135	the real function take the number of units as a poly_uint64
35136	rather than an int.
35137	(build_vector_type_for_mode): Handle polynomial nunits.
35138	* dwarf2out.c (loc_descriptor, add_const_value_attribute): Likewise.
35139	* emit-rtl.c (const_vec_series_p_1): Likewise.
35140	(gen_rtx_CONST_VECTOR): Likewise.
35141	* fold-const.c (test_vec_duplicate_folding): Likewise.
35142	* genrecog.c (validate_pattern): Likewise.
35143	* optabs-query.c (can_vec_perm_var_p, can_mult_highpart_p): Likewise.
35144	* optabs-tree.c (expand_vec_cond_expr_p): Likewise.
35145	* optabs.c (expand_vector_broadcast, expand_binop_directly): Likewise.
35146	(shift_amt_for_vec_perm_mask, expand_vec_perm_var): Likewise.
35147	(expand_vec_cond_expr, expand_mult_highpart): Likewise.
35148	* rtlanal.c (subreg_get_info): Likewise.
35149	* tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
35150	(vect_grouped_load_supported): Likewise.
35151	* tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
35152	* tree-vect-loop.c (have_whole_vector_shift): Likewise.
35153	* simplify-rtx.c (simplify_unary_operation_1): Likewise.
35154	(simplify_const_unary_operation, simplify_binary_operation_1)
35155	(simplify_const_binary_operation, simplify_ternary_operation)
35156	(test_vector_ops_duplicate, test_vector_ops): Likewise.
35157	(simplify_immed_subreg): Use GET_MODE_NUNITS on a fixed_size_mode
35158	instead of CONST_VECTOR_NUNITS.
35159	* varasm.c (output_constant_pool_2): Likewise.
35160	* rtx-vector-builder.c (rtx_vector_builder::build): Only include the
35161	explicit-encoded elements in the XVEC for variable-length vectors.
35162
351632018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35164
35165	* lra-constraints.c (curr_insn_transform): Use partial_subreg_p.
35166
351672018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35168	    Alan Hayward  <alan.hayward@arm.com>
35169	    David Sherwood  <david.sherwood@arm.com>
35170
35171	* coretypes.h (fixed_size_mode): Declare.
35172	(fixed_size_mode_pod): New typedef.
35173	* builtins.h (target_builtins::x_apply_args_mode)
35174	(target_builtins::x_apply_result_mode): Change type to
35175	fixed_size_mode_pod.
35176	* builtins.c (apply_args_size, apply_result_size, result_vector)
35177	(expand_builtin_apply_args_1, expand_builtin_apply)
35178	(expand_builtin_return): Update accordingly.
35179
351802018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35181
35182	* cse.c (hash_rtx_cb): Hash only the encoded elements.
35183	* cselib.c (cselib_hash_rtx): Likewise.
35184	* expmed.c (make_tree): Build VECTOR_CSTs directly from the
35185	CONST_VECTOR encoding.
35186
351872018-01-03  Jakub Jelinek  <jakub@redhat.com>
35188	    Jeff Law  <law@redhat.com>
35189
35190	PR target/83641
35191	* config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): For
35192	noreturn probe, use gen_pop instead of ix86_emit_restore_reg_using_pop,
35193	only set RTX_FRAME_RELATED_P on both the push and pop if cfa_reg is sp
35194	and add REG_CFA_ADJUST_CFA notes in that case to both insns.
35195
35196	PR target/83641
35197	* config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Do not
35198	explicitly probe *sp in a noreturn function if there were any callee
35199	register saves or frame pointer is needed.
35200
352012018-01-03  Jakub Jelinek  <jakub@redhat.com>
35202
35203	PR debug/83621
35204	* cfgexpand.c (expand_debug_expr): Return NULL if mode is
35205	BLKmode for ternary, binary or unary expressions.
35206
35207	PR debug/83645
35208	* var-tracking.c (delete_vta_debug_insn): New inline function.
35209	(delete_vta_debug_insns): Add USE_CFG argument, if true, walk just
35210	insns from get_insns () to NULL instead of each bb separately.
35211	Use delete_vta_debug_insn.  No longer static.
35212	(vt_debug_insns_local, variable_tracking_main_1): Adjust
35213	delete_vta_debug_insns callers.
35214	* rtl.h (delete_vta_debug_insns): Declare.
35215	* final.c (rest_of_handle_final): Call delete_vta_debug_insns
35216	instead of variable_tracking_main.
35217
352182018-01-03  Martin Sebor  <msebor@redhat.com>
35219
35220	PR tree-optimization/83603
35221	* calls.c (maybe_warn_nonstring_arg): Avoid accessing function
35222	arguments past the endof the argument list in functions declared
35223	without a prototype.
35224	* gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call):
35225	Avoid checking when arguments are null.
35226
352272018-01-03  Martin Sebor  <msebor@redhat.com>
35228
35229	PR c/83559
35230	* doc/extend.texi (attribute const): Fix a typo.
35231	* ipa-pure-const.c ((warn_function_const, warn_function_pure): Avoid
35232	issuing -Wsuggest-attribute for void functions.
35233
352342018-01-03  Martin Sebor  <msebor@redhat.com>
35235
35236	* gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use
35237	offset_int::from instead of wide_int::to_shwi.
35238	(maybe_diag_overlap): Remove assertion.
35239	Use HOST_WIDE_INT_PRINT_DEC instead of %lli.
35240	* gimple-ssa-sprintf.c (format_directive): Same.
35241	(parse_directive): Same.
35242	(sprintf_dom_walker::compute_format_length): Same.
35243	(try_substitute_return_value): Same.
35244
352452018-01-03  Jeff Law  <law@redhat.com>
35246
35247	PR middle-end/83654
35248	* explow.c (anti_adjust_stack_and_probe_stack_clash): Test a
35249	non-constant residual for zero at runtime and avoid probing in
35250	that case.  Reorganize code for trailing problem to mirror handling
35251	of the residual.
35252
352532018-01-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
35254
35255	PR tree-optimization/83501
35256	* tree-ssa-strlen.c (get_string_cst): New.
35257	(handle_char_store): Call get_string_cst.
35258
352592018-01-03  Martin Liska  <mliska@suse.cz>
35260
35261	PR tree-optimization/83593
35262	* tree-ssa-strlen.c: Include tree-cfg.h.
35263	(strlen_check_and_optimize_stmt): Add new argument cleanup_eh.
35264	(strlen_dom_walker): Add new member variable m_cleanup_cfg.
35265	(strlen_dom_walker::strlen_dom_walker): Initialize m_cleanup_cfg
35266	to false.
35267	(strlen_dom_walker::before_dom_children): Call
35268	gimple_purge_dead_eh_edges. Dump tranformation with details
35269	dump flags.
35270	(strlen_dom_walker::before_dom_children): Update call by adding
35271	new argument cleanup_eh.
35272	(pass_strlen::execute): Return TODO_cleanup_cfg if needed.
35273
352742018-01-03  Martin Liska  <mliska@suse.cz>
35275
35276	PR ipa/83549
35277	* cif-code.def (VARIADIC_THUNK): New enum value.
35278	* ipa-fnsummary.c (compute_fn_summary): Do not inline variadic
35279	thunks.
35280
352812018-01-03  Jan Beulich  <jbeulich@suse.com>
35282
35283	* sse.md (mov<mode>_internal): Tighten condition for when to use
35284	vmovdqu<ssescalarsize> for TI and OI modes.
35285
352862018-01-03  Jakub Jelinek  <jakub@redhat.com>
35287
35288	Update copyright years.
35289
352902018-01-03  Martin Liska  <mliska@suse.cz>
35291
35292	PR ipa/83594
35293	* ipa-visibility.c (function_and_variable_visibility): Skip
35294	functions with noipa attribure.
35295
352962018-01-03  Jakub Jelinek  <jakub@redhat.com>
35297
35298	* gcc.c (process_command): Update copyright notice dates.
35299	* gcov-dump.c (print_version): Ditto.
35300	* gcov.c (print_version): Ditto.
35301	* gcov-tool.c (print_version): Ditto.
35302	* gengtype.c (create_file): Ditto.
35303	* doc/cpp.texi: Bump @copying's copyright year.
35304	* doc/cppinternals.texi: Ditto.
35305	* doc/gcc.texi: Ditto.
35306	* doc/gccint.texi: Ditto.
35307	* doc/gcov.texi: Ditto.
35308	* doc/install.texi: Ditto.
35309	* doc/invoke.texi: Ditto.
35310
353112018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35312
35313	* vector-builder.h (vector_builder::m_full_nelts): Change from
35314	unsigned int to poly_uint64.
35315	(vector_builder::full_nelts): Update prototype accordingly.
35316	(vector_builder::new_vector): Likewise.
35317	(vector_builder::encoded_full_vector_p): Handle polynomial full_nelts.
35318	(vector_builder::operator ==): Likewise.
35319	(vector_builder::finalize): Likewise.
35320	* int-vector-builder.h (int_vector_builder::int_vector_builder):
35321	Take the number of elements as a poly_uint64 rather than an
35322	unsigned int.
35323	* vec-perm-indices.h (vec_perm_indices::m_nelts_per_input): Change
35324	from unsigned int to poly_uint64.
35325	(vec_perm_indices::vec_perm_indices): Update prototype accordingly.
35326	(vec_perm_indices::new_vector): Likewise.
35327	(vec_perm_indices::length): Likewise.
35328	(vec_perm_indices::nelts_per_input): Likewise.
35329	(vec_perm_indices::input_nelts): Likewise.
35330	* vec-perm-indices.c (vec_perm_indices::new_vector): Take the
35331	number of elements per input as a poly_uint64 rather than an
35332	unsigned int.  Use the original encoding for variable-length
35333	vectors, rather than clamping each individual element.
35334	For the second and subsequent elements in each pattern,
35335	clamp the step and base before clamping their sum.
35336	(vec_perm_indices::series_p): Handle polynomial element counts.
35337	(vec_perm_indices::all_in_range_p): Likewise.
35338	(vec_perm_indices_to_tree): Likewise.
35339	(vec_perm_indices_to_rtx): Likewise.
35340	* tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
35341	* tree-vector-builder.c (tree_vector_builder::new_unary_operation)
35342	(tree_vector_builder::new_binary_operation): Handle polynomial
35343	element counts.  Return false if we need to know the number
35344	of elements at compile time.
35345	* fold-const.c (fold_vec_perm): Punt if the number of elements
35346	isn't known at compile time.
35347
353482018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35349
35350	* vec-perm-indices.h (vec_perm_builder): Change element type
35351	from HOST_WIDE_INT to poly_int64.
35352	(vec_perm_indices::element_type): Update accordingly.
35353	(vec_perm_indices::clamp): Handle polynomial element_types.
35354	* vec-perm-indices.c (vec_perm_indices::series_p): Likewise.
35355	(vec_perm_indices::all_in_range_p): Likewise.
35356	(tree_to_vec_perm_builder): Check for poly_int64 trees rather
35357	than shwi trees.
35358	* vector-builder.h (vector_builder::stepped_sequence_p): Handle
35359	polynomial vec_perm_indices element types.
35360	* int-vector-builder.h (int_vector_builder::equal_p): Likewise.
35361	* fold-const.c (fold_vec_perm): Likewise.
35362	* optabs.c (shift_amt_for_vec_perm_mask): Likewise.
35363	* tree-vect-generic.c (lower_vec_perm): Likewise.
35364	* tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
35365	* config/aarch64/aarch64.c (aarch64_evpc_tbl): Cast d->perm
35366	element type to HOST_WIDE_INT.
35367
353682018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35369	    Alan Hayward  <alan.hayward@arm.com>
35370	    David Sherwood  <david.sherwood@arm.com>
35371
35372	* alias.c (addr_side_effect_eval): Take the size as a poly_int64
35373	rather than an int.  Use plus_constant.
35374	(memrefs_conflict_p): Take the sizes as poly_int64s rather than ints.
35375	Take the offset "c" as a poly_int64 rather than a HOST_WIDE_INT.
35376
353772018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35378	    Alan Hayward  <alan.hayward@arm.com>
35379	    David Sherwood  <david.sherwood@arm.com>
35380
35381	* calls.c (emit_call_1, expand_call): Change struct_value_size from
35382	a HOST_WIDE_INT to a poly_int64.
35383
353842018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35385	    Alan Hayward  <alan.hayward@arm.com>
35386	    David Sherwood  <david.sherwood@arm.com>
35387
35388	* calls.c (load_register_parameters): Cope with polynomial
35389	mode sizes.  Require a constant size for BLKmode parameters
35390	that aren't described by a PARALLEL.  If BLOCK_REG_PADDING
35391	forces a parameter to be padded at the lsb end in order to
35392	fill a complete number of words, require the parameter size
35393	to be ordered wrt UNITS_PER_WORD.
35394
353952018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35396	    Alan Hayward  <alan.hayward@arm.com>
35397	    David Sherwood  <david.sherwood@arm.com>
35398
35399	* reload1.c (spill_stack_slot_width): Change element type
35400	from unsigned int to poly_uint64_pod.
35401	(alter_reg): Treat mode sizes as polynomial.
35402
354032018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35404	    Alan Hayward  <alan.hayward@arm.com>
35405	    David Sherwood  <david.sherwood@arm.com>
35406
35407	* reload.c (complex_word_subreg_p): New function.
35408	(reload_inner_reg_of_subreg, push_reload): Use it.
35409
354102018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35411	    Alan Hayward  <alan.hayward@arm.com>
35412	    David Sherwood  <david.sherwood@arm.com>
35413
35414	* lra-constraints.c (process_alt_operands): Reject matched
35415	operands whose sizes aren't ordered.
35416	(match_reload): Refer to this check here.
35417
354182018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35419	    Alan Hayward  <alan.hayward@arm.com>
35420	    David Sherwood  <david.sherwood@arm.com>
35421
35422	* builtins.c (expand_ifn_atomic_compare_exchange_into_call): Assert
35423	that the mode size is in the set {1, 2, 4, 8, 16}.
35424
354252018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35426	    Alan Hayward  <alan.hayward@arm.com>
35427	    David Sherwood  <david.sherwood@arm.com>
35428
35429	* var-tracking.c (adjust_mems): Treat mode sizes as polynomial.
35430	Use plus_constant instead of gen_rtx_PLUS.
35431
354322018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35433	    Alan Hayward  <alan.hayward@arm.com>
35434	    David Sherwood  <david.sherwood@arm.com>
35435
35436	* config/cr16/cr16-protos.h (cr16_push_rounding): Declare.
35437	* config/cr16/cr16.h (PUSH_ROUNDING): Move implementation to...
35438	* config/cr16/cr16.c (cr16_push_rounding): ...this new function.
35439	* config/h8300/h8300-protos.h (h8300_push_rounding): Declare.
35440	* config/h8300/h8300.h (PUSH_ROUNDING): Move implementation to...
35441	* config/h8300/h8300.c (h8300_push_rounding): ...this new function.
35442	* config/i386/i386-protos.h (ix86_push_rounding): Declare.
35443	* config/i386/i386.h (PUSH_ROUNDING): Move implementation to...
35444	* config/i386/i386.c (ix86_push_rounding): ...this new function.
35445	* config/m32c/m32c-protos.h (m32c_push_rounding): Take and return
35446	a poly_int64.
35447	* config/m32c/m32c.c (m32c_push_rounding): Likewise.
35448	* config/m68k/m68k-protos.h (m68k_push_rounding): Declare.
35449	* config/m68k/m68k.h (PUSH_ROUNDING): Move implementation to...
35450	* config/m68k/m68k.c (m68k_push_rounding): ...this new function.
35451	* config/pdp11/pdp11-protos.h (pdp11_push_rounding): Declare.
35452	* config/pdp11/pdp11.h (PUSH_ROUNDING): Move implementation to...
35453	* config/pdp11/pdp11.c (pdp11_push_rounding): ...this new function.
35454	* config/stormy16/stormy16-protos.h (xstormy16_push_rounding): Declare.
35455	* config/stormy16/stormy16.h (PUSH_ROUNDING): Move implementation to...
35456	* config/stormy16/stormy16.c (xstormy16_push_rounding): ...this new
35457	function.
35458	* expr.c (emit_move_resolve_push): Treat the input and result
35459	of PUSH_ROUNDING as a poly_int64.
35460	(emit_move_complex_push, emit_single_push_insn_1): Likewise.
35461	(emit_push_insn): Likewise.
35462	* lra-eliminations.c (mark_not_eliminable): Likewise.
35463	* recog.c (push_operand): Likewise.
35464	* reload1.c (elimination_effects): Likewise.
35465	* rtlanal.c (nonzero_bits1): Likewise.
35466	* calls.c (store_one_arg): Likewise.  Require the padding to be
35467	known at compile time.
35468
354692018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35470	    Alan Hayward  <alan.hayward@arm.com>
35471	    David Sherwood  <david.sherwood@arm.com>
35472
35473	* expr.c (emit_single_push_insn_1): Treat mode sizes as polynomial.
35474	Use plus_constant instead of gen_rtx_PLUS.
35475
354762018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35477	    Alan Hayward  <alan.hayward@arm.com>
35478	    David Sherwood  <david.sherwood@arm.com>
35479
35480	* auto-inc-dec.c (set_inc_state): Take the mode size as a poly_int64
35481	rather than an int.
35482
354832018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35484	    Alan Hayward  <alan.hayward@arm.com>
35485	    David Sherwood  <david.sherwood@arm.com>
35486
35487	* expr.c (expand_expr_real_1): Use tree_to_poly_uint64
35488	instead of int_size_in_bytes when handling VIEW_CONVERT_EXPRs
35489	via stack temporaries.  Treat the mode size as polynomial too.
35490
354912018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35492	    Alan Hayward  <alan.hayward@arm.com>
35493	    David Sherwood  <david.sherwood@arm.com>
35494
35495	* expr.c (expand_expr_real_2): When handling conversions involving
35496	unions, apply tree_to_poly_uint64 to the TYPE_SIZE rather than
35497	multiplying int_size_in_bytes by BITS_PER_UNIT.  Treat GET_MODE_BISIZE
35498	as a poly_uint64 too.
35499
355002018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35501	    Alan Hayward  <alan.hayward@arm.com>
35502	    David Sherwood  <david.sherwood@arm.com>
35503
35504	* rtlanal.c (subreg_get_info): Handle polynomial mode sizes.
35505
355062018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35507	    Alan Hayward  <alan.hayward@arm.com>
35508	    David Sherwood  <david.sherwood@arm.com>
35509
35510	* combine.c (can_change_dest_mode): Handle polynomial
35511	REGMODE_NATURAL_SIZE.
35512	* expmed.c (store_bit_field_1): Likewise.
35513	* expr.c (store_constructor): Likewise.
35514	* emit-rtl.c (validate_subreg): Operate on polynomial mode sizes
35515	and polynomial REGMODE_NATURAL_SIZE.
35516	(gen_lowpart_common): Likewise.
35517	* reginfo.c (record_subregs_of_mode): Likewise.
35518	* rtlanal.c (read_modify_subreg_p): Likewise.
35519
355202018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35521	    Alan Hayward  <alan.hayward@arm.com>
35522	    David Sherwood  <david.sherwood@arm.com>
35523
35524	* internal-fn.c (expand_vector_ubsan_overflow): Handle polynomial
35525	numbers of elements.
35526
355272018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35528	    Alan Hayward  <alan.hayward@arm.com>
35529	    David Sherwood  <david.sherwood@arm.com>
35530
35531	* match.pd: Cope with polynomial numbers of vector elements.
35532
355332018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35534	    Alan Hayward  <alan.hayward@arm.com>
35535	    David Sherwood  <david.sherwood@arm.com>
35536
35537	* fold-const.c (fold_indirect_ref_1): Handle polynomial offsets
35538	in a POINTER_PLUS_EXPR.
35539
355402018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35541	    Alan Hayward  <alan.hayward@arm.com>
35542	    David Sherwood  <david.sherwood@arm.com>
35543
35544	* omp-simd-clone.c (simd_clone_subparts): New function.
35545	(simd_clone_init_simd_arrays): Use it instead of TYPE_VECTOR_SUBPARTS.
35546	(ipa_simd_modify_function_body): Likewise.
35547
355482018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35549	    Alan Hayward  <alan.hayward@arm.com>
35550	    David Sherwood  <david.sherwood@arm.com>
35551
35552	* tree-vect-generic.c (nunits_for_known_piecewise_op): New function.
35553	(expand_vector_piecewise): Use it instead of TYPE_VECTOR_SUBPARTS.
35554	(expand_vector_addition, add_rshift, expand_vector_divmod): Likewise.
35555	(expand_vector_condition, vector_element): Likewise.
35556	(subparts_gt): New function.
35557	(get_compute_type): Use subparts_gt.
35558	(count_type_subparts): Delete.
35559	(expand_vector_operations_1): Use subparts_gt instead of
35560	count_type_subparts.
35561
355622018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35563	    Alan Hayward  <alan.hayward@arm.com>
35564	    David Sherwood  <david.sherwood@arm.com>
35565
35566	* tree-vect-data-refs.c (vect_no_alias_p): Replace with...
35567	(vect_compile_time_alias): ...this new function.  Do the calculation
35568	on poly_ints rather than trees.
35569	(vect_prune_runtime_alias_test_list): Update call accordingly.
35570
355712018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35572	    Alan Hayward  <alan.hayward@arm.com>
35573	    David Sherwood  <david.sherwood@arm.com>
35574
35575	* tree-vect-slp.c (vect_build_slp_tree_1): Handle polynomial
35576	numbers of units.
35577	(vect_schedule_slp_instance): Likewise.
35578
355792018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35580	    Alan Hayward  <alan.hayward@arm.com>
35581	    David Sherwood  <david.sherwood@arm.com>
35582
35583	* tree-vect-slp.c (vect_get_and_check_slp_defs): Reject
35584	constant and extern definitions for variable-length vectors.
35585	(vect_get_constant_vectors): Note that the number of units
35586	is known to be constant.
35587
355882018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35589	    Alan Hayward  <alan.hayward@arm.com>
35590	    David Sherwood  <david.sherwood@arm.com>
35591
35592	* tree-vect-stmts.c (vectorizable_conversion): Treat the number
35593	of units as polynomial.  Choose between WIDE and NARROW based
35594	on multiple_p.
35595
355962018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35597	    Alan Hayward  <alan.hayward@arm.com>
35598	    David Sherwood  <david.sherwood@arm.com>
35599
35600	* tree-vect-stmts.c (simd_clone_subparts): New function.
35601	(vectorizable_simd_clone_call): Use it instead of TYPE_VECTOR_SUBPARTS.
35602
356032018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35604	    Alan Hayward  <alan.hayward@arm.com>
35605	    David Sherwood  <david.sherwood@arm.com>
35606
35607	* tree-vect-stmts.c (vectorizable_call): Treat the number of
35608	vectors as polynomial.  Use build_index_vector for
35609	IFN_GOMP_SIMD_LANE.
35610
356112018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35612	    Alan Hayward  <alan.hayward@arm.com>
35613	    David Sherwood  <david.sherwood@arm.com>
35614
35615	* tree-vect-stmts.c (get_load_store_type): Treat the number of
35616	units as polynomial.  Reject VMAT_ELEMENTWISE and VMAT_STRIDED_SLP
35617	for variable-length vectors.
35618	(vectorizable_mask_load_store): Treat the number of units as
35619	polynomial, asserting that it is constant if the condition has
35620	already been enforced.
35621	(vectorizable_store, vectorizable_load): Likewise.
35622
356232018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35624	    Alan Hayward  <alan.hayward@arm.com>
35625	    David Sherwood  <david.sherwood@arm.com>
35626
35627	* tree-vect-loop.c (vectorizable_live_operation): Treat the number
35628	of units as polynomial.  Punt if we can't tell at compile time
35629	which vector contains the final result.
35630
356312018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35632	    Alan Hayward  <alan.hayward@arm.com>
35633	    David Sherwood  <david.sherwood@arm.com>
35634
35635	* tree-vect-loop.c (vectorizable_induction): Treat the number
35636	of units as polynomial.  Punt on SLP inductions.  Use an integer
35637	VEC_SERIES_EXPR for variable-length integer reductions.  Use a
35638	cast of such a series for variable-length floating-point
35639	reductions.
35640
356412018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35642	    Alan Hayward  <alan.hayward@arm.com>
35643	    David Sherwood  <david.sherwood@arm.com>
35644
35645	* tree.h (build_index_vector): Declare.
35646	* tree.c (build_index_vector): New function.
35647	* tree-vect-loop.c (get_initial_defs_for_reduction): Treat the number
35648	of units as polynomial, forcibly converting it to a constant if
35649	vectorizable_reduction has already enforced the condition.
35650	(vect_create_epilog_for_reduction): Likewise.  Use build_index_vector
35651	to create a {1,2,3,...} vector.
35652	(vectorizable_reduction): Treat the number of units as polynomial.
35653	Choose vectype_in based on the largest scalar element size rather
35654	than the smallest number of units.  Enforce the restrictions
35655	relied on above.
35656
356572018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35658	    Alan Hayward  <alan.hayward@arm.com>
35659	    David Sherwood  <david.sherwood@arm.com>
35660
35661	* tree-vect-data-refs.c (vector_alignment_reachable_p): Treat the
35662	number of units as polynomial.
35663
356642018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35665	    Alan Hayward  <alan.hayward@arm.com>
35666	    David Sherwood  <david.sherwood@arm.com>
35667
35668	* target.h (vector_sizes, auto_vector_sizes): New typedefs.
35669	* target.def (autovectorize_vector_sizes): Return the vector sizes
35670	by pointer, using vector_sizes rather than a bitmask.
35671	* targhooks.h (default_autovectorize_vector_sizes): Update accordingly.
35672	* targhooks.c (default_autovectorize_vector_sizes): Likewise.
35673	* config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes):
35674	Likewise.
35675	* config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
35676	* config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
35677	* config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise.
35678	* config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
35679	* omp-general.c (omp_max_vf): Likewise.
35680	* omp-low.c (omp_clause_aligned_alignment): Likewise.
35681	* optabs-query.c (can_vec_mask_load_store_p): Likewise.
35682	* tree-vect-loop.c (vect_analyze_loop): Likewise.
35683	* tree-vect-slp.c (vect_slp_bb): Likewise.
35684	* doc/tm.texi: Regenerate.
35685	* tree-vectorizer.h (current_vector_size): Change from an unsigned int
35686	to a poly_uint64.
35687	* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Take
35688	the vector size as a poly_uint64 rather than an unsigned int.
35689	(current_vector_size): Change from an unsigned int to a poly_uint64.
35690	(get_vectype_for_scalar_type): Update accordingly.
35691	* tree.h (build_truth_vector_type): Take the size and number of
35692	units as a poly_uint64 rather than an unsigned int.
35693	(build_vector_type): Add a temporary overload that takes
35694	the number of units as a poly_uint64 rather than an unsigned int.
35695	* tree.c (make_vector_type): Likewise.
35696	(build_truth_vector_type): Take the number of units as a poly_uint64
35697	rather than an unsigned int.
35698
356992018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35700	    Alan Hayward  <alan.hayward@arm.com>
35701	    David Sherwood  <david.sherwood@arm.com>
35702
35703	* target.def (get_mask_mode): Take the number of units and length
35704	as poly_uint64s rather than unsigned ints.
35705	* targhooks.h (default_get_mask_mode): Update accordingly.
35706	* targhooks.c (default_get_mask_mode): Likewise.
35707	* config/i386/i386.c (ix86_get_mask_mode): Likewise.
35708	* doc/tm.texi: Regenerate.
35709
357102018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35711	    Alan Hayward  <alan.hayward@arm.com>
35712	    David Sherwood  <david.sherwood@arm.com>
35713
35714	* omp-general.h (omp_max_vf): Return a poly_uint64 instead of an int.
35715	* omp-general.c (omp_max_vf): Likewise.
35716	* omp-expand.c (omp_adjust_chunk_size): Update call to omp_max_vf.
35717	(expand_omp_simd): Handle polynomial safelen.
35718	* omp-low.c (omplow_simd_context): Add a default constructor.
35719	(omplow_simd_context::max_vf): Change from int to poly_uint64.
35720	(lower_rec_simd_input_clauses): Update accordingly.
35721	(lower_rec_input_clauses): Likewise.
35722
357232018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35724	    Alan Hayward  <alan.hayward@arm.com>
35725	    David Sherwood  <david.sherwood@arm.com>
35726
35727	* tree-vectorizer.h (vect_nunits_for_cost): New function.
35728	* tree-vect-loop.c (vect_model_reduction_cost): Use it.
35729	* tree-vect-slp.c (vect_analyze_slp_cost_1): Likewise.
35730	(vect_analyze_slp_cost): Likewise.
35731	* tree-vect-stmts.c (vect_model_store_cost): Likewise.
35732	(vect_model_load_cost): Likewise.
35733
357342018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35735	    Alan Hayward  <alan.hayward@arm.com>
35736	    David Sherwood  <david.sherwood@arm.com>
35737
35738	* tree-vect-slp.c (vect_record_max_nunits, vect_build_slp_tree_1)
35739	(vect_build_slp_tree_2, vect_build_slp_tree): Change max_nunits
35740	from an unsigned int * to a poly_uint64_pod *.
35741	(calculate_unrolling_factor): New function.
35742	(vect_analyze_slp_instance): Use it.  Track polynomial max_nunits.
35743
357442018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35745	    Alan Hayward  <alan.hayward@arm.com>
35746	    David Sherwood  <david.sherwood@arm.com>
35747
35748	* tree-vectorizer.h (_slp_instance::unrolling_factor): Change
35749	from an unsigned int to a poly_uint64.
35750	(_loop_vec_info::slp_unrolling_factor): Likewise.
35751	(_loop_vec_info::vectorization_factor): Change from an int
35752	to a poly_uint64.
35753	(MAX_VECTORIZATION_FACTOR): Bump from 64 to INT_MAX.
35754	(vect_get_num_vectors): New function.
35755	(vect_update_max_nunits, vect_vf_for_cost): Likewise.
35756	(vect_get_num_copies): Use vect_get_num_vectors.
35757	(vect_analyze_data_ref_dependences): Change max_vf from an int *
35758	to an unsigned int *.
35759	(vect_analyze_data_refs): Change min_vf from an int * to a
35760	poly_uint64 *.
35761	(vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather
35762	than an unsigned HOST_WIDE_INT.
35763	* tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr)
35764	(vect_analyze_data_ref_dependence): Change max_vf from an int *
35765	to an unsigned int *.
35766	(vect_analyze_data_ref_dependences): Likewise.
35767	(vect_compute_data_ref_alignment): Handle polynomial vf.
35768	(vect_enhance_data_refs_alignment): Likewise.
35769	(vect_prune_runtime_alias_test_list): Likewise.
35770	(vect_shift_permute_load_chain): Likewise.
35771	(vect_supportable_dr_alignment): Likewise.
35772	(dependence_distance_ge_vf): Take the vectorization factor as a
35773	poly_uint64 rather than an unsigned HOST_WIDE_INT.
35774	(vect_analyze_data_refs): Change min_vf from an int * to a
35775	poly_uint64 *.
35776	* tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Take
35777	vfm1 as a poly_uint64 rather than an int.  Make the same change
35778	for the returned bound_scalar.
35779	(vect_gen_vector_loop_niters): Handle polynomial vf.
35780	(vect_do_peeling): Likewise.  Update call to
35781	vect_gen_scalar_loop_niters and handle polynomial bound_scalars.
35782	(vect_gen_vector_loop_niters_mult_vf): Assert that the vf must
35783	be constant.
35784	* tree-vect-loop.c (vect_determine_vectorization_factor)
35785	(vect_update_vf_for_slp, vect_analyze_loop_2): Handle polynomial vf.
35786	(vect_get_known_peeling_cost): Likewise.
35787	(vect_estimate_min_profitable_iters, vectorizable_reduction): Likewise.
35788	(vect_worthwhile_without_simd_p, vectorizable_induction): Likewise.
35789	(vect_transform_loop): Likewise.  Use the lowest possible VF when
35790	updating the upper bounds of the loop.
35791	(vect_min_worthwhile_factor): Make static.  Return an unsigned int
35792	rather than an int.
35793	* tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Cope with
35794	polynomial unroll factors.
35795	(vect_analyze_slp_cost_1, vect_analyze_slp_instance): Likewise.
35796	(vect_make_slp_decision): Likewise.
35797	(vect_supported_load_permutation_p): Likewise, and polynomial
35798	vf too.
35799	(vect_analyze_slp_cost): Handle polynomial vf.
35800	(vect_slp_analyze_node_operations): Likewise.
35801	(vect_slp_analyze_bb_1): Likewise.
35802	(vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather
35803	than an unsigned HOST_WIDE_INT.
35804	* tree-vect-stmts.c (vectorizable_simd_clone_call, vectorizable_store)
35805	(vectorizable_load): Handle polynomial vf.
35806	* tree-vectorizer.c (simduid_to_vf::vf): Change from an int to
35807	a poly_uint64.
35808	(adjust_simduid_builtins, shrink_simd_arrays): Update accordingly.
35809
358102018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35811	    Alan Hayward  <alan.hayward@arm.com>
35812	    David Sherwood  <david.sherwood@arm.com>
35813
35814	* match.pd: Handle bit operations involving three constants
35815	and try to fold one pair.
35816
358172018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
35818
35819	* tree-vect-loop-manip.c: Include gimple-fold.h.
35820	(slpeel_make_loop_iterate_ntimes): Add step, final_iv and
35821	niters_maybe_zero parameters.  Handle other cases besides a step of 1.
35822	(vect_gen_vector_loop_niters): Add a step_vector_ptr parameter.
35823	Add a path that uses a step of VF instead of 1, but disable it
35824	for now.
35825	(vect_do_peeling): Add step_vector, niters_vector_mult_vf_var
35826	and niters_no_overflow parameters.  Update calls to
35827	slpeel_make_loop_iterate_ntimes and vect_gen_vector_loop_niters.
35828	Create a new SSA name if the latter choses to use a ste other
35829	than zero, and return it via niters_vector_mult_vf_var.
35830	* tree-vect-loop.c (vect_transform_loop): Update calls to
35831	vect_do_peeling, vect_gen_vector_loop_niters and
35832	slpeel_make_loop_iterate_ntimes.
35833	* tree-vectorizer.h (slpeel_make_loop_iterate_ntimes, vect_do_peeling)
35834	(vect_gen_vector_loop_niters): Update declarations after above changes.
35835
358362018-01-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
35837
35838	* config/rs6000/rs6000.md (floor<mode>2): Add support for IEEE
35839	128-bit round to integer instructions.
35840	(ceil<mode>2): Likewise.
35841	(btrunc<mode>2): Likewise.
35842	(round<mode>2): Likewise.
35843
358442018-01-02  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
35845
35846	* config/rs6000/rs6000-string.c (expand_block_move): Allow the use of
35847	unaligned VSX load/store on P8/P9.
35848	(expand_block_clear): Allow the use of unaligned VSX
35849	load/store on P8/P9.
35850
358512018-01-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35852
35853	* config/rs6000/rs6000-p8swap.c (swap_feeds_both_load_and_store):
35854	New function.
35855	(rs6000_analyze_swaps): Mark a web unoptimizable if it contains a
35856	swap associated with both a load and a store.
35857
358582018-01-02  Andrew Waterman  <andrew@sifive.com>
35859
35860	* config/riscv/linux.h (ICACHE_FLUSH_FUNC): New.
35861	* config/riscv/riscv.md (clear_cache): Use it.
35862
358632018-01-02  Artyom Skrobov  <tyomitch@gmail.com>
35864
35865	* web.c: Remove out-of-date comment.
35866
358672018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
35868
35869	* expr.c (fixup_args_size_notes): Check that any existing
35870	REG_ARGS_SIZE notes are correct, and don't try to re-add them.
35871	(emit_single_push_insn_1): Move stack_pointer_delta adjustment to...
35872	(emit_single_push_insn): ...here.
35873
358742018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
35875
35876	* rtl.h (CONST_VECTOR_ELT): Redefine to const_vector_elt.
35877	(const_vector_encoded_nelts): New function.
35878	(CONST_VECTOR_NUNITS): Redefine to use GET_MODE_NUNITS.
35879	(const_vector_int_elt, const_vector_elt): Declare.
35880	* emit-rtl.c (const_vector_int_elt_1): New function.
35881	(const_vector_elt): Likewise.
35882	* simplify-rtx.c (simplify_immed_subreg): Avoid taking the address
35883	of CONST_VECTOR_ELT.
35884
358852018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
35886
35887	* expr.c: Include rtx-vector-builder.h.
35888	(const_vector_mask_from_tree): Use rtx_vector_builder and operate
35889	directly on the tree encoding.
35890	(const_vector_from_tree): Likewise.
35891	* optabs.c: Include rtx-vector-builder.h.
35892	(expand_vec_perm_var): Use rtx_vector_builder and create a repeating
35893	sequence of "u" values.
35894	* vec-perm-indices.c: Include rtx-vector-builder.h.
35895	(vec_perm_indices_to_rtx): Use rtx_vector_builder and operate
35896	directly on the vec_perm_indices encoding.
35897
358982018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
35899
35900	* doc/rtl.texi (const_vector): Describe new encoding scheme.
35901	* Makefile.in (OBJS): Add rtx-vector-builder.o.
35902	* rtx-vector-builder.h: New file.
35903	* rtx-vector-builder.c: Likewise.
35904	* rtl.h (rtx_def::u2): Add a const_vector field.
35905	(CONST_VECTOR_NPATTERNS): New macro.
35906	(CONST_VECTOR_NELTS_PER_PATTERN): Likewise.
35907	(CONST_VECTOR_DUPLICATE_P): Likewise.
35908	(CONST_VECTOR_STEPPED_P): Likewise.
35909	(CONST_VECTOR_ENCODED_ELT): Likewise.
35910	(const_vec_duplicate_p): Check for a duplicated vector encoding.
35911	(unwrap_const_vec_duplicate): Likewise.
35912	(const_vec_series_p): Check for a non-duplicated vector encoding.
35913	Say that the function only returns true for integer vectors.
35914	* emit-rtl.c: Include rtx-vector-builder.h.
35915	(gen_const_vec_duplicate_1): Delete.
35916	(gen_const_vector): Call gen_const_vec_duplicate instead of
35917	gen_const_vec_duplicate_1.
35918	(const_vec_series_p_1): Operate directly on the CONST_VECTOR encoding.
35919	(gen_const_vec_duplicate): Use rtx_vector_builder.
35920	(gen_const_vec_series): Likewise.
35921	(gen_rtx_CONST_VECTOR): Likewise.
35922	* config/powerpcspe/powerpcspe.c: Include rtx-vector-builder.h.
35923	(swap_const_vector_halves): Take an rtx pointer rather than rtx.
35924	Build a new vector rather than modifying a CONST_VECTOR in-place.
35925	(handle_special_swappables): Update call accordingly.
35926	* config/rs6000/rs6000-p8swap.c: Include rtx-vector-builder.h.
35927	(swap_const_vector_halves): Take an rtx pointer rather than rtx.
35928	Build a new vector rather than modifying a CONST_VECTOR in-place.
35929	(handle_special_swappables): Update call accordingly.
35930
359312018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
35932
35933	* simplify-rtx.c (simplify_const_binary_operation): Use
35934	CONST_VECTOR_ELT instead of XVECEXP.
35935
359362018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
35937
35938	* tree-cfg.c (verify_gimple_assign_ternary): Allow the size of
35939	the selector elements to be different from the data elements
35940	if the selector is a VECTOR_CST.
35941	* tree-vect-stmts.c (vect_gen_perm_mask_any): Use a vector of
35942	ssizetype for the selector.
35943
359442018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
35945
35946	* optabs.c (shift_amt_for_vec_perm_mask): Try using series_p
35947	before testing each element individually.
35948	* tree-vect-generic.c (lower_vec_perm): Likewise.
35949
359502018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
35951
35952	* selftest.h (selftest::vec_perm_indices_c_tests): Declare.
35953	* selftest-run-tests.c (selftest::run_tests): Call it.
35954	* vector-builder.h (vector_builder::operator ==): New function.
35955	(vector_builder::operator !=): Likewise.
35956	* vec-perm-indices.h (vec_perm_indices::series_p): Declare.
35957	(vec_perm_indices::all_from_input_p): New function.
35958	* vec-perm-indices.c (vec_perm_indices::series_p): Likewise.
35959	(test_vec_perm_12, selftest::vec_perm_indices_c_tests): Likewise.
35960	* fold-const.c (fold_ternary_loc): Use tree_to_vec_perm_builder
35961	instead of reading the VECTOR_CST directly.  Detect whether both
35962	vector inputs are the same before constructing the vec_perm_indices,
35963	and update the number of inputs argument accordingly.  Use the
35964	utility functions added above.  Only construct sel2 if we need to.
35965
359662018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
35967
35968	* optabs.c (expand_vec_perm_var): Use an explicit encoding for
35969	the broadcast of the low byte.
35970	(expand_mult_highpart): Use an explicit encoding for the permutes.
35971	* optabs-query.c (can_mult_highpart_p): Likewise.
35972	* tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
35973	* tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
35974	(vectorizable_bswap): Likewise.
35975	* tree-vect-data-refs.c (vect_grouped_store_supported): Use an
35976	explicit encoding for the power-of-2 permutes.
35977	(vect_permute_store_chain): Likewise.
35978	(vect_grouped_load_supported): Likewise.
35979	(vect_permute_load_chain): Likewise.
35980
359812018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
35982
35983	* vec-perm-indices.h (vec_perm_indices_to_tree): Declare.
35984	* vec-perm-indices.c (vec_perm_indices_to_tree): New function.
35985	* tree-ssa-forwprop.c (simplify_vector_constructor): Use it.
35986	* tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
35987	* tree-vect-stmts.c (vectorizable_bswap): Likewise.
35988	(vect_gen_perm_mask_any): Likewise.
35989
359902018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
35991
35992	* int-vector-builder.h: New file.
35993	* vec-perm-indices.h: Include int-vector-builder.h.
35994	(vec_perm_indices): Redefine as an int_vector_builder.
35995	(auto_vec_perm_indices): Delete.
35996	(vec_perm_builder): Redefine as a stand-alone class.
35997	(vec_perm_indices::vec_perm_indices): New function.
35998	(vec_perm_indices::clamp): Likewise.
35999	* vec-perm-indices.c: Include fold-const.h and tree-vector-builder.h.
36000	(vec_perm_indices::new_vector): New function.
36001	(vec_perm_indices::new_expanded_vector): Update for new
36002	vec_perm_indices class.
36003	(vec_perm_indices::rotate_inputs): New function.
36004	(vec_perm_indices::all_in_range_p): Operate directly on the
36005	encoded form, without computing elided elements.
36006	(tree_to_vec_perm_builder): Operate directly on the VECTOR_CST
36007	encoding.  Update for new vec_perm_indices class.
36008	* optabs.c (expand_vec_perm_const): Create a vec_perm_indices for
36009	the given vec_perm_builder.
36010	(expand_vec_perm_var): Update vec_perm_builder constructor.
36011	(expand_mult_highpart): Use vec_perm_builder instead of
36012	auto_vec_perm_indices.
36013	* optabs-query.c (can_mult_highpart_p): Use vec_perm_builder and
36014	vec_perm_indices instead of auto_vec_perm_indices.  Use a single
36015	or double series encoding as appropriate.
36016	* fold-const.c (fold_ternary_loc): Use vec_perm_builder and
36017	vec_perm_indices instead of auto_vec_perm_indices.
36018	* tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
36019	* tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
36020	(vect_permute_store_chain): Likewise.
36021	(vect_grouped_load_supported): Likewise.
36022	(vect_permute_load_chain): Likewise.
36023	(vect_shift_permute_load_chain): Likewise.
36024	* tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
36025	(vect_transform_slp_perm_load): Likewise.
36026	(vect_schedule_slp_instance): Likewise.
36027	* tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
36028	(vectorizable_mask_load_store): Likewise.
36029	(vectorizable_bswap): Likewise.
36030	(vectorizable_store): Likewise.
36031	(vectorizable_load): Likewise.
36032	* tree-vect-generic.c (lower_vec_perm): Use vec_perm_builder and
36033	vec_perm_indices instead of auto_vec_perm_indices.  Use
36034	tree_to_vec_perm_builder to read the vector from a tree.
36035	* tree-vect-loop.c (calc_vec_perm_mask_for_shift): Take a
36036	vec_perm_builder instead of a vec_perm_indices.
36037	(have_whole_vector_shift): Use vec_perm_builder and
36038	vec_perm_indices instead of auto_vec_perm_indices.  Leave the
36039	truncation to calc_vec_perm_mask_for_shift.
36040	(vect_create_epilog_for_reduction): Likewise.
36041	* config/aarch64/aarch64.c (expand_vec_perm_d::perm): Change
36042	from auto_vec_perm_indices to vec_perm_indices.
36043	(aarch64_expand_vec_perm_const_1): Use rotate_inputs on d.perm
36044	instead of changing individual elements.
36045	(aarch64_vectorize_vec_perm_const): Use new_vector to install
36046	the vector in d.perm.
36047	* config/arm/arm.c (expand_vec_perm_d::perm): Change
36048	from auto_vec_perm_indices to vec_perm_indices.
36049	(arm_expand_vec_perm_const_1): Use rotate_inputs on d.perm
36050	instead of changing individual elements.
36051	(arm_vectorize_vec_perm_const): Use new_vector to install
36052	the vector in d.perm.
36053	* config/powerpcspe/powerpcspe.c (rs6000_expand_extract_even):
36054	Update vec_perm_builder constructor.
36055	(rs6000_expand_interleave): Likewise.
36056	* config/rs6000/rs6000.c (rs6000_expand_extract_even): Likewise.
36057	(rs6000_expand_interleave): Likewise.
36058
360592018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
36060
36061	* optabs-query.c (can_vec_perm_var_p): Check whether lowering
36062	to qimode could truncate the indices.
36063	* optabs.c (expand_vec_perm_var): Likewise.
36064
360652018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
36066
36067	* Makefile.in (OBJS): Add vec-perm-indices.o.
36068	* vec-perm-indices.h: New file.
36069	* vec-perm-indices.c: Likewise.
36070	* target.h (vec_perm_indices): Replace with a forward class
36071	declaration.
36072	(auto_vec_perm_indices): Move to vec-perm-indices.h.
36073	* optabs.h: Include vec-perm-indices.h.
36074	(expand_vec_perm): Delete.
36075	(selector_fits_mode_p, expand_vec_perm_var): Declare.
36076	(expand_vec_perm_const): Declare.
36077	* target.def (vec_perm_const_ok): Replace with...
36078	(vec_perm_const): ...this new hook.
36079	* doc/tm.texi.in (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Replace with...
36080	(TARGET_VECTORIZE_VEC_PERM_CONST): ...this new hook.
36081	* doc/tm.texi: Regenerate.
36082	* optabs.def (vec_perm_const): Delete.
36083	* doc/md.texi (vec_perm_const): Likewise.
36084	(vec_perm): Refer to TARGET_VECTORIZE_VEC_PERM_CONST.
36085	* expr.c (expand_expr_real_2): Use expand_vec_perm_const rather than
36086	expand_vec_perm for constant permutation vectors.  Assert that
36087	the mode of variable permutation vectors is the integer equivalent
36088	of the mode that is being permuted.
36089	* optabs-query.h (selector_fits_mode_p): Declare.
36090	* optabs-query.c: Include vec-perm-indices.h.
36091	(selector_fits_mode_p): New function.
36092	(can_vec_perm_const_p): Check whether targetm.vectorize.vec_perm_const
36093	is defined, instead of checking whether the vec_perm_const_optab
36094	exists.  Use targetm.vectorize.vec_perm_const instead of
36095	targetm.vectorize.vec_perm_const_ok.  Check whether the indices
36096	fit in the vector mode before using a variable permute.
36097	* optabs.c (shift_amt_for_vec_perm_mask): Take a mode and a
36098	vec_perm_indices instead of an rtx.
36099	(expand_vec_perm): Replace with...
36100	(expand_vec_perm_const): ...this new function.  Take the selector
36101	as a vec_perm_indices rather than an rtx.  Also take the mode of
36102	the selector.  Update call to shift_amt_for_vec_perm_mask.
36103	Use targetm.vectorize.vec_perm_const instead of vec_perm_const_optab.
36104	Use vec_perm_indices::new_expanded_vector to expand the original
36105	selector into bytes.  Check whether the indices fit in the vector
36106	mode before using a variable permute.
36107	(expand_vec_perm_var): Make global.
36108	(expand_mult_highpart): Use expand_vec_perm_const.
36109	* fold-const.c: Includes vec-perm-indices.h.
36110	* tree-ssa-forwprop.c: Likewise.
36111	* tree-vect-data-refs.c: Likewise.
36112	* tree-vect-generic.c: Likewise.
36113	* tree-vect-loop.c: Likewise.
36114	* tree-vect-slp.c: Likewise.
36115	* tree-vect-stmts.c: Likewise.
36116	* config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm_const):
36117	Delete.
36118	* config/aarch64/aarch64-simd.md (vec_perm_const<mode>): Delete.
36119	* config/aarch64/aarch64.c (aarch64_expand_vec_perm_const)
36120	(aarch64_vectorize_vec_perm_const_ok): Fuse into...
36121	(aarch64_vectorize_vec_perm_const): ...this new function.
36122	(TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete.
36123	(TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
36124	* config/arm/arm-protos.h (arm_expand_vec_perm_const): Delete.
36125	* config/arm/vec-common.md (vec_perm_const<mode>): Delete.
36126	* config/arm/arm.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete.
36127	(TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
36128	(arm_expand_vec_perm_const, arm_vectorize_vec_perm_const_ok): Merge
36129	into...
36130	(arm_vectorize_vec_perm_const): ...this new function.  Explicitly
36131	check for NEON modes.
36132	* config/i386/i386-protos.h (ix86_expand_vec_perm_const): Delete.
36133	* config/i386/sse.md (VEC_PERM_CONST, vec_perm_const<mode>): Delete.
36134	* config/i386/i386.c (ix86_expand_vec_perm_const_1): Update comment.
36135	(ix86_expand_vec_perm_const, ix86_vectorize_vec_perm_const_ok): Merge
36136	into...
36137	(ix86_vectorize_vec_perm_const): ...this new function.  Incorporate
36138	the old VEC_PERM_CONST conditions.
36139	* config/ia64/ia64-protos.h (ia64_expand_vec_perm_const): Delete.
36140	* config/ia64/vect.md (vec_perm_const<mode>): Delete.
36141	* config/ia64/ia64.c (ia64_expand_vec_perm_const)
36142	(ia64_vectorize_vec_perm_const_ok): Merge into...
36143	(ia64_vectorize_vec_perm_const): ...this new function.
36144	* config/mips/loongson.md (vec_perm_const<mode>): Delete.
36145	* config/mips/mips-msa.md (vec_perm_const<mode>): Delete.
36146	* config/mips/mips-ps-3d.md (vec_perm_constv2sf): Delete.
36147	* config/mips/mips-protos.h (mips_expand_vec_perm_const): Delete.
36148	* config/mips/mips.c (mips_expand_vec_perm_const)
36149	(mips_vectorize_vec_perm_const_ok): Merge into...
36150	(mips_vectorize_vec_perm_const): ...this new function.
36151	* config/powerpcspe/altivec.md (vec_perm_constv16qi): Delete.
36152	* config/powerpcspe/paired.md (vec_perm_constv2sf): Delete.
36153	* config/powerpcspe/spe.md (vec_perm_constv2si): Delete.
36154	* config/powerpcspe/vsx.md (vec_perm_const<mode>): Delete.
36155	* config/powerpcspe/powerpcspe-protos.h (altivec_expand_vec_perm_const)
36156	(rs6000_expand_vec_perm_const): Delete.
36157	* config/powerpcspe/powerpcspe.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK):
36158	Delete.
36159	(TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
36160	(altivec_expand_vec_perm_const_le): Take each operand individually.
36161	Operate on constant selectors rather than rtxes.
36162	(altivec_expand_vec_perm_const): Likewise.  Update call to
36163	altivec_expand_vec_perm_const_le.
36164	(rs6000_expand_vec_perm_const): Delete.
36165	(rs6000_vectorize_vec_perm_const_ok): Delete.
36166	(rs6000_vectorize_vec_perm_const): New function.
36167	(rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of
36168	an element count and rtx array.
36169	(rs6000_expand_extract_even): Update call accordingly.
36170	(rs6000_expand_interleave): Likewise.
36171	* config/rs6000/altivec.md (vec_perm_constv16qi): Delete.
36172	* config/rs6000/paired.md (vec_perm_constv2sf): Delete.
36173	* config/rs6000/vsx.md (vec_perm_const<mode>): Delete.
36174	* config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_const)
36175	(rs6000_expand_vec_perm_const): Delete.
36176	* config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete.
36177	(TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
36178	(altivec_expand_vec_perm_const_le): Take each operand individually.
36179	Operate on constant selectors rather than rtxes.
36180	(altivec_expand_vec_perm_const): Likewise.  Update call to
36181	altivec_expand_vec_perm_const_le.
36182	(rs6000_expand_vec_perm_const): Delete.
36183	(rs6000_vectorize_vec_perm_const_ok): Delete.
36184	(rs6000_vectorize_vec_perm_const): New function.  Remove stray
36185	reference to the SPE evmerge intructions.
36186	(rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of
36187	an element count and rtx array.
36188	(rs6000_expand_extract_even): Update call accordingly.
36189	(rs6000_expand_interleave): Likewise.
36190	* config/sparc/sparc.md (vec_perm_constv8qi): Delete in favor of...
36191	* config/sparc/sparc.c (sparc_vectorize_vec_perm_const): ...this
36192	new function.
36193	(TARGET_VECTORIZE_VEC_PERM_CONST): Redefine.
36194
361952018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
36196
36197	* optabs.c (expand_vec_perm_1): Assert that SEL has an integer
36198	vector mode and that that mode matches the mode of the data
36199	being permuted.
36200	(expand_vec_perm): Split handling of non-CONST_VECTOR selectors
36201	out into expand_vec_perm_var.  Do all CONST_VECTOR handling here,
36202	directly using expand_vec_perm_1 when forcing selectors into
36203	registers.
36204	(expand_vec_perm_var): New function, split out from expand_vec_perm.
36205
362062018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
36207
36208	* optabs-query.h (can_vec_perm_p): Delete.
36209	(can_vec_perm_var_p, can_vec_perm_const_p): Declare.
36210	* optabs-query.c (can_vec_perm_p): Split into...
36211	(can_vec_perm_var_p, can_vec_perm_const_p): ...these two functions.
36212	(can_mult_highpart_p): Use can_vec_perm_const_p to test whether a
36213	particular selector is valid.
36214	* tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
36215	* tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
36216	(vect_grouped_load_supported): Likewise.
36217	(vect_shift_permute_load_chain): Likewise.
36218	* tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
36219	(vect_transform_slp_perm_load): Likewise.
36220	* tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
36221	(vectorizable_bswap): Likewise.
36222	(vect_gen_perm_mask_checked): Likewise.
36223	* fold-const.c (fold_ternary_loc): Likewise.  Don't take
36224	implementations of variable permutation vectors into account
36225	when deciding which selector to use.
36226	* tree-vect-loop.c (have_whole_vector_shift): Don't check whether
36227	vec_perm_const_optab is supported; instead use can_vec_perm_const_p
36228	with a false third argument.
36229	* tree-vect-generic.c (lower_vec_perm): Use can_vec_perm_const_p
36230	to test whether the constant selector is valid and can_vec_perm_var_p
36231	to test whether a variable selector is valid.
36232
362332018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
36234
36235	* optabs-query.h (can_vec_perm_p): Take a const vec_perm_indices *.
36236	* optabs-query.c (can_vec_perm_p): Likewise.
36237	* fold-const.c (fold_vec_perm): Take a const vec_perm_indices &
36238	instead of vec_perm_indices.
36239	* tree-vectorizer.h (vect_gen_perm_mask_any): Likewise,
36240	(vect_gen_perm_mask_checked): Likewise,
36241	* tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise,
36242	(vect_gen_perm_mask_checked): Likewise,
36243
362442018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>
36245
36246	* optabs-query.h (qimode_for_vec_perm): Declare.
36247	* optabs-query.c (can_vec_perm_p): Split out qimode search to...
36248	(qimode_for_vec_perm): ...this new function.
36249	* optabs.c (expand_vec_perm): Use qimode_for_vec_perm.
36250
362512018-01-02  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
36252
36253	* rtlanal.c (canonicalize_condition): Return 0 if final rtx
36254	does not have a conditional at the top.
36255
362562018-01-02  Richard Biener  <rguenther@suse.de>
36257
36258	* ipa-inline.c (big_speedup_p): Fix expression.
36259
362602018-01-02  Jan Hubicka  <hubicka@ucw.cz>
36261
36262	PR target/81616
36263	* config/i386/x86-tune-costs.h: Increase cost of integer load costs
36264	for generic 4->6.
36265
362662018-01-02  Jan Hubicka  <hubicka@ucw.cz>
36267
36268	PR target/81616
36269	Generic tuning.
36270	* x86-tune-costs.h (generic_cost): Reduce cost of FDIV 20->17,
36271	cost of sqrt 20->14, DIVSS 18->13, DIVSD 32->17, SQRtSS 30->14
36272	and SQRTsD 58->18, cond_not_taken_branch_cost. 2->1. Increase
36273	cond_taken_branch_cost 3->4.
36274
362752018-01-01  Jakub Jelinek  <jakub@redhat.com>
36276
36277	PR tree-optimization/83581
36278	* tree-loop-distribution.c (pass_loop_distribution::execute): Return
36279	TODO_cleanup_cfg if any changes have been made.
36280
36281	PR middle-end/83608
36282	* expr.c (store_expr_with_bounds): Use simplify_gen_subreg instead of
36283	convert_modes if target mode has the right side, but different mode
36284	class.
36285
36286	PR middle-end/83609
36287	* expr.c (expand_assignment): Fix up a typo in simplify_gen_subreg
36288	last argument when extracting from CONCAT.  If either from_real or
36289	from_imag is NULL, use expansion through memory.  If result is not
36290	a CONCAT and simplify_gen_subreg fails, try to simplify_gen_subreg
36291	the parts directly to inner mode, if even that fails, use expansion
36292	through memory.
36293
36294	PR middle-end/83623
36295	* expmed.c (expand_shift_1): For 2-byte rotates by BITS_PER_UNIT,
36296	check for bswap in mode rather than HImode and use that in expand_unop
36297	too.
36298
36299Copyright (C) 2018 Free Software Foundation, Inc.
36300
36301Copying and distribution of this file, with or without modification,
36302are permitted in any medium without royalty provided the copyright
36303notice and this notice are preserved.
36304