]> gcc.gnu.org Git - gcc.git/blob - gcc/ChangeLog-2018
Daily bump.
[gcc.git] / gcc / ChangeLog-2018
1 2018-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
7 2018-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
17 2018-12-30 Jan Hubicka <hubicka@ucw.cz>
18
19 * x86-tune.def: Enable inter_unit_moves_to_vec for generic.
20
21 2018-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
46 2018-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
52 2018-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
61 2018-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
68 2018-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
73 2018-12-28 Martin Sebor <msebor@redhat.com>
74
75 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Avoid
76 undesirable warning.
77
78 2018-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
83 2018-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
88 2018-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
97 2018-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
113 2018-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
120 2018-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
129 2018-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
137 2018-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
145 2018-12-24 Jan Hubicka <hubicka@ucw.cz>
146
147 PR lto/88140
148 * tree.c (fld_simplified_type): Temporarily disable array
149 simplification.
150
151 2018-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
158 2018-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
164 2018-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
170 2018-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
194 2018-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
204 2018-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
211 2018-12-23 Iain Sandoe <iain@sandoe.co.uk>
212
213 * config/i386/darwin.h (TARGET_ASM_OUTPUT_IDENT): New.
214
215 2018-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
224 2018-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
231 2018-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
236 2018-12-21 Jan Hubicka <hubicka@ucw.cz>
237
238 * ipa-utils.c (ipa_merge_profiles): Recompute summaries.
239
240 2018-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
248 2018-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
258 2018-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
264 2018-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
272 2018-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
292 2018-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
314 2018-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
320 2018-12-21 Jan Beulich <jbeulich@suse.com>
321
322 * config/i386/sse.md (vaesdec_<mode>, vaesdeclast_<mode>): Allow
323 memory input.
324
325 2018-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
331 2018-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
336 2018-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
341 2018-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
346 2018-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
351 2018-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
356 2018-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
361 2018-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
367 2018-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
382 2018-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
389 2018-12-20 Alan Modra <amodra@gmail.com>
390
391 * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Define.
392
393 2018-12-19 Andreas Tobler <andreast@gcc.gnu.org>
394
395 * config.gcc: Enable TARGET_DEFAULT_ASYNC_UNWIND_TABLES on
396 aarch64*-*-freebsd*
397
398 2018-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
406 2018-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
416 2018-12-19 Tom de Vries <tdevries@suse.de>
417
418 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Define.
419
420 2018-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
425 2018-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
430 2018-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
445 2018-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
495 2018-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
503 2018-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
510 2018-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
515 2018-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
521 2018-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
539 2018-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
547 2018-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
577 2018-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
593 2018-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
598 2018-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
604 2018-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
610 2018-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
615 2018-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
621 2018-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
630 2018-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
638 2018-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
644 2018-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
670 2018-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
676 2018-12-18 Jozef Lawrynowicz <jozef.l@mittosystems.com>
677
678 * config/msp430/msp430.h: Define TARGET_VTABLE_ENTRY_ALIGN.
679
680 2018-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
708 2018-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
715 2018-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.
720 2018-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
728 2018-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
733 2018-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
738 2018-12-17 Tom de Vries <tdevries@suse.de>
739
740 * config/nvptx/nvptx.c (nvptx_single): Fix whitespace.
741 (nvptx_neuter_pars): Likewise.
742
743 2018-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
748 2018-12-17 Tom de Vries <tdevries@suse.de>
749
750 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Rewrite using
751 predicate vars.
752
753 2018-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
787 2018-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
809 2018-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
815 2018-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
823 2018-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
832 2018-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
838 2018-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
866 2018-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
871 2018-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
877 2018-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
885 2018-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
896 2018-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
901 2018-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
916 2018-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
924 2018-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
930 2018-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
941 2018-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
951 2018-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
958 2018-12-14 Martin Sebor <msebor@redhat.com>
959
960 PR web/79738
961 * doc/extend.texi (attribute const, pure): Clarify.
962
963 2018-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
973 2018-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
979 2018-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
995 2018-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
1033 2018-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
1040 2018-12-14 Jeff Law <law@redhat.com>
1041
1042 * target.def (post_cfi_startproc): Fix text.
1043
1044 2018-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
1053 2018-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
1058 2018-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
1064 2018-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
1073 2018-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
1078 2018-12-14 Claudiu Zissulescu <claziss@synopsys.com>
1079
1080 * config/arc/arc.c (arc_restore_callee_milli) Don't clobber off
1081 variable.
1082
1083 2018-12-14 Claudiu Zissulescu <claziss@synopsys.com>
1084
1085 * config/arc/arc.h (reg_class): Add SIBCALL_REGS.
1086
1087 2018-12-14 Richard Biener <rguenther@suse.de>
1088
1089 * gimple-ssa-split-paths.c (is_feasible_trace): Remove
1090 duplicated code block.
1091
1092 2018-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
1098 2018-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
1103 2018-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
1108 2018-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
1113 2018-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
1123 2018-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
1129 2018-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
1140 2018-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
1145 2018-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
1156 2018-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
1162 2018-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
1168 2018-12-13 Jason Merrill <jason@redhat.com>
1169
1170 * gdbinit.in (pp): New macro.
1171 (pbb): Remove.
1172
1173 2018-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
1181 2018-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
1188 2018-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
1194 2018-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1195
1196 * doc/invoke.texi (-msve-vector-bits): Clarify -msve-vector-bits=128
1197 behavior.
1198
1199 2018-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
1213 2018-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
1237 2018-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
1248 2018-12-12 Martin Sebor <msebor@redhat.com>
1249
1250 * doc/extend.texi (attribute copy): Fix typos.
1251
1252 2018-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
1258 2018-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
1264 2018-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
1270 2018-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
1276 2018-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
1284 2018-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
1301 2018-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
1324 2018-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
1330 2018-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
1336 2018-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
1342 2018-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
1348 2018-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
1357 2018-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
1366 2018-12-11 Richard Biener <rguenther@suse.de>
1367
1368 * ccmp.c (ccmp_candidate_p): Use GIMPLE API properly.
1369
1370 2018-12-11 Jakub Jelinek <jakub@redhat.com>
1371
1372 PR lto/86004
1373 * doc/sourcebuild.texi (lto_incremental): Document new effective
1374 target.
1375
1376 2018-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
1386 2018-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
1392 2018-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
1398 2018-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
1414 2018-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
1422 2018-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
1429 2018-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
1436 2018-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
1442 2018-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
1448 2018-12-10 Jerome Lambourg <lambourg@adacore.com>
1449
1450 * config/vxworksae.h (TARGET_VXWORKS_HAVE_CTORS_DTORS): Define.
1451
1452 2018-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
1458 2018-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
1465 2018-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
1471 2018-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
1480 2018-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
1485 2018-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
1492 2018-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
1504 2018-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
1513 2018-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
1519 2018-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
1538 2018-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
1553 2018-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
1558 2018-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
1564 2018-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
1571 2018-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
1581 2018-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
1586 2018-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
1602 2018-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
1607 2018-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
1613 2018-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
1662 2018-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
1669 2018-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
1677 2018-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
1696 2018-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
1702 2018-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
1709 2018-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
1716 2018-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
1737 2018-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
1751 2018-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
1763 2018-12-05 David Edelsohn <dje.gcc@gmail.com>
1764
1765 * config/rs6000/aix72.h (ASM_DEFAULT_SPEC): Match Power7 processor
1766 default.
1767
1768 2018-12-05 Uros Bizjak <ubizjak@gmail.com>
1769
1770 * dwarf2out.c (field_byte_offset): Remove
1771 #ifdef PCC_BITFIELD_TYPE_MATTERS check.
1772
1773 2018-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
1782 2018-12-05 Iain Sandoe <iain@sandoe.co.uk>
1783
1784 * configure.ac (gcc_cv_otool): Set.
1785 * configure: Regenerate.
1786
1787 2018-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
1792 2018-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
1807 2018-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
1813 2018-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
1826 2018-12-05 Xianmiao Qu <xianmiao_qu@c-sky.com>
1827
1828 * config.gcc (csky-*-linux-gnu*): Force .init_array support.
1829
1830 2018-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
1836 2018-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
1842 2018-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
1847 2018-12-04 David Malcolm <dmalcolm@redhat.com>
1848
1849 PR c/82967
1850 * spellcheck.c (selftest::test_suggestions): Add another assertion.
1851
1852 2018-12-04 Martin Sebor <msebor@redhat.com>
1853
1854 * doc/extend.texi (__builtin_has_attribute): Fix typo.
1855
1856 2018-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
1867 2018-12-04 Martin Sebor <msebor@redhat.com>
1868
1869 * doc/extend.texi (attribute aligned): Expand.
1870
1871 2018-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
1878 2018-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
1884 2018-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
1891 2018-12-04 Richard Biener <rguenther@suse.de>
1892
1893 * tree-vect-loop.c (vect_transform_loop): Fix epilogue iterations
1894 for epilogue vectorization.
1895
1896 2018-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
1902 2018-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
1908 2018-12-03 Sandra Loosemore <sandra@codesourcery.com>
1909
1910 PR c/59039
1911 * doc/extend.texi (Nonlocal gotos): New section.
1912
1913 2018-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
1918 2018-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
1923 2018-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
1931 2018-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
1936 2018-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
1948 2018-12-03 Julian Brown <julian@codesourcery.com>
1949
1950 * tree-pretty-print.c (dump_omp_clause): Make default case
1951 gcc_unreachable.
1952
1953 2018-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
1960 2018-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
1965 2018-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
1975 2018-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
1980 2018-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
1985 2018-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
1992 2018-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
1997 2018-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
2020 2018-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
2032 2018-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
2043 2018-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
2058 2018-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
2063 2018-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
2070 2018-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
2076 2018-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
2083 2018-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
2099 2018-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
2109 2018-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
2115 2018-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
2122 2018-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
2128 2018-11-30 Sam Tebbs <sam.tebbs@arm.com>
2129
2130 * config/arm/arm.h (TARGET_DOTPROD): Add TARGET_VFP5 constraint.
2131
2132 2018-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
2151 2018-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
2160 2018-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
2171 2018-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
2177 2018-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
2186 2018-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
2197 2018-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
2206 2018-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
2239 2018-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
2256 2018-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
2262 2018-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
2270 2018-11-29 Martin Sebor <msebor@redhat.com>
2271
2272 PR c/88172
2273 PR testsuite/88208
2274 * doc/extend.texi (attribute constructor): Clarify.
2275
2276 2018-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
2282 2018-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
2295 2018-11-29 Giuliano Belinassi <giuliano.belinassi@usp.br>
2296
2297 * match.pd (sinh (atanh (x))): New simplification rules.
2298 (cosh (atanh (x))): Likewise.
2299
2300 2018-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
2323 2018-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
2330 2018-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
2336 2018-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
2345 2018-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
2350 2018-11-29 Alan Modra <amodra@gmail.com>
2351
2352 * config/rs6000/rs6000.md (movdi_internal64): Correct lengths.
2353
2354 2018-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
2366 2018-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
2376 2018-11-29 Alan Modra <amodra@gmail.com>
2377
2378 * config/rs6000/predicates.md (easy_vector_constant): Don't call
2379 easy_fp_constant.
2380
2381 2018-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
2417 2018-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
2450 2018-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
2469 2018-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
2476 2018-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
2492 2018-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
2510 2018-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
2515 2018-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
2523 2018-11-28 Jan Hubicka <jh@suse.cz>
2524
2525 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Handle
2526 profile_probability::always better.
2527
2528 2018-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
2533 2018-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
2539 2018-11-28 David Edelsohn <dje.gcc@gmail.com>
2540
2541 * config/rs6000/aix72.h: Update to match aix71.h changes.
2542
2543 2018-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
2555 2018-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
2560 2018-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
2568 2018-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
2575 2018-11-28 Alan Modra <amodra@gmail.com>
2576
2577 * xcoffout.c (do_block): Signed/unsigned warning fix.
2578
2579 2018-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
2585 2018-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
2591 2018-11-28 Sam Tebbs <sam.tebbs@arm.com>
2592
2593 * doc/invoke.texi (-mtune=): Remove obsolete CPU names.
2594
2595 2018-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
2602 2018-11-27 Martin Liska <mliska@suse.cz>
2603
2604 * gcov.c (generate_results): Append current_working_directory
2605 only when exists.
2606
2607 2018-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
2620 2018-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
2630 2018-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
2639 2018-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
2657 2018-11-27 Tamar Christina <tamar.christina@arm.com>
2658
2659 * doc/md.texi (xorsign): Document it.
2660
2661 2018-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
2667 2018-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
2695 2018-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
2708 2018-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
2842 2018-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
2847 2018-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
2873 2018-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
2879 2018-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
2897 2018-11-26 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2898
2899 * doc/sourcebuild.texi: Document check_effective_target_newlib_nano_io.
2900
2901 2018-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
2912 2018-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
2919 2018-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
2924 2018-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
2935 2018-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
2944 2018-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
2950 2018-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2951
2952 * config/aarch64/aarch64.c (aarch64_mangle_type): Fix typo in comment.
2953
2954 2018-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
2969 2018-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
2977 2018-11-26 Andreas Krebbel <krebbel@linux.ibm.com>
2978
2979 * doc/invoke.texi: Document z14/arch12 -march option.
2980
2981 2018-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
2987 2018-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
2993 2018-11-26 Alan Modra <amodra@gmail.com>
2994
2995 * config/rs6000/rs6000.h (OBJECT_PEF, TARGET_MACOS): Delete.
2996
2997 2018-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
3007 2018-11-25 Paul Koning <ni1d@arrl.net>
3008
3009 * config/pdp11/pdp11.h (TARGET_HAS_NO_HW_DIVIDE): Define.
3010
3011 2018-11-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3012
3013 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
3014 attributes): Document d_runtime.
3015
3016 2018-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
3022 2018-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
3028 2018-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
3034 2018-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
3042 2018-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
3049 2018-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
3061 2018-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
3068 2018-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
3087 2018-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
3093 2018-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
3100 2018-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
3110 2018-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
3125 2018-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
3130 2018-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
3137 2018-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
3142 2018-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
3153 2018-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
3202 2018-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
3210 2018-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
3228 2018-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
3234 2018-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
3245 2018-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
3251 2018-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
3261 2018-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
3266 2018-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
3272 2018-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
3284 2018-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
3292 2018-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
3298 2018-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
3306 2018-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
3312 2018-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
3318 2018-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
3351 2018-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
3356 2018-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
3365 2018-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
3371 2018-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
3384 2018-11-20 Martin Sebor <msebor@redhat.com>
3385
3386 * doc/extend.texi (Other Builtins): Add __builtin_has_attribute.
3387
3388 2018-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
3394 2018-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
3403 2018-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
3409 2018-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
3421 2018-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
3430 2018-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
3435 2018-11-20 Nathan Sidwell <nathan@acm.org>
3436
3437 PR 87926
3438 * Makefile.in (bitmap.o-warn): Use -Wno-error=array-bounds.
3439
3440 2018-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
3447 2018-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
3462 2018-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
3468 2018-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
3474 2018-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
3480 2018-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
3488 2018-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
3495 2018-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
3503 2018-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
3508 2018-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
3513 2018-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
3520 2018-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
3526 2018-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
3531 2018-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
3543 2018-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
3604 2018-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
3627 2018-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
3636 2018-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
3642 2018-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
3654 2018-11-19 Jonathan Wakely <jwakely@redhat.com>
3655
3656 * doc/extend.texi (Common Type Attributes): Fix typos.
3657
3658 2018-11-19 Martin Liska <mliska@suse.cz>
3659
3660 PR gcov-profile/88045
3661 * coverage.c (coverage_begin_function): Add assert.
3662
3663 2018-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
3671 2018-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
3679 2018-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
3685 2018-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
3692 2018-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
3700 2018-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
3706 2018-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
3712 2018-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
3720 2018-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
3725 2018-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
3734 2018-11-16 Jeff Law <law@redhat.com>
3735
3736 * config/mn10300/mn10300.md (adddi3_degenerate): Remove bogus
3737 gcc_assert.
3738
3739 2018-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
3745 2018-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
3760 2018-11-12 Jason Merrill <jason@redhat.com>
3761
3762 * gimplify.c (gimplify_case_label_expr): Handle hot/cold attributes.
3763
3764 2018-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
3814 2018-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
3821 2018-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
3828 2018-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
3834 2018-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
3848 2018-11-16 Andi Kleen <ak@linux.intel.com>
3849
3850 * config/i386/i386.md: Allow memory operands to ptwrite.
3851
3852 2018-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
3872 2018-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
3879 2018-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
3888 2018-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
3897 2018-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
3903 2018-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
3912 2018-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
3919 2018-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
3925 2018-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
3954 2018-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
3962 2018-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
3969 2018-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
3981 2018-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
3990 2018-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
3996 2018-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
4002 2018-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
4008 2018-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
4015 2018-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
4023 2018-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
4028 2018-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
4037 2018-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
4047 2018-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
4052 2018-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
4059 2018-11-14 David Malcolm <dmalcolm@redhat.com>
4060
4061 * Makefile.in (CFLAGS-optinfo-emit-json.o): Add $(ZLIBINC).
4062
4063 2018-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
4072 2018-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
4077 2018-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
4093 2018-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
4101 2018-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
4109 2018-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
4117 2018-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
4123 2018-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
4129 2018-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
4134 2018-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
4140 2018-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
4193 2018-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
4200 2018-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
4209 2018-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
4218 2018-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
4225 2018-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
4252 2018-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
4286 2018-11-13 Michael Ploujnikov <michael.ploujnikov@oracle.com>
4287
4288 * doc/extend.texi: Fix typo in the weakref description.
4289
4290 2018-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
4298 2018-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
4336 2018-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
4343 2018-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
4350 2018-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
4359 2018-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
4366 2018-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
4396 2018-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
4402 2018-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
4440 2018-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
4446 2018-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
4452 2018-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
4457 2018-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
4463 2018-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
4468 2018-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
4479 2018-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
4518 2018-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
4526 2018-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
4532 2018-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
4538 2018-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
4553 2018-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
4559 2018-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
4566 2018-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
4572 2018-11-13 Alan Modra <amodra@gmail.com>
4573
4574 * config/rs6000/rs6000.md (addsi3_high): Prefix with '*'.
4575
4576 2018-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
4586 2018-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
4595 2018-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
4602 2018-11-12 Fredrik Noring <noring@nocrew.org>
4603
4604 * config.gcc: Update with-llsc defaults for MIPS r5900.
4605
4606 2018-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
4619 2018-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
4625 2018-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
4632 2018-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
4638 2018-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
4653 2018-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
4726 2018-11-12 Eric Botcazou <ebotcazou@adacore.com>
4727
4728 * config/mcore/mcore.h (WORD_REGISTER_OPERATIONS): Remove duplicate.
4729
4730 2018-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
4761 2018-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
4768 2018-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
4778 2018-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
4785 2018-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
4790 2018-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
4796 2018-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
4802 2018-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
4810 2018-11-11 Xianmiao Qu <xianmiao_qu@c-sky.com>
4811
4812 * config/csky/csky-linux-elf.h (CC1_SPEC): Support -profile.
4813
4814 2018-11-11 Xianmiao Qu <xianmiao_qu@c-sky.com>
4815
4816 * config/csky/csky.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
4817
4818 2018-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
4855 2018-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
4862 2018-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
4867 2018-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
4873 2018-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
4880 2018-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
4886 2018-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
4908 2018-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
4913 2018-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
4918 2018-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
4933 2018-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
4938 2018-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
4945 2018-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
4952 2018-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
4969 2018-11-09 David Malcolm <dmalcolm@redhat.com>
4970
4971 * json.cc (selftest::test_writing_literals): Fix comment.
4972
4973 2018-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
4980 2018-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
4986 2018-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
4999 2018-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
5021 2018-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
5030 2018-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
5035 2018-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
5045 2018-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
5053 2018-11-08 Aldy Hernandez <aldyh@redhat.com>
5054
5055 * tree-vrp.c (may_contain_p): Do not access m_min/m_max directly.
5056
5057 2018-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
5063 2018-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
5076 2018-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
5082 2018-11-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5083
5084 * config/arm/neon.md (div<mode>3): New pattern.
5085
5086 2018-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
5109 2018-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
5116 2018-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
5122 2018-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
5131 2018-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
5205 2018-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
5225 2018-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
5529 2018-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
5548 2018-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
5554 2018-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
5565 2018-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
5570 2018-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
5584 2018-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
5592 2018-11-08 Richard Biener <rguenther@suse.de>
5593
5594 PR tree-optimization/87929
5595 * tree-complex.c (expand_complex_comparison): Clean EH.
5596
5597 2018-11-08 Martin Liska <mliska@suse.cz>
5598
5599 * doc/extend.texi: Reword.
5600 * predict.c (expr_expected_value_1): Likewise.
5601
5602 2018-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
5608 2018-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
5613 2018-11-07 Sandra Loosemore <sandra@codesourcery.com>
5614
5615 * doc/invoke.texi: Remove leading dash from @opindex entries
5616 throughout the file.
5617
5618 2018-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
5624 2018-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
5630 2018-11-07 Hafiz Abid Qadeer <abidh@codesourcery.com>
5631
5632 * configure: Regenerated.
5633
5634 2018-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
5642 2018-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
5649 2018-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
5667 2018-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
5674 2018-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
5680 2018-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
5687 2018-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
5703 2018-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
5714 2018-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
5719 2018-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
5726 2018-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
5737 2018-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
5743 2018-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
5750 2018-11-07 Martin Liska <mliska@suse.cz>
5751
5752 * mem-stats.h: Fix GNU coding style.
5753
5754 2018-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
5774 2018-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
5792 2018-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
5814 2018-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
5834 2018-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
5848 2018-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
5879 2018-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
5885 2018-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
5891 2018-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
5898 2018-11-06 Richard Earnshaw <rearnsha@arm.com>
5899
5900 * config/aarch64/aarch64.md (speculation_tracker): Set the mode for
5901 the UNSPEC.
5902
5903 2018-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
5909 2018-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
5915 2018-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
5924 2018-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
5929 2018-11-06 Ilya Leoshkevich <iii@linux.ibm.com>
5930
5931 PR target/87762
5932 * config/s390/s390.md: Add relative_long attribute.
5933
5934 2018-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
5943 2018-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
5949 2018-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
5955 2018-11-06 Jan Hubicka <jh@suse.cz>
5956
5957 * tree.c (fld_simplified_type_of): Clear TYPELESS_STORAGE flag.
5958
5959 2018-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
5978 2018-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
5985 2018-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
5991 2018-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
5997 2018-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
6003 2018-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
6009 2018-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
6019 2018-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
6075 2018-11-05 Max Filippov <jcmvbkbc@gmail.com>
6076
6077 * config/xtensa/uclinux.h (XTENSA_ALWAYS_PIC): Change to 0.
6078
6079 2018-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
6084 2018-11-05 Paul Koning <ni1d@arrl.net>
6085
6086 * doc/sourcebuild.texi (target attributes): Document new "inf"
6087 effective target keyword.
6088
6089 2018-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
6094 2018-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
6106 2018-11-05 Robin Dapp <rdapp@linux.ibm.com>
6107
6108 * config/s390/s390.md: QImode and HImode for load on condition.
6109
6110 2018-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
6115 2018-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
6158 2018-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
6170 2018-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
6176 2018-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
6188 2018-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
6206 2018-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
6215 2018-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
6221 2018-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
6227 2018-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
6233 2018-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
6240 2018-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
6246 2018-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
6251 2018-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
6257 2018-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
6263 2018-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
6293 2018-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
6300 2018-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
6305 2018-11-02 Richard Earnshaw <rearnsha@arm.com>
6306
6307 * config/aarch64/aarch64.c ((aarch64_override_options): Disable
6308 shrink-wrapping when -mtrack-speculation.
6309
6310 2018-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
6328 2018-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
6340 2018-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
6345 2018-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
6352 2018-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
6357 2018-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
6381 2018-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
6387 2018-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
6393 2018-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
6399 2018-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
6411 2018-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
6420 2018-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
6425 2018-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
6445 2018-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
6453 2018-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
6471 2018-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
6493 2018-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
6502 2018-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
6512 2018-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
6524 2018-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
6576 2018-10-31 Richard Biener <rguenther@suse.de>
6577
6578 * tree-eh.c (replace_trapping_overflow): Simplify ABS_EXPR case
6579 using ABSU_EXPR.
6580
6581 2018-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
6587 2018-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
6601 2018-10-30 Jan Hubicka <jh@suse.cz>
6602
6603 * params.def (lto-partitions): Bump from 32 to 128.
6604
6605 2018-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
6620 2018-10-30 Eric Botcazou <ebotcazou@adacore.com>
6621
6622 * gcov.c (output_lines): Remove duplicate line.
6623
6624 2018-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
6635 2018-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
6640 2018-10-30 Jonathan Wakely <jwakely@redhat.com>
6641
6642 * doc/extend.texi: Fix prototype and description of
6643 __builtin_expect_with_probability.
6644
6645 2018-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
6672 2018-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
6677 2018-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
6683 2018-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
6688 2018-10-30 Martin Liska <mliska@suse.cz>
6689
6690 * doc/extend.texi: Fix typo in documentation
6691 of __builtin_expect_with_probability.
6692
6693 2018-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
6700 2018-10-29 Iain Buclaw <ibuclaw@gdcproject.org>
6701
6702 * config.gcc (xstormy16-*-elf): Set tm_d_file.
6703
6704 2018-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
6714 2018-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
6720 2018-10-29 Paul A. Clarke <pc@us.ibm.com>
6721
6722 * gcc.target/powerpc/ssse3-check.h: Remove inaccurate comment.
6723
6724 2018-10-29 Paul Koning <ni1d@arrl.net>
6725
6726 * doc/rtl.texi (CONST_WIDE_INT_ELT): Give correct macro name.
6727
6728 2018-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
6744 2018-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
6750 2018-10-29 Olivier Hainque <hainque@adacore.com>
6751
6752 * VXWORKS_NET_LIBS_RTP: New macro, network part of VXWORKS_LIBS_RTP.
6753
6754 2018-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
6761 2018-10-29 Olivier Hainque <hainque@adacore.com>
6762
6763 * config/vxworks.h (CLEAR_INSN_CACHE): #undef before #define.
6764
6765 2018-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
6774 2018-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
6784 2018-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
6814 2018-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
6820 2018-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
6828 2018-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
6930 2018-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
6937 2018-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
6943 2018-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
6948 2018-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
6954 2018-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
6959 2018-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
6964 2018-10-26 Paul A. Clarke <pc@us.ibm.com>
6965
6966 * config/rs6000/xmmintrin.h (_mm_extract_pi16): Fix for big-endian.
6967
6968 2018-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
6977 2018-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
6983 2018-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
7002 2018-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
7008 2018-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
7027 2018-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
7035 2018-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
7049 2018-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
7070 2018-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
7083 2018-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
7092 2018-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
7097 2018-10-25 Martin Sebor <msebor@redhat.com>
7098
7099 * doc/extend.texi (aligned): Expand attribute description.
7100 (Alignment): Rename section. Discuss function arguments.
7101
7102 2018-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
7112 2018-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
7117 2018-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
7122 2018-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
7130 2018-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
7137 2018-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
7142 2018-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
7149 2018-10-25 Sam Tebbs <sam.tebbs@arm.com>
7150
7151 * options.texi (Deprecated): Move list to Var section.
7152
7153 2018-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
7164 2018-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
7169 2018-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
7176 2018-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
7184 2018-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
7189 2018-10-24 Richard Biener <rguenther@suse.de>
7190
7191 * tree-ssa-sccvn.c (do_rpo_vn): Free rpo_state.
7192
7193 2018-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
7204 2018-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
7209 2018-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
7214 2018-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
7219 2018-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
7229 2018-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
7238 2018-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
7247 2018-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
7252 2018-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
7258 2018-10-12 Jeff Law <law@redhat.com>
7259
7260 * config/h8300/h8300.c (h8300_expand_prologue): Fix stm generation
7261 for H8/S.
7262
7263 2018-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
7271 2018-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
7283 2018-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
7290 2018-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
7295 2018-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
7306 2018-10-23 Richard Biener <rguenther@suse.de>
7307
7308 * tree-vect-stmts.c (vect_analyze_stmt): Fix typo in comment.
7309
7310 2018-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
7316 2018-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
7322 2018-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
7331 2018-10-22 Paul Koning <ni1d@arrl.net>
7332
7333 * symtab.c (symtab_node::increase_alignment): Correct max
7334 alignment check.
7335
7336 2018-10-22 Yury Gribov <tetra2005@gmail.com>
7337
7338 PR tree-optimization/87633
7339 * match.pd: Do not generate unordered integer comparisons.
7340
7341 2018-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
7352 2018-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
7358 2018-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
7364 2018-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
7379 2018-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
7438 2018-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
7447 2018-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
7455 2018-10-22 Richard Biener <rguenther@suse.de>
7456
7457 PR middle-end/87682
7458 * mem-stats.h (mem_usage::operator==): Fix pasto.
7459
7460 2018-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
7467 2018-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
7557 2018-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
7564 2018-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
7569 2018-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
7574 2018-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
7582 2018-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
7601 2018-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
7662 2018-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
7723 2018-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
7784 2018-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
7792 2018-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
7797 2018-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
7809 2018-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
7814 2018-10-20 Jakub Jelinek <jakub@redhat.com>
7815
7816 PR middle-end/87647
7817 * varasm.c (decode_addr_const): Handle COMPOUND_LITERAL_EXPR.
7818
7819 2018-10-20 Andreas Schwab <schwab@linux-m68k.org>
7820
7821 * doc/ux.texi: Move @section directly after @node.
7822
7823 2018-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
7831 2018-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
7837 2018-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
7842 2018-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
7848 2018-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
7855 2018-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
7865 2018-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
7872 2018-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
7878 2018-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
7884 2018-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
7890 2018-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
7902 2018-10-18 Jonathan Wakely <jwakely@redhat.com>
7903
7904 * doc/invoke.texi (-dumpversion): Improve grammar.
7905 (-dumpfullversion): Make more consistent with -dumpversion.
7906
7907 2018-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
7914 2018-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
7923 2018-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
7934 2018-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
7939 2018-10-18 Richard Biener <rguenther@suse.de>
7940
7941 * config/i386/i386.c: Fix costing of vector FMA.
7942
7943 2018-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
7951 2018-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
7961 2018-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
7969 2018-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
7977 2018-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
7982 2018-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
7988 2018-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
8126 2018-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
8139 2018-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
8154 2018-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
8161 2018-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
8169 2018-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
8174 2018-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
8179 2018-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
8204 2018-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
8209 2018-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
8219 2018-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
8226 2018-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
8232 2018-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
8242 2018-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
8247 2018-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
8253 2018-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
8261 2018-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
8271 2018-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
8277 2018-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
8285 2018-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
8292 2018-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
8305 2018-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
8310 2018-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
8315 2018-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
8324 2018-10-11 Martin Sebor <msebor@redhat.com>
8325
8326 * doc/extend.texi (attribute packed): Correct typos.
8327
8328 2018-10-11 Martin Sebor <msebor@redhat.com>
8329
8330 * doc/extend.texi (attribute flatten): Mention interaction with
8331 noinline.
8332
8333 2018-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
8339 2018-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
8345 2018-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
8353 2018-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
8361 2018-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
8367 2018-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
8374 2018-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
8387 2018-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
8394 2018-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
8400 2018-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
8406 2018-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
8411 2018-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
8417 2018-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
8431 2018-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
8456 2018-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
8461 2018-10-09 Eric Botcazou <ebotcazou@adacore.com>
8462
8463 PR tree-optimization/86659
8464 * gimple-match.h (gimple_match_op constructors): Initialize reverse.
8465
8466 2018-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
8473 2018-10-09 Richard Biener <rguenther@suse.de>
8474
8475 * tree-vectorizer.c (dump_stmt_cost): Fix cut&paste missing
8476 replacements.
8477
8478 2018-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
8484 2018-10-08 Eric Botcazou <ebotcazou@adacore.com>
8485
8486 * print-rtl.c (rtx_writer::print_rtx_operand_code_i): Print column
8487 information.
8488
8489 2018-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
8494 2018-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
8504 2018-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
8510 2018-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
8516 2018-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
8521 2018-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
8531 2018-10-08 Robin Dapp <rdapp@linux.ibm.com>
8532
8533 * config/s390/2827.md: Increase latencies for some FP instructions.
8534
8535 2018-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
8543 2018-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
8550 2018-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
8571 2018-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
8578 2018-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
8585 2018-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
8595 2018-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
8602 2018-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
8610 2018-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
8623 2018-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
8634 2018-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
8640 2018-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
8646 2018-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
8672 2018-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
8689 2018-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
8695 2018-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
8702 2018-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
8710 2018-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
8719 2018-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
8724 2018-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
8891 2018-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
8933 2018-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
8947 2018-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
8953 2018-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
8960 2018-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
8981 2018-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
8992 2018-10-04 Tamar Christina <tamar.christina@arm.com>
8993
8994 * params.c (add_params): Fix initialization.
8995
8996 2018-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
9010 2018-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
9018 2018-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
9024 2018-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
9031 2018-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
9037 2018-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
9047 2018-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
9052 2018-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
9062 2018-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
9067 2018-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
9073 2018-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
9081 2018-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
9087 2018-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
9092 2018-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
9101 2018-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
9107 2018-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
9112 2018-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
9122 2018-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
9128 2018-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
9133 2018-10-02 Marc Glisse <marc.glisse@inria.fr>
9134
9135 * match.pd (((X /[ex] A) +- B) * A): New transformation.
9136
9137 2018-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
9143 2018-10-02 Jeff Law <law@redhat.com>
9144
9145 * gimple-fold.c (get_range_strlen): Remove dead code.
9146
9147 2018-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
9158 2018-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
9165 2018-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
9178 2018-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
9183 2018-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
9190 2018-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
9213 2018-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
9219 2018-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
9228 2018-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
9236 2018-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
9246 2018-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
9252 2018-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
9263 2018-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
9273 2018-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
9287 2018-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
9296 2018-10-01 Tamar Christina <tamar.christina@arm.com>
9297
9298 PR target/86486
9299 * config/aarch64/aarch64.c (aarch64_layout_frame): Add assert.
9300
9301 2018-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
9317 2018-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
9324 2018-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
9336 2018-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
9342 2018-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
9349 2018-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
9363 2018-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
9394 2018-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
9400 2018-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
9416 2018-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
9422 2018-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
9427 2018-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
9438 2018-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
9446 2018-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
9458 2018-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
9488 2018-09-28 David Malcolm <dmalcolm@redhat.com>
9489
9490 * opt-suggestions.c (option_proposer::build_option_suggestions):
9491 Release "option_values".
9492
9493 2018-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
9502 2018-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
9507 2018-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
9516 2018-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
9533 2018-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
9543 2018-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
9573 2018-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
9579 2018-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
9600 2018-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
9616 2018-09-27 Martin Liska <mliska@suse.cz>
9617
9618 * coverage.c (get_coverage_counts): Revert the formatting
9619 of missing profile opt info.
9620
9621 2018-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
9632 2018-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
9640 2018-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
9648 2018-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
9655 2018-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
9660 2018-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
9675 2018-09-26 Jim Wilson <jimw@sifive.com>
9676
9677 * config/riscv/riscv.h (FUNCTION_ARG_REGNO_P): Fix comment.
9678
9679 2018-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
9686 2018-09-25 Andrew Stubbs <ams@codesourcery.com>
9687
9688 * builtins.c (get_builtin_sync_mem): Force address mode conversion.
9689
9690 2018-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
9714 2018-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
9721 2018-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
9728 2018-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
9735 2018-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
9740 2018-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
9751 2018-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
9756 2018-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
9768 2018-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
9778 2018-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
9785 2018-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
9790 2018-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
9797 2018-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
9818 2018-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
9830 2018-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
9851 2018-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
9857 2018-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
9864 2018-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
9892 2018-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
9897 2018-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
9906 2018-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
9938 2018-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
9954 2018-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
9960 2018-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
9966 2018-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
9973 2018-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
9979 2018-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
9990 2018-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
10012 2018-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
10018 2018-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
10024 2018-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
10030 2018-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
10035 2018-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
10045 2018-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
10052 2018-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
10065 2018-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
10092 2018-09-23 Uros Bizjak <ubizjak@gmail.com>
10093
10094 * config/i386/i386.c (regclass_map): Declare integer REX registers
10095 as GENERAL_REGS.
10096
10097 2018-09-23 Gerald Pfeifer <gerald@pfeifer.com>
10098
10099 * doc/service.texi (Service): Switch the fsf.org link to https.
10100
10101 2018-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
10107 2018-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
10113 2018-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
10134 2018-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
10142 2018-09-21 Olivier Hainque <hainque@adacore.com>
10143
10144 * config.gcc: Factorize and comment inclusion of vxworks-dummy.h.
10145
10146 2018-09-21 Olivier Hainque <hainque@adacore.com>
10147
10148 * config/vxworks.h (CLEAR_INSN_CACHE): #define to 1.
10149
10150 2018-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
10156 2018-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
10161 2018-09-21 Olivier Hainque <hainque@adacore.com>
10162
10163 * config/vxworks.h (SIZE_TYPE): Account for TARGET_VXWORKS64.
10164 (PTRDIFF_TYPE): Likewise.
10165
10166 2018-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
10173 2018-09-21 Olivier Hainque <hainque@adacore.com>
10174
10175 * config/vxworks.h (TARGET_VXWORKS7): Move default definition ...
10176 * config/vxworks-dummy.h: here.
10177
10178 2018-09-21 Olivier Hainque <hainque@adacore.com>
10179
10180 * config.gcc: Prepend vxworks-dummy.h to tm_file for powerpc*
10181
10182 2018-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
10191 2018-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
10196 2018-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
10201 2018-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
10266 2018-09-21 Monk Chiang <sh.chiang04@gmail.com>
10267
10268 * config.gcc (nds32*-*-*): Set TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0.
10269
10270 2018-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
10277 2018-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
10286 2018-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
10292 2018-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
10300 2018-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
10306 2018-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
10313 2018-09-20 Marek Polacek <polacek@redhat.com>
10314
10315 * doc/invoke.texi: Add -Wno-init-list-lifetime to C++ Language Options.
10316
10317 2018-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
10323 2018-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
10329 2018-09-19 Marek Polacek <polacek@redhat.com>
10330
10331 * doc/invoke.texi: Document -Wclass-conversion.
10332
10333 2018-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
10343 2018-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
10349 2018-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
10429 2018-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
10435 2018-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
10454 2018-09-19 Eric Botcazou <ebotcazou@adacore.com>
10455
10456 PR rtl-optimization/87361
10457 * rtlanal.c (nonzero_bits1): Revert accidental change.
10458
10459 2018-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
10465 2018-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
10470 2018-09-18 Segher Boessenkool <segher@kernel.crashing.org>
10471
10472 * config/rs6000/rs6000.md: Remove old "Cygnus sibcall" comment.
10473
10474 2018-09-18 Segher Boessenkool <segher@kernel.crashing.org>
10475
10476 PR rtl-optimization/86882
10477 * rtlanal.c (reg_overlap_mentioned_p): Handle CLOBBER.
10478
10479 2018-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
10484 2018-09-18 Jonathan Wakely <jwakely@redhat.com>
10485
10486 PR other/87353
10487 * doc/invoke.texi (Link Options): Fix formatting and grammar.
10488
10489 2018-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
10497 2018-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
10504 2018-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
10523 2018-09-17 Uros Bizjak <ubizjak@gmail.com>
10524
10525 * config/i386/i386.c (ix86_emit_i387_log1p): Emit fldln2 earlier.
10526
10527 2018-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
10553 2018-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
10559 2018-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
10573 2018-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
10581 2018-09-17 Martin Jambor <mjambor@suse.cz>
10582
10583 PR c/63886
10584 * doc/invoke.texi (Warning Options): Likewise.
10585
10586 2018-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
10592 2018-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
10598 2018-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
10605 2018-09-17 Alexey Brodkin <abrodkin@synopsys.com>
10606
10607 * config/arc/linux.h (LINK_EH_SPEC): Add missing space.
10608
10609 2018-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
10622 2018-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
10636 2018-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
10643 2018-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
10649 2018-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
10659 2018-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
10686 2018-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
10687
10688 * builtins.c (fold_builtin_strlen): Remove TODO comment.
10689
10690 2018-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
10698 2018-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
10708 2018-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
10723 2018-09-14 Wei Xiao <wei3.xiao@intel.com>
10724
10725 * config/i386/movdirintrin.h: Fix copyright year.
10726
10727 2018-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
10740 2018-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
10745 2018-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
10751 2018-09-14 Sam Tebbs <sam.tebbs@arm.com>
10752
10753 PR target/85628
10754 * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Define.
10755
10756 2018-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
10763 2018-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
10770 2018-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
10775 2018-09-14 Ilya Leoshkevich <iii@linux.ibm.com>
10776
10777 * config/s390/s390-passes.def (INSERT_PASS_BEFORE): Improve
10778 formatting.
10779
10780 2018-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
10786 2018-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
10806 2018-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
10826 2018-09-13 Eric Botcazou <ebotcazou@adacore.com>
10827
10828 PR target/86812
10829 * config/visium/visium.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
10830
10831 2018-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
10841 2018-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
10846 2018-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
10853 2018-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
10860 2018-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
10871 2018-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
10882 2018-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
10890 2018-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
10897 2018-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
10904 2018-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
10913 2018-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
10922 2018-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
10927 2018-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
10935 2018-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
10941 2018-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
10951 2018-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
10960 2018-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
10966 2018-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
10982 2018-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
10990 2018-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
10996 2018-09-11 Nathan Sidwell <nathan@acm.org>
10997
10998 * gcc.c (load_specs, execute, run_attempt): Use %qs not '%s'.
10999
11000 2018-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
11005 2018-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
11013 2018-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
11033 2018-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
11040 2018-09-11 Andrew Stubbs <ams@codesourcery.com>
11041
11042 * diagnostic-core.h (sorry_at): New prototype.
11043 * diagnostic.c (sorry_at): New function.
11044
11045 2018-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
11050 2018-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
11073 2018-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
11079 2018-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
11086 2018-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
11098 2018-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
11103 2018-09-09 Xianmiao Qu <xianmiao_qu@c-sky.com>
11104
11105 * config/csky/csky.md (*cskyv2_adddi3, *cskyv2_subdi3): Add
11106 earlyclobber.
11107
11108 2018-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
11114 2018-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
11131 2018-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
11136 2018-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
11142 2018-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
11179 2018-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
11184 2018-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
11191 2018-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
11196 2018-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
11206 2018-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
11217 2018-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
11230 2018-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
11236 2018-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
11251 2018-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
11272 2018-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
11279 2018-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
11285 2018-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
11291 2018-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
11298 2018-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
11304 2018-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
11310 2018-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
11328 2018-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
11335 2018-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
11342 2018-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
11349 2018-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
11358 2018-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
11363 2018-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
11372 2018-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
11378 2018-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
11384 2018-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
11391 2018-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
11406 2018-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
11413 2018-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
11418 2018-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
11424 2018-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
11431 2018-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
11437 2018-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
11445 2018-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
11451 2018-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
11458 2018-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
11464 2018-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
11470 2018-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
11482 2018-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
11509 2018-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
11523 2018-09-02 Gerald Pfeifer <gerald@pfeifer.com>
11524
11525 * doc/standards.texi (Standards): Update Objective-C reference.
11526
11527 2018-09-01 Gerald Pfeifer <gerald@pfeifer.com>
11528
11529 * doc/install.texi (Prerequisites): Update link for MPC.
11530
11531 2018-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
11537 2018-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
11542 2018-09-01 Gerald Pfeifer <gerald@pfeifer.com>
11543
11544 * doc/install.texi (Prerequisites): Adjust link mpfr.org.
11545
11546 2018-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
11553 2018-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
11593 2018-08-31 Vlad Lazar <vlad.lazar@arm.com>
11594
11595 * config/aarch64/arm_neon.h (vabsd_s64): New.
11596 (vnegd_s64): Likewise.
11597
11598 2018-08-31 Martin Jambor <mjambor@suse.cz>
11599
11600 * ipa-cp.c (estimate_local_effects): Replace wrong MAX with MIN.
11601
11602 2018-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
11609 2018-08-31 Nathan Sidwell <nathan@acm.org>
11610
11611 * doc/extend.texi (Backwards Compatibility): Remove implicit
11612 extern C leeway of () being (...).
11613
11614 2018-08-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11615
11616 * ipa-inline.c (can_inline_edge_by_limits_p): Fix typos in comment.
11617
11618 2018-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
11624 2018-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
11630 2018-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
11638 2018-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
11645 2018-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
11661 2018-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
11667 2018-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
11673 2018-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
11685 2018-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
11694 2018-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
11702 2018-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
11708 2018-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
11713 2018-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
11722 2018-08-30 Tamar Christina <tamar.christina@arm.com>
11723
11724 * config/aarch64/aarch64.c (aarch64_expand_movmem): Set TImode max.
11725
11726 2018-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
11732 2018-08-29 Bernd Edlinger <bernd.edlinger@hotmail.de>
11733
11734 PR middle-end/87053
11735 * builtins.c (c_strlen): Improve range checks.
11736
11737 2018-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
11753 2018-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
11761 2018-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
11768 2018-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
11774 2018-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
11788 2018-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
11795 2018-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
11803 2018-08-29 Martin Liska <mliska@suse.cz>
11804
11805 * tree-switch-conversion.c (switch_conversion::expand):
11806 Strenghten assumption about gswitch statements.
11807
11808 2018-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
11814 2018-08-29 Richard Biener <rguenther@suse.de>
11815
11816 PR tree-optimization/87126
11817 * tree-ssa-sccvn.c (vn_reference_insert): Remove assert.
11818
11819 2018-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
11827 2018-08-28 Jeff Law <law@redhat.com>
11828
11829 * fold-const.c (fold_binary_loc): Remove recently added assert.
11830
11831 2018-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
11836 2018-08-28 MCC CS <deswurstes@users.noreply.github.com>
11837
11838 PR tree-optimization/87009
11839 * match.pd: Add boolean optimizations.
11840
11841 2018-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
11851 2018-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
11857 2018-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
11863 2018-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
11873 2018-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
11879 2018-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
11885 2018-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
11891 2018-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
11899 2018-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
11906 2018-08-28 Martin Liska <mliska@suse.cz>
11907
11908 * tree.h: Update documentation of fndecl_built_in_p
11909 functions.
11910
11911
11912 2018-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
11917 2018-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
11922 2018-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
11928 2018-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
11933 2018-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
11938 2018-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
11944 2018-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
11949 2018-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
11977 2018-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
11985 2018-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
11991 2018-08-27 Martin Liska <mliska@suse.cz>
11992
11993 * config/i386/i386.c (ix86_expand_set_or_movmem): Dump
11994 selected expansion strategy.
11995
11996 2018-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
12095 2018-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
12110 2018-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
12121 2018-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
12133 2018-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
12209 2018-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
12251 2018-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
12256 2018-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
12265 2018-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
12271 2018-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
12281 2018-08-26 Jeff Law <law@redhat.com>
12282
12283 * config/mips/frame-header-opt.c: Include "backend.h" rather than
12284 "cfg.h"
12285
12286 2018-08-26 Marek Polacek <polacek@redhat.com>
12287
12288 PR c++/87029, Implement -Wredundant-move.
12289 * doc/invoke.texi: Document -Wredundant-move.
12290
12291 2018-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
12298 2018-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
12303 2018-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
12318 2018-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
12340 2018-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
12393 2018-08-24 Richard Sandiford <richard.sandiford@arm.com>
12394
12395 * tree-vect-stmts.c (vectorizable_bswap): Handle variable-length
12396 vectors.
12397
12398 2018-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
12406 2018-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
12412 2018-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
12429 2018-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
12435 2018-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
12441 2018-08-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12442
12443 * tree-vect-data-refs.c (vect_grouped_store_supported): Fix typo
12444 "permutaion".
12445
12446 2018-08-23 Giuliano Belinassi <giuliano.belinassi@usp.br>
12447
12448 * genmatch.c (parser::parse_operation): Fix typo 'exapnded'
12449 to 'expanded'.
12450
12451 2018-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
12456 2018-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
12468 2018-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
12498 2018-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
12504 2018-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
12518 2018-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
12524 2018-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
12531 2018-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
12537 2018-08-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
12538
12539 * tree-ssa-dse.c (compute_trims): Avoid folding away undefined
12540 behaviour.
12541
12542 2018-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
12548 2018-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
12555 2018-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
12562 2018-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
12569 2018-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
12574 2018-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
12580 2018-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
12585 2018-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
12591 2018-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
12599 2018-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
12604 2018-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
12616 2018-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
12621 2018-08-22 Richard Biener <rguenther@suse.de>
12622
12623 PR tree-optimization/86945
12624 * tree-cfg.c (generate_range_test): Use unsigned arithmetic.
12625
12626 2018-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
12631 2018-08-22 Alexandre Oliva <aoliva@redhat.com>
12632
12633 * tree-ssa-reassoc.c (is_reassociable_op): Fix cut&pasto.
12634
12635 2018-08-21 Marek Polacek <polacek@redhat.com>
12636
12637 PR c++/86981, Implement -Wpessimizing-move.
12638 * doc/invoke.texi: Document -Wpessimizing-move.
12639
12640 2018-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
12646 2018-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
12651 2018-08-21 Tamar Christina <tamar.christina@arm.com>
12652
12653 * expmed.c (extract_low_bits): Reject invalid subregs early.
12654
12655 2018-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
12661 2018-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
12667 2018-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
12674 2018-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
12679 2018-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
12684 2018-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
12703 2018-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
12708 2018-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
12719 2018-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
12726 2018-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
12732 2018-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
12787 2018-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
12793 2018-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
12798 2018-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
12799
12800 * expr.c (store_field): Change gcc_assert to gcc_checking_assert.
12801
12802 2018-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
12811 2018-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
12818 2018-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
12824 2018-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
12831 2018-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
12840 2018-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
12847 2018-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
12852 2018-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
12861 2018-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
12871 2018-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
12883 2018-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
12931 2018-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
12936 2018-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
12941 2018-08-17 Nathan Sidwell <nathan@acm.org>
12942
12943 * cppbuiltin.c: Include "cpplib.h", not "cpp-id-data.h".
12944
12945 2018-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
12950 2018-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
12973 2018-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
12979 2018-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
12991 2018-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
13004 2018-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
13009 2018-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
13017 2018-08-16 Segher Boessenkool <segher@kernel.crashing.org>
13018
13019 * config/rs6000/rs6000.md (two unnamed define_insn and define_split):
13020 Delete.
13021
13022 2018-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
13033 2018-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
13040 2018-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
13048 2018-08-16 Tamar Christina <tamar.christina@arm.com>
13049
13050 * expr.c (copy_blkmode_to_reg): Perform larger copies when safe.
13051
13052 2018-08-16 Matthew Malcomson <matthew.malcomson@arm.com>
13053
13054 * doc/rtl.texi: Replace old RTX class names with new names.
13055
13056
13057 2018-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
13066 2018-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
13071 2018-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
13078 2018-08-16 Tamar Christina <tamar.christina@arm.com>
13079
13080 * config/arm/neon.md (*neon_mov<mode>): Remove reg-to-reg alternative.
13081
13082 2018-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
13088 2018-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
13102 2018-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
13109 2018-08-15 Uros Bizjak <ubizjak@gmail.com>
13110
13111 * config/i386/i386.c (expand_vec_perm_movs): Enable V4SFmode
13112 for TARGET_SSE.
13113
13114 2018-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
13174 2018-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
13180 2018-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
13186 2018-08-15 Ilya Leoshkevich <iii@linux.ibm.com>
13187
13188 * config/s390/s390.c (s390_reorg): Remove loop.
13189
13190 2018-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
13197 2018-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
13204 2018-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
13212 2018-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
13218 2018-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
13224 2018-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
13230 2018-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
13236 2018-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
13241 2018-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
13246 2018-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
13252 2018-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
13259 2018-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
13270 2018-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
13277 2018-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
13290 2018-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
13296 2018-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
13301 2018-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
13319 2018-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
13334 2018-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
13341 2018-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
13347 2018-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
13381 2018-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
13393 2018-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
13398 2018-08-09 Jeff Law <law@redhat.com>
13399
13400 * config/m68k/m68k.c (m68k_adjust_decorated_operand): Remove
13401 unused variable.
13402
13403 2018-08-09 Andreas Schwab <schwab@linux-m68k.org>
13404
13405 * config/m68k/m68k-protos.h (m68k_final_prescan_insn): Remove
13406 prototype.
13407
13408 2018-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
13413 2018-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
13450 2018-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
13460 2018-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
13466 2018-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
13472 2018-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
13480 2018-08-09 Martin Liska <mliska@suse.cz>
13481
13482 PR c/86895
13483 * common.opt: Remove extra line.
13484
13485 2018-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
13509 2018-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
13516 2018-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
13528 2018-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
13533 2018-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
13539 2018-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
13547 2018-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
13553 2018-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
13595 2018-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
13625 2018-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
13635 2018-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
13646 2018-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
13655 2018-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
13661 2018-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
13668 2018-08-06 Nathan Sidwell <nathan@acm.org>
13669
13670 * diagnostic.c (diagnostic_report_current_module): Reroll
13671 included-at loop. Translate text.
13672
13673 2018-08-06 David Malcolm <dmalcolm@redhat.com>
13674
13675 * function-tests.c (selftest::test_expansion_to_rtl): Call
13676 free_after_compilation.
13677
13678 2018-08-06 Alan Hayward <alan.hayward@arm.com>
13679
13680 * config/aarch64/aarch64.md: Add clobber highs to tls_desc.
13681
13682 2018-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
13687 2018-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
13693 2018-08-06 Jeff Law <law@redhat.com>
13694
13695 * reload1.c (forget_old_reloads_1): Adjust CLOBBER_HIGH
13696 assert.
13697
13698 2018-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
13706 2018-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
13771 2018-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
13787 2018-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
13799 2018-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
13804 2018-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
13820 2018-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
13830 2018-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
13836 2018-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
13842 2018-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
13848 2018-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
13854 2018-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
13867 2018-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
13875 2018-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
13883 2018-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
13891 2018-08-03 Martin Liska <mliska@suse.cz>
13892
13893 * predict.c (dump_prediction): Change to 2 digits
13894 in fraction part.
13895
13896 2018-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
13902 2018-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
13910 2018-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
13929 2018-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
13937 2018-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
13947 2018-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
13955 2018-08-02 Richard Sandiford <richard.sandiford@arm.com>
13956
13957 * genemit.c (print_overload_test): Fix typo.
13958
13959 2018-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
13968 2018-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
14010 2018-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
14082 2018-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
14087 2018-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
14093 2018-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
14101 2018-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
14109 2018-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
14137 2018-08-01 Richard Sandiford <richard.sandiford@arm.com>
14138
14139 * match.pd: Optimise pointer range checks.
14140
14141 2018-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
14147 2018-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
14153 2018-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
14163 2018-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
14172 2018-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
14211 2018-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
14223 2018-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
14232 2018-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
14238 2018-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
14245 2018-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
14252 2018-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
14258 2018-08-01 Richard Biener <rguenther@suse.de>
14259
14260 * tree-ssa-sccvn.c (visit_phi): Compare invariant addresses
14261 as base and offset.
14262
14263 2018-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
14271 2018-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
14278 2018-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
14285 2018-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
14292 2018-08-01 Richard Earnshaw <rearnsha@arm.com>
14293
14294 * config/i386/i386.md (unspecv): Add UNSPECV_SPECULATION_BARRIER.
14295 (speculation_barrier): New insn.
14296
14297 2018-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
14303 2018-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
14315 2018-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
14325 2018-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
14340 2018-07-31 Ian Lance Taylor <iant@golang.org>
14341
14342 * targhooks.c (default_have_speculation_safe_value): Add
14343 ATTRIBUTE_UNUSED.
14344
14345 2018-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
14439 2018-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
14448 2018-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
14453 2018-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
14460 2018-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
14475 2018-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
14495 2018-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
14505 2018-07-31 Richard Earnshaw <rearnsha@arm.com>
14506
14507 * config/aarch64/aarch64.opt (mtrack-speculation): New target option.
14508
14509 2018-07-31 Richard Earnshaw <rearnsha@arm.com>
14510
14511 * config/aarch64.md (unspecv): Add UNSPECV_SPECULAION_BARRIER.
14512 (speculation_barrier): New insn.
14513
14514 2018-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
14520 2018-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
14549 2018-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
14564 2018-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
14569 2018-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
14578 2018-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
14593 2018-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
14598 2018-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
14624 2018-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
14639 2018-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
14647 2018-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
14656 2018-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
14681 2018-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
14691 2018-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
14743 2018-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
14770 2018-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
14777 2018-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
14786 2018-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
14815 2018-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
14827 2018-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
14881 2018-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
14905 2018-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
14913 2018-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
14936 2018-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
14970 2018-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
14986 2018-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
14998 2018-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
15013 2018-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
15023 2018-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
15031 2018-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
15037 2018-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
15046 2018-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
15070 2018-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
15092 2018-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
15135 2018-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
15152 2018-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
15160 2018-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
15175 2018-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
15203 2018-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
15226 2018-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
15245 2018-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
15259 2018-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
15280 2018-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
15288 2018-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
15304 2018-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
15326 2018-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
15345 2018-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
15351 2018-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
15359 2018-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
15373 2018-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
15379 2018-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
15386 2018-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
15397 2018-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
15403 2018-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
15412 2018-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
15426 2018-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
15448 2018-07-31 Olivier Hainque <hainque@adacore.com>
15449
15450 * gcc.c (getenv_spec_function): Prepend '/' to value for allowed
15451 undefined variables.
15452
15453 2018-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
15459 2018-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
15464 2018-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
15471 2018-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
15478 2018-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
15483 2018-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
15489 2018-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
15498 2018-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
15504 2018-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
15545 2018-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
15553 2018-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
15560 2018-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
15565 2018-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
15577 2018-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
15584 2018-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
15590 2018-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
15596 2018-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
15602 2018-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
15607 2018-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
15616 2018-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
15623 2018-07-25 Claudiu Zissulescu <claziss@synopsys.com>
15624
15625 * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add additional
15626 register names.
15627
15628 2018-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
15633 2018-07-25 Martin Liska <mliska@suse.cz>
15634
15635 * config/powerpcspe/powerpcspe-protos.h (rs6000_loop_align): Fix
15636 return type.
15637
15638 2018-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
15645 2018-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
15650 2018-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
15656 2018-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
15662 2018-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
15674 2018-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
15680 2018-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
15700 2018-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
15713 2018-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
15720 2018-07-24 Richard Biener <rguenther@suse.de>
15721
15722 * match.pd: Add BIT_FIELD_REF canonicalizations.
15723
15724 2018-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
15729 2018-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
15734 2018-07-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
15735
15736 hsa-dump.c (dump_hsa_symbol): Avoid out of scope access to buf.
15737
15738 2018-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
15749 2018-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
15754 2018-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
15761 2018-07-22 Gerald Pfeifer <gerald@pfeifer.com>
15762
15763 * doc/gcov.texi (Invoking Gcov): Editorial changes.
15764
15765 2018-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
15770 2018-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
15832 2018-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
15845 2018-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
15881 2018-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
15887 2018-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
15892 2018-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
15929 2018-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
15936 2018-07-19 Martin Sebor <msebor@redhat.com>
15937
15938 * align.h (align_flags): Use member initialization.
15939
15940 2018-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
16014 2018-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
16025 2018-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
16056 2018-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
16073 2018-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
16081 2018-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
16087 2018-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
16106 2018-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
16134 2018-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
16143 2018-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
16159 2018-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
16165 2018-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
16171 2018-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
16185 2018-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
16191 2018-07-18 Ilya Leoshkevich <iii@linux.ibm.com>
16192
16193 * config/s390/s390.c (s390_function_profiler): Generate CFI.
16194
16195 2018-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
16212 2018-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
16217 2018-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
16222 2018-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
16232 2018-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
16237 2018-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
16245 2018-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
16251 2018-07-17 Martin Liska <mliska@suse.cz>
16252
16253 * opts.c: Do not enable OPT_falign_* for -Os.
16254
16255 2018-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
16266 2018-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
16280 2018-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
16390 2018-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
16398 2018-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
16404 2018-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
16411 2018-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
16418 2018-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
16426 2018-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
16432 2018-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
16439 2018-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
16446 2018-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
16452 2018-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
16458 2018-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
16467 2018-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
16473 2018-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
16479 2017-07-16 Claudiu Zissulescu <claziss@synopsys.com>
16480
16481 * config/arc/arcHS.md: Update ARCHS scheduling rules.
16482
16483 2017-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
16503 2018-07-16 Tom de Vries <tdevries@suse.de>
16504
16505 PR debug/86455
16506 * var-tracking.c (vt_initialize): Fix pre_dec handling.
16507
16508 2018-07-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16509
16510 * config/aarch64/atomics.md (aarch64_store_execlusive<mode>): Add
16511 early clobber.
16512
16513 2018-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
16519 2018-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
16524 2018-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
16540 2018-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
16546 2018-07-14 Jim Wilson <jimw@sifive.com>
16547
16548 * config/riscv/linux.h (TARGET_ASM_FILE_END): New.
16549
16550 2018-07-14 Paul Koning <ni1d@arrl.net>
16551
16552 * config/pdp11/pdp11.c (pdp11_rtx_costs): Bugfixes.
16553
16554 2018-07-13 Jan Hubicka <hubicka@ucw.cz>
16555
16556 * lto-streamer-out.c (copy_function_or_variable): Dump info about
16557 copying section.
16558
16559 2018-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
16567 2018-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
16582 2018-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
16594 2018-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
16600 2018-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
16605 2018-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
16610 2018-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
16615 2018-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
16621 2018-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
16628 2018-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
16639 2018-07-12 Paul Koning <ni1d@arrl.net>
16640
16641 * config/pdp11/pdp11.c (pdp11_output_def): Fix typo in .set
16642 directive.
16643
16644 2018-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
16652 2018-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
16658 2018-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
16668 2018-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
16676 2018-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
16710 2018-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
16720 2018-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
16767 2018-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
16804 2018-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
16814 2018-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
16820 2018-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
16826 2018-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
16831 2018-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
16838 2018-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
16844 2018-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
16857 2018-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
16916 2018-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
16922 2018-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
16927 2018-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
16933 2018-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
16948 2018-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
16953 2018-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
16961 2018-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
16968 2018-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
16977 2018-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
16983 2018-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
16988 2018-07-10 Richard Biener <rguenther@suse.de>
16989
16990 * hash-map.h (hash_map::iterator::operator*): Return
16991 references to key and value.
16992
16993 2018-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
17008 2018-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
17022 2018-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
17048 2018-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
17054 2018-07-09 Jakub Jelinek <jakub@redhat.com>
17055
17056 PR c/86420
17057 * real.c (real_nextafter): Return true if result is denormal.
17058
17059 2018-07-09 Martin Liska <mliska@suse.cz>
17060
17061 * common.opt: Add back wrongly removed attribute.
17062
17063 2018-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
17069 2018-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
17075 2018-07-07 Jim Wilson <jimw@sifive.com>
17076
17077 * config/riscv/riscv.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): New.
17078
17079 2018-07-07 Tom de Vries <tdevries@suse.de>
17080
17081 * tree-dfa.c (dump_enumerated_decls): Handle cfun->cfg == NULL.
17082
17083 2018-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
17122 2018-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
17127 2018-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
17132 2018-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
17138 2018-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
17147 2018-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
17158 2018-07-06 Paul Koning <ni1d@arrl.net>
17159
17160 * doc/md.texi (define_split): Document DONE and FAIL.
17161 (define_peephole2): Ditto.
17162
17163 2018-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
17169 2018-07-05 Jim Wilson <jimw@sifive.com>
17170
17171 * config.gcc (riscv*-*-*): When setting xlen, handle riscv-*.
17172
17173 2018-07-05 Indu Bhagat <indu.bhagat@oracle.com>
17174
17175 * config/aarch64/aarch64-simd.md: correct flags text for
17176 MIN_EXPR replacement.
17177
17178 2018-07-05 James Clarke <jrtc27@jrtc27.com>
17179
17180 * configure: Regenerated.
17181
17182 2018-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
17189 2018-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
17195 2018-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
17221 2018-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
17227 2018-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
17233 2018-07-05 Tamar Christina <tamar.christina@arm.com>
17234
17235 * config/aarch64/aarch64.c (aarch64_expand_movmem): Fix mode size.
17236
17237 2018-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
17247 2018-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
17254 2018-07-04 Eric Botcazou <ebotcazou@adacore.com>
17255
17256 PR middle-end/86380
17257 * expmed.c (choose_multiplier): Fix incorrect comparison with mask.
17258
17259 2018-07-04 Aldy Hernandez <aldyh@redhat.com>
17260
17261 * tree-vrp.c (extract_range_from_binary_expr_1): Initialize
17262 neg_*_op* variables.
17263
17264 2018-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
17269 2018-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
17388 2018-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
17404 2018-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
17410 2018-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
17417 2018-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
17424 2018-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
17430 2018-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
17462 2018-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
17468 2018-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
17477 2018-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
17488 2018-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
17493 2018-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
17499 2018-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
17520 2018-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
17537 2018-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
17551 2018-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
17572 2018-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
17587 2018-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
17592 2018-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
17618 2018-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
17624 2018-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
17633 2018-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
17643 2018-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
17650 2018-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
17659 2018-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
17707 2018-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
17712 2018-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
17718 2018-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
17726 2018-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
17732 2018-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
17737 2018-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
17743 2018-07-02 Martin Liska <mliska@suse.cz>
17744
17745 PR ipa/86323
17746 * ipa-inline.c (early_inliner): Revert wrongly added ::get call.
17747
17748 2018-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
17756 2018-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
17796 2018-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
17809 2018-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
17818 2018-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
17828 2018-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
17864 2018-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
17889 2018-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
17895 2018-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
17918 2018-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
17943 2018-06-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
17944
17945 * Makefile.in (FLAGS_TO_PASS): Add RANLIB_FOR_TARGET.
17946
17947 2018-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
17956 2018-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
17965 2018-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
17970 2018-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
17976 2018-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
17991 2018-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
17998 2018-06-29 Jakub Jelinek <jakub@redhat.com>
17999
18000 * config/rs6000/t-rs6000: Append rs6000-modes.h to TM_H.
18001
18002 2018-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
18008 2018-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
18016 2018-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
18038 2018-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
18043 2018-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
18054 2018-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
18059 2018-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
18064 2018-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
18071 2018-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
18086 2018-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
18113 2018-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
18126 2018-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
18131 2018-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
18144 2018-06-27 Stephan Bergmann <sbergman@redhat.com>
18145
18146 * doc/invoke.texi (Debugging Options): Add -gsplit-dwarf.
18147
18148 2018-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
18155 2018-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
18224 2018-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
18294 2018-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
18302 2018-06-27 Jeff Law <law@redhat.com>
18303
18304 * config/v850/t-v850 (MULTILIB_OPTIONS): Remove 8byte-align.
18305 (MULTILIB_DIRNAMES): Similarly.
18306
18307 2018-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
18322 2018-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
18329 2018-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
18339 2018-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
18344 2018-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
18350 2018-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
18357 2018-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
18362 2018-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
18369 2018-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
18498 2018-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
18503 2018-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
18510 2018-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
18517 2018-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
18523 2018-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
18530 2018-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
18546 2018-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
18551 2018-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
18557 2018-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
18564 2018-06-25 Martin Sebor <msebor@redhat.com>
18565
18566 * doc/extend.texi (Zero-length arrays): Update and clarify.
18567
18568 2018-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
18581 2018-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
18587 2018-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
18593 2018-06-25 Carl Love <cel@us.ibm.com>
18594
18595 * config/rs6000/vsx.md: Change word selector to prefered location.
18596
18597 2018-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
18603 2018-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
18608 2018-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
18663 2018-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
18670 2018-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
18676 2018-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
18682 2018-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
18690 2018-06-24 Maya Rashish <coypu@sdf.org>
18691
18692 * ginclude/stddef.h: Simplify conditions around avoiding
18693 re-definition of __size_t.
18694
18695 2018-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
18700 2018-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
18705 2018-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
18711 2018-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
18717 2018-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
18723 2018-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
18732 2018-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
18742 2018-06-22 Jan Hubicka <hubicka@ucw.cz>
18743
18744 * tree.c (free_lang_data_in_type): Free all TYPE_VFIELDs.
18745
18746 2018-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
18753 2018-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
18759 2018-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
18764 2018-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
18775 2018-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
18783 2018-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
18788 2018-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
18794 2018-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
18802 2018-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
18809 2018-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
18818 2018-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
18825 2018-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
18831 2018-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
18837 2018-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
18842 2018-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
18847 2018-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
18872 2018-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
18878 2018-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
18906 2018-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
18916 2018-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
18922 2018-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
18927 2018-06-20 Maya Rashish <coypu@sdf.org>
18928
18929 * ginclude/stddef.h: Limit #include <machine/ansi.h> to NetBSD.
18930
18931 2018-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
18946 2018-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
18951 2018-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
18960 2018-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
19021 2018-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
19067 2018-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
19096 2018-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
19108 2018-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
19115 2018-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
19121 2018-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
19129 2018-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
19135 2018-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
19147 2018-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
19158 2018-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
19163 2018-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
19174 2018-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
19186 2018-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
19192 2018-06-19 Jan Hubicka <hubicka@ucw.cz>
19193
19194 * tree.c (find_decls_types_r): Remove all non-VAR_DECLs from
19195 blocks.
19196
19197 2018-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
19264 2018-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
19270 2018-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
19277 2018-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
19282 2018-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
19288 2018-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
19297 2018-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
19339 2018-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
19370 2018-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
19407 2018-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
19423 2018-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
19433 2018-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
19438 2018-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
19456 2018-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
19461 2018-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
19486 2018-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
19497 2018-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
19518 2018-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
19532 2018-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
19543 2018-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
19569 2018-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
19578 2018-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
19596 2018-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
19604 2018-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
19610 2018-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
19618 2018-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
19624 2018-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
19630 2018-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
19640 2018-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
19647 2018-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
19653 2018-06-14 Sebastian Huber <sebastian.huber@embedded-brains.de>
19654
19655 * config/rtems.h (STDINT_LONG32): Define.
19656
19657 2018-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
19677 2018-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
19684 2018-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
19691 2018-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
19697 2018-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
19779 2018-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
19803 2018-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
19810 2018-06-12 Claudiu Zissulescu <claziss@synopsys.com>
19811
19812 * config/arc/fpu.md (fmasf4): Force operand to register.
19813 (fnmasf4): Likewise.
19814
19815 2018-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
19836 2018-06-12 Claudiu Zissulescu <claziss@synopsys.com>
19837
19838 * config/arc/elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
19839
19840 2018-06-12 Claudiu Zissulescu <claziss@synopsys.com>
19841
19842 * config/arc/builtins.def (SYNC): SYNC instruction is valid on all
19843 ARC cores.
19844
19845 2018-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
19850 2018-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
19857 2018-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
19863 2018-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
19899 2018-06-12 Jeff Law <law@redhat.com>
19900
19901 * config.gcc (alpha*-*-freebsd*): Remove.
19902 * config/alpha/freebsd.h: Remove.
19903
19904 2018-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
19931 2018-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
19942 2018-06-12 Martin Sebor <msebor@redhat.com>
19943
19944 PR c/85931
19945 * fold-const.c (operand_equal_p): Handle SAVE_EXPR.
19946
19947 2018-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
19952 2018-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
19960 2018-06-12 Martin Liska <mliska@suse.cz>
19961
19962 * doc/options.texi: Document IntegerRange.
19963
19964 2018-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
19974 2018-06-12 Martin Liska <mliska@suse.cz>
19975
19976 * doc/options.texi: Document Deprecated option flag.
19977
19978 2018-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
19987 2018-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
19997 2018-06-12 Robert Suchanek <robert.suchanek@mips.com>
19998
19999 * config/mips/i6400.md (i6400_fpu_fadd): Remove frint.
20000
20001 2018-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
20006 2018-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
20014 2018-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
20047 2018-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
20067 2018-06-11 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
20068
20069 * config/vx-common.h (USE_TM_CLONE_REGISTRY): #define to 0.
20070
20071 2018-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
20086 2018-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
20091 2018-06-11 Zhouyi Zhou <zhouzhouyi@gmail.com>
20092
20093 * tree-eh.c (lower_eh_constructs_2): Add a comma to comment.
20094
20095 2018-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
20102 2018-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
20107 2018-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
20113 2018-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
20118 2018-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
20124 2018-06-08 Jan Hubicka <hubicka@ucw.cz>
20125
20126 * dumpfile.c (FIRST_ME_AUTO_NUMBERED_DUMP): Bump to 4.
20127
20128 2018-06-08 David Edelsohn <dje.gcc@gmail.com>
20129
20130 * config/rs6000/rs6000.c (rs6000_passes_ieee128): Protect with #if
20131 TARGET_ELF.
20132
20133 2018-06-08 Martin Liska <mliska@suse.cz>
20134
20135 * tree-cfg.h (debug_function): Fix argument type to match
20136 implementation.
20137
20138 2018-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
20144 2018-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
20223 2018-06-08 Segher Boessenkool <segher@kernel.crashing.org>
20224
20225 * config/rs6000/rs6000.c (min, max): Delete.
20226
20227 2018-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
20232 2018-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
20237 2018-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
20242 2018-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
20261 2018-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
20271 2018-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
20289 2018-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
20302 2018-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
20307 2018-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
20320 2018-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
20341 2018-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
20367 2018-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
20389 2018-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
20397 2018-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
20411 2018-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
20488 2018-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
20495 2018-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
20505 2018-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
20797 2018-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
20802 2018-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
20808 2018-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
20829 2018-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
20834 2018-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
20840 2018-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
20848 2018-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
20855 2018-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
20873 2018-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
20880 2018-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
20917 2018-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
20931 2018-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
20937 2018-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
20944 2018-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
20952 2018-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
20958 2018-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
20965 2018-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
20970 2018-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
20975 2018-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
20988 2018-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
20998 2018-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
21004 2018-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
21010 2018-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
21021 2018-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
21030 2018-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
21036 2018-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
21042 2018-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
21054 2018-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
21086 2018-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
21092 2018-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
21098 2018-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
21116 2018-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
21125 2018-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
21131 2018-06-04 Segher Boessenkool <segher@kernel.crashing.org>
21132
21133 * config/rs6000/rs6000.md (abs<mode>2 for FLOAT128): Handle IFmode.
21134
21135 2018-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
21141 2018-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
21148 2018-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
21154 2018-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
21167 2018-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
21173 2018-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
21179 2018-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
21189 2018-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
21197 2018-06-03 Kito Cheng <kito.cheng@gmail.com>
21198
21199 * config/nds32/nds32-peephole2.md: Add new patterns for code size.
21200
21201 2018-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
21208 2018-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
21213 2018-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
21247 2018-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
21273 2018-06-01 Mark Wielaard <mark@klomp.org>
21274
21275 * dwarf2out.c (dwarf2out_finish): Remove generation of
21276 DW_AT_loclists_base.
21277
21278 2018-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
21298 2018-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
21303 2018-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
21311 2018-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
21321 2018-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
21364 2018-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
21370 2018-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
21376 2018-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
21390 2018-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
21396 2018-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
21418 2018-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
21424 2018-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
21431 2018-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
21438 2018-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
21444 2018-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
21453 2018-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
21550 2018-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
21562 2018-05-30 Borislav Petkov <bp@suse.de>
21563
21564 * doc/extend.texi: Document some architecture specific
21565 constraints and sort entries.
21566
21567 2018-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
21574 2018-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
21579 2018-05-30 Jan Hubicka <hubicka@ucw.cz>
21580
21581 * doc/invoke.texi (-flinker-output): Document
21582
21583 2018-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
21606 2018-05-30 Jan Hubicka <hubicka@ucw.cz>
21607
21608 * lto-opts.c (lto_write_options): Skip OPT_dumpdir, OPT_fresolution_.
21609
21610 2018-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
21617 2018-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
21622 2018-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
21628 2018-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
21638 2017-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
21646 2018-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
21653 2018-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
21678 2018-05-29 Jim Wilson <jimw@sifive.com>
21679
21680 * config/riscv/riscv.c (riscv_interrupt_type): Fix comment typo.
21681
21682 2018-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
21691 2018-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
21700 2018-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
21708 2018-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
21714 2018-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
21776 2018-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
21805 2018-05-29 Richard Biener <rguenther@suse.de>
21806
21807 * dominance.c (iterate_fix_dominators): Push/pop TV_DOMINANCE.
21808
21809 2018-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
21816 2018-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
21823 2018-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
21824
21825 * tree-dump.c (dump_node): Use splay_tree_delete_pointers.
21826
21827 2018-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
21833 2018-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
21839 2018-05-28 Jakub Jelinek <jakub@redhat.com>
21840
21841 * doc/invoke.texi (ARM Options): Use @item instead of @itemx
21842 for armv5te.
21843
21844 2018-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
21849 2018-05-27 John David Anglin <danglin@gcc.gnu.org>
21850
21851 * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0.
21852
21853 2018-05-27 Paul Koning <ni1d@arrl.net>
21854
21855 * config/pdp11/pdp11.md (truncsihi2): Remove.
21856
21857 2018-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
21876 2018-05-27 Chung-Ju Wu <jasonwucj@gmail.com>
21877
21878 * config/nds32/nds32.md (bswapsi2, bswaphi2): New patterns.
21879
21880 2018-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
21894 2018-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
21939 2018-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
21945 2018-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
21971 2018-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
21977 2018-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
21982 2018-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
21995 2018-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
22014 2018-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
22021 2018-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
22032 2018-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
22041 2018-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
22078 2018-05-25 Bin Cheng <bin.cheng@arm.com>
22079
22080 * tree-ssa-live.h (live_merge_and_clear): Delete.
22081
22082 2018-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
22088 2018-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
22111 2018-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
22119 2018-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
22125 2018-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
22158 2018-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
22170 2018-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
22186 2018-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
22214 2018-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
22220 2018-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
22225 2018-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
22230 2018-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
22237 2018-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
22244 2018-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
22250 2018-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
22256 2018-05-24 Richard Sandiford <richard.sandiford@linaro.org>
22257
22258 * match.pd: Delay FMA folds until after vectorization.
22259
22260 2018-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
22266 2018-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
22332 2018-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
22337 2018-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
22343 2018-05-23 Segher Boessenkool <segher@kernel.crashing.org>
22344
22345 * doc/sourcebuild.texi (Endianness): New subsubsection.
22346
22347 2018-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
22367 2018-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
22387 2018-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
22394 2018-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
22404 2018-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
22412 2018-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
22418 2018-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
22425 2018-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
22430 2018-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
22446 2018-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
22453 2018-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
22467 2018-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
22476 2018-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
22482 2018-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
22488 2018-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
22493 2018-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
22515 2018-05-22 Luis Machado <luis.machado@linaro.org>
22516
22517 * config/aarch64/aarch64.md (*ashift<mode>_extv_bfiz): New pattern.
22518
22519 2018-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
22527 2018-05-22 Martin Sebor <msebor@redhat.com>
22528
22529 * calls.c (maybe_warn_nonstring_arg): Fix a typo in a comment.
22530
22531 2018-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
22544 2018-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
22573 2018-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
22580 2018-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
22586 2018-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
22591 2018-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
22597 2018-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
22602 2018-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
22610 2018-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
22631 2018-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
22638 2018-05-21 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
22639
22640 PR gcc/84923
22641 * varasm.c (weak_finish): Clean up weak_decls.
22642
22643 2018-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
22658 2018-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
22666 2018-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
22678 2018-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
22685 2018-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
22693 2018-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
22699 2018-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
22716 2018-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
22725 2018-05-19 Monk Chiang <sh.chiang04@gmail.com>
22726
22727 * config/nds32/nds32-fpu.md: Update copyright year.
22728
22729 2018-05-19 Chung-Ju Wu <jasonwucj@gmail.com>
22730
22731 * config/nds32/nds32.h (ASM_SPEC): Adjust spec rule.
22732
22733 2018-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
22739 2018-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
22745 2018-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
22780 2018-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
22788 2018-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
22795 2018-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
22817 2018-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
22822 2018-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
22862 2018-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
22885 2018-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
22891 2018-05-18 Martin Liska <mliska@suse.cz>
22892
22893 * passes.def: Remove a redundant pass.
22894
22895 2018-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
22900 2018-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
22938 2018-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
22992 2018-05-18 Martin Liska <mliska@suse.cz>
22993
22994 PR gcov-profile/84846
22995 * doc/gcov.texi: Document -t option of gcov tool.
22996
22997 2018-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
23005 2018-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
23015 2018-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
23021 2018-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
23027 2018-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
23032 2018-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
23038 2018-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
23048 2018-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
23064 2018-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
23079 2018-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
23137 2018-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
23147 2018-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
23182 2018-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
23187 2018-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
23194 2018-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
23199 2018-05-17 Richard Biener <rguenther@suse.de>
23200
23201 * tree-ssa-sccvn.c (vn_reference_lookup_3): Improve memset handling.
23202
23203 2018-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
23210 2018-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
23221 2018-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
23234 2018-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
23239 2018-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
23259 2018-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
23268 2018-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
23289 2018-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
23295 2018-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
23301 2018-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
23307 2018-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
23322 2018-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
23327 2018-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
23332 2018-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
23344 2018-05-16 Jason Merrill <jason@redhat.com>
23345
23346 * tree.c (warn_deprecated_use): Return bool. Simplify logic.
23347
23348 2018-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
23406 2018-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
23418 2018-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
23437 2018-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
23442 2018-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
23448 2018-05-15 Martin Sebor <msebor@redhat.com>
23449
23450 PR middle-end/85643
23451 * calls.c (get_attr_nonstring_decl): Handle MEM_REF.
23452
23453 2018-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
23461 2018-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
23472 2018-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
23477 2018-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
23483 2018-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
23489 2018-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
23494 2018-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
23500 2018-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
23516 2018-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
23524 2018-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
23548 2018-05-14 Richard Biener <rguenther@suse.de>
23549
23550 * doc/match-and-simplify.texi: Adjust :s documentation.
23551
23552 2018-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
23558 2018-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
23569 2018-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
23583 2018-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
23596 2018-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
23610 2018-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
23643 2018-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
23653 2018-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
23666 2018-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
23672 2018-05-11 Richard Earnshaw <rearnsha@arm.com>
23673
23674 PR target/85733
23675 * config/arm/arm-cpus.in (fgroup ARMv6m): Add be8 feature.
23676
23677 2018-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
23707 2018-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
23719 2018-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
23726 2018-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
23732 2018-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
23752 2018-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
23760 2018-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
23765 2018-05-10 Uros Bizjak <ubizjak@gmail.com>
23766
23767 PR target/85693
23768 * config/i386/sse.md (usadv64qi): New expander.
23769
23770 2018-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
23838 2018-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
23844 2018-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
23852 2018-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
23860 2018-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
23866 2018-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
23874 2018-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
23880 2018-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
23886 2018-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
23897 2018-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
23903 2018-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
23915 2018-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
23933 2018-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
23939 2018-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
23956 2018-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
23962 2018-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
23984 2018-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
24001 2018-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
24011 2018-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
24020 2018-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
24060 2018-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
24066 2018-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
24109 2018-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
24114 2018-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
24134 2018-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
24153 2018-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
24160 2018-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
24173 2018-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
24183 2018-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
24189 2018-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
24198 2018-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
24256 2018-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
24262 2018-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
24273 2018-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
24281 2018-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
24292 2018-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
24300 2018-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
24306 2018-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
24312 2018-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
24319 2018-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
24333 2018-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
24343 2018-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
24354 2018-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
24361 2018-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
24367 2018-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
24373 2018-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
24404 2018-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
24410 2018-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
24418 2018-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
24425 2018-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
24431 2018-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
24436 2018-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
24442 2018-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
24453 2018-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
24459 2018-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
24470 2018-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
24479 2018-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
24497 2018-04-30 Jonathan Wakely <jwakely@redhat.com>
24498
24499 * doc/invoke.texi (-fpie, -fPIE): Fix grammar and clarify
24500 interaction with -pie.
24501
24502 2018-04-30 David Malcolm <dmalcolm@redhat.com>
24503
24504 * selftest.h: Fix alphabetization of per-source-file selftest
24505 declarations.
24506
24507 2018-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
24513 2018-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
24519 2018-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
24555 2018-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
24562 2018-04-30 David Malcolm <dmalcolm@redhat.com>
24563
24564 * input.h (builtins_location_check): Convert to a STATIC_ASSERT.
24565
24566 2018-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
24578 2018-04-30 Claudiu Zissulescu <claziss@synopsys.com>
24579
24580 * config/arc/linux.h (CLEAR_INSN_CACHE): Define.
24581
24582 2018-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
24618 2018-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
24627 2018-04-30 Jonathan Wakely <jwakely@redhat.com>
24628
24629 * doc/invoke.texi (-fdebug-types-section): Fix grammar.
24630
24631 2018-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
24638 2018-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
24685 2018-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
24691 2018-04-30 Richard Biener <rguenther@suse.de>
24692
24693 PR bootstrap/85571
24694 * dwarf2out.c (gen_producer_string): Ignore -fchecking[=].
24695
24696 2018-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
24703 2018-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
24710 2018-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
24718 2018-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
24724 2018-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
24730 2018-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
24737 2018-04-27 Jeff Law <law@redhat.com>
24738
24739 * config.gcc: Mark tile* targets as deprecated/obsolete.
24740
24741 2018-04-27 Richard Biener <rguenther@suse.de>
24742
24743 * config/aarch64/aarch64.c: Simplify ap.__stack advance and
24744 fix for ILP32.
24745
24746 2018-04-27 Richard Biener <rguenther@suse.de>
24747
24748 * tree-cfg.c (verify_expr): Make dead code hit gcc_unreachable.
24749
24750 2018-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
24763 2018-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
24769 2018-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
24781 2018-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
24787 2018-04-26 Eric Botcazou <ebotcazou@adacore.com>
24788
24789 * loop-invariant.c (may_assign_reg_p): Return false for frame pointer.
24790
24791 2018-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
24815 2018-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
24821 2018-04-26 Jonathan Wakely <jwakely@redhat.com>
24822
24823 * doc/invoke.texi (-Wreturn-type): Document default status for C++.
24824
24825 2018-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
24832 2018-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
24839 2018-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
24846 2018-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
24856 2018-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
24864 2018-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
24873 2018-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
24881 2018-04-25 Mark Wielaard <mark@klomp.org>
24882
24883 * dwarf2out.c (file_info_cmp): Sort longer dir prefixes before
24884 shorter ones.
24885
24886 2018-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
24897 2018-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
24905 2018-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
24912 2018-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
24917 2018-04-25 Chung-Ju Wu <jasonwucj@gmail.com>
24918
24919 * config/nds32/nds32.c (nds32_print_operand): Set op_value ealier.
24920
24921 2018-04-25 Chung-Ju Wu <jasonwucj@gmail.com>
24922
24923 * config/nds32/nds32.h (ASM_APP_ON): Add missing newline character.
24924
24925 2018-04-25 Richard Biener <rguenther@suse.de>
24926
24927 * lto-streamer.h (LTO_major_version): Bump to 8.
24928
24929 2018-04-25 Jakub Jelinek <jakub@redhat.com>
24930
24931 * BASE-VER: Set to 9.0.0.
24932
24933 2018-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
24938 2018-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
24947 2018-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
24956 2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
24957
24958 PR target/85485
24959 * doc/install.texi: Remove -mcet from bootstrap-cet.
24960
24961 2018-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
24973 2018-04-24 Cesar Philippidis <cesar@codesourcery.com>
24974
24975 * doc/install.texi: Update newlib dependency for nvptx.
24976
24977 2018-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
24983 2018-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
24989 2018-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
24995 2018-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
25001 2018-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
25008 2018-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
25014 2018-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
25021 2018-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
25029 2018-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
25035 2018-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
25043 2018-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
25048 2018-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
25056 2018-04-22 Chung-Ju Wu <jasonwucj@gmail.com>
25057
25058 * config/nds32/nds32.c (nds32_compute_stack_frame): Fix wrong value.
25059
25060 2018-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
25069 2018-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
25075 2018-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
25080 2018-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
25094 2018-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
25100 2018-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
25108 2018-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
25114 2018-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
25119 2018-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
25125 2018-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
25137 2018-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
25163 2018-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
25169 2018-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
25175 2018-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
25181 2018-04-19 Toon Moene <toon@moene.org>
25182
25183 * doc/invoke.texi: Add -floop-unroll-and-jam to options enabled
25184 by -O3.
25185
25186 2018-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
25193 2018-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
25202 2018-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
25208 2018-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
25233 2018-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
25266 2018-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
25272 2018-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
25283 2018-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
25292 2018-04-18 Martin Liska <mliska@suse.cz>
25293
25294 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix GNU coding
25295 style.
25296
25297 2018-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
25306 2018-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
25315 2018-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
25321 2018-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
25329 2018-04-18 Jakub Jelinek <jakub@redhat.com>
25330
25331 PR target/81084
25332 * config.gcc: Obsolete powerpc*-*-*spe*.
25333
25334 2018-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
25342 2018-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
25349 2018-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
25362 2018-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
25372 2018-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
25378 2018-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
25415 2018-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
25421 2018-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
25427 2018-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
25475 2018-04-17 Jan Hubicka <jh@suse.cz>
25476
25477 PR lto/85405
25478 * ipa-devirt.c (odr_types_equivalent_p): Handle bit fields.
25479
25480 2018-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
25492 2018-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
25499 2018-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
25506 2018-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
25512 2018-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
25529 2018-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
25537 2018-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
25543 2018-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
25550 2018-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
25557 2018-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
25564 2018-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
25579 2018-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
25590 2018-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
25596 2018-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
25606 2018-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
25614 2018-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
25623 2018-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
25628 2018-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
25634 2018-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
25648 2018-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
25657 2018-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
25666 2018-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
25681 2018-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
25686 2018-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
25693 2018-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
25702 2018-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
25716 2018-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
25721 2018-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
25727 2018-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
25733 2018-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
25739 2018-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
25759 2018-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
25767 2018-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
25775 2018-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
25780 2018-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
25790 2018-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
25796 2018-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
25803 2018-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
25810 2018-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
25815 2018-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
25824 2018-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
25851 2018-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
25858 2018-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
25863 2018-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
25873 2018-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
25878 2018-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
25883 2018-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
25890 2018-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
25899 2018-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
25907 2018-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
25916 2018-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
25921 2018-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
25949 2018-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
25956 2018-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
25963 2018-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
25973 2018-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
25980 2018-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
25987 2018-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
25997 2018-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
26009 2018-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
26018 2018-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
26031 2018-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
26044 2018-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
26058 2018-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
26078 2018-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
26091 2018-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
26103 2018-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
26111 2018-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
26117 2018-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
26140 2018-04-07 Chung-Ju Wu <jasonwucj@gmail.com>
26141
26142 * config/nds32/nds32.h: Clean up obsolete macros.
26143
26144 2018-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
26156 2018-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
26166 2018-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
26176 2018-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
26190 2018-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
26195 2018-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
26215 2018-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
26222 2018-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
26228 2018-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
26244 2018-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
26249 2018-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
26255 2018-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
26261 2018-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
26270 2018-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
26281 2018-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
26286 2018-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
26294 2018-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
26303 2018-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
26311 2018-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
26320 2018-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
26325 2018-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
26356 2018-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
26361 2018-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
26367 2018-04-05 Uros Bizjak <ubizjak@gmail.com>
26368
26369 PR target/85193
26370 * config/i386/i386.md (define_attr "memory"): Handle rotate1 type.
26371
26372 2018-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
26378 2018-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
26386 2018-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
26397 2018-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
26402 2018-04-05 Chung-Ju Wu <jasonwucj@gmail.com>
26403
26404 * config/nds32/nds32.md (divsi4, udivsi4): New patterns.
26405
26406 2018-04-05 Chung-Ju Wu <jasonwucj@gmail.com>
26407
26408 * config/nds32/nds32.md (negsi2): Refine pattern.
26409
26410 2018-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
26427 2018-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
26432 2018-04-05 Chung-Ju Wu <jasonwucj@gmail.com>
26433
26434 * config/nds32/nds32.md (*sub_srli, *and_slli): Fine-tune predicator.
26435
26436 2018-04-05 Chung-Ju Wu <jasonwucj@gmail.com>
26437
26438 * config/nds32/nds32.md: Adjust indention.
26439
26440 2018-04-05 Kito Cheng <kito.cheng@gmail.com>
26441
26442 * config/nds32/nds32.md (feature): New attribute.
26443
26444 2018-04-05 Chung-Ju Wu <jasonwucj@gmail.com>
26445
26446 * config/nds32/nds32.md (subtype): New attribute.
26447
26448 2018-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
26455 2018-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
26462 2018-04-04 Michael Matz <matz@suse.de>
26463
26464 * builtins.c (compute_objsize): Pass correct operand
26465 to array_at_struct_end_p.
26466
26467 2018-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
26473 2018-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
26479 2018-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
26484 2018-04-04 Chung-Ju Wu <jasonwucj@gmail.com>
26485
26486 * config/nds32/nds32.md (movqi, movhi): Merge into mov<mode>.
26487
26488 2018-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
26511 2018-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
26517 2018-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
26523 2018-04-04 Chung-Ju Wu <jasonwucj@gmail.com>
26524
26525 * config/nds32/nds32.md (enabled): Use yes/no for this attribute.
26526
26527 2018-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
26543 2018-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
26553 2018-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
26563 2018-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
26569 2018-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
26575 2018-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
26581 2018-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
26587 2018-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
26594 2018-04-03 Richard Biener <rguenther@suse.de>
26595
26596 * sese.h (recompute_all_dominators): Remove.
26597
26598 2018-04-02 Martin Sebor <msebor@redhat.com>
26599
26600 * doc/invoke.texi (-Wrestrict): Fix typos.
26601
26602 2018-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
26613 2018-04-02 Gerald Pfeifer <gerald@pfeifer.com>
26614
26615 * doc/cpp.texi (Variadic Macros): Fix line continuation in an
26616 example.
26617
26618 2018-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
26623 2018-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
26643 2018-04-01 Kito Cheng <kito.cheng@gmail.com>
26644
26645 * config/nds32/t-nds32: Modify files dependency.
26646
26647 2018-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
26652 2018-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
26657 2018-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
26669 2018-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
26675 2018-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
26682 2018-03-30 Martin Sebor <msebor@redhat.com>
26683
26684 PR tree-optimization/84818
26685 * builtins.c (check_access): Use warning_n.
26686
26687 2018-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
26695 2018-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
26701 2018-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
26707 2018-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
26714 2018-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
26724 2018-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
26738 2018-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
26748 2018-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
26755 2018-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
26773 2018-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
26784 2018-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
26792 2018-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
26801 2018-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
26807 2018-03-27 Chung-Ju Wu <jasonwucj@gmail.com>
26808
26809 * config/nds32/nds32.h (BRANCH_COST): Adjust cost.
26810
26811 2018-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
26819 2018-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
26826 2018-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
26832 2018-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
26838 2018-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
26844 2018-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
26850 2018-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
26856 2018-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
26862 2018-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
26872 2018-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
26882 2018-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
26888 2018-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
26894 2018-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
26900 2018-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
26906 2018-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
26920 2018-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
26935 2018-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
26945 2018-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
26960 2018-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
26966 2018-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
26972 2018-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
26980 2018-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
26985 2018-03-21 Tom de Vries <tom@codesourcery.com>
26986
26987 * doc/extend.texi (__builtin_extend_pointer): Remove pasto.
26988
26989 2018-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
26995 2018-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
27005 2018-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
27012 2018-03-21 Nathan Sidwell <nathan@acm.org>
27013
27014 * doc/extend.texi (Deprecated Features): Remove mention of
27015 long-deleted deprecations.
27016
27017 2018-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
27023 2018-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
27029 2018-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
27034 2018-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
27040 2018-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
27046 2018-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
27052 2018-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
27058 2018-03-20 David H. Gutteridge <dhgutteridge@sympatico.ca>
27059
27060 PR target/84838
27061 * Minor grammar fixes for x86 options.
27062
27063 2018-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
27069 2018-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
27089 2018-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
27095 2018-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
27102 2018-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
27108 2018-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
27129 2018-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
27136 2018-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
27142 2018-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
27148 2018-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
27159 2018-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
27173 2018-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
27179 2018-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
27185 2018-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
27200 2018-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
27206 2018-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
27214 2018-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
27220 2018-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
27225 2018-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
27231 2018-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
27237 2018-03-18 Chung-Ju Wu <jasonwucj@gmail.com>
27238
27239 * config/nds32/nds32.h (MAX_REGS_PER_ADDRESS): Fix the value.
27240
27241 2018-03-18 Chung-Ju Wu <jasonwucj@gmail.com>
27242
27243 * config/nds32/nds32.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
27244
27245 2018-03-18 Chung-Ju Wu <jasonwucj@gmail.com>
27246
27247 * config/nds32/nds32.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
27248
27249 2018-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
27257 2018-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
27263 2018-03-17 Chung-Ju Wu <jasonwucj@gmail.com>
27264
27265 * config/nds32/nds32.c (nds32_register_priority): Modify cost.
27266
27267 2018-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
27281 2018-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
27295 2018-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
27303 2018-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
27309 2018-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
27315 2018-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
27323 2018-03-16 Julia Koval <julia.koval@intel.com>
27324
27325 * doc/invoke.texi (Skylake Server): Add CLWB.
27326 Cannonlake): Remove CLWB.
27327
27328 2018-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
27338 2018-03-15 Sandra Loosemore <sandra@codesourcery.com>
27339
27340 * config/nios2/nios2.md (movsi_internal): Fix thinko in
27341 split predicate.
27342
27343 2018-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
27349 2018-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
27368 2018-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
27374 2018-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
27380 2018-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
27386 2018-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
27392 2018-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
27399 2018-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
27405 2018-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
27410 2018-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
27416 2018-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
27427 2018-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
27461 2018-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
27466 2018-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
27474 2018-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
27485 2018-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
27504 2018-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
27521 2018-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
27527 2018-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
27549 2018-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
27556 2018-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
27562 2018-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
27585 2018-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
27596 2018-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
27606 2018-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
27612 2018-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
27623 2018-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
27652 2018-03-12 Jonathan Wakely <jwakely@redhat.com>
27653
27654 * doc/invoke.texi (-mclflushopt): Fix spelling of option.
27655
27656 2018-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
27661 2018-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
27671 2018-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
27679 2018-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
27686 2018-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
27692 2018-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
27698 2018-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
27703 2018-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
27717 2018-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
27727 2018-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
27734 2018-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
27743 2018-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
27751 2018-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
27766 2018-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
27789 2018-03-10 H.J. Lu <hongjiu.lu@intel.com>
27790
27791 PR target/84807
27792 * config/i386/i386.opt: Replace Enforcment with Enforcement.
27793
27794 2018-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
27814 2018-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
27823 2018-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
27834 2018-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
27842 2018-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
27855 2018-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
27875 2018-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
27886 2018-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
27896 2018-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
27910 2018-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
27916 2018-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
27926 2018-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
27932 2018-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
27939 2018-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
27948 2018-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
27956 2018-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
27967 2018-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
27973 2018-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
27989 2018-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
28000 2018-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
28007 2018-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
28016 2018-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
28022 2018-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
28050 2018-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
28067 2018-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
28075 2018-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
28081 2018-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
28107 2018-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
28118 2018-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
28125 2018-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
28132 2018-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
28137 2018-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
28149 2018-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
28154 2018-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
28161 2018-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
28167 2018-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
28197 2018-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
28208 2018-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
28214 2018-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
28221 2018-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
28235 2018-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
28254 2018-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
28277 2018-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
28284 2018-03-03 Chung-Ju Wu <jasonwucj@gmail.com>
28285
28286 * config/nds32/nds32.opt: Change -mcmodel= default value.
28287
28288 2018-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
28314 2018-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
28338 2018-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
28346 2018-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
28370 2018-03-02 Thomas Schwinge <thomas@codesourcery.com>
28371
28372 * doc/invoke.texi: Remove "Cilk Plus" references.
28373
28374 2018-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
28382 2018-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
28395 2018-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
28401 2018-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
28408 2018-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
28414 2018-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
28432 2018-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
28456 2018-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
28463 2018-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
28469 2018-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
28475 2018-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
28481 2018-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
28489 2018-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
28501 2018-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
28508 2018-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
28526 2018-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
28531 2018-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
28537 2018-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
28543 2018-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
28551 2018-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
28562 2018-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
28568 2018-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
28578 2018-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
28585 2018-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
28591 2018-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
28598 2018-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
28604 2018-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
28613 2018-02-26 H.J. Lu <hongjiu.lu@intel.com>
28614
28615 * config/i386/i386.c (ix86_output_indirect_jmp): Update comments.
28616
28617 2018-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
28638 2018-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
28648 2018-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
28660 2018-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
28665 2018-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
28690 2018-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
28696 2018-02-26 Christophe Lyon <christophe.lyon@linaro.org>
28697
28698 * Makefile.in (lto-wrapper): Use ALL_LINKERFLAGS.
28699
28700 2018-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
28707 2018-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
28714 2018-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
28720 2018-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
28725 2018-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
28730 2018-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
28735 2018-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
28744 2018-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
28760 2018-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
28770 2018-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
28792 2018-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
28798 2018-02-22 Steve Ellcey <sellcey@cavium.com>
28799
28800 * doc/extend.texi (__builtin_extend_pointer): Document builtin.
28801
28802 2018-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
28809 2018-02-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
28810
28811 * config/arm/t-multilib: Map Armv8-R to Armv7 multilibs.
28812
28813 2018-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
28819 2018-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
28825 2018-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
28842 2018-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
28854 2018-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
28863 2018-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
28868 2018-02-21 Jan Hubicka <hubicka@ucw.cz>
28869
28870 * ipa-cp.c (determine_versionability): Fix comment typos.
28871
28872 2018-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
28878 2018-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
28886 2018-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
28894 2018-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
28911 2018-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
28919 2018-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
28927 2018-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
28959 2018-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
28966 2018-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
28972 2018-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
28978 2018-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
28990 2018-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
29041 2018-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
29046 2018-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
29053 2018-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
29061 2018-02-19 Sebastian Perta <sebastian.perta@renesas.com>
29062
29063 * config/rl78/rl78.md (movdf): New define expand.
29064
29065 2018-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
29071 2018-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
29077 2018-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
29082 2018-02-16 Jakub Jelinek <jakub@redhat.com>
29083
29084 PR ipa/84425
29085 * ipa-inline.c (inline_small_functions): Fix a typo.
29086
29087 2018-02-16 Nathan Sidwell <nathan@acm.org>
29088
29089 * doc/extend.texi (Backwards Compatibility): Americanize 'behaviour'.
29090
29091 2018-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
29099 2018-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
29105 2018-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
29120 2018-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
29134 2018-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
29140 2018-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
29146 2018-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
29152 2018-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
29163 2018-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
29170 2018-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
29176 2018-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
29181 2018-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
29207 2018-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
29213 2018-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
29220 2018-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
29226 2018-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
29232 2018-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
29242 2018-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
29249 2018-02-14 Indu Bhagat <indu.bhagat@oracle.com>
29250
29251 * doc/invoke.texi: Correct -Wformat-overflow code sample.
29252
29253 2018-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
29264 2018-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
29270 2018-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
29276 2018-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
29282 2018-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
29289 2018-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
29305 2018-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
29311 2018-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
29329 2018-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
29340 2018-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
29345 2018-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
29354 2018-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
29365 2018-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
29373 2018-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
29413 2018-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
29420 2018-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
29425 2018-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
29431 2018-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
29441 2018-02-13 Andreas Schwab <schwab@suse.de>
29442
29443 * config/riscv/linux.h (CPP_SPEC): Define.
29444
29445 2018-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
29482 2018-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
29491 2018-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
29516 2018-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
29523 2018-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
29533 2018-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
29539 2018-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
29562 2018-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
29588 2018-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
29596 2018-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
29605 2018-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
29610 2018-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
29616 2018-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
29627 2018-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
29639 2018-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
29652 2018-02-09 Sebastian Perta <sebastian.perta@renesas.com>
29653
29654 * config/rx/rx.md (movsicc): Update expander to be matched by GCC.
29655
29656 2018-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
29665 2018-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
29672 2018-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
29680 2018-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
29685 2018-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
29691 2018-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
29697 2018-02-09 Alexandre Oliva <aoliva@redhat.com>
29698
29699 * config/rs6000/rs6000.md (blockage): Set length to zero.
29700
29701 2018-02-09 Eric Botcazou <ebotcazou@adacore.com>
29702
29703 * expr.c (optimize_bitfield_assignment_op): Remove obsolete assertion.
29704
29705 2018-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
29723 2018-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
29731 2018-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
29876 2018-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
29882 2018-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
29889 2018-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
29894 2018-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
29900 2018-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
29907 2018-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
29919 2018-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
29930 2018-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
30006 2018-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
30012 2018-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
30018 2018-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
30023 2018-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
30031 2018-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
30036 2018-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
30042 2018-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
30049 2018-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
30056 2018-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
30095 2018-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
30102 2018-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
30119 2018-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
30124 2018-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
30130 2018-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
30136 2018-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
30151 2018-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
30158 2018-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
30167 2018-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
30176 2018-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
30182 2018-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
30188 2018-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
30195 2018-02-06 Andrew Jenner <andrew@codeourcery.com>
30196
30197 * doc/invoke.texi: Add section for the PowerPC SPE backend. Remove
30198 irrelevant options.
30199
30200 2018-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
30205 2018-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
30211 2018-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
30217 2018-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
30224 2018-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
30229 2018-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
30237 2018-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
30242 2018-02-06 Eric Botcazou <ebotcazou@adacore.com>
30243
30244 * configure: Regenerate.
30245
30246 2018-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
30252 2018-02-05 Martin Liska <mliska@suse.cz>
30253
30254 * doc/invoke.texi: Cherry-pick upstream r323995.
30255
30256 2018-02-05 Richard Sandiford <richard.sandiford@linaro.org>
30257
30258 * ira.c (ira_init_register_move_cost): Adjust comment.
30259
30260 2018-02-05 Martin Liska <mliska@suse.cz>
30261
30262 PR gcov-profile/84137
30263 * doc/gcov.texi: Fix typo in documentation.
30264
30265 2018-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
30271 2018-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
30297 2018-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
30304 2018-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
30310 2018-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
30326 2018-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
30332 2018-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
30338 2018-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
30350 2018-02-01 Aldy Hernandez <aldyh@redhat.com>
30351
30352 PR target/84089
30353 * config/pa/predicates.md (base14_operand): Handle E_VOIDmode.
30354
30355 2018-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
30368 2018-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
30374 2018-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
30381 2018-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
30388 2018-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
30401 2018-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
30412 2018-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
30428 2018-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
30433 2018-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
30442 2018-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
30448 2018-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
30454 2018-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
30467 2018-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
30473 2018-01-31 Vladimir Makarov <vmakarov@redhat.com>
30474
30475 PR target/82444
30476 * ira.c (ira_init_register_move_cost): Remove assert.
30477
30478 2018-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
30484 2018-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
30491 2018-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
30498 2018-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
30504 2018-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
30511 2018-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
30517 2018-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
30529 2018-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
30544 2018-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
30550 2018-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
30560 2018-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
30566 2018-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
30572 2018-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
30579 2018-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
30585 2018-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
30591 2018-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
30599 2018-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
30611 2018-01-30 Jan Hubicka <hubicka@ucw.cz>
30612
30613 * profile-count.c (profile_count::combine_with_ipa_count): Handle
30614 zeros correctly.
30615
30616 2018-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
30623 2018-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
30629 2018-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
30636 2018-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
30641 2018-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
30646 2018-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
30656 2018-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
30664 2018-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
30669 2018-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
30676 2018-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
30682 2018-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
30687 2018-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
30695 2018-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
30701 2018-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
30708 2018-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
30713 2018-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
30721 2018-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
30727 2018-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
30733 2018-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
30745 2018-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
30761 2018-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
30767 2018-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
30787 2018-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
30800 2018-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
30864 2018-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
30869 2018-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
30878 2018-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
30885 2018-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
30899 2018-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
30905 2018-01-25 David Edelsohn <dje.gcc@gmail.com>
30906
30907 * doc/invoke.texi (PowerPC Options): Document 'native' cpu type.
30908
30909 2018-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
30916 2018-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
30926 2018-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
30932 2018-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
30938 2018-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
30948 2018-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
30954 2018-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
30965 2018-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
30971 2018-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
30976 2018-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
30985 2018-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
30995 2018-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
31002 2018-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
31008 2018-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
31014 2018-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
31019 2018-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
31038 2018-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
31051 2018-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
31059 2018-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
31075 2018-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
31082 2018-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
31089 2018-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
31097 2018-01-23 Nathan Sidwell <nathan@acm.org>
31098
31099 * doc/invoke.texi (ffor-scope): Deprecate.
31100
31101 2018-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
31127 2018-01-23 David Malcolm <dmalcolm@redhat.com>
31128
31129 * tree.c (selftest::test_location_wrappers): Add more test
31130 coverage.
31131
31132 2018-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
31137 2018-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
31144 2018-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
31152 2018-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
31158 2018-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
31164 2018-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
31171 2018-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
31177 2018-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
31190 2018-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
31196 2018-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
31202 2018-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
31209 2018-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
31228 2018-01-22 Sebastian Perta <sebastian.perta@renesas.com>
31229
31230 * config/rl78/rl78.md (anddi3): New define_expand.
31231
31232 2018-01-22 Sebastian Perta <sebastian.perta@renesas.com>
31233
31234 * config/rl78/rl78.md (umindi3): New define_expand.
31235
31236 2018-01-22 Sebastian Perta <sebastian.perta@renesas.com>
31237
31238 * config/rl78/rl78.md (smindi3): New define_expand.
31239
31240 2018-01-22 Sebastian Perta <sebastian.perta@renesas.com>
31241
31242 * config/rl78/rl78.md (smaxdi3): New define_expand.
31243
31244 2018-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
31260 2018-01-22 Sebastian Perta <sebastian.perta@renesas.com>
31261
31262 * config/rl78/rl78.md (umaxdi3): New define_expand.
31263
31264 2018-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
31269 2018-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
31277 2018-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31278
31279 * doc/sourcebuild.texi (arm_softfloat): Document.
31280
31281 2018-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
31288 2018-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
31305 2018-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
31311 2018-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
31331 2018-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
31344 2018-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
31362 2018-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
31368 2018-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
31374 2018-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
31380 2018-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
31392 2018-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
31404 2018-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
31411 2018-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
31420 2018-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
31427 2018-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
31432 2018-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
31444 2018-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
31450 2018-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
31457 2018-01-18 Martin Sebor <msebor@redhat.com>
31458
31459 * doc/invoke.texi (-Wclass-memaccess): Tweak text.
31460
31461 2018-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
31467 2018-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
31497 2018-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
31504 2018-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
31513 2018-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
31519 2018-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
31534 2018-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
31540 2018-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
31546 2018-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
31555 2018-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
31560 2018-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
31567 2018-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
31580 2018-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
31591 2018-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
31600 2018-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
31607 2018-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
31613 2018-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
31631 2018-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
31647 2018-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
31652 2018-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
31658 2018-01-16 Eric Botcazou <ebotcazou@adacore.com>
31659
31660 * config/visium/visium.md (nop): Tweak comment.
31661 (hazard_nop): Likewise.
31662
31663 2018-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
31690 2018-01-16 Artyom Skrobov tyomitch@gmail.com
31691
31692 * caller-save.c (insert_save): Drop unnecessary parameter. All
31693 callers updated.
31694
31695 2018-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
31706 2018-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
31713 2018-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
31719 2018-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
31733 2018-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
31744 2018-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
31749 2018-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
31755 2018-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
31769 2018-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
31775 2018-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
31810 2018-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
31815 2018-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
31825 2018-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
31831 2018-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
31849 2018-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
31857 2018-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
31864 2018-01-15 Richard Biener <rguenther@suse.de>
31865
31866 PR middle-end/83850
31867 * expmed.c (extract_bit_field_1): Fix typo.
31868
31869 2018-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
31877 2018-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
31893 2018-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
31906 2018-01-15 Richard Biener <rguenther@suse.de>
31907
31908 * BASE-VER: Bump to 8.0.1.
31909
31910 2018-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
31916 2018-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
31921 2018-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
31927 2018-01-14 Martin Sebor <msebor@redhat.com>
31928
31929 PR c++/81327
31930 * doc/invoke.texi (-Wlass-memaccess): Document suppression by casting.
31931
31932 2018-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
31939 2018-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
31949 2018-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
31956 2018-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
31979 2018-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
32005 2018-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
32048 2018-01-14 Jan Hubicka <hubicka@ucw.cz>
32049
32050 PR ipa/83051
32051 * ipa-inline.c (edge_badness): Tolerate roundoff errors.
32052
32053 2018-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
32061 2018-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
32095 2018-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
32100 2018-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
32158 2018-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
32207 2018-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
32224 2018-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
32243 2018-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
32304 2018-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
32338 2018-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
32343 2018-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
32363 2018-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
32379 2018-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
32394 2018-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
32404 2018-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
32434 2018-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
32450 2018-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
32465 2018-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
32498 2018-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
32511 2018-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
32546 2018-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
32558 2018-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
32588 2018-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
32664 2018-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
32686 2018-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
32727 2018-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
32745 2018-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
32752 2018-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
32793 2018-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
32823 2018-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
32837 2018-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
32844 2018-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
32849 2018-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
33141 2018-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
33152 2018-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
33162 2018-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
33168 2018-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
33213 2018-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
33222 2018-01-12 Tom de Vries <tom@codesourcery.com>
33223
33224 PR target/83737
33225 * config.gcc (nvptx*-*-*): Set use_gcc_stdint=wrap.
33226
33227 2018-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
33235 2018-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
33243 2018-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
33253 2018-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
33258 2018-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
33264 2018-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
33271 2018-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
33278 2018-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
33292 2018-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
33315 2018-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
33321 2018-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
33327 2018-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
33344 2018-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
33367 2018-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
33372 2018-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
33379 2018-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
33387 2018-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
33395 2018-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
33400 2018-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
33405 2018-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
33413 2018-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
33424 2018-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
33436 2018-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
33450 2018-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
33456 2018-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
33463 2018-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
33468 2018-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
33474 2018-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
33482 2018-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
33508 2018-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
33545 2018-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
33557 2018-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
33563 2018-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
33570 2018-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
33579 2018-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
33658 2018-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
33685 2018-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
33690 2018-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
33704 2018-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
33710 2018-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
33715 2018-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
33721 2018-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
33727 2018-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
33734 2018-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
33743 2018-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
33839 2018-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
33883 2018-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
33937 2018-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
33945 2018-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
33977 2018-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
33983 2018-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
33993 2018-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
34012 2018-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
34020 2018-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
34032 2018-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
34038 2018-01-10 Eric Botcazou <ebotcazou@adacore.com>
34039
34040 * dwarf2out.c (dwarf2out_var_location): Do not pass NULL to fprintf.
34041
34042 2018-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
34058 2018-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
34065 2018-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
34082 2018-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
34094 2018-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
34100 2018-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
34106 2018-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
34113 2018-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
34119 2018-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
34126 2018-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
34135 2018-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
34150 2018-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
34156 2018-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
34173 2018-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
34179 2018-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
34196 2018-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
34201 2018-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
34206 2018-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
34216 2018-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
34222 2018-01-09 Martin Liska <mliska@suse.cz>
34223
34224 PR sanitizer/82517
34225 * asan.c (shadow_mem_size): Add gcc_assert.
34226
34227 2018-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
34243 2018-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
34250 2018-01-09 Jan Hubicka <hubicka@ucw.cz>
34251
34252 * ipa-inline.c (edge_badness): Revert accidental checkin.
34253
34254 2018-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
34260 2018-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
34272 2018-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
34279 2018-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
34295 2018-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
34304 2018-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
34317 2018-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
34326 2018-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
34333 2018-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
34350 2018-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
34356 2018-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
34361 2018-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
34367 2018-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
34374 2018-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
34385 2018-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
34391 2018-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
34398 2018-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
34403 2018-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
34408 2018-01-08 Richard Biener <rguenther@suse.de>
34409
34410 PR middle-end/83517
34411 * match.pd ((t * 2) / 2) -> t): Add missing :c.
34412
34413 2018-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
34429 2018-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
34437 2018-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
34447 2018-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
34462 2018-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
34514 2018-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
34520 2018-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
34525 2018-01-05 Richard Sandiford <richard.sandiford@linaro.org>
34526
34527 * tree-chrec.c (chrec_contains_symbols): Return true for
34528 POLY_INT_CST.
34529
34530 2018-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
34536 2018-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
34543 2018-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
34548 2018-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
34558 2018-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
34566 2018-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
34572 2018-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
34577 2018-01-04 Richard Sandiford <richard.sandiford@linaro.org>
34578
34579 * doc/rtl.texi: Document machine_mode wrapper classes.
34580
34581 2018-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
34586 2018-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
34591 2018-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
34597 2018-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
34603 2018-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
34609 2018-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
34615 2018-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
34621 2018-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
34640 2018-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
34648 2018-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
34653 2018-01-04 Jakub Jelinek <jakub@redhat.com>
34654
34655 * gimple-ssa-sprintf.c (parse_directive): Cast second dir.len to uhwi.
34656
34657 2018-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
34663 2018-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
34673 2018-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
34680 2018-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
34686 2018-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
34693 2018-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
34699 2018-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
34711 2018-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
34717 2018-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
34725 2018-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
34734 2018-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
34742 2018-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
34752 2018-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
34789 2018-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
34815 2018-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
34822 2018-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
34850 2018-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
34945 2018-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
34976 2018-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
34983 2018-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
35021 2018-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
35099 2018-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
35109 2018-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
35163 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
35164
35165 * lra-constraints.c (curr_insn_transform): Use partial_subreg_p.
35166
35167 2018-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
35180 2018-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
35187 2018-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
35201 2018-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
35218 2018-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
35227 2018-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
35234 2018-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
35245 2018-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
35253 2018-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
35259 2018-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
35274 2018-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
35281 2018-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
35286 2018-01-03 Jakub Jelinek <jakub@redhat.com>
35287
35288 Update copyright years.
35289
35290 2018-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
35296 2018-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
35311 2018-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
35348 2018-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
35368 2018-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
35377 2018-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
35384 2018-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
35395 2018-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
35403 2018-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
35410 2018-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
35418 2018-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
35425 2018-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
35432 2018-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
35469 2018-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
35476 2018-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
35483 2018-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
35491 2018-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
35500 2018-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
35506 2018-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
35520 2018-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
35527 2018-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
35533 2018-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
35540 2018-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
35548 2018-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
35562 2018-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
35571 2018-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
35579 2018-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
35588 2018-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
35596 2018-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
35603 2018-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
35611 2018-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
35623 2018-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
35631 2018-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
35641 2018-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
35657 2018-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
35664 2018-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
35699 2018-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
35710 2018-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
35723 2018-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
35734 2018-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
35744 2018-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
35810 2018-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
35817 2018-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
35836 2018-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
35844 2018-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
35851 2018-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
35858 2018-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
35863 2018-01-02 Artyom Skrobov <tyomitch@gmail.com>
35864
35865 * web.c: Remove out-of-date comment.
35866
35867 2018-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
35874 2018-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
35885 2018-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
35898 2018-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
35931 2018-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
35936 2018-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
35944 2018-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
35950 2018-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
35966 2018-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
35981 2018-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
35990 2018-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
36059 2018-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
36065 2018-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
36195 2018-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
36206 2018-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
36233 2018-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
36244 2018-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
36251 2018-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
36256 2018-01-02 Richard Biener <rguenther@suse.de>
36257
36258 * ipa-inline.c (big_speedup_p): Fix expression.
36259
36260 2018-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
36266 2018-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
36275 2018-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 \f
36299 Copyright (C) 2018 Free Software Foundation, Inc.
36300
36301 Copying and distribution of this file, with or without modification,
36302 are permitted in any medium without royalty provided the copyright
36303 notice and this notice are preserved.
This page took 1.669031 seconds and 5 git commands to generate.