]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
cbf0f02da0c69a36b23207dfe453e7c5129a074f
[thirdparty/gcc.git] / gcc / ChangeLog
1 2019-06-13 Martin Sebor <msebor@redhat.com>
2
3 PR tree-optimization/90662
4 * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
5 to the same type.
6
7 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
8
9 PR bootstrap/90873
10 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
11 dbase is not TARGET_MEM_REF.
12
13 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
14
15 * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
16 Update all uses.
17 (and<mode>3): Use gen_extend_insn instead of indirect functions.
18 Do not generate DImode extends for 32bit targets.
19 (and->zext post-reload splitter): Use gen_extend_insn
20 instead of indirect functions.
21 (anddi->zext pre-reload splitter): New.
22 (*zext<mode>_doubleword_and): Remove.
23 (*zext<mode>_doubleword): Ditto.
24 (*zextsi_doubleword): Dittto.
25
26 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
27
28 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
29 Use gen_sub3_insn instead of indirect function.
30 (ix86_expand_ashl_const): Use gen_add2_insn instead of
31 indirect function.
32 (ix86_adjust_counter): Ditto.
33
34 2019-06-13 Jiufu Guo <guojiufu@linux.ibm.com>
35 Lijia He <helijia@linux.ibm.com>
36
37 PR tree-optimization/77820
38 * tree-ssa-threadedge.c
39 (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
40 function.
41 (thread_across_edge): Add call to
42 edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.
43
44 2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
45
46 * config/darwin-driver.c (validate_macosx_version_min): New.
47 (darwin_default_min_version): Cleanup and validate supplied version.
48 (darwin_driver_init): Likewise and push cleaned version into opts.
49
50 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
51
52 PR tree-optimization/90869
53 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view
54 converts in MEM_REF referencing decl rather than view converts
55 from decl type to MEM_REF type.
56
57 2019-06-13 Richard Biener <rguenther@suse.de>
58
59 PR tree-optimization/90856
60 * tree-sra.c (build_ref_for_model): Only use
61 build_reconstructed_reference when address-spaces are the same.
62
63 2019-06-13 Jakub Jelinek <jakub@redhat.com>
64
65 * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't
66 wrap ei variable name in the declaration in ()s.
67 (nvptx_single): Actually use mode_label variable. Formatting fix.
68
69 2019-06-13 Richard Biener <rguenther@suse.de>
70
71 * tree-vectorizer.h (vect_loop_vectorized_call): Declare.
72 * tree-vectorizer.c (vect_loop_vectorized_call): Export and
73 also return the condition stmt.
74 * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost
75 loop we can version and version that, reusing the loop version
76 created by if-conversion instead of versioning again.
77
78 2019-06-13 Aldy Hernandez <aldyh@redhat.com>
79
80 * gimple-loop-versioning.cc (prune_loop_conditions): Use
81 may_contain_p.
82 * tree-vrp (value_range_base::may_contain_p): Call into
83 value_inside_range.
84 (value_inside_range): Make private inside value_range_base class.
85 Take min/max from *this.
86 (range_includes_p): Remove.
87 * tree-vrp.h (value_range_base): Add value_inside_range.
88 (range_includes_p): Remove.
89 (range_includes_zero_p): Call may_contain_p.
90 * vr-values.c (compare_range_with_value): Same.
91
92 2019-06-13 Claudiu Zissulescu <claziss@synopsys.com>
93
94 * doc/extend.texi (ARC Function Attributes): Update info.
95
96 2019-06-13 Feng Xue <fxue@os.amperecomputing.com>
97
98 PR tree-optimization/89713
99 * doc/invoke.texi (-ffinite-loops): Document new option.
100 * common.opt (-ffinite-loops): New option.
101 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark
102 IFN_GOACC_LOOP calls as necessary.
103 * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit
104 is finite.
105 * omp-offload.c (oacc_xform_loop): Skip lowering if return value of
106 IFN_GOACC_LOOP call is not used.
107 * opts.c (default_options_table): Enable -ffinite-loops at -O2+.
108
109 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
110
111 PR target/88838
112 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the
113 compare_type is not with Pmode size, we will create an IV with
114 Pmode size with truncated use (i.e. converted to the correct type).
115 * tree-vect-loop.c (vect_verify_full_masking): Find IV type.
116 (vect_iv_limit_for_full_masking): New. Factored out of
117 vect_set_loop_condition_masked.
118 * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New.
119 (vect_iv_limit_for_full_masking): Declare.
120
121 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
122
123 PR target/88834
124 * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
125 IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES.
126 (get_alias_ptr_type_for_ptr_address): Likewise.
127 (add_iv_candidate_for_use): Add scaled index candidate if useful.
128 * tree-ssa-address.c (preferred_mem_scale_factor): New.
129 * config/aarch64/aarch64.c (aarch64_classify_address): Relax
130 allow_reg_index_p.
131
132 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
133
134 * config/aarch64/iterators.md (ADDSUB): Fix typo in comment.
135
136 2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu>
137
138 * common/config/pru/pru-common.c: New file.
139 * config.gcc: Add PRU target.
140 * config/pru/alu-zext.md: New file.
141 * config/pru/constraints.md: New file.
142 * config/pru/predicates.md: New file.
143 * config/pru/pru-opts.h: New file.
144 * config/pru/pru-passes.c: New file.
145 * config/pru/pru-pragma.c: New file.
146 * config/pru/pru-protos.h: New file.
147 * config/pru/pru.c: New file.
148 * config/pru/pru.h: New file.
149 * config/pru/pru.md: New file.
150 * config/pru/pru.opt: New file.
151 * config/pru/t-pru: New file.
152 * doc/extend.texi: Document PRU pragmas.
153 * doc/invoke.texi: Document PRU-specific options.
154 * doc/md.texi: Document PRU asm constraints.
155
156 2019-06-12 Martin Sebor <msebor@redhat.com>
157
158 PR middle-end/90676
159 * tree-pretty-print.c (dump_mem_ref): New function. Include
160 MEM_REF type in output when different size than operand.
161 (dump_generic_node): Move code to dump_mem_ref and call it.
162
163 2019-06-12 Martin Sebor <msebor@redhat.com>
164
165 PR tree-optimization/90662
166 * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
167 to arrays.
168
169 2019-06-12 Tom de Vries <tdevries@suse.de>
170
171 PR tree-optimization/90009
172 * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
173
174 2019-06-12 Martin Liska <mliska@suse.cz>
175
176 * ggc-common.c (ggc_prune_overhead_list): Do not sanitize
177 the created map.
178 * hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
179 * mem-stats.h (mem_alloc_description::mem_alloc_description):
180 Do not sanitize created maps.
181
182 2019-06-12 Aldy Hernandez <aldyh@redhat.com>
183
184 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use
185 value_range::singleton_p.
186 * tree-vrp.c (value_range_constant_singleton): Remove.
187 * tree-vrp.h (value_range_constant_singleton): Remove.
188 * vr-values.c (vr_values::singleton): Use
189 value_range::singleton_p.
190
191 2019-06-12 Jakub Jelinek <jakub@redhat.com>
192
193 PR target/90811
194 * cfgexpand.c (align_local_variable): Add really_expand argument,
195 don't SET_DECL_ALIGN if it is false.
196 (add_stack_var): Add really_expand argument, pass it through to
197 align_local_variable.
198 (expand_one_stack_var_1): Pass true as really_expand to
199 align_local_variable.
200 (expand_one_ssa_partition): Pass true as really_expand to
201 add_stack_var.
202 (expand_one_var): Pass really_expand through to add_stack_var.
203
204 2019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
205
206 * config/arm/iterators.md (VABAL): New int iterator.
207 * config/arm/neon.md (<sup>sadv16qi): New define_expand.
208 * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S, UNSPEC_VABAL_U
209 values.
210
211 2019-06-12 Martin Liska <mliska@suse.cz>
212
213 * value-prof.c (stream_out_histogram_value): Only first value
214 can't be negative.
215
216 2019-06-12 Jakub Jelinek <jakub@redhat.com>
217
218 PR c/90760
219 * symtab.c (symtab_node::set_section): Allow being called on aliases
220 as long as they aren't analyzed yet.
221
222 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com>
223
224 * config/mips/mips.c (mips_final_postscan_insn): Modify call
225 to `mips_set_text_contents_type' to indicate whether a
226 non-debug insn follows.
227
228 2019-06-11 Michael Meissner <meissner@linux.ibm.com>
229
230 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete
231 enabling -mpcrel by default.
232 * config/rs6000/rs6000.c (rs6000_option_override_internal): Update
233 test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so
234 that the test against -mcpu=future is done first. Then test if
235 -mprefixed-addr is on for -mpcrel.
236 (rs6000_disable_incompatible_switches): Add -mcpu=future support.
237
238 2019-06-11 Jakub Jelinek <jakub@redhat.com>
239
240 PR target/90811
241 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
242 instead of and.u%d.
243
244 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
245
246 * match.pd (X/[ex]4<Y/[ex]4): Handle conversions.
247
248 2019-06-11 Matthew Beliveau <mbelivea@redhat.com>
249
250 PR c++/90449 - add -Winaccessible-base option.
251 * doc/invoke.texi (Winaccessible-base): Document.
252
253 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
254
255 PR tree-optimization/62041
256 * fold-const.c (fold_real_zero_addition_p): Handle vectors.
257
258 2019-06-11 Jason Merrill <jason@redhat.com>
259
260 * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
261 * tree.c (get_tree_code_name): Likewise.
262 * print-tree.c (print_node): Only briefly print a node with an
263 invalid code.
264
265 2019-06-11 Jakub Jelinek <jakub@redhat.com>
266
267 PR bootstrap/90819
268 * trans-mem.c (tm_memopt_compute_available): Add assertion
269 that blocks is not empty. Formatting fix.
270
271 2019-06-11 Martin Liska <mliska@suse.cz>
272
273 PR c++/87847
274 * hash-table.h: Extend create_gcc, add one parameter
275 that is passed into hash_table::hash_table.
276
277 2019-06-10 Uroš Bizjak <ubizjak@gmail.com>
278
279 * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
280 New prototype.
281 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
282 Emit clobber also for non-sse operations.
283 (ix86_split_fp_absneg_operator): New function.
284 * config/i386/i386.md (SSEMODEF): New mode iterator.
285 (ssevecmodef): New mode attribute.
286 (<code>tf2): Use absneg code iterator.
287 (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
288 Add three-operand AVX alternatives.
289 (*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
290 Use absneg code iterator and X87MODEF mode iterator.
291 (absneg fp_reg non-sse splitter): Call absneg code iterator
292 and X87MODEF mode iterator.
293 (absneg general_reg non-sse splitter): Use absneg code iterator
294 and X87MODEF mode iterator. Use ix86_split_fp_absneg_operator.
295 (*<code><mode>2_1): Rename from *absneg<mode>2. Use absneg
296 code iterator. Add three-operand AVX alternative.
297 (absneg sse_reg splitter): Use absneg code iterator
298 and SSEMODEF mode iterator. Handle AVX operands.
299 (absneg fp_reg splitter): Use absneg code iterator
300 and MODEF mode iterator.
301 (absneg general_reg splitter): Merge splitters using MODEF mode
302 iterator. Use absneg code iterator. Call
303 ix86_split_fp_absneg_operator.
304 (*<code><mode>2_i387): Rename from *<code><mode>2_1.
305 Do not enable for non-sse modes before reload.
306 (CSGNMODE): Remove.
307 (CSGNVMODE): Ditto.
308 (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
309 ssevecmodef mode attribute instaed of CSGNVMODE.
310 (copysign<mode>3_const): Ditto.
311 (copysign<mode>3_var): Ditto.
312 * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
313 Use absneg code iterator. Simplify code using std::swap.
314 * config/i386/predicates.md (absneg_operator): Remove.
315
316 2019-06-10 Martin Sebor <msebor@redhat.com>
317
318 * gimple-fold.c (get_range_strlen): Update comment that didn't
319 make it into r267503 or related commits.
320
321 2019-06-10 Vladislav Ivanishin <vlad@ispras.ru>
322
323 * gcov-tool.c (merge_usage, rewrite_usage): Mark with
324 ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
325
326 2019-06-10 Jakub Jelinek <jakub@redhat.com>
327
328 * tree.def (OMP_SCAN): New tree code.
329 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
330 OMP_CLAUSE_EXCLUSIVE.
331 * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
332 (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
333 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
334 OMP_CLAUSE_{IN,EX}CLUSIVE.
335 (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
336 * tree-nested.c (convert_nonlocal_reference_stmt,
337 convert_local_reference_stmt, convert_gimple_call): Handle
338 GIMPLE_OMP_SCAN.
339 * tree-pretty-print.c (dump_omp_clause): Handle
340 OMP_CLAUSE_{IN,EX}CLUSIVE.
341 (dump_generic_node): Handle OMP_SCAN.
342 * gimple.def (GIMPLE_OMP_SCAN): New gimple code.
343 * gimple.h (gomp_scan): New type.
344 (is_a_helper <gomp_scan *>::test,
345 is_a_helper <const gomp_scan *>::test): New templates.
346 (gimple_build_omp_scan): Declare.
347 (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
348 gimple_omp_scan_set_clauses): New inline functions.
349 (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
350 * gimple.c (gimple_build_omp_scan): New function.
351 (gimple_copy): Handle GIMPLE_OMP_SCAN.
352 * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
353 * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
354 GIMPLE_OMP_TASKGROUP.
355 (dump_gimple_omp_scan): New function.
356 (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
357 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
358 * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
359 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
360 (is_gimple_stmt): Handle OMP_SCAN.
361 (gimplify_scan_omp_clauses): Reject inscan reductions on constructs
362 other than OMP_FOR or OMP_SIMD. Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
363 (gimplify_adjust_omp_clauses): Diagnose inscan reductions not
364 mentioned in nested #pragma omp scan. Handle
365 OMP_CLAUSE_{IN,EX}CLUSIVE.
366 (gimplify_expr): Handle OMP_SCAN.
367 * omp-low.c (check_omp_nesting_restrictions): For parent context,
368 look through GIMPLE_OMP_SCAN context. Allow #pragma omp scan in
369 simd constructs.
370 (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
371 GIMPLE_OMP_SCAN.
372
373 2019-06-10 Martin Liska <mliska@suse.cz>
374
375 * ipa-cp.c (ignore_edge_p): New function.
376 (build_toporder_info): Use it.
377 * ipa-inline.c (ignore_edge_p): New function.
378 (inline_small_functions): Use it.
379 * ipa-pure-const.c (ignore_edge_for_nothrow):
380 Verify opt_for_fn for caller and callee.
381 (ignore_edge_for_pure_const): Likewise.
382 * ipa-reference.c (ignore_edge_p): Extend to check
383 for opt_for_fn.
384 * ipa-utils.c (searchc): Refactor.
385 * ipa-utils.h: Fix coding style.
386
387 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
388
389 * config/arc/arc.c (arc_rtx_costs): Update costs.
390
391 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
392
393 * config/arc/arc-protos.h (arc_check_ior_const): Declare.
394 (arc_split_ior): Likewise.
395 (arc_check_mov_const): Likewise.
396 (arc_split_mov_const): Likewise.
397 * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
398 (arc_rtx_costs): Replace check Crr with Cax constraint.
399 (prepare_move_operands): Cleanup, remove unused code.
400 (arc_split_ior): New function.
401 (arc_check_ior_const): Likewise.
402 (arc_split_mov_const): Likewise.
403 (arc_check_mov_const): Likewise.
404 * config/arc/arc.md (movsi_insn): Restructure it, and convert it
405 in define_insn_and_split pattern.
406 (iorsi3): Likewise.
407 (mulsi3_v2): Add new matching variant.
408 (andsi3_i): Cleanup pattern.
409 (rotrsi3_cnt1): Update pattern.
410 (rotrsi3_cnt8): New pattern.
411 (ashlsi2_cnt8): Likewise.
412 (ashlsi2_cnt16): Likewise.
413 * config/arc/constraints.md (C0p): Update constraint.
414 (Crr): Remove it.
415 (C0x): New pattern.
416 (Cax): New pattern.
417
418 2019-06-10 Martin Liska <mliska@suse.cz>
419
420 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
421 Update coding style.
422 (sem_item_optimizer::dump_cong_classes):
423 Print how many items are in a non-singular class. Improve
424 coding style.
425
426 2019-06-10 Martin Liska <mliska@suse.cz>
427
428 * value-prof.c (dump_histogram_value): Change dump format.
429 (gimple_mod_subtract_transform): Remove legacy comment.
430
431 2019-06-10 Martin Liska <mliska@suse.cz>
432
433 * value-prof.c (dump_histogram_value): Print histogram values
434 only if present.
435
436 2019-06-10 Martin Liska <mliska@suse.cz>
437
438 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
439 (GCOV_SINGLE_VALUE_COUNTERS): Likewise.
440 * ipa-profile.c (ipa_profile_generate_summary):
441 Use get_most_common_single_value.
442 * tree-profile.c (gimple_init_gcov_profiler):
443 Instrument with __gcov_one_value_profiler_v2
444 and __gcov_indirect_call_profiler_v4.
445 * value-prof.c (dump_histogram_value):
446 Print all values for HIST_TYPE_SINGLE_VALUE.
447 (stream_out_histogram_value): Update assert for
448 N values.
449 (stream_in_histogram_value): Set number of
450 counters for HIST_TYPE_SINGLE_VALUE.
451 (get_most_common_single_value): New.
452 (gimple_divmod_fixed_value_transform):
453 Use get_most_common_single_value.
454 (gimple_ic_transform): Likewise.
455 (gimple_stringops_transform): Likewise.
456 (gimple_find_values_to_profile): Set number
457 of counters for HIST_TYPE_SINGLE_VALUE.
458 * value-prof.h (get_most_common_single_value):
459 New.
460
461 2019-06-10 Martin Liska <mliska@suse.cz>
462
463 * hash-map.h: Pass default value to hash_table ctor.
464 * hash-table.h: Add default value to call of a ctor.
465
466 2019-06-08 Jonathan Wakely <jwakely@redhat.com>
467
468 * doc/invoke.texi (C Dialect Options): Minor grammatical change.
469 (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
470
471 2019-06-07 John David Anglin <danglin@gcc.gnu.orig>
472
473 PR target/90751
474 * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
475 Call pa_output_function_label.
476 (TARGET_ASM_FUNCTION_PROLOGUE): define.
477 * config/pa/pa-protos.h (pa_output_function_label): Declare.
478 * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
479 to declaration.
480 (pa_linux_output_function_prologue): Declare.
481 (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
482 (pa_output_function_label): New.
483 (pa_output_function_prologue): Revise to use pa_output_function_label.
484 (pa_linux_output_function_prologue): New.
485 * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
486
487 2019-06-07 Aldy Hernandez <aldyh@redhat.com>
488
489 * tree-vrp.h (value_range_base::intersect): New.
490 (value_range::intersect_helper): Move from here...
491 (value_range_base::intersect_helper): ...to here.
492 * tree-vrp.c (value_range::intersect_helper): Rename to...
493 (value_range_base::intersect_helper): ...this, and rewrite to
494 return a value instead of modifying THIS in place.
495 Also, move equivalence handling...
496 (value_range::intersect): ...here, while calling intersect_helper.
497 * gimple-fold.c (size_must_be_zero_p): Use value_range_base when
498 calling intersect.
499 * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
500 Same.
501 * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
502
503 2019-06-07 Jakub Jelinek <jakub@redhat.com>
504
505 * Makefile.in (genprogerr): Add condmd.
506 (genprog): Remove it here.
507
508 2019-06-07 Andrew Stubbs <ams@codesourcery.com>
509
510 * doc/invoke.texi (AMD GCN Options): Add gfx906.
511
512 2019-06-07 Richard Biener <rguenther@suse.de>
513
514 PR debug/90574
515 * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
516 that appear after user labels.
517
518 2019-06-07 Martin Liska <mliska@suse.cz>
519
520 * cselib.c (cselib_init): Disable hash table
521 sanitization.
522 * hash-set.h: Pass new default argument to m_table.
523 * hash-table.c: Add global variable with hash table
524 sanitization limit.
525 * hash-table.h (Allocator>::hash_table): Add new argument
526 to ctor.
527 (hashtab_chk_error): New.
528 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
529 * toplev.c (process_options): Set hash_table_sanitize_eq_limit
530 from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
531
532 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
533
534 * common.opt (flto-odr-type-merging): Ignore.
535 * invoke.texi (-flto-odr-type-merging): Remove.
536 * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
537 (can_be_vtable_hashed_p): Remove.
538 (hash_odr_vtable): Remove.
539 (odr_vtable_hasher::hash): Remove.
540 (types_same_for_odr): Remove.
541 (types_odr_comparable): Remove.
542 (odr_vtable_hasher::equal): Remove.
543 (odr_vtable_hash_type, odr_vtable_hash): Remove.
544 (add_type_duplicate): Do not synchronize vtable and name hashtables.
545 (get_odr_type): Do not use vtable hash.
546 (dump_odr_type): Remove commented out code.
547 (build_type_inheritance_graph): Do not allocate vtable hash.
548 (rebuild_type_inheritance_graph): Do not delete vtable hash.
549 * ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
550 (odr_type_p): Likewise.
551 * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
552 test.
553
554 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
555
556 * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
557 immediately after same_types_for_tbaa_p returns -1 and continue
558 looking for possible exact match; if matching types are arrays
559 watch for partial overlaps.
560 (indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
561 (indirect_refs_may_alias_p): Do type based disambiguation first;
562 update comment.
563
564 2019-06-07 Richard Sandiford <richard.sandiford@arm.com>
565
566 * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
567
568 2019-06-07 Martin Liska <mliska@suse.cz>
569
570 * doc/invoke.texi: Remove param.
571 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
572 Remove.
573 * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
574 (GCOV_ICALL_TOPN_NCOUNTS): Likewise.
575 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
576 * profile.c (instrument_values): Remove
577 HIST_TYPE_INDIR_CALL_TOPN.
578 * tree-profile.c (init_ic_make_global_vars):
579 Always build __gcov_indirect_call only.
580 (gimple_init_gcov_profiler): Remove usage
581 of PARAM_INDIR_CALL_TOPN_PROFILE.
582 (gimple_gen_ic_profiler): Likewise.
583 * value-prof.c (dump_histogram_value): Likewise.
584 (stream_in_histogram_value): Likewise.
585 (gimple_indirect_call_to_profile): Likewise.
586 (gimple_find_values_to_profile): Likewise.
587 * value-prof.h (enum hist_type): Likewise.
588
589 2019-06-07 Martin Liska <mliska@suse.cz>
590
591 * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
592 function.
593
594 2019-06-07 Martin Liska <mliska@suse.cz>
595
596 PR tree-optimization/78902
597 * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
598 (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
599 (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
600 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
601 (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
602 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
603 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
604 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
605 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
606 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
607 (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
608 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove.
609 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
610 New.
611 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
612 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
613 (ATTR_MALLOC_NOTHROW_NONNULL): Remove.
614 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
615 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
616 (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
617 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
618 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
619 * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
620 warn_unused_result attribute.
621 (BUILT_IN_STRDUP): Likewise.
622 (BUILT_IN_STRNDUP): Likewise.
623 (BUILT_IN_ALLOCA): Likewise.
624 (BUILT_IN_CALLOC): Likewise.
625 (BUILT_IN_MALLOC): Likewise.
626 (BUILT_IN_REALLOC): Likewise.
627
628 2019-06-06 Jim Wilson <jimw@sifive.com>
629
630 PR target/89955
631 * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
632 * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
633 * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.
634
635 2019-06-06 Martin Sebor <msebor@redhat.com>
636
637 * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
638 (handle_builtin_malloc): Remove trailing spaces.
639 (handle_builtin_memset): Same.
640 (handle_builtin_memcmp): Same.
641 (compute_string_length): Same.
642 (determine_min_objsize): Same.
643 (handle_builtin_string_cmp): Same.
644 (handle_char_store): Same. Break up excessively long line.
645
646 2019-06-06 Martin Jambor <mjambor@suse.cz>
647
648 * tree-sra.c (build_reconstructed_reference): Drop the alignment
649 check.
650
651 2019-06-06 Martin Jambor <mjambor@suse.cz>
652
653 * tree-sra.c (struct access): New field grp_same_access_path.
654 (dump_access): Dump it.
655 (build_reconstructed_reference): New function.
656 (build_ref_for_model): Use it if possible.
657 (path_comparable_for_same_access): New function.
658 (same_access_path_p): Likewise.
659 (sort_and_splice_var_accesses): Set the new flag.
660 (analyze_access_subtree): Likewise.
661 (propagate_subaccesses_across_link): Propagate zero value of the new
662 flag down the access tree.
663
664 2019-06-06 Andrew Stubbs <ams@codesourcery.com>
665
666 * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
667 * config/gcn/gcn.opt (gpu_type): Add gfx906.
668 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
669 (MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
670 Add gfx906.
671
672 2019-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
673
674 PR tree-optimization/90332
675 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
676 Handle VALS containing two vectors.
677 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
678 to...
679 (@aarch64_combinez<mode>): ... This.
680 (*aarch64_combinez_be<mode>): Rename to...
681 (@aarch64_combinez_be<mode>): ... This.
682 (vec_init<mode><Vhalf>): New define_expand.
683 * config/aarch64/iterators.md (Vhalf): Handle V8HF.
684
685 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
686
687 * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
688 library functions only when not optimizing for size.
689 (ashlsi3): Likewise.
690 (ashrhi3): Likewise.
691 (ashrsi3): Likewise.
692 (lshrhi3): Likewise.
693 (lshrsi3): Likewise.
694
695 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com>
696
697 PR rtl-optimization/88751
698 * ira.c (ira): Use the number of the actually referenced registers
699 when calculating the threshold.
700
701 2019-06-06 Jakub Jelinek <jakub@redhat.com>
702
703 * configure: Regenerate.
704
705 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
706
707 * config/msp430/msp430.md (ashlhi3): Force shift src operand into a
708 register if it is in memory, so the shift can be emulated with a rotate
709 instruction.
710 (ashrhi3): Likewise.
711 (lshrhi3): Likewise.
712
713 2019-06-06 Martin Liska <mliska@suse.cz>
714
715 PR tree-optimization/87954
716 * match.pd: Simplify mult where both arguments are 0 or 1.
717
718 2019-06-06 Richard Biener <rguenther@suse.de>
719
720 * vr-values.c (vr_values::extract_range_from_ssa_name): Do not
721 put equivalences on UNDEFINED ranges.
722 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
723 Make sure to drop defs of stmts added during simplification
724 to VARYING.
725
726 2019-06-06 Richard Biener <rguenther@suse.de>
727
728 * tree-ssa-structalias.c: Include tree-cfg.h.
729 (make_heapvar): Do not make heap vars artificial.
730 (find_func_aliases_for_builtin_call): Handle stack allocation
731 functions.
732 (find_func_aliases): Delay processing of simple enough returns
733 in non-IPA mode.
734 (set_uids_in_ptset): Adjust.
735 (find_what_var_points_to): Likewise.
736 (solve_constraints): Do not dump points-to sets here.
737 (compute_points_to_sets): Post-process return statements,
738 amending the escaped solution. Dump points-to sets afterwards.
739 (ipa_pta_execute): Dump points-to sets.
740
741 2019-06-06 Martin Liska <mliska@suse.cz>
742
743 PR web/87933
744 * doc/install.texi: Fix HTML headers and
745 titles for 'Installing GCC' pages.
746
747 2019-06-06 Martin Liska <mliska@suse.cz>
748
749 * ipa-icf-gimple.h (dump_message_1): Remove.
750 (dump_message): Likewise.
751 (return_false_with_message_1): Print also file.
752 (return_false_with_msg): Likewise.
753 (return_with_result): Likewise.
754 (return_with_debug): Likewise.
755 * ipa-icf.c (sem_function::equals_private): Remove call
756 to dump_message.
757
758 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
759
760 * config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
761 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
762 memory operand for it.
763 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.
764
765 2019-06-05 Martin Sebor <msebor@redhat.com>
766
767 * config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
768 Adjust quoting and hyphenation.
769 * convert.c (convert_to_real_1): Same.
770 * gcc.c (driver_wrong_lang_callback): Same.
771 (driver::handle_unrecognized_options): Same.
772 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
773 * opts-common.c (cmdline_handle_error): Same.
774 (read_cmdline_option): Same.
775 * opts-global.c (complain_wrong_lang): Same.
776 (print_ignored_options): Same.
777 (handle_common_deferred_options): Same.
778 * pretty-print.h: Same.
779 * print-rtl.c (debug_bb_n_slim): Same.
780 * sched-rgn.c (make_pass_sched_fusion): Same.
781 * tree-cfg.c (verify_gimple_assign_unary): Same.
782 (verify_gimple_label): Same.
783 * tree-ssa-operands.c (verify_ssa_operands): Same.
784 * varasm.c (do_assemble_alias): Same.
785 (assemble_alias): Same.
786
787 2019-06-05 Richard Henderson <rth@twiddle.net>
788
789 * config/alpha/alpha.c (direct_return): Move down after
790 struct machine_function definition; use saved frame_size;
791 return bool.
792 (struct machine_function): Add sa_mask, sa_size, frame_size.
793 (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
794 (alpha_compute_frame_layout): ... new function.
795 (TARGET_COMPUTE_FRAME_LAYOUT): New.
796 (alpha_initial_elimination_offset): Use saved sa_size.
797 (alpha_vms_initial_elimination_offset): Likewise.
798 (alpha_vms_can_eliminate): Remove alpha_sa_size call.
799 (alpha_expand_prologue): Use saved frame data. Merge integer
800 and fp register save loops.
801 (alpha_expand_epilogue): Likewise.
802 (alpha_start_function): Use saved frame data.
803 * config/alpha/alpha-protos.h (direct_return): Update.
804 (alpha_sa_size): Remove.
805
806 2019-06-05 Eric Botcazou <ebotcazou@adacore.com>
807
808 * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
809 multiplication by a power-of-two value.
810 (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
811 and turn the modulo operation into a masking operation.
812
813 2019-06-05 Jakub Jelinek <jakub@redhat.com>
814
815 PR debug/90733
816 * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
817 with VOIDmode inner operands.
818
819 2019-06-05 Richard Biener <rguenther@suse.de>
820
821 PR middle-end/90726
822 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
823 turn an expression graph into a tree.
824
825 2019-06-05 Jakub Jelinek <jakub@redhat.com>
826
827 * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
828 member.
829 (expand_parallel_call): If region->inner->has_lastprivate_conditional,
830 treat it like explicit monotonic schedule modifier.
831 (expand_omp_for): Initialize has_lastprivate_conditional.
832 If fd.lastprivate_conditional != 0, treat it like explicit monotonic
833 schedule modifier.
834
835 * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
836 references, lookup in in hash map MEM_REF operand instead of the
837 MEM_REF itself.
838 (lower_omp_1): When looking for lastprivate conditional assignments,
839 handle MEM_REFs with REFERENCE_TYPE operands.
840
841 * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
842 on privatization clauses OMP_CLAUSE_DECL is privatized by reference
843 and references a VLA. Handle references to non-VLAs if is_simd
844 all privatization clauses like reductions.
845 (lower_rec_input_clauses) <case do_private, case do_firstprivate>:
846 If omp_is_reference, use always omp simd arrays and set
847 DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
848 fails, emit reference initialization.
849
850 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
851
852 PR target/89803
853 * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
854 _mm_mask_fpclass_sd_mask): New intrinsics.
855 (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
856 * config/i386/i386-builtin.def
857 (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
858 New builtins.
859 (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
860 * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
861 DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
862 * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
863 case QI_FTYPE_V2SF_INT): Ditto.
864 * config/i386/sse.md
865 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
866 Extended to insnstructions with mask operands.
867
868 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
869
870 * config/rs6000/constraints.md (define_register_constraint "wp"):
871 Delete.
872 (define_register_constraint "wq"): Delete.
873 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
874 (rs6000_init_hard_regno_mode_ok): Adjust.
875 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
876 RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
877 * config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
878 (define_mode_attr VSa): Delete.
879 (define_mode_attr VSisa): New.
880 (rest of file): Adjust.
881 * doc/md.texi (Machine Constraints): Adjust.
882
883 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
884
885 * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
886 (define_attr "enabled"): Handle those new isa values.
887
888 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
889
890 * config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
891 (define_mode_attr VSr5): Delete.
892 (define_mode_attr VStype_sqrt): Delete.
893 (define_mode_iterator VSX_SPDP): Delete.
894 (define_mode_attr VS_spdp_res): Delete.
895 (define_mode_attr VS_spdp_insn): Delete.
896 (define_mode_attr VS_spdp_type): Delete.
897 (*vsx_sqrt<mode>2): Adjust.
898 (vsx_<VS_spdp_insn>): Delete, split to...
899 (vsx_xscvdpsp): ... this. New. And...
900 (vsx_xvcvspdp): ... this. New. And...
901 (vsx_xvcvdpsp): ... this. New.
902
903 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
904
905 * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
906 and V2DF.
907 * config/rs6000/vsx.md (define_mode_attr VSs): Delete.
908 (rest of file): Adjust.
909
910 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
911
912 * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
913 (vsx_extract_<mode>_var): Ditto.
914
915 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
916
917 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
918 with just "wa".
919
920 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
921
922 * config/rs6000/constraints.md (define_register_constraint "ww"):
923 Delete.
924 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
925 (rs6000_init_hard_regno_mode_ok): Adjust.
926 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
927 RS6000_CONSTRAINT_ww.
928 * config/rs6000/rs6000.md: Adjust.
929 * config/rs6000/vsx.md: Adjust.
930 * doc/md.texi (Machine Constraints): Adjust.
931
932 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
933
934 * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
935 (define_mode_attr sd): New.
936 (define_mode_attr s): New.
937 (define_mode_attr Ftrad): Delete.
938 (define_mode_attr Fvsx): Delete.
939 (define_mode_attr Fs): Delete.
940 (rest of file): Use the new mode attributes.
941 * config.rs6000/vsx.md: Use the new mode attributes.
942
943 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
944
945 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
946 with just "wa".
947
948 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
949
950 * config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
951 (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
952 used with VSX_B, VSX_D, or VSX_F, with just "wa".
953
954 2019-06-04 Bill Schmidt <wschmidt@linux.ibm.com>
955
956 PR target/78263
957 * config/rs6000/altivec.h: Don't #define vector, pixel, bool for
958 C++ with strict ANSI requirements.
959
960 2019-06-04 Marc Glisse <marc.glisse@inria.fr>
961
962 * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
963 computations when step is 1.
964
965 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
966
967 * config/rs6000/constraints.md (define_register_constraint "wf"):
968 Delete.
969 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
970 (rs6000_init_hard_regno_mode_ok): Adjust.
971 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
972 RS6000_CONSTRAINT_wf.
973 * config/rs6000/rs6000.md: Adjust.
974 * config/rs6000/vsx.md: Adjust.
975 * doc/md.texi (Machine Constraints): Adjust.
976
977 2019-06-04 Andrew Pinski <apinski@marvell.com>
978
979 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
980 Fix ILP32 value.
981
982 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
983
984 * config/rs6000/constraints.md (define_register_constraint "wd"):
985 Delete.
986 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
987 (rs6000_init_hard_regno_mode_ok): Adjust.
988 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
989 RS6000_CONSTRAINT_wd.
990 * config/rs6000/rs6000.md: Adjust.
991 * config/rs6000/vsx.md: Adjust.
992 * doc/md.texi (Machine Constraints): Adjust.
993
994 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
995
996 * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
997 (rest of file): Adjust.
998
999 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1000
1001 * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete.
1002 (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust.
1003 (vsx_splat_<mode>_reg): Adjust.
1004
1005 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1006
1007 * config/rs6000/constraints.md (define_register_constraint "ws"):
1008 Delete.
1009 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1010 (rs6000_init_hard_regno_mode_ok): Adjust.
1011 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1012 RS6000_CONSTRAINT_ws.
1013 * config/rs6000/rs6000.md: Adjust.
1014 * config/rs6000/vsx.md: Adjust.
1015 * doc/md.texi (Machine Constraints): Adjust.
1016
1017 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1018
1019 * config/rs6000/constraints.md (define_register_constraint "wv"):
1020 Delete.
1021 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1022 (rs6000_init_hard_regno_mode_ok): Adjust.
1023 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1024 RS6000_CONSTRAINT_wv.
1025 * config/rs6000/rs6000.md: Adjust.
1026 * config/rs6000/vsx.md: Adjust.
1027 * doc/md.texi (Machine Constraints): Adjust.
1028
1029 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1030
1031 * config/rs6000/constraints.md (define_register_constraint "wi"):
1032 Delete.
1033 (define_register_constraint "wt"): Delete.
1034 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1035 (rs6000_init_hard_regno_mode_ok): Adjust.
1036 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1037 RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt.
1038 * config/rs6000/rs6000.md: Adjust.
1039 * config/rs6000/vsx.md: Adjust.
1040 * doc/md.texi (Machine Constraints): Adjust.
1041
1042 2019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
1043
1044 * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
1045 const.
1046 * config/aarch64/aarch64.c (aarch64_asm_output_external): Call
1047 default_elf_asm_output_external.
1048
1049 2019-06-04 Martin Liska <mliska@suse.cz>
1050
1051 * ipa-icf.c (INCLUDE_LIST): Remove.
1052 (sem_item_optimizer::execute): Remove call to init_wpa.
1053 * ipa-icf.h (init_wpa): Remove.
1054
1055 2019-06-04 Jakub Jelinek <jakub@redhat.com>
1056
1057 * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
1058 conditional on combined for simd.
1059 * omp-low.c (struct omp_context): Add combined_into_simd_safelen0
1060 member.
1061 (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
1062 constructs, don't remove lastprivate_conditional_map, but instead set
1063 ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
1064 to parent construct temporaries.
1065 (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
1066 like !ctx->lastprivate_conditional_map.
1067 (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
1068 use up->outer context instead of up.
1069 * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
1070 gimple_omp_for_combined_p.
1071 (expand_omp_for_static_nochunk): Likewise.
1072 (expand_omp_for_static_chunk): Add forgotten cond_var bump that was
1073 probably moved over into expand_omp_for_generic rather than being copied
1074 there.
1075
1076 2019-06-04 Martin Liska <mliska@suse.cz>
1077
1078 * value-prof.c (dump_histogram_value): Fix typo.
1079 (gimple_mod_subtract_transform): Likewise.
1080
1081 2019-06-04 Richard Biener <rguenther@suse.de>
1082
1083 PR middle-end/90726
1084 * tree-chrec.c (chrec_contains_symbols): Add to visited.
1085 (tree_contains_chrecs): Likewise.
1086 (chrec_contains_symbols_defined_in_loop): Move here and avoid
1087 exponential behaivor from ...
1088 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
1089 ... here.
1090 (expression_expensive_p): Avoid exponential behavior and compute
1091 expanded size, rejecting any expansion.
1092 * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove.
1093 (idx_contains_abnormal_ssa_name_p): Likewise.
1094 (contains_abnormal_ssa_name_p_1): New helper for walk_tree.
1095 (contains_abnormal_ssa_name_p): Simplify and use
1096 walk_tree_without_duplicates.
1097
1098 2019-06-04 Richard Biener <rguenther@suse.de>
1099
1100 PR tree-optimization/90738
1101 Revert
1102 2019-06-03 Richard Biener <rguenther@suse.de>
1103
1104 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
1105 full reference tree and record in ref->ref.
1106 (vn_reference_lookup_3): Pass in original ref to
1107 ao_ref_init_from_vn_reference.
1108 (vn_reference_lookup): Likewise.
1109 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
1110 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
1111 Handle non-decl bases in the original reference.
1112
1113 2019-06-04 Martin Liska <mliska@suse.cz>
1114
1115 * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count
1116 number of references.
1117 (sem_item_optimizer::do_congruence_step):
1118 (sem_item_optimizer::worklist_push): Dump how references
1119 a class has.
1120 (sem_item_optimizer::worklist_pop): Use heap.
1121 (sem_item_optimizer::process_cong_reduction): Likewise.
1122 * ipa-icf.h: Use fibonacci_heap insteam of std::list.
1123
1124 2019-06-04 Martin Liska <mliska@suse.cz>
1125
1126 * ipa-icf.h (struct sem_usage_pair_hash): New.
1127 (sem_usage_pair_hash::hash): Likewise.
1128 (sem_usage_pair_hash::equal): Likewise.
1129 (struct sem_usage_hash): Likewise.
1130 * ipa-icf.c (sem_item::sem_item): Initialize
1131 referenced_by_count.
1132 (sem_item::add_reference): Register a reference
1133 in ref_map and not in target->usages.
1134 (sem_item::setup): Remove initialization of
1135 dead vectors.
1136 (sem_item::~sem_item): Remove usage of dead vectors.
1137 (sem_item::dump): Remove dump of references.
1138 (sem_item_optimizer::sem_item_optimizer): Initialize
1139 m_references.
1140 (sem_item_optimizer::read_section): Remove useless
1141 dump.
1142 (sem_item_optimizer::parse_funcs_and_vars): Likewise here.
1143 (sem_item_optimizer::build_graph): Pass m_references
1144 to ::add_reference.
1145 (sem_item_optimizer::verify_classes): Remove usage of dead
1146 vectors.
1147 (sem_item_optimizer::traverse_congruence_split): Return true
1148 when a class is split.
1149 (sem_item_optimizer::do_congruence_step_for_index): Use
1150 hash_map for look up of (sem_item *, index). That brings
1151 significant speed up.
1152 (sem_item_optimizer::do_congruence_step): Return true
1153 when a split is done.
1154 (congruence_class::is_class_used): Use referenced_by_count.
1155
1156 2019-06-04 Alan Modra <amodra@gmail.com>
1157
1158 PR target/90689
1159 * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge
1160 error.
1161
1162 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
1163
1164 * config/rs6000/rs6000.h (MASK_MFPGPR): Delete.
1165 * config/rs6000/rs6000.c (direct_move_p): Adjust.
1166 (rs6000_secondary_reload_simple_move): Adjust.
1167 (rs6000_opt_masks): Neuter the "mfpgpr" option.
1168 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
1169 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust
1170 comment.
1171 (power6x): Adjust.
1172 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust.
1173 (floatunssi<mode>2_lfiwzx): Adjust.
1174 (fix_trunc<mode>si2_stfiwx): Adjust.
1175 (fixuns_trunc<mode>si2_stfiwx): Adjust.
1176 * config/rs6000/rs6000.opt (mno-mfpgpr): New.
1177 (mfpgpr): Mark as deprecated.
1178 * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr.
1179 (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust.
1180 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr.
1181
1182 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
1183
1184 * config/rs6000/constraints.md (define_register_constraint "wg"):
1185 Delete.
1186 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1187 RS6000_CONSTRAINT_wg.
1188 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1189 (rs6000_init_hard_regno_mode_ok): Adjust.
1190 * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64):
1191 Delete "wg" alternatives.
1192 * doc/md.texi (Machine Constraints): Adjust.
1193
1194 2019-06-03 Alan Modra <amodra@gmail.com>
1195
1196 * bb-reorder.c (copy_bb_p): Don't overflow size calculation.
1197 (get_uncond_jump_length): Assert length less than INT_MAX and
1198 non-negative.
1199
1200 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
1201
1202 PR middle-end/64242
1203 * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule
1204 block.
1205 (expand_builtin_nonlocal_goto): Likewise.
1206
1207 2019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
1208
1209 * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
1210 (aarch64_asm_output_external): Declare.
1211 * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
1212 (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
1213 (aarch64_asm_output_alias): New.
1214 (aarch64_asm_output_external): New.
1215 * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1216 (ASM_OUTPUT_EXTERNAL): Define.
1217
1218 2019-06-03 Aldy Hernandez <aldyh@redhat.com>
1219 * tree-vrp.h (value_range_base::nonzero_p): New.
1220 (value_range_base::set_nonnull): Rename to...
1221 (value_range_base::set_nonzero): ...this.
1222 (value_range_base::set_null): Rename to...
1223 (value_range_base::set_zero): ...this.
1224 (value_range::set_nonnull): Remove.
1225 (value_range::set_null): Remove.
1226 * tree-vrp.c (range_is_null): Remove.
1227 (range_is_nonnull): Remove.
1228 (extract_range_from_binary_expr): Use value_range_base::*zero_p
1229 instead of range_is_*null.
1230 (extract_range_from_unary_expr): Same.
1231 (value_range_base::set_nonnull): Rename to...
1232 (value_range_base::set_nonzero): ...this.
1233 (value_range::set_nonnull): Remove.
1234 (value_range_base::set_null): Rename to...
1235 (value_range_base::set_zero): ...this.
1236 (value_range::set_null): Remove.
1237 (extract_range_from_binary_expr): Rename set_*null uses to
1238 set_*zero.
1239 (extract_range_from_unary_expr): Same.
1240 (union_helper): Same.
1241 * vr-values.c (get_value_range): Use set_*zero instead of
1242 set_*null.
1243 (vr_values::extract_range_from_binary_expr): Same.
1244 (vr_values::extract_range_basic): Same.
1245
1246 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
1247
1248 PR driver/90684
1249 * opts.c (parse_and_check_align_values): Allow 4 alignment values.
1250
1251 2019-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1252
1253 * config/aarch64/iterators.md (MAX_OPP): New code attr.
1254 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Rename to...
1255 (aarch64_<su>abd<mode>_3): ... This.
1256 (<sur>sadv16qi): Add TARGET_DOTPROD expansion.
1257
1258 2019-06-03 Richard Biener <rguenther@suse.de>
1259
1260 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
1261 full reference tree and record in ref->ref.
1262 (vn_reference_lookup_3): Pass in original ref to
1263 ao_ref_init_from_vn_reference.
1264 (vn_reference_lookup): Likewise.
1265 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
1266 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
1267 Handle non-decl bases in the original reference.
1268
1269 2019-06-03 Martin Liska <mliska@suse.cz>
1270
1271 * doc/generic.texi: Remove Java Trees.
1272
1273 2019-06-03 Martin Liska <mliska@suse.cz>
1274
1275 * fold-const.c (operand_equal_p): Fix typo as compare_tree_int
1276 returns 0 when operands are equal.
1277
1278 2019-06-03 Richard Biener <rguenther@suse.de>
1279
1280 PR tree-optimization/90716
1281 * tree-loop-distribution.c (destroy_loop): Process blocks in
1282 correct order.
1283
1284 2019-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1285
1286 PR target/88837
1287 * vector-builder.h (vector_builder::count_dups): New method.
1288 * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
1289 Declare prototype.
1290 * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @.
1291 (vec_init<mode><Vel>): New pattern.
1292 * config/aarch64/aarch64.c (emit_insr): New function.
1293 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
1294 (aarch64_sve_expand_vector_init_insert_elems): Likewise.
1295 (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise.
1296 (aarch64_sve_expand_vector_init): Define two overloaded functions.
1297
1298 2019-06-03 Alejandro Martinez <alejandro.martinezvicente@arm.com>
1299
1300 PR tree-optimization/90681
1301 * internal-fn.c (mask_load_direct): Mark as non-vectorizable again.
1302 * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a
1303 special case for SLP, but fail on non-groupped loads.
1304
1305 2019-06-03 Martin Liska <mliska@suse.cz>
1306
1307 * cfg.c (debug): Use TDF_DETAILS for debug and
1308 print edge info only once.
1309
1310 2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org>
1311
1312 PR fortran/90539
1313 * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
1314
1315 2019-06-01 Martin Sebor <msebor@redhat.com>
1316
1317 PR middle-end/90694
1318 * tree-pretty-print.c (dump_generic_node): Add parentheses.
1319
1320 2019-05-31 Jan Hubicka <jh@suse.cz>
1321
1322 * alias.c: Include ipa-utils.h.
1323 (get_alias_set): Try to complete ODR type via ODR type hash lookup.
1324 * ipa-devirt.c (prevailing_odr_type): New.
1325 * ipa-utils.h (previaling_odr_type): Declare.
1326
1327 2019-05-31 H.J. Lu <hongjiu.lu@intel.com>
1328 Hongtao Liu <hongtao.liu@intel.com>
1329
1330 PR target/89355
1331 * config/i386/i386-features.c (rest_of_insert_endbranch): Remove
1332 NOTE_INSN_DELETED_LABEL check.
1333
1334 2019-05-31 Prachi Godbole <prachi.godbole@imgtec.com>
1335 Robert Suchanek <robert.suchanek@mips.com>
1336
1337 * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
1338 and 3rd operands of the fmadd/fmsub/maddv builtin.
1339
1340 2019-05-31 Jakub Jelinek <jakub@redhat.com>
1341
1342 * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define.
1343 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
1344 on OMP_SIMD if not nested inside of worksharing loop that also has
1345 lastprivate conditional clause for the same decl.
1346 (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed.
1347 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also
1348 on simd.
1349 (lower_rec_input_clauses): Likewise. Handle lastprivate conditional
1350 on simd construct.
1351 (lower_lastprivate_conditional_clauses): Handle lastprivate conditional
1352 on simd construct.
1353 (lower_lastprivate_clauses): Likewise.
1354 (lower_omp_sections): Call lower_lastprivate_conditional_clauses before
1355 calling lower_rec_input_clauses.
1356 (lower_omp_for): Likewise.
1357 (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_
1358 clause on simd construct.
1359 * omp-expand.c (expand_omp_simd): Initialize cond_var if
1360 OMP_CLAUSE__CONDTEMP_ clause is present.
1361
1362 * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
1363 ivar and lvar.
1364
1365 2019-05-31 Xiong Hu Luo <luoxhu@linux.ibm.com>
1366
1367 PR c/43673
1368 * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
1369 TEX_D32, TEX_D64 or TEX_D128.
1370
1371 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
1372
1373 * match.pd (~(vec?cst1:cst2)): New transformation.
1374
1375 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
1376
1377 * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
1378 ((size_t)(A /[ex] B) CMP C): New transformation.
1379
1380 2019-05-31 Richard Sandiford <richard.sandiford@arm.com>
1381
1382 * doc/md.texi: Document define_insn_and_rewrite.
1383 * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code.
1384 * gensupport.c (queue_elem): Update comment.
1385 (replace_operands_with_dups): New function.
1386 (gen_rewrite_sequence): Likewise.
1387 (process_rtx): Handle DEFINE_INSN_AND_REWRITE.
1388 * read-rtl.c (apply_subst_iterator): Likewise.
1389 (add_condition_to_rtx, named_rtx_p): Likewise.
1390 (rtx_reader::read_rtx_operand): Likewise.
1391 * config/aarch64/aarch64-sve.md
1392 (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to...
1393 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use
1394 define_insn_and_rewrite.
1395 (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites.
1396 Remove separate define_split.
1397
1398 2019-05-31 Jan Hubicka <jh@suse.cz>
1399
1400 * tree-ssa-alias.c (type_has_components_p): New function.
1401 (aliasing_component_refs_p): Use it.
1402
1403 2019-05-31 Martin Liska <mliska@suse.cz>
1404
1405 * gdbhooks.py: Add const_tree to TreePrinter.
1406
1407 2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
1408
1409 PR debug/86964
1410 * common.opt (feliminate-unused-debug-symbols): Enable by default.
1411 * doc/invoke.texi (Debugging Options): Document new default of
1412 -feliminate-unused-debug-symbols and remove restriction to 'stabs'.
1413
1414 2019-05-31 Jakub Jelinek <jakub@redhat.com>
1415
1416 PR tree-optimization/90671
1417 * tree-ssa-threadupdate.c (ssa_create_duplicates): If
1418 template_block used to be empty on the first call, don't use
1419 gsi_split_seq_after and gsi_insert_seq_after, but remember whole
1420 seq with bb_seq and set it with set_bb_seq.
1421
1422 2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
1423
1424 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
1425
1426 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
1427 Michael Meissner <meissner@linux.ibm.com>
1428
1429 * config/rs6000/predicates.md (pcrel_address): New define_predicate.
1430 (prefixed_mem_operand): Likewise.
1431 (non_prefixed_mem_operand): Likewise.
1432 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
1433 prototype.
1434 * config/rs6000/rs6000.c (print_operand_address): Handle
1435 PC-relative addresses.
1436 (mode_supports_prefixed_address_p): New function.
1437 (rs6000_prefixed_address): New function.
1438 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
1439 (SYMBOL_REF_PCREL_P): Likewise.
1440
1441 2019-05-30 Jakub Jelinek <jakub@redhat.com>
1442
1443 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
1444 (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
1445 (gimplify_omp_for): If worksharing loop with lastprivate conditional
1446 is nested inside of parallel region, add _condtemp_ clause to both.
1447 * tree-nested.c (convert_nonlocal_omp_clauses,
1448 convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
1449 assertion failure.
1450 * omp-general.h (struct omp_for_data): Add have_pointer_condtemp
1451 member.
1452 * omp-general.c (omp_extract_for_data): Compute it.
1453 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
1454 (lower_rec_input_clauses): Likewise.
1455 (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
1456 clause is already present, just add one further one after it.
1457 (lower_lastprivate_clauses): Handle cond_ptr with array type.
1458 (lower_send_shared_vars): Clear _condtemp_ vars.
1459 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
1460 or section or taskgroup.
1461 * omp-expand.c (determine_parallel_type): Disallow combining only if
1462 first OMP_CLAUSE__CONDTEMP_ has pointer type. Disallow combining
1463 of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
1464 (expand_omp_for_generic, expand_omp_for_static_nochunk,
1465 expand_omp_for_static_chunk, expand_omp_for): Use
1466 fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
1467 determine if a special set of API routines are needed and if condtemp
1468 needs to be initialized, while always initialize cond_var if
1469 fd->lastprivate_conditional is non-zero.
1470
1471 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
1472 Michael Meissner <meissner@linux.ibm.com>
1473
1474 * config/rs6000/constraints.md (eI): New constraint.
1475 * config/rs6000/predicates.md (cint34_operand): New predicate.
1476 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
1477 (SIGNED_34BIT_OFFSET_P): Likewise.
1478 * doc/md.texi (eI): Document constraint.
1479
1480 2019-05-30 Sylvia Taylor <sylvia.taylor@arm.com>
1481
1482 * config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
1483
1484 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
1485 Michael Meissner <meissner@linux.ibm.com>
1486
1487 * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
1488 (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
1489 (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
1490 (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
1491 (OTHER_FUTURE_MASKS): Likewise.
1492 (POWERPC_MASKS): Likewise.
1493 * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
1494 specified without -mprefixed-addr or -mcpu=future. Error if
1495 -mprefixed-addr is specified without -mcpu=future.
1496 (rs6000_opt_masks): Add entry for prefixed-addr.
1497 * rs6000.opt (mprefixed-addr): New option.
1498
1499 2019-05-30 Sam Tebbs <sam.tebbs@arm.com>
1500
1501 * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
1502 cfun->is_thunk check.
1503
1504 2019-05-30 Jakub Jelinek <jakub@redhat.com>
1505
1506 * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
1507 to length.
1508
1509 2019-05-30 Martin Liska <mliska@suse.cz>
1510
1511 * gdbinit.in: Fix 'ptc' command. Add trt
1512 that prints TREE_TYPE($).
1513
1514 2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com>
1515 Alan Modra <amodra@gmail.com>
1516
1517 * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
1518 calls here...
1519 (rs6000_indirect_call_template_1): ...and here.
1520 (rs6000_pltseq_template): Handle plt_pcrel34. Rework tocsave,
1521 plt16_ha, plt16_lo, mtctr indirect calls. Use
1522 rs6000_pltseq_enum.
1523 (rs6000_decl_ok_for_sibcall): New function.
1524 (rs6000_function_ok_for_sibcall): Refactor.
1525 (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
1526 (rs6000_call_aix): Don't emit toc restore rtl for indirect calls
1527 when pcrel. Reorganize.
1528 (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
1529 * rs6000.h (rs6000_pltseq_enum): New enum.
1530 * rs6000.md (UNSPEC_PLT_PCREL): New unspec.
1531 (*pltseq_tocsave): Use rs6000_pltseq_enum.
1532 (*pltseq_plt16_ha): Likewise.
1533 (*pltseq_plt16_lo): Likewise.
1534 (*pltseq_mtctr): Likewise.
1535 (*pltseq_plt_pcrel): New insn.
1536 (*call_local_aix): Handle @notoc calls.
1537 (*call_value_local_aix): Likewise.
1538 (*call_nonlocal_aix): Adjust lengths for pcrel calls.
1539 (*call_value_nonlocal_aix): Likewise.
1540 (*call_indirect_pcrel): New insn.
1541 (*call_value_indirect_pcrel): Likewise.
1542
1543
1544 2019-05-29 Uroš Bizjak <ubizjak@gmail.com>
1545
1546 * config/i386/sse.md (*save_multiple<mode>): Rename from
1547 save_multiple<mode>.
1548 (*restore_multiple<mode>): Rename from restore_multiple<mode>.
1549 (*restore_multiple_and_return<mode>): Rename from
1550 restore_multiple_and_return<mode>.
1551 (*restore_multiple_leave_return<mode>): Rename from
1552 restore_multiple_leave_return<mode>.
1553
1554 2019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp>
1555
1556 * config.gcc (rx-*-linux*): New target.
1557 * config/rx/elf.opt: New file.
1558 * config/rx/linux.h: Likewise.
1559 * config/rx/t-linux: Likewise.
1560 * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
1561 make it zero.
1562 * config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
1563 (ASM_APP_OFF): Likewise.
1564 * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
1565 moved elsewhere.
1566
1567 2019-05-29 Jan Hubicka <jh@suse.cz>
1568
1569 * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
1570 variants are pointer equivalent.
1571
1572 2019-05-29 Alejandro Martinez <alejandro.martinezvicente@arm.com>
1573
1574 * config/aarch64/aarch64-c.c: Added TARGET_SVE2.
1575 * config/aarch64/aarch64-sve2.md: New file.
1576 (<u>avg<mode>3_floor): New pattern.
1577 (<u>avg<mode>3_ceil): Likewise.
1578 (*<sur>h<addsub><mode>): Likewise.
1579 * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2.
1580 * config/aarch64/aarch64.md: Include aarch64-sve2.md.
1581
1582 2019-05-29 Jakub Jelinek <jakub@redhat.com>
1583
1584 PR bootstrap/90543
1585 * optc-save-gen.awk: In cl_optimization_print, use correct condition
1586 for var_opt_string printing. In cl_optimization_print_diff, print
1587 (null) instead of invoking undefined behavior if one of the
1588 var_opt_string pointers is NULL and use && instead of first || in the
1589 guarding condition. For var_target_other options, handle const char *
1590 target variables similarly to const char * optimize node variables.
1591
1592 2019-05-29 Sam Tebbs <sam.tebbs@arm.com>
1593
1594 * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
1595 AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
1596 * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
1597 Add autib1716 and pacib1716 initialisation.
1598 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
1599 for autib1716 and pacib1716.
1600 * config/aarch64/aarch64-protos.h (aarch64_key_type,
1601 aarch64_post_cfi_startproc): Define.
1602 * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
1603 * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
1604 aarch64_handle_pac_ret_protection): Set default sign key to A.
1605 * config/aarch64/aarch64.c (aarch64_expand_epilogue,
1606 aarch64_expand_prologue): Add check for b-key.
1607 * config/aarch64/aarch64.c (aarch64_ra_sign_key,
1608 aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
1609 * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
1610 * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
1611 * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
1612 UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
1613 UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
1614 * config/aarch64/aarch64.md (do_return): Add check for b-key.
1615 * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
1616 pauth_hint_num_a with pauth_hint_num.
1617 * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
1618 pauth_hint_num_a with pauth_hint_num.
1619 * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
1620 * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
1621 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
1622 * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
1623 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
1624 * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
1625 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
1626 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
1627 * config/aarch64/iterators.md (pauth_hint_num_a): Replace
1628 UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
1629 UNSPEC_AUTIA1716 respectively.
1630 * config/aarch64/iterators.md (pauth_hint_num_a): Rename to pauth_hint_num
1631 and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP, UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
1632 * doc/invoke.texi (-mbranch-protection): Add b-key type.
1633 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
1634 UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
1635
1636 2019-05-29 Jakub Jelinek <jakub@redhat.com>
1637
1638 * gimplify.c (struct gimplify_omp_ctx): Add clauses member.
1639 (gimplify_scan_omp_clauses): Initialize ctx->clauses.
1640 (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
1641 explicit clause on combined parallel into implicit shared clause.
1642 (gimplify_adjust_omp_clauses): Move lastprivate conditional clause
1643 and firstprivate if the decl has one too from combined parallel to
1644 the worksharing construct.
1645
1646 2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com>
1647 Michael Meissner <meissner@linux.ibm.com>
1648
1649 * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
1650
1651 2019-05-28 Michael Meissner <meissner@linux.ibm.com>
1652
1653 * rtl.h (LABEL_REF_P): New #define.
1654
1655 2019-05-28 John David Anglin <danglin@gcc.gnu.org>
1656
1657 * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
1658
1659 2019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com>
1660
1661 * internal-fn.c: Marked mask_load_direct as vectorizable.
1662 * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo.
1663 * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be
1664 combined even if masks different with allow_slp_p param.
1665 (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups.
1666 * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to
1667 dissolve SLP-only vectorizable groups when SLP has been discarded.
1668 (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed.
1669 * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads
1670 masks.
1671 (vect_build_slp_tree_1): Fixed comment typo.
1672 (vect_build_slp_tree_2): Include masks from masked loads in SLP tree.
1673 * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked
1674 loads for SLP only.
1675 * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only
1676 vectorizable.
1677 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise.
1678
1679 2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1680
1681 * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
1682 Remove obsolete use_thunk reference.
1683 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
1684 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
1685 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
1686 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
1687 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
1688 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1689 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1690 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
1691 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
1692
1693 2019-05-28 Nathan Sidwell <nathan@acm.org>
1694
1695 * tree.h (IDENTIFIER_ANON_P): New.
1696 (anon_aggrname_format, anon_aggname_p): Don't declare.
1697 (make_anon_name): Declare.
1698 * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
1699 (hash_tree): Likewise.
1700 * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
1701 * tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
1702 (anon_cnt, make_anon_name): New.
1703
1704 2019-05-28 Martin Liska <mliska@suse.cz>
1705
1706 PR other/90315
1707 * opts-global.c (decode_options): Print help for all
1708 help_option_arguments.
1709 * opts.c (print_help): Add new argument.
1710 (common_handle_option): Remember all values into
1711 help_option_arguments.
1712 * opts.h (print_help): Add new argument.
1713
1714 2019-05-28 Martin Liska <mliska@suse.cz>
1715
1716 PR ipa/90555
1717 * ipa-icf-gimple.c (func_checker::compare_loops): New function.
1718 * ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
1719 (func_checker::compare_bb): Call compare_loops.
1720
1721 2019-05-27 Jakub Jelinek <jakub@redhat.com>
1722
1723 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
1724 on sections construct.
1725 * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
1726 construct.
1727 (lower_omp_sections): Handle lastprivate conditional.
1728 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
1729 lastprivate_conditional_map.
1730 * omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
1731
1732 * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
1733 critical, taskgroup and section regions when looking for a region
1734 with non-NULL lastprivate_conditional_map.
1735
1736 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
1737
1738 * config/i386/i386.c (ix86_gen_add3): Remove indirect function.
1739 (*ix86_gen_sub3): Ditto.
1740 (*ix86_gen_sub3_carry): Ditto.
1741 (*ix86_gen_one_cmpl2): Ditto.
1742 (*ix86_gen_andsp): Ditto.
1743 (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
1744 (gen_and2_insn): New static function.
1745 (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
1746 Use gen_add3_insn instead of ix86_gen_add3.
1747 (ix86_expand_split_stack_prologue): Use gen_add2_insn
1748 instead of ix86_gen_add3.
1749 (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
1750 Use gen_sub3_insn instead of ix86_gen_sub3.
1751 * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
1752 instead of ix86_gen_add3.
1753 (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
1754 ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3.
1755 (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
1756 * config/i386/i386-options.c (ix86_option_override_internal):
1757 Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
1758 ix86_gen_one_cmpl2 and ix86_gen_andsp.
1759
1760 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1761
1762 * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
1763 and DW_OP_GNU_const_index opcodes.
1764
1765 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
1766
1767 * config/i386/i386.h (STACK_SIZE_MODE): Define.
1768
1769 2019-05-27 Richard Biener <rguenther@suse.de>
1770
1771 PR tree-optimization/90637
1772 * tree-ssa-sink.c (statement_sink_location): Honor the
1773 computed sink location for single-uses.
1774
1775 2019-05-27 Richard Biener <rguenther@suse.de>
1776
1777 PR middle-end/90610
1778 * match.pd (vec_perm): Avoid clobbering op0 when not generating
1779 a bit-insert.
1780
1781 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
1782
1783 * config/i386/i386.md (@sub<mode>3_carry): Rename
1784 from sub<mode>3_carry.
1785 (@leave_<mode>): New expander.
1786 (*leave): Rename from leave.
1787 (*leave_rex64): Rename from leave_rex64.
1788 (@monitorx_<mode>): Rename from monitorx_<mode>.
1789 (@clzero_<mode>): Rename from clzero_<mode>.
1790 * config/i386/sse.md (@sse3_monitor_<mode>): Rename
1791 from sse3_monitor_<mode>.
1792 * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function.
1793 (*ix86_gen_leave): Ditto.
1794 (*ix86_gen_monitor): Ditto.
1795 (*ix86_gen_monitorx): Ditto.
1796 (*ix86_gen_clzero): Ditto.
1797 (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
1798 * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1):
1799 Use gen_sub3_carry instead of ix86_gen_sub3_carry.
1800 (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>:
1801 Use gen_sse3_monitor instead of ix86_gen_monitor.
1802 <case IX86_BUILTIN_MONITORX>: Use gen_monitorx
1803 instead of ix86_gen_monitorx.
1804 <case IX86_BUILTIN_CLZERO>: Use gen_clzero
1805 instead of ix86_gen_clzero.
1806 * config/i386/i386-options.c (ix86_option_override_internal):
1807 Do not initialize ix86_gen_leave, ix86_gen_sub3_carry,
1808 ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero.
1809
1810 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
1811
1812 * config/i386/i386.md (@tls_global_dynamic_64_<mode>):
1813 Rename from tls_global_dynamic_64_<mode>.
1814 (@tls_local_dynamic_base_64_<mode>): Rename from
1815 tls_local_dynamic_base_64_<mode>.
1816 * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
1817 Remove indirect function.
1818 (*ix86_gen_tls_local_dynamic_base_64): Ditto.
1819 (legitimize_tls_address): Use gen_tls_global_dynamic_64 function
1820 instead of ix86_gen_tls_global_dynamic_64.
1821 Use gen_tls_local_dynamic_base_64 instead of
1822 ix86_gen_tls_local_dynamic_base_64.
1823 * config/i386/i386-options.c (ix86_option_override_internal):
1824 Do not initialize ix86_gen_tls_global_dynamic_64 and
1825 ix86_gen_tls_local_dynamic_base_64.
1826
1827 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
1828
1829 * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
1830 Rename from pro_epilogue_adjust_stack_<mode>_add.
1831 (@pro_epilogue_adjust_stack_sub_<mode>)
1832 Rename from pro_epilogue_adjust_stack_<mode>_sub.
1833 (@allocate_stack_worker_probe_<mode>):
1834 Rename from allocate_stack_worker_probe_<mode>.
1835 (allocate_stack): Use gen_allocate_stack_worker_probe.
1836 (probe_stack): Use gen_probe_stack_1.
1837 (@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
1838 (@adjust_stack_and_probe_<mode>): Rename from
1839 adjust_stack_and_probe<mode>.
1840 (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
1841 (stack_protect_set): Use gen_stack_protect_set_1.
1842 (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
1843 (stack_protect_test): Use gen_stack_protect_test_1.
1844 (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
1845 * config/i386/i386.c (*ix86_gen_allocate_stack_worker):
1846 Remove indirect function.
1847 (*ix86_gen_adjust_stack_and_probe): Ditto.
1848 (*ix86_gen_probe_stack_range): Ditto.
1849 (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
1850 instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
1851 (ix86_adjust_stack_and_probe_stack_clash): Use
1852 gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
1853 (ix86_adjust_stack_and_probe): Ditto.
1854 (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
1855 of ix86_gen_probe_stack_range.
1856 (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub
1857 instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
1858 * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
1859 Include insn-opinit.h. Use code_for_stack_protect_test_1 instead of
1860 CODE_FOR_stack_protect_test_{si,di}.
1861 * config/i386/i386-options.c (ix86_option_override_internal):
1862 Do not initialize ix86_gen_allocate_stack_worker,
1863 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
1864
1865 2019-05-26 Gerald Pfeifer <gerald@pfeifer.com>
1866
1867 * doc/invoke.texi (Link Options): Many editorial changes around
1868 -flinker-output.
1869
1870 2019-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1871
1872 * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
1873 pre-Solaris 11 referene and most Studio compiler details.
1874
1875 2019-05-24 John David Anglin <danglin@gcc.gnu.org>
1876
1877 PR target/90530
1878 * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
1879 DImode to SImode in floating-point registers on 64-bit target.
1880 * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
1881 register_operand in xmpyu patterns.
1882
1883 2019-05-24 Jakub Jelinek <jakub@redhat.com>
1884
1885 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
1886 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
1887 OMP_CLAUSE__REDUCTEMP_.
1888 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
1889 OMP_CLAUSE__CONDTEMP_.
1890 (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
1891 * tree-pretty-print.c (dump_omp_clause): Likewise.
1892 * tree-nested.c (convert_nonlocal_omp_clauses,
1893 convert_local_omp_clauses): Likewise.
1894 * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
1895 instead of decimal. Add GOVD_LASTPRIVATE_CONDITIONAL.
1896 (gimplify_scan_omp_clauses): Don't reject lastprivate conditional
1897 on OMP_FOR.
1898 (gimplify_omp_for): Warn and disable conditional modifier from
1899 lastprivate on loop iterators.
1900 * omp-general.h (struct omp_for_data): Add lastprivate_conditional
1901 member.
1902 * omp-general.c (omp_extract_for_data): Initialize it.
1903 * omp-low.c (struct omp_context): Add lastprivate_conditional_map
1904 member.
1905 (delete_omp_context): Delete it.
1906 (lower_lastprivate_conditional_clauses): New function.
1907 (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
1908 handle lastprivate conditional clauses.
1909 (lower_reduction_clauses): Add CLIST argument, emit it into
1910 the critical section if any.
1911 (lower_omp_sections): Adjust lower_lastprivate_clauses and
1912 lower_reduction_clauses callers.
1913 (lower_omp_for_lastprivate): Add CLIST argument, pass it through
1914 to lower_lastprivate_clauses.
1915 (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
1916 lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
1917 clist into a critical section if not emitted there already by
1918 lower_reduction_clauses.
1919 (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
1920 callers.
1921 (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
1922 conditional variables.
1923 * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
1924 clause is present.
1925 (expand_omp_for_generic, expand_omp_for_static_nochunk,
1926 expand_omp_for_static_chunk): Handle lastprivate conditional.
1927 (expand_omp_for): Handle fd.lastprivate_conditional like
1928 fd.have_reductemp.
1929
1930 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
1931
1932 * config/gcn/gcn-run.c (main): Set a non-zero return value if the
1933 kernel does not exit cleanly.
1934 * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.
1935
1936 2019-05-24 Jason Merrill <jason@redhat.com>
1937
1938 Revert:
1939 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
1940
1941 2019-05-24 Richard Biener <rguenther@suse.de>
1942
1943 PR testsuite/90607
1944 * tree-loop-distribution.c (struct partition): Add location
1945 member.
1946 (partition_alloc): Initialize all fields.
1947 (generate_memset_builtin): Use the location recorded in the
1948 partition for the generated call.
1949 (generate_memcpy_builtin): Likewise.
1950 (classify_partition): Record the location of a single store
1951 as location for the partition.
1952
1953 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
1954
1955 * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
1956 for lo-part.
1957
1958 2019-05-24 Matthew Malcomson <matthew.malcomson@arm.com>
1959
1960 PR target/90588
1961 * common/config/aarch64/aarch64-common.c
1962 (aarch64_rewrite_selected_cpu): Change local temporary variable
1963 type from unsigned long to uint64_t.
1964 * config/aarch64/aarch64-protos.h (aarch64_parse_extension,
1965 aarch64_get_extension_string_for_isa_flags): Change declaration to
1966 match new definition by replacing unsigned long with uint64_t.
1967
1968 2019-05-24 Jakub Jelinek <jakub@redhat.com>
1969
1970 PR target/90568
1971 * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
1972 gen_attr_type just once instead of 4-7 times. Formatting fixes.
1973 Handle stack_protect_test_<mode> codegen similarly to corresponding
1974 sub instruction.
1975
1976 2019-05-23 Iain Sandoe <iain@sandoe.co.uk>
1977
1978 * config/i386/darwin.h: Reject -mfentry*.
1979 * doc/sourcebuild.texi: Document mfentry target support.
1980
1981 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
1982
1983 * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
1984 Rename to rs6000_global_entry_point_prologue_needed_p. Return
1985 false for PC-relative functions.
1986 (rs6000_output_function_prologue): Change called function name to
1987 rs6000_global_entry_point_prologue_needed_p. Emit ".localentry
1988 name,1" for PC-relative functions.
1989 (rs6000_elf_declare_function_name): Change called function name to
1990 rs6000_global_entry_point_prologue_needed_p.
1991
1992 2019-05-23 Uroš Bizjak <ubizjak@gmail.com>
1993
1994 PR target/90552
1995 * config/i386/i386.c (gen_rtx_cost):
1996 Use ix86_tune_cost instead of ix86_cost.
1997
1998 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
1999 Michael Meissner <meissner@linux.ibm.com>
2000 Segher Boessenkool <segher@kernel.crashing.org>
2001
2002 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
2003 OPTION_MASK_PCREL.
2004 (POWERPC_MASKS): Add OPTION_MASK_PCREL.
2005 * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
2006 (rs6000_fndecl_pcrel_p): Likewise.
2007 * config/rs6000/rs6000.c (rs6000_option_override_internal): Report
2008 error if -mpcrel is requested without -mcpu=future.
2009 (rs6000_opt_masks): Add entry for pcrel.
2010 (rs6000_fndecl_pcrel_p): New function.
2011 (rs6000_pcrel_p): Likewise.
2012 * config/rs6000/rs6000.opt (mpcrel): New option.
2013 * doc/invoke.texi: Document -mpcrel and -mno-pcrel.
2014
2015 2019-05-23 Jan Hubicka <jh@suse.cz>
2016 Martin Liska <mliska@suse.cz>
2017
2018 PR tree-optimization/90576
2019 * tree-ssa-alias.c (compare_sizes): Remove dead calls to
2020 poly_int_tree_p.
2021 (aliasing_component_refs_p): Fix three way size compare conditional;
2022 give up earlier in case we can not decide on equivalence.
2023
2024 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
2025 Michael Meissner <meissner@linux.ibm.com>
2026 Segher Boessenkool <segher@kernel.crashing.org>
2027
2028 * config.gcc: Add future cpu.
2029 * config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
2030 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
2031 #define.
2032 (POWERPC_MASKS): Add OPTION_MASK_FUTURE.
2033 (RS6000_CPU): New instantiation for future cpu.
2034 * config/rs6000/rs6000-opts.h (enum processor_type): Add
2035 PROCESSOR_FUTURE.
2036 * config/rs6000/rs6000-string.c (expand_compare_loop): Treat
2037 PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
2038 * config/rs6000/rs6000-tables.opt: Regenerate.
2039 * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
2040 PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
2041 (rs6000_machine_from_flags): Handle future cpu.
2042 (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
2043 PROCESSOR_POWER9 for now.
2044 (rs6000_adjust_cost): Likewise.
2045 (rs6000_issue_rate): Likewise.
2046 (rs6000_register_move_cost): Likewise.
2047 (rs6000_opt_masks): Add entry for future.
2048 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
2049 (MASK_FUTURE): New #define.
2050 * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
2051 * config/rs6000/rs6000.opt (mfuture): New target option.
2052 * doc/invoke.texi (mcpu): Add future cpu.
2053
2054 2019-05-23 Martin Liska <mliska@suse.cz>
2055
2056 PR c++/90587
2057 * tree-ssa-uninit.c (value_sat_pred_p): The result of &
2058 operation points to a temporary (pointed via tree_to_wide_ref)
2059 that is out of scope after the &.
2060
2061 2019-05-23 Jonathan Wakely <jwakely@redhat.com>
2062
2063 PR c++/90592
2064 * doc/extend.texi (Function Names): Add missing word.
2065
2066 2019-05-23 Richard Biener <rguenther@suse.de>
2067
2068 PR tree-optimization/88440
2069 * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
2070 at -O[2s]+.
2071 * tree-loop-distribution.c (generate_memset_builtin): Fold the
2072 generated call.
2073 (generate_memcpy_builtin): Likewise.
2074 (distribute_loop): Pass in whether to only distribute patterns.
2075 (prepare_perfect_loop_nest): Also allow size optimization.
2076 (pass_loop_distribution::execute): When optimizing a loop
2077 nest for size allow pattern replacement.
2078
2079 2019-05-23 Jakub Jelinek <jakub@redhat.com>
2080
2081 PR target/90568
2082 * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
2083 of xor.
2084
2085 2019-05-23 Martin Liska <mliska@suse.cz>
2086
2087 PR sanitizer/90570
2088 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
2089 expression similarly to gimplify_decl_expr.
2090
2091 2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2092
2093 * cse.c (cse_dump_path): s/dump_file/f.
2094
2095 2019-05-22 David Malcolm <dmalcolm@redhat.com>
2096
2097 PR c++/90462
2098 * diagnostic-format-json.cc: Include "selftest.h".
2099 (json_from_expanded_location): Only add "file" key for non-NULL
2100 file strings.
2101 (json_from_location_range): Don't add "start" and "finish"
2102 children if they are UNKNOWN_LOCATION.
2103 (selftest::test_unknown_location): New selftest.
2104 (selftest::test_bad_endpoints): New selftest.
2105 (selftest::diagnostic_format_json_cc_tests): New function.
2106 * json.cc (json::object::get): New function.
2107 (selftest::test_object_get): New selftest.
2108 (selftest::json_cc_tests): Call it.
2109 * json.h (json::object::get): New decl.
2110 * selftest-run-tests.c (selftest::run_tests): Call
2111 selftest::diagnostic_format_json_cc_tests.
2112 * selftest.h (selftest::diagnostic_format_json_cc_tests): New
2113 decl.
2114
2115 2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com>
2116 Andrew Stubbs <amd@codesourcery.com>
2117
2118 * config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
2119 * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
2120 (kernel): Rename to...
2121 (main_kernel): ... this.
2122 (load_image): Load _init_array and _fini_array kernels.
2123 (run): Add argument for kernel to run.
2124 (main): Run init_array_kernel before main_kernel, and
2125 fini_array_kernel after.
2126 * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
2127 amdgpu_hsa_kernel attribute on functions.
2128 (gcn_disable_constructors): Delete.
2129 (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
2130 * config/gcn/crt0.c (size_t): Define.
2131 (_init_array, _fini_array): New.
2132 (__preinit_array_start, __preinit_array_end,
2133 __init_array_start, __init_array_end,
2134 __fini_array_start, __fini_array_end): Declare weak references.
2135
2136 2019-05-22 Andrew Stubbs <ams@codesourcery.com>
2137
2138 * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
2139
2140 2019-05-22 Jason Merrill <jason@redhat.com>
2141
2142 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
2143
2144 2019-05-22 H.J. Lu <hongjiu.lu@intel.com>
2145
2146 PR target/88483
2147 * config/i386/i386-options.c (ix86_init_machine_status): Set
2148 stack_frame_required to true.
2149 * config/i386/i386.c (ix86_get_frame_size): New function.
2150 (ix86_frame_pointer_required): Replace get_frame_size with
2151 ix86_get_frame_size.
2152 (ix86_compute_frame_layout): Likewise.
2153 (ix86_find_max_used_stack_alignment): Changed to void. Set
2154 stack_frame_required.
2155 (ix86_finalize_stack_frame_flags): Always call
2156 ix86_find_max_used_stack_alignment. Replace get_frame_size with
2157 ix86_get_frame_size.
2158 * config/i386/i386.h (machine_function): Add stack_frame_required.
2159
2160 2019-05-22 Uroš Bizjak <ubizjak@gmail.com>
2161
2162 * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
2163
2164 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com>
2165
2166 * common/config/aarch64/aarch64-common.c
2167 (struct aarch64_option_extension, struct processor_name_to_arch,
2168 struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
2169 aarch64_contains_opt,
2170 aarch64_get_extension_string_for_isa_flags): Change type of
2171 variables storing flags to uint64_t.
2172 * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
2173 sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
2174 * config/aarch64/aarch64.c (struct processor,
2175 aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
2176 aarch64_validate_march, aarch64_override_options,
2177 aarch64_option_print, aarch64_handle_attr_isa_flags,
2178 aarch64_declare_function_name, aarch64_start_file): Make flag
2179 variables uint64_t.
2180 * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
2181 AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
2182 AARCH64_FL_SVE2_BITPERM): New macro feature flags.
2183 * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
2184 * config/aarch64/driver-aarch64.c
2185 (struct aarch64_arch_extension, struct aarch64_core_data,
2186 struct aarch64_arch_driver_info, host_detect_local_cpu): Make
2187 flag variables uint64_t.
2188 * doc/invoke.texi: Add documentation for new arguments.
2189
2190 2019-05-22 Richard Biener <rguenther@suse.de>
2191
2192 * alias.c (ao_ref_from_mem): Move stack-slot sharing
2193 rewrite ...
2194 * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
2195
2196 2019-05-22 Martin Liska <mliska@suse.cz>
2197
2198 PR lto/90500
2199 * doc/extend.texi: Document the change.
2200
2201 2019-05-22 Richard Biener <rguenther@suse.de>
2202
2203 PR tree-optimization/90450
2204 * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
2205 (mem_ref_hasher::equal): Check it.
2206 (mem_ref_alloc): Initialize it.
2207 (gather_mem_refs_stmt): Set it.
2208
2209 2019-05-22 Richard Biener <rguenther@suse.de>
2210
2211 * gimple-fold.c (arith_code_with_undefined_signed_overflow):
2212 Add ABS_EXPR.
2213 (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
2214 as ABSU_EXPR.
2215
2216 2019-05-22 Alan Modra <amodra@gmail.com>
2217
2218 * config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
2219 (ASM_CPU_SPEC): Conditionally add -many.
2220 * config/rs6000/rs6000.c (rs6000_machine): New static var.
2221 (rs6000_machine_from_flags, emit_asm_machine): New functions..
2222 (rs6000_file_start): ..extracted from here, and modified to
2223 test all ISA bits.
2224 (rs6000_output_function_prologue): Emit .machine as necessary.
2225 * testsuite/gcc.target/powerpc/ppc32-abi-dfp-1.c: Don't use
2226 power mnemonics.
2227 * testsuite/gcc.dg/vect/O3-pr70130.c: Disable default options
2228 added by check_vect_support_and_set_flags.
2229 * testsuite/gcc.dg/vect/pr48765.c: Likewise.
2230 * testsuite/gfortran.dg/vect/pr45714-b.f: Likewise.
2231
2232 2019-05-22 Hans-Peter Nilsson <hp@axis.com>
2233
2234 PR middle-end/90553
2235 * ira-lives.c (process_bb_node_lives): Consider defs
2236 for a call insn to be die before the call, not after.
2237
2238 * function.c (assign_parm_setup_block): Raise alignment of
2239 stacked parameter only for STRICT_ALIGNMENT targets.
2240
2241 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2242
2243 * config/rs6000/constraints.md (define_register_constraint "wz"):
2244 Delete.
2245 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2246 RS6000_CONSTRAINT_wz.
2247 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2248 (rs6000_init_hard_regno_mode_ok): Adjust.
2249 * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
2250 * doc/md.texi (Machine Constraints): Adjust.
2251
2252 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2253
2254 * config/rs6000/constraints.md (define_register_constraint "wl"):
2255 Delete.
2256 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2257 RS6000_CONSTRAINT_wl.
2258 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2259 (rs6000_init_hard_regno_mode_ok): Adjust.
2260 * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
2261 * doc/md.texi (Machine Constraints): Adjust.
2262
2263 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2264
2265 * config/rs6000/constraints.md (define_register_constraint "wm"):
2266 Delete.
2267 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2268 RS6000_CONSTRAINT_wm.
2269 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2270 (rs6000_init_hard_regno_mode_ok): Adjust.
2271 * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
2272 * doc/md.texi (Machine Constraints): Adjust.
2273
2274 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2275
2276 * config/rs6000/constraints.md (define_register_constraint "wk"):
2277 Delete.
2278 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2279 RS6000_CONSTRAINT_wk.
2280 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2281 (rs6000_init_hard_regno_mode_ok): Adjust.
2282 * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
2283 * doc/md.texi (Machine Constraints): Adjust.
2284
2285 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2286
2287 * config/rs6000/constraints.md (define_register_constraint "wj"):
2288 Delete.
2289 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2290 RS6000_CONSTRAINT_wj.
2291 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2292 (rs6000_init_hard_regno_mode_ok): Adjust.
2293 * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
2294 (VS_64dm): Delete.
2295 * config/rs6000/vsx.md: Ditto.
2296 * doc/md.texi (Machine Constraints): Adjust.
2297
2298 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2299
2300 * config/rs6000/constraints.md (define_register_constraint "wh"):
2301 Delete.
2302 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2303 RS6000_CONSTRAINT_wh.
2304 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2305 (rs6000_init_hard_regno_mode_ok): Adjust.
2306 * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
2307 * doc/md.texi (Machine Constraints): Adjust.
2308
2309 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
2310
2311 PR target/90547
2312 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
2313 Avoid calling gen_lowpart with CONST operand.
2314
2315 2019-05-21 Alexandre Oliva <aoliva@redhat.com>
2316
2317 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
2318 field template_last_to_copy.
2319 (ssa_create_duplicates): Set it, and use it. Attempt to
2320 preserve more debug stmts.
2321
2322 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
2323
2324 * config/i386/sse.md (VF1_AVX2): New mode iterator.
2325 (signbit<mode>2): New expander
2326
2327 2019-05-21 James Clarke <jrtc27@jrtc27.com>
2328
2329 PR bootstrap/87338
2330 * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
2331 instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
2332
2333 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
2334
2335 * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
2336 %ebx and %ecx bafore calling cpuid with leaf 1 or
2337 non-constant leaf argument.
2338
2339 2019-05-21 Alan Modra <amodra@gmail.com>
2340
2341 PR target/90545
2342 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
2343 power9 direct move cost.
2344 * testsuite/gcc.target/powerpc/fold-vec-splats-floatdouble.c:
2345 Correct comments and rename functions to suit parameters.
2346
2347 2019-05-21 Richard Biener <rguenther@suse.de>
2348
2349 PR middle-end/90510
2350 * fold-const.c (fold_read_from_vector): New function.
2351 * fold-const.h (fold_read_from_vector): Declare.
2352 * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
2353 single-element insert permutations. Canonicalize selector
2354 further and fix issue with last commit.
2355
2356 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
2357
2358 * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
2359 parameter with default value false to declaration.
2360 (split_edges_for_insertion): New inline function. Wrapper for
2361 split_critical_edges with for_edge_insertion_p = true.
2362 * tree-cfg.c (split_critical_edges): Don't split non-critical
2363 edges if for_edge_insertion_p is false. Fix whitespace.
2364 * tree-ssa-pre.c (pass_pre::execute): Call
2365 split_edges_for_insertion instead of split_critical_edges.
2366 * gcc/tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
2367 * gcc/tree-ssa-sink.c (pass_sink_code::execute): Ditto.
2368 (pass_data_sink_code): Update function name in the comment.
2369
2370 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
2371
2372 * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
2373 around is_value_included_in that knows how to handle BIT_AND_EXPR.
2374 (is_pred_expr_subset_of): Use the new function. Handle more cases where
2375 code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
2376 positives.
2377
2378 2019-05-21 Martin Liska <mliska@suse.cz>
2379
2380 * config/rs6000/driver-rs6000.c (elf_platform): Do not use
2381 an extra newline.
2382 * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
2383 (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
2384 vec_lvsr.
2385 * config/rs6000/rs6000.c (rs6000_option_override_internal):
2386 Quote a C type.
2387 (rs6000_function_arg): Likewise.
2388 (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
2389 (rs6000_expand_ternop_builtin): Use interval syntax.
2390 (get_element_number): Likewise.
2391 (altivec_expand_builtin): Likewise.
2392 (rs6000_get_function_versions_dispatcher): Quote target_clones.
2393
2394 Fix test-suite.
2395
2396 2019-05-20 Jakub Jelinek <jakub@redhat.com>
2397
2398 PR c++/59813
2399 PR target/90418
2400 * function.h (struct function): Add calls_eh_return member.
2401 * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
2402 gimplifying __builtin_eh_return call.
2403 * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
2404 to cfun.
2405 (expand_call_inline): Or in src_cfun->calls_eh_return into
2406 dst_cfun->calls_eh_return.
2407 * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
2408 cfun->calls_eh_return.
2409 * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
2410 * lto-streamer-out.c (output_struct_function_base): Write
2411 calls_eh_return.
2412
2413 2019-05-20 Marc Glisse <marc.glisse@inria.fr>
2414
2415 PR rtl-optimization/43147
2416 * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
2417 IX86_BUILTIN_SHUFPD.
2418
2419 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
2420
2421 * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
2422 (refs_may_alias_p_1): ... here; update stats.
2423 (refs_may_alias_p): Do not update stats here.
2424
2425 2019-05-20 Richard Biener <rguenther@suse.de>
2426
2427 * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
2428 doesn't produce pointers.
2429 {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
2430 the first operand points to.
2431
2432 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
2433
2434 * tree-ssa-alias.c (compare_sizes): New function.
2435 (sompare_type_sizes): New function
2436 (aliasing_component_refs_p): Use it.
2437 (indirect_ref_may_alias_decl_p): Likewise.
2438
2439 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2440
2441 * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
2442
2443 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2444
2445 * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
2446 (LIBLSAN_EARLY_SPEC): Likewise.
2447 * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
2448
2449 2019-05-20 Martin Liska <mliska@suse.cz>
2450
2451 * config/i386/i386.c (ix86_libc_has_fast_function):
2452 Add ATTRIBUTE_UNUSED for the argument.
2453
2454 2019-05-20 Richard Biener <rguenther@suse.de>
2455
2456 * gimple-match-head.c: Include vec-perm-indices.h.
2457 * generic-match-head.c: Likewise.
2458 * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
2459 is included.
2460 * fold-const.c (fold_vec_perm): Export.
2461 (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
2462 (match.pd): ...here.
2463
2464 2019-05-20 Jakub Jelinek <jakub@redhat.com>
2465
2466 * cfgloop.h (struct loop): Add simdlen member.
2467 * cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
2468 * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
2469 * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
2470 as new argument to autovectorize_vector_sizes target hook. If
2471 loop->simdlen, pick up vector size where the vectorization factor
2472 is equal to loop->simd, and if there is none, fall back to the first
2473 successful one.
2474 (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
2475 caller.
2476 * omp-low.c (omp_clause_aligned_alignment): Likewise.
2477 * omp-general.c (omp_max_vf): Likewise.
2478 * optabs-query.c (can_vec_mask_load_store_p): Likewise.
2479 * tree-vect-slp.c (vect_slp_bb): Likewise.
2480 * target.def (autovectorize_vector_sizes): Add ALL argument and
2481 document it.
2482 * doc/tm.texi: Adjust documentation.
2483 * targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
2484 * targhooks.h (default_autovectorize_vector_sizes): Likewise.
2485 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
2486 bool argument.
2487 * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
2488 * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
2489 * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
2490 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If
2491 true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
2492 preferred vector size is not 512-bit or 256-bit, just put those
2493 unpreferred ones last.
2494
2495 2019-05-20 Martin Liska <mliska@suse.cz>
2496
2497 * targhooks.c (default_libc_has_fast_function): New function.
2498 * targhooks.h (default_libc_has_fast_function): Likewise.
2499
2500 2019-05-20 Martin Liska <mliska@suse.cz>
2501
2502 PR middle-end/90263
2503 * builtins.c (expand_builtin_memory_copy_args): When having a
2504 target with fast mempcpy implementation do now use memcpy.
2505 * config/i386/i386.c (ix86_libc_has_fast_function): New.
2506 (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
2507 * doc/tm.texi: Likewise.
2508 * doc/tm.texi.in: Likewise.
2509 * target.def:
2510 * expr.c (emit_block_move_hints): Add 2 new arguments.
2511 * expr.h (emit_block_move_hints): Bail out when libcall
2512 to memcpy would be used.
2513
2514 2019-05-20 Martin Liska <mliska@suse.cz>
2515
2516 * profile-count.c: Add vertical spacing in order
2517 to separate functions.
2518 * profile-count.h: Likewise.
2519
2520 2019-05-20 Martin Liska <mliska@suse.cz>
2521
2522 * profile-count.h: Do not use full qualified
2523 names if possible.
2524 * profile-count.c (profile_count::to_frequency): Likewise.
2525
2526 2019-05-20 Martin Liska <mliska@suse.cz>
2527
2528 * profile-count.h (enum profile_quality): Use capital letters
2529 for enum value names. Use the adjusted names.
2530 * profile-count.c: Use the adjusted names.
2531
2532 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
2533
2534 * config/rs6000/constraints.md (define_register_constraint "wH"):
2535 Delete.
2536 (define_register_constraint "wI"): Delete.
2537 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2538 RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
2539 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2540 (rs6000_init_hard_regno_mode_ok): Adjust.
2541 * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
2542 resp. "d", or with "wa" as appropriate, all with "p8v".
2543 * config/rs6000/vsx.md: Ditto.
2544 * doc/md.texi (Machine Constraints): Adjust.
2545
2546 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
2547
2548 * config/rs6000/constraints.md (define_register_constraint "wy"):
2549 Delete.
2550 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2551 RS6000_CONSTRAINT_wy.
2552 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2553 (rs6000_init_hard_regno_mode_ok): Adjust.
2554 * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
2555 Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
2556 (define_mode_attr Fisa): New.
2557 * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
2558 * doc/md.texi (Machine Constraints): Adjust.
2559
2560 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
2561
2562 * config/rs6000/constraints.md (define_register_constraint "wu"):
2563 Delete.
2564 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2565 RS6000_CONSTRAINT_wu.
2566 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2567 (rs6000_init_hard_regno_mode_ok): Adjust.
2568 * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
2569 both with "p8v".
2570 (define_mode_attr Fa): Delete.
2571 * config/rs6000/vsx.md: Ditto.
2572 * doc/md.texi (Machine Constraints): Adjust.
2573
2574 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
2575
2576 * config/rs6000/constraints.md (define_register_constraint "wJ"):
2577 Delete.
2578 (define_register_constraint "wK"): Delete.
2579 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2580 RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
2581 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2582 (rs6000_init_hard_regno_mode_ok): Adjust.
2583 * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
2584 Replace "wK" constraint by "wH" with "p9v".
2585 * config/rs6000/vsx.md: Ditto.
2586 * doc/md.texi (Machine Constraints): Adjust.
2587
2588 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
2589
2590 * config/rs6000/constraints.md (define_register_constraint "wb"):
2591 Delete.
2592 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2593 RS6000_CONSTRAINT_wb.
2594 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2595 (rs6000_init_hard_regno_mode_ok): Adjust.
2596 * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
2597 * config/rs6000/vsx.md: Ditto.
2598 * doc/md.texi (Machine Constraints): Adjust.
2599
2600 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
2601
2602 * config/rs6000/constraints.md (define_register_constraint "wo"):
2603 Delete.
2604 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2605 RS6000_CONSTRAINT_wo.
2606 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2607 (rs6000_init_hard_regno_mode_ok): Adjust.
2608 * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
2609 * config/rs6000/altivec.md: Ditto.
2610 * doc/md.texi (Machine Constraints): Adjust.
2611
2612 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
2613
2614 * config/darwin-c.c (darwin_register_objc_includes): Do not
2615 prepend the sysroot when building gnu-runtime header search
2616 paths.
2617
2618 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
2619
2620 * config/darwin.c (darwin_file_end): Use switch_to_section ()
2621 instead of direct output of the asm.
2622
2623 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
2624
2625 * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
2626 argument to be type bool (was int before).
2627 (rs6000_emit_epilogue): Simplify some code. Declare some variables
2628 at first use. Use type bool for some variables. Fix a theoretical
2629 eh_return bug for svr4.
2630
2631 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
2632
2633 * config/rs6000/rs6000.md (isa): New attribute.
2634 (enabled): New attribute.
2635
2636 2019-05-17 Max Filippov <jcmvbkbc@gmail.com>
2637
2638 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
2639 assemble_start_function and assemble_end_function.
2640
2641 2019-05-17 Thomas Schwinge <thomas@codesourcery.com>
2642
2643 PR middle-end/89433
2644 * omp-general.c (oacc_verify_routine_clauses): Change formal
2645 parameters. Add checking if already marked with an OpenACC
2646 'routine' directive. Adjust all users.
2647
2648 PR middle-end/89433
2649 * omp-general.c (oacc_build_routine_dims): Move some of its
2650 processing into...
2651 (oacc_verify_routine_clauses): ... this new function.
2652 * omp-general.h (oacc_verify_routine_clauses): New prototype.
2653
2654 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
2655
2656 * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
2657 formating of picbase labels to match other ports.
2658
2659 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
2660
2661 * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
2662 in the generated code.
2663
2664 2019-05-16 Martin Sebor <msebor@redhat.com>
2665
2666 * builtins.c (expand_builtin_atomic_always_lock_free): Quote
2667 identifiers, keywords, operators, and types in diagnostics. Correct
2668 quoting, spelling, and sentence capitalization issues.
2669 (expand_builtin_atomic_is_lock_free): Same.
2670 (fold_builtin_next_arg): Same.
2671 * cfgexpand.c (expand_one_var): Same.
2672 (tree_conflicts_with_clobbers_p): Same.
2673 (expand_asm_stmt): Same.
2674 (verify_loop_structure): Same.
2675 * cgraphunit.c (process_function_and_variable_attributes): Same.
2676 * collect-utils.c (collect_execute): Same.
2677 * collect2.c (maybe_run_lto_and_relink): Same.
2678 (is_lto_object_file): Same.
2679 (scan_prog_file): Same.
2680 * convert.c (convert_to_real_1): Same.
2681 * dwarf2out.c (dwarf2out_begin_prologue): Same.
2682 * except.c (verify_eh_tree): Same.
2683 * gcc.c (execute): Same.
2684 (eval_spec_function): Same.
2685 (run_attempt): Same.
2686 (driver::set_up_specs): Same.
2687 (compare_debug_auxbase_opt_spec_function): Same.
2688 * gcov-tool.c (unlink_gcda_file): Same.
2689 (do_merge): Same.
2690 (do_rewrite): Same.
2691 * gcse.c (gcse_or_cprop_is_too_expensive): Same.
2692 * gimplify.c (gimplify_asm_expr): Same.
2693 (gimplify_adjust_omp_clauses): Same.
2694 * hsa-gen.c (gen_hsa_addr_insns): Same.
2695 (gen_hsa_insns_for_load): Same.
2696 (gen_hsa_cmp_insn_from_gimple): Same.
2697 (gen_hsa_insns_for_operation_assignment): Same.
2698 (gen_get_level): Same.
2699 (gen_hsa_alloca): Same.
2700 (omp_simple_builtin::generate): Same.
2701 (gen_hsa_atomic_for_builtin): Same.
2702 (gen_hsa_insns_for_call): Same.
2703 * input.c (dump_location_info): Same.
2704 * ipa-devirt.c (compare_virtual_tables): Same.
2705 * ira.c (ira_setup_eliminable_regset): Same.
2706 * lra-assigns.c (lra_assign): Same.
2707 * lra-constraints.c (lra_constraints): Same.
2708 * lto-streamer-in.c (lto_input_mode_table): Same.
2709 * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
2710 (merge_and_complain): Same.
2711 (compile_offload_image): Same.
2712 (compile_images_for_offload_targets): Same.
2713 (debug_objcopy): Same.
2714 (run_gcc): Same.
2715 (main): Same.
2716 * opts.c (print_specific_help): Same.
2717 (parse_no_sanitize_attribute): Same.
2718 (print_help): Same.
2719 (handle_param): Same.
2720 * plugin.c (add_new_plugin): Same.
2721 (parse_plugin_arg_opt): Same.
2722 (try_init_one_plugin): Same.
2723 * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
2724 operators, and types in diagnostics. Correct quoting and spelling
2725 issues.
2726 * read-rtl-function.c (parse_edge_flag_token): Same.
2727 (function_reader::parse_enum_value): Same.
2728 * reg-stack.c (check_asm_stack_operands): Same.
2729 * regcprop.c (validate_value_data): Same.
2730 * sched-rgn.c (make_pass_sched_fusion): Same.
2731 * stmt.c (check_unique_operand_names): Same.
2732 * targhooks.c (default_target_option_pragma_parse): Same.
2733 * tlink.c (recompile_files): Same.
2734 * toplev.c (process_options): Same.
2735 (do_compile): Same.
2736 * trans-mem.c (diagnose_tm_1): Same.
2737 (ipa_tm_scan_irr_block): Same.
2738 (ipa_tm_diagnose_transaction): Same.
2739 * tree-cfg.c (verify_address): Same. Use get_tree_code_name to
2740 format a tree code name in a diagnostic.
2741 (verify_types_in_gimple_min_lval): Same.
2742 (verify_types_in_gimple_reference): Same.
2743 (verify_gimple_call): Same.
2744 (verify_gimple_assign_unary): Same.
2745 (verify_gimple_assign_binary): Same.
2746 (verify_gimple_assign_ternary): Same.
2747 (verify_gimple_assign_single): Same.
2748 (verify_gimple_switch): Same.
2749 (verify_gimple_label): Same.
2750 (verify_gimple_phi): Same.
2751 (verify_gimple_in_seq): Same.
2752 (verify_eh_throw_stmt_node): Same.
2753 (collect_subblocks): Same.
2754 (gimple_verify_flow_info): Same.
2755 (do_warn_unused_result): Same.
2756 * tree-inline.c (expand_call_inline): Same.
2757 * tree-into-ssa.c (update_ssa): Same.
2758 * tree.c (tree_int_cst_elt_check_failed): Same.
2759 (tree_vec_elt_check_failed): Same.
2760 (omp_clause_operand_check_failed): Same.
2761 (verify_type_variant): Same.
2762 (verify_type): Same.
2763 * value-prof.c (verify_histograms): Same.
2764 * varasm.c (assemble_start_function): Same.
2765
2766 2019-05-16 Martin Sebor <msebor@redhat.com>
2767
2768 * config/i386/i386-expand.c (get_element_number): Quote keywords
2769 and other internal names in diagnostics. Adjust other diagnostic
2770 formatting issues noted by -Wformat-diag.
2771 * config/i386/i386-features.c
2772 (ix86_mangle_function_version_assembler_name): Same.
2773 * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
2774 * config/i386/i386.c (ix86_function_type_abi): Same.
2775 (ix86_function_ms_hook_prologue): Same.
2776 (classify_argument): Same.
2777 (ix86_expand_prologue): Same.
2778 (ix86_md_asm_adjust): Same.
2779 (ix86_memmodel_check): Same.
2780
2781 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
2782
2783 * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
2784 TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
2785 and fpxx modes.
2786
2787 2019-05-17 H.J. Lu <hongjiu.lu@intel.com>
2788
2789 PR target/90497
2790 * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
2791 intrinsics without SSE/SSE2/SSSE3.
2792 * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
2793 check.
2794 (*mmx_uavgv8qi3): Likewise.
2795
2796 2019-05-17 Richard Biener <rguenther@suse.de>
2797
2798 * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
2799 VEC_PERM_EXPR as __VEC_PERM with -gimple.
2800
2801 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com>
2802
2803 * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
2804 vec_sldw insn pattern.
2805
2806 2019-05-17 Richard Biener <rguenther@suse.de>
2807
2808 * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
2809
2810 2019-05-17 Martin Liska <mliska@suse.cz>
2811
2812 PR driver/90496
2813 * toplev.c (output_stack_usage): With LTO and sanitizer it
2814 happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
2815 has no file location.
2816
2817 2019-05-16 Jakub Jelinek <jakub@redhat.com>
2818
2819 PR c++/90484
2820 * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
2821 sz0 is equal to sz1, instead return false in that case.
2822
2823 * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
2824 has non-constant expression, force sctx.lane and use two
2825 argument IFN_GOMP_SIMD_LANE instead of single argument.
2826 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
2827 two argument IFN_GOMP_SIMD_LANE without lhs.
2828 * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
2829 member.
2830 (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
2831 Define.
2832 (LOOP_REQUIRES_VERSIONING): Or in
2833 LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
2834 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
2835 simd_if_cond.
2836 (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
2837 * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
2838 from simd if clause if needed.
2839
2840 2019-05-16 Richard Biener <rguenther@suse.de>
2841
2842 * tree-affine.c (expr_to_aff_combination): New function split
2843 out from...
2844 (tree_to_aff_combination): ... here.
2845 (aff_combination_expand): Avoid building a GENERIC tree.
2846
2847 2019-05-16 Max Filippov <jcmvbkbc@gmail.com>
2848
2849 * cgraphunit.c (cgraph_node::expand_thunk): Remove
2850 assemble_start_function and assemble_end_function calls.
2851 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
2852 assemble_start_function and assemble_end_function.
2853 * config/arc/arc.c (arc_output_mi_thunk): Likewise.
2854 * config/arm/arm.c (arm_output_mi_thunk): Likewise.
2855 * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
2856 * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
2857 * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
2858 * config/csky/csky.c (csky_output_mi_thunk): Likewise.
2859 * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
2860 * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
2861 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
2862 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
2863 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
2864 * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
2865 Likewise.
2866 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
2867 * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
2868 * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
2869 * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
2870 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
2871 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
2872 * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
2873 * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
2874 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
2875 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
2876 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2877 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
2878 * config/spu/spu.c (spu_output_mi_thunk): Likewise.
2879 * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
2880 Likewise.
2881 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
2882 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
2883 * config/vax/vax.c (vax_output_mi_thunk): Likewise.
2884
2885 2019-05-16 Jan Hubicka <hubicka@ucw.cz>
2886
2887 * tree-ssa-alias.c (alias_stats): Add
2888 aliasing_component_refs_p_may_alias and
2889 aliasing_component_refs_p_no_alias.
2890 (dump_alias_stats): Print aliasing_component_refs_p stats.
2891 (aliasing_component_refs_p): Update stats.
2892
2893 2019-05-16 Martin Liska <mliska@suse.cz>
2894
2895 PR lto/90500
2896 * multiple_target.c (expand_target_clones): Do not allow
2897 target_clones being used with a symbol that is an alias.
2898
2899 2019-05-16 Vladislav Ivanishin <vlad@ispras.ru>
2900
2901 PR tree-optimization/90394
2902 * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false
2903 positives rather than ICE for cases where (code2 == NE_EXPR
2904 && code1 == BIT_AND_EXPR).
2905
2906 2019-05-16 Jakub Jelinek <jakub@redhat.com>
2907
2908 PR fortran/90329
2909 * tree-core.h (struct tree_decl_common): Document
2910 decl_nonshareable_flag for PARM_DECLs.
2911 * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
2912 * calls.c (expand_call): Don't try tail call if caller
2913 has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
2914 passed on the stack and callee needs to pass any arguments on the
2915 stack.
2916 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
2917 else if instead of series of mutually exclusive ifs. Handle
2918 DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
2919 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
2920
2921 * lto-streamer.h (LTO_major_version): Bump to 9.
2922
2923 2019-05-16 Jun Ma <JunMa@linux.alibaba.com>
2924
2925 PR tree-optimization/90106
2926 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add
2927 new parameter as new internal function call, also move it to new
2928 basic block.
2929 (use_internal_fn): Pass internal function call to
2930 shrink_wrap_one_built_in_call_with_conds.
2931
2932 2019-05-15 Jakub Jelinek <jakub@redhat.com>
2933
2934 * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
2935 max_vf to 1.
2936 * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
2937 safelen_int and set loop->dont_vectorize.
2938
2939 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
2940
2941 PR target/89021
2942 * config/i386/i386-builtin.def: Enable MMX intrinsics with
2943 SSE/SSE2/SSSE3.
2944 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
2945 Likewise.
2946 * config/i386/i386-expand.c (ix86_expand_builtin): Allow
2947 SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE.
2948 * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__
2949 is defined.
2950
2951 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
2952
2953 PR target/89021
2954 * config/i386/mmx.md (*vec_dupv2sf): Changed to
2955 define_insn_and_split to support SSE emulation.
2956 (*vec_extractv2sf_0): Likewise.
2957 (*vec_extractv2sf_1): Likewise.
2958 (*vec_extractv2si_0): Likewise.
2959 (*vec_extractv2si_1): Likewise.
2960 (*vec_extractv2si_zext_mem): Likewise.
2961 (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE.
2962 (vec_extractv2sf_1 splitter): Likewise.
2963 (vec_extractv2sfsf): Likewise.
2964 (vec_setv2si): Likewise.
2965 (vec_extractv2si_1 splitter): Likewise.
2966 (vec_extractv2sisi): Likewise.
2967 (vec_setv4hi): Likewise.
2968 (vec_extractv4hihi): Likewise.
2969 (vec_setv8qi): Likewise.
2970 (vec_extractv8qiqi): Likewise.
2971 (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
2972 TARGET_MMX_WITH_SSE ix86_expand_vector_extract.
2973 (vec_extractv2sisi): Likewise.
2974 (vec_extractv4hihi): Likewise.
2975 (vec_extractv8qiqi): Likewise.
2976 (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
2977 TARGET_MMX_WITH_SSE to ix86_expand_vector_init.
2978 (vec_initv2sisi): Likewise.
2979 (vec_initv4hihi): Likewise.
2980 (vec_initv8qiqi): Likewise.
2981 (vec_setv2si): Also allow TARGET_MMX_WITH_SSE. Pass
2982 TARGET_MMX_WITH_SSE to ix86_expand_vector_set.
2983 (vec_setv4hi): Likewise.
2984 (vec_setv8qi): Likewise.
2985
2986 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
2987
2988 PR target/89021
2989 * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
2990 TARGET_MMX_WITH_SSE.
2991 (MMXMODE:*mov<mode>_internal): Likewise.
2992 (MMXMODE:movmisalign<mode>): Likewise.
2993
2994 2019-05-15 Uroš Bizjak <ubizjak@gmail.com>
2995
2996 PR target/89021
2997 * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute.
2998 * config/i386/sse.md (sse2_cvtpi2pd): Ditto.
2999 (sse2_cvtpd2pi): Ditto.
3000 (sse2_cvttpd2pi): Ditto.
3001 (*vec_concatv2sf_sse4_1): Ditto.
3002 (*vec_concatv2sf_sse): Ditto.
3003 (*vec_concatv2si_sse4_1): Ditto.
3004 (*vec_concatv2si): Ditto.
3005 (*vec_concatv4si_0): Ditto.
3006 (*vec_concatv2di_0): Ditto.
3007
3008 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3009
3010 PR target/89021
3011 * config/i386/sse.md (abs<mode>2): Add SSE emulation.
3012
3013 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3014
3015 PR target/89021
3016 * config/i386/sse.md (ssse3_palignrdi): Changed to
3017 define_insn_and_split to support SSE emulation.
3018
3019 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3020
3021 PR target/89021
3022 * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
3023
3024 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3025
3026 PR target/89021
3027 * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
3028 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
3029 SSE emulation.
3030
3031 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3032
3033 PR target/89021
3034 * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
3035 or TARGET_MMX_WITH_SSE.
3036 (*ssse3_pmulhrswv4hi3): Add SSE emulation.
3037
3038 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3039
3040 PR target/89021
3041 * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
3042
3043 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3044
3045 PR target/89021
3046 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
3047 Changed to define_insn_and_split to support SSE emulation.
3048
3049 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3050
3051 PR target/89021
3052 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
3053 Changed to define_insn_and_split to support SSE emulation.
3054
3055 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3056
3057 PR target/89021
3058 * config/i386/mmx.md (mmx_<emms>): Renamed to ...
3059 (*mmx_<emms>): This.
3060 (mmx_<emms>): New expander.
3061
3062 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3063
3064 PR target/89021
3065 * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
3066 support.
3067 (*sse2_umulv1siv1di3): Add SSE2 emulation.
3068
3069 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3070
3071 PR target/89021
3072 * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
3073
3074 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3075
3076 PR target/89021
3077 * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
3078
3079 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3080
3081 PR target/89021
3082 * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
3083 TARGET_MMX_WITH_SSE.
3084 (*mmx_uavgv4hi3): Add SSE emulation.
3085
3086 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3087
3088 PR target/89021
3089 * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
3090 and TARGET_MMX_WITH_SSE.
3091 (*mmx_uavgv8qi3): Add SSE emulation.
3092
3093 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3094
3095 PR target/89021
3096 * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
3097 maskmovdqu for __MMX_WITH_SSE__.
3098
3099 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3100
3101 PR target/89021
3102 * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check
3103 TARGET_MMX and TARGET_MMX_WITH_SSE.
3104 (*mmx_umulv4hi3_highpart): Add SSE emulation.
3105
3106 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3107
3108 PR target/89021
3109 * config/i386/mmx.md (mmx_pmovmskb): Changed to
3110 define_insn_and_split to support SSE emulation.
3111
3112 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3113
3114 PR target/89021
3115 * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX
3116 and TARGET_MMX_WITH_SSE.
3117 (mmx_<code>v8qi3): Likewise.
3118 (smaxmin:<code>v4hi3): New.
3119 (umaxmin:<code>v8qi3): Likewise.
3120 (smaxmin:*mmx_<code>v4hi3): Add SSE emulation.
3121 (umaxmin:*mmx_<code>v8qi3): Likewise.
3122
3123 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3124
3125 PR target/89021
3126 * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
3127 TARGET_MMX_WITH_SSE.
3128 (*mmx_pinsrw): Add SSE emulation.
3129
3130 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3131
3132 PR target/89021
3133 * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
3134
3135 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3136
3137 PR target/89021
3138 * config/i386/sse.md (sse_cvtpi2ps): Changed to
3139 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
3140 SSE emulation.
3141
3142 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3143
3144 PR target/89021
3145 * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
3146 (sse_cvttps2pi): Likewise.
3147
3148 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3149
3150 PR target/89021
3151 * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and
3152 TARGET_MMX_WITH_SSE.
3153 (mmx_pshufw_1): Add SSE emulation.
3154 (*vec_dupv4hi): Changed to define_insn_and_split and also allow
3155 TARGET_MMX_WITH_SSE to support SSE emulation.
3156
3157 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3158
3159 PR target/89021
3160 * config/i386/constraints.md (Yw): New constraint.
3161 * config/i386/mmx.md (*vec_dupv2si): Changed to
3162 define_insn_and_split and also allow TARGET_MMX_WITH_SSE to
3163 support SSE emulation.
3164
3165 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3166
3167 PR target/89021
3168 * config/i386/mmx.md (mmx_eq<mode>3): Also allow
3169 TARGET_MMX_WITH_SSE.
3170 (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE. Add SSE
3171 support.
3172 (mmx_gt<mode>3): Likewise.
3173
3174 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3175
3176 PR target/89021
3177 * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
3178 TARGET_MMX_WITH_SSE. Add SSE support.
3179
3180 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3181
3182 PR target/89021
3183 * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
3184 TARGET_MMX_WITH_SSE.
3185 (any_logic:<code><mode>3): New.
3186 (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE.
3187 Add SSE support.
3188
3189 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3190
3191 PR target/89021
3192 * config/i386/mmx.md (mmx_ashr<mode>3): Also allow
3193 TARGET_MMX_WITH_SSE. Add SSE emulation.
3194 (mmx_<shift_insn><mode>3): Likewise.
3195 (ashr<mode>3): New.
3196 (<shift_insn><mode>3): Likewise.
3197
3198 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3199
3200 PR target/89021
3201 * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.
3202 (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. Add SSE support.
3203
3204 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3205
3206 PR target/89021
3207 * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow
3208 TARGET_MMX_WITH_SSE.
3209 (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add
3210 SSE support.
3211
3212 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3213
3214 PR target/89021
3215 * config/i386/mmx.md (mmx_mulv4hi3): Also allow
3216 TARGET_MMX_WITH_SSE.
3217 (mulv4hi3): New.
3218 (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE
3219 support.
3220
3221 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3222
3223 PR target/89021
3224 * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI.
3225 (plusminus:mmx_<plusminus_insn><mode>3): Check
3226 TARGET_MMX_WITH_SSE.
3227 (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise.
3228 (<plusminus_insn><mode>3): New.
3229 (*mmx_<plusminus_insn><mode>3): Add SSE emulation.
3230 (*mmx_<plusminus_insn><mode>3): Likewise.
3231
3232 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3233
3234 PR target/89021
3235 * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
3236 * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
3237 prototype.
3238 * config/i386/mmx.m (mmx_punpckhbw): Changed to
3239 define_insn_and_split to support SSE emulation.
3240 (mmx_punpcklbw): Likewise.
3241 (mmx_punpckhwd): Likewise.
3242 (mmx_punpcklwd): Likewise.
3243 (mmx_punpckhdq): Likewise.
3244 (mmx_punpckldq): Likewise.
3245
3246 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3247 Uros Bizjak <ubizjak@gmail.com>
3248
3249 PR target/89021
3250 * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
3251 New function.
3252 (ix86_split_mmx_pack): Likewise.
3253 * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
3254 New prototype.
3255 (ix86_split_mmx_pack): Likewise.
3256 * config/i386/i386.md (mmx_isa): New.
3257 (enabled): Also check mmx_isa.
3258 * config/i386/mmx.md (any_s_truncate): New code iterator.
3259 (s_trunsuffix): New code attr.
3260 (mmx_packsswb): Removed.
3261 (mmx_packssdw): Likewise.
3262 (mmx_packuswb): Likewise.
3263 (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
3264 MMX packsswb/packuswb with SSE2.
3265 (mmx_packssdw): Likewise.
3266 * config/i386/predicates.md (register_mmxmem_operand): New.
3267
3268 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3269
3270 PR target/89021
3271 * config/i386/i386-c.c (ix86_target_macros_internal): Define
3272 __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE.
3273 * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for
3274 TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE.
3275 (ix86_vector_mode_supported_p): Likewise.
3276 * config/i386/i386.h (TARGET_MMX_WITH_SSE): New.
3277
3278 2019-05-15 Martin Liska <mliska@suse.cz>
3279
3280 PR middle-end/90478
3281 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
3282 Check for overflow.
3283
3284 2019-05-15 Richard Biener <rguenther@suse.de>
3285
3286 * tree-into-ssa.c (pass_build_ssa::execute): Run
3287 update_address_taken before going into SSA.
3288
3289 2019-05-15 Richard Biener <rguenther@suse.de>
3290
3291 * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
3292 as __BIT_FIELD_REF with type with -gimple.
3293
3294 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru>
3295
3296 * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
3297 semantically equivalent branches (left over after prior refactorings).
3298
3299 2019-05-15 Richard Biener <rguenther@suse.de>
3300
3301 PR tree-optimization/88828
3302 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
3303 bogus check.
3304
3305 2019-05-14 Richard Biener <rguenther@suse.de>
3306
3307 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
3308 as __VIEW_CONVERT with -gimple.
3309
3310 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
3311
3312 PR target/82920
3313 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
3314 Darwin.
3315
3316 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
3317
3318 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
3319 define_split to become a define_insn_and_split.
3320
3321 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
3322
3323 * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
3324 arguments.
3325 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
3326 * config/rs6000/rs6000.md (epilogue_type): New define_enum.
3327 (sibcall_epilogue): Adjust.
3328 (epilogue): Adjust.
3329
3330 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3331
3332 * config.gcc: Move *-*-solaris2.10* from obsolete configurations
3333 to unsupported ones.
3334 Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
3335 * config.host: Likewise.
3336 * config/i386/sol2.h (ASM_COMMENT_START): Remove.
3337 * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
3338 __svr4__]: Remove "brand" fallback.
3339 [!KSTAT_DATA_STRING]: Remove.
3340 * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
3341 to *-*-solaris2*.
3342 (comdat_group): Likewise.
3343 (set_have_as_tls): Likewise.
3344 (gcc_cv_target_dl_iterate_phdr): Likewise.
3345 (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
3346 (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
3347 * configure: Regenerate.
3348 * doc/install.texi: Simplify Solaris target triplets.
3349 (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
3350 (Specific, *-*-solaris2*): Document Solaris 10 removal.
3351 Remove Solaris 10 references.
3352 Remove obsolete Solaris bug reference.
3353 (Specific, sparc-sun-solaris2.10): Remove.
3354
3355 2019-05-14 Uroš Bizjak <ubizjak@gmail.com>
3356
3357 * config/i386/i386.md (any_div): New code iterator.
3358 (paired_mod): New code attribute.
3359 (sgnprefix): Handle DIV and UDIV RTXes.
3360 (u): Ditto.
3361 (<u>divmod<mode>4): Macroize expander from divmod<mode>4
3362 and udivmod<mode>4 patterns using any_div code iterator.
3363 (divmod splitters): Macroize splitters using any_div code iterator.
3364 (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
3365 (*udivmodsi4_pow2_zext_2): Ditto.
3366 (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
3367 and *udivmod<mode>4_noext patterns using any_div code iterator.
3368 (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
3369 *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
3370 patterns using any_div code iterator.
3371 (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
3372 *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
3373 patterns using any_div code iterator.
3374 (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
3375 udivmodhiqi3 patterns using any_extend code iterator.
3376
3377 2019-05-14 Richard Biener <rguenther@suse.de>
3378 H.J. Lu <hongjiu.lu@intel.com>
3379
3380 PR tree-optimization/88828
3381 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
3382 permuting in a single non-constant element not extracted
3383 from a vector.
3384
3385 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
3386
3387 * internal-fn.def (SIGNBIT): New.
3388 * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
3389 defined.
3390 (signbitv4sf2): Likewise.
3391
3392 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com>
3393
3394 PR target/90357
3395 * config/mips/mips.c (mips_split_move): Skip forward SRC into
3396 next insn when the SRC reg is dead.
3397
3398 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com>
3399
3400 * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
3401 (alloc_cand_and_find_basis): Ditto.
3402 (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
3403 (create_mul_imm_cand, create_add_ssa_cand): Ditto.
3404 (create_add_imm_cand, slsr_process_cast): Ditto.
3405 (slsr_process_copy, replace_mult_candidate): Ditto.
3406 (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
3407 (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
3408 (pass_strength_reduction::execute): Init the first NULL element.
3409
3410 2019-05-13 Nathan Sidwell <nathan@acm.org>
3411
3412 * gcc.c (execute): Simplify cond-expr into if. Reformat comment.
3413 (run_attempt): Reformat line break.
3414
3415 2019-05-13 David Edelsohn <dje.gcc@gmail.com>
3416
3417 PR target/90418
3418 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
3419 data registers in sibcall epilogues.
3420 Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
3421
3422 2019-05-13 Uroš Bizjak <ubizjak@gmail.com>
3423
3424 PR target/89221
3425 * configure.ac (--enable-frame-pointer):
3426 Disable by default for cygwin and mingw.
3427 * configure: Regenerate.
3428
3429 2019-05-13 Nathan Sidwell <nathan@acm.org>
3430
3431 * dwarf2out.c (breakout_comdat_types): Move comment to correct
3432 piece of code.
3433 (const_ok_for_output_1): Balance parens around #if/#else/#endif
3434 (gen_member_die): Move abstract origin check earlier. Only VARs
3435 can be static_inline_p. Simplify splicing control flow.
3436
3437 2019-05-13 Richard Biener <rguenther@suse.de>
3438
3439 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
3440 VIEW_CONVERT_EXPR.
3441 (vect_build_slp_tree_1): Likewise.
3442
3443 2019-05-13 Richard Biener <rguenther@suse.de>
3444
3445 PR tree-optimization/90402
3446 * tree-if-conv.c (tree_if_conversion): Value number only
3447 the loop body by making the latch an exit of the region
3448 as well.
3449 * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
3450 processing PHIs.
3451 (do_rpo_vn): Deal with multiple edges into the entry block
3452 that are not backedges inside the region by skipping PHIs
3453 of the entry block.
3454
3455 2019-05-13 Richard Biener <rguenther@suse.de>
3456
3457 PR tree-optimization/90316
3458 * tree-ssa-pre.c (insert_aux): Fold into ...
3459 (insert): ... this function. Use a RPO walk to reduce the
3460 number of required iterations.
3461
3462 2019-05-13 Martin Liska <mliska@suse.cz>
3463
3464 PR tree-optimization/90416
3465 * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
3466 string instead of passing the second part as va_arg argument.
3467
3468 2019-05-13 Martin Liska <mliska@suse.cz>
3469
3470 PR gcov-profile/90380
3471 * gcov.c (handle_cycle): Do not support zero cycle count,
3472 it should not be possible.
3473 (path_contains_zero_cycle_arc): New function.
3474 (circuit): Ignore zero cycle arc counts.
3475
3476 2019-05-13 Martin Liska <mliska@suse.cz>
3477
3478 PR gcov-profile/90380
3479 * gcov.c (enum loop_type): Remove the enum and
3480 the operator.
3481 (handle_cycle): Assert that we should not reach
3482 a negative count.
3483 (circuit): Use loop_found instead of a tri-state loop_type.
3484 (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
3485 happen.
3486
3487 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
3488
3489 PR target/82920
3490 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
3491 (ix86_output_indirect_branch_via_reg): Use output mechanism
3492 accounting for __USER_LABEL_PREFIX__.
3493 (ix86_output_indirect_branch_via_push): Likewise.
3494 (ix86_output_function_return): Likewise.
3495 (ix86_output_indirect_function_return): Likewise.
3496
3497 2019-05-12 Richard Sandiford <richard.sandiford@arm.com>
3498
3499 * doc/md.texi: Document use of code attributes in rtx patterns.
3500 * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
3501 * read-rtl.c (find_code): Split out search loops into...
3502 (maybe_find_code): ...this new function.
3503 (check_code_iterator): Make the error message more informative.
3504 (check_code_attribute): New function.
3505 (rtx_reader::rtx_alloc_for_name): Likewise.
3506 (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
3507 * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
3508 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
3509 <max_opp> directly as an rtx code instead of via a match_operator.
3510 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
3511 (<su>abd<mode>_3): Update accordingly.
3512
3513 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
3514
3515 * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
3516 is given, print the state of the EH "save world" computation for
3517 Darwin.
3518
3519 2019-05-11 Jakub Jelinek <jakub@redhat.com>
3520
3521 PR c++/59813
3522 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
3523 EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
3524
3525 2019-05-11 Uroš Bizjak <ubizjak@gmail.com>
3526
3527 * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
3528 Use pinsrd for TARGET_SSE4_1.
3529 * config/i386/sse.md (movdi_to_sse): Ditto.
3530
3531 2019-05-10 Richard Biener <rguenther@suse.de>
3532
3533 * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
3534 (do_rpo_vn): Initialize next_value_id.
3535
3536 2019-05-10 Martin Liska <mliska@suse.cz>
3537
3538 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
3539 Fix plural form.
3540
3541 2019-05-10 Jakub Jelinek <jakub@redhat.com>
3542
3543 PR tree-optimization/90385
3544 * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
3545 arguments of the exit phis.
3546
3547 PR c++/90383
3548 * tree-inline.h (struct copy_body_data): Add do_not_fold member.
3549 * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
3550 id->do_not_fold.
3551 (copy_tree_body_r): Likewise.
3552 (copy_fn): Set id.do_not_fold to true.
3553
3554 2019-05-10 Martin Liska <mliska@suse.cz>
3555
3556 * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
3557 Reapply changes from r269790.
3558
3559 2019-05-10 Martin Liska <mliska@suse.cz>
3560
3561 PR middle-end/90340
3562 * doc/invoke.texi: New params.
3563 * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
3564 (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
3565 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
3566 Use it.
3567 * tree-switch-conversion.h (struct jump_table_cluster):
3568 Likewise.
3569
3570 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org>
3571
3572 * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
3573
3574 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com>
3575
3576 * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
3577
3578 2019-05-09 Alexander Monakov <amonakov@ispras.ru>
3579
3580 PR rtl-optimization/88879
3581 * sel-sched.c (sel_target_adjust_priority): Remove assert.
3582
3583 2019-05-09 Richard Earnshaw <rearnsha@arm.com>
3584
3585 PR target/90405
3586 * config/arm/arm.c (callee_saved_reg_p): Move before
3587 thumb_find_work_register.
3588 (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
3589 thumb_find_work_register. Only call df_get_live_out once.
3590 (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
3591 (thumb_find_work_register): Use
3592 thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
3593 algorithms to locate a spare call clobbered reg.
3594
3595 2019-05-09 Martin Liska <mliska@suse.cz>
3596
3597 * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
3598 and MAX_EXPR in GIMPLE FE format.
3599
3600 2019-05-09 Martin Liska <mliska@suse.cz>
3601
3602 * tree-cfg.c (dump_function_to_file): Dump entry BB count.
3603 * gimple-pretty-print.c (dump_gimple_bb_header):
3604 Dump BB count.
3605 (pp_cfg_jump): Dump edge probability.
3606 * profile-count.c (profile_quality_as_string): Simplify
3607 with a static array.
3608 (parse_profile_quality): New function.
3609 (profile_count::dump): Simplify with a static array.
3610 (profile_count::from_gcov_type): Add new argument.
3611 * profile-count.h (parse_profile_quality): Likewise.
3612 * predict.h (set_hot_bb_threshold): New.
3613 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
3614 New param.
3615 * predict.c (get_hot_bb_threshold): Set from the new param.
3616 (set_hot_bb_threshold): New.
3617
3618 2019-05-09 Richard Biener <rguenther@suse.de>
3619
3620 PR tree-optimization/90395
3621 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
3622 rewrite vector stores that throw internally.
3623
3624 2019-05-09 Thomas Schwinge <thomas@codesourcery.com>
3625
3626 * cif-code.def (CHKP): Remove.
3627
3628 PR target/89221
3629 * configure.ac (--enable-frame-pointer): Disable by default for
3630 GNU systems.
3631 * configure: Regenerate.
3632
3633 2019-05-09 Alan Modra <amodra@gmail.com>
3634
3635 PR target/89271
3636 * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
3637 (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
3638 * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
3639 cost for general <-> vsx when direct moves are available.
3640 Cost union classes at minimal cost for any reg in the class.
3641 Correct calculation for moves between vsx, float, and altivec.
3642 Don't return a low cost for moves between special regs. Don't
3643 use hard coded register numbers.
3644 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
3645 (rs6000_ira_change_pseudo_allocno_class): New function.
3646 * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
3647 (movdi_internal32, movdi_internal64): Remove '*' from vsx register
3648 alternatives.
3649 (movsi_internal1): Don't disparage vector alternatives.
3650 (mov<mode>_internal): Likewise, excepting alternative that
3651 will be split.
3652 * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
3653 we <- b alternative.
3654
3655 2019-05-08 Jakub Jelinek <jakub@redhat.com>
3656
3657 PR c++/59813
3658 PR tree-optimization/89060
3659 * tree-ssa-live.h (live_vars_map): New typedef.
3660 (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
3661 * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
3662 (struct compute_live_vars_data): New type.
3663 (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
3664 live_vars_at_stmt, destroy_live_vars): New functions.
3665 * tree-tailcall.c: Include tree-ssa-live.h.
3666 (live_vars, live_vars_vec): New global variables.
3667 (find_tail_calls): Perform variable life analysis before punting.
3668 (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
3669 * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
3670 member.
3671 * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
3672 Perform variable life analysis to select variables that really need
3673 clobbers added.
3674 (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
3675 instead set id->eh_landing_pad_dest and assert it is the same.
3676 (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
3677
3678 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com>
3679 Richard Earnshaw <rearnsha@arm.com>
3680
3681 PR target/88167
3682 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
3683 function.
3684 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
3685 (thumb1_compute_save_core_reg_mask): Don't force a spare work
3686 register if both the epilogue and prologue can use call-clobbered
3687 regs.
3688 (thumb1_unexpanded_epilogue): Use
3689 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for
3690 picking temporaries for restoring high regs to match that of the
3691 prologue where possible.
3692 (thumb1_expand_prologue): Add any usable call-clobbered low registers to
3693 the list of work registers. Detect if the return address is still live
3694 at the end of the prologue and avoid using it for a work register if so.
3695 If the return address is not live, add LR to the list of pushable regs
3696 after the first pass.
3697
3698 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
3699
3700 PR tree-optimization/90078
3701 * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
3702 (INFTY): Increase the value for infinite cost.
3703 (struct comp_cost): Promote type of members to int64_t.
3704 (infinite_cost): Don't set complexity in initialization.
3705 (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
3706 overflows to infinite_cost.
3707 (adjust_setup_cost): Promote type of parameter and cost computation
3708 to int64_t.
3709 (struct ainc_cost_data, struct iv_ca): Promote type of member to
3710 int64_t.
3711 (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
3712 cost computation to int64_t.
3713 (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
3714 int64_t's format specifier in dump.
3715
3716 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
3717
3718 PR tree-optimization/90240
3719 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
3720 with respect to scaling factor pre-computed for each basic block.
3721 (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
3722 (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
3723 (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
3724 (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend
3725 live range for array of loop's basic blocks. Cleanup aux field of
3726 loop's basic blocks.
3727
3728 2019-05-08 Jakub Jelinek <jakub@redhat.com>
3729
3730 PR tree-optimization/90356
3731 * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
3732
3733 2019-05-07 Wei Xiao <wei3.xiao@intel.com>
3734
3735 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
3736 OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
3737 (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
3738 (ix86_handle_option): Handle -mavx512bf16.
3739 * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
3740 to extra_headers.
3741 * config/i386/avx512bf16vlintrin.h: New.
3742 * config/i386/avx512bf16intrin.h: New.
3743 * config/i386/cpuid.h (bit_AVX512BF16): New.
3744 * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
3745 * config/i386/i386-builtin-types.def: Add new types.
3746 * config/i386/i386-builtin.def: Add new builtins.
3747 * config/i386/i386-c.c (ix86_target_macros_internal): Define
3748 __AVX512BF16__.
3749 * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
3750 (ix86_option_override_internal): Handle BF16.
3751 (ix86_valid_target_attribute_inner_p): Ditto.
3752 * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
3753 * config/i386/i386-builtin.c (enum processor_features): Add
3754 F_AVX512BF16.
3755 (static const _isa_names_table isa_names_table): Ditto.
3756 * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
3757 (PTA_AVX512BF16): Ditto.
3758 * config/i386/i386.opt: Add -mavx512bf16.
3759 * config/i386/immintrin.h: Include avx512bf16intrin.h
3760 and avx512bf16vlintrin.h.
3761 * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
3762 avx512f_cvtneps2bf16_<mode><mask_name>,
3763 avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
3764 * config/i386/subst.md (mask_half): Add new subst.
3765 * doc/invoke.texi: Document -mavx512bf16.
3766
3767 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org>
3768
3769 * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
3770 Delete declaration.
3771 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
3772 (rs6000_debug_legitimize_reload_address): Delete.
3773 (rs6000_legitimize_reload_address_ptr): Delete.
3774 (rs6000_option_override_internal): Adjust.
3775 (mem_operand_gpr): Adjust comment.
3776 (legitimate_lo_sum_address_p): Ditto.
3777 (rs6000_legitimize_reload_address): Delete.
3778 (rs6000_debug_legitimize_reload_address): Delete.
3779 * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
3780
3781 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
3782
3783 PR target/89765
3784 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3785 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
3786 to compute vector element selector for both constant and variable
3787 operands.
3788
3789 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
3790
3791 * config/i386/i386.md (cvt_mnemonic): New mode attribute.
3792 (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
3793 ashrdi3_cvt using SWI48 mode iterator.
3794
3795 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com>
3796
3797 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
3798 (aarch64_<su>abd<mode>_3): Likewise.
3799 (*aarch64_<su>abd<mode>_3): New define_insn.
3800 (<sur>sad<vsi2qi>): New define_expand.
3801 * config/aarch64/iterators.md: Added MAX_OPP attribute.
3802 * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
3803 (build_vect_cond_expr): Likewise.
3804
3805 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
3806
3807 * cfgexpand.c (asm_clobber_reg_is_valid): Reject
3808 clobbers outside of accessible_reg_set.
3809 * config/i386/i386.c (ix86_conditional_register_usage):
3810 Disable register sets by clearing corresponding bits in
3811 accessible_reg_set. Do not set corresponding bits in fixed_regs,
3812 call_used_regs and don't clear corresponding reg_names array members.
3813
3814 2019-05-07 Richard Biener <rguenther@suse.de>
3815
3816 * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
3817 not specified still compute a comp_vectype for invariant
3818 compares.
3819
3820 2019-05-07 Richard Biener <rguenther@suse.de>
3821
3822 PR tree-optimization/90316
3823 * tree-ssa-pre.c (translate_vuse_through_block): When
3824 same_valid is NULL do not bother to search for a virtual
3825 PHI continuation.
3826 (phi_translate_1): When operands changed we cannot keep
3827 the same value-number so do not bother to ask whether
3828 that's possible from translate_vuse_through_block.
3829
3830 2019-05-07 Martin Liska <mliska@suse.cz>
3831
3832 * bitmap.c (bitmap_register): Come up with
3833 alloc_descriptor_max_uid and assign it for
3834 a new bitmap.
3835 (register_overhead): Use get_descriptor as
3836 a descriptor.
3837 (release_overhead): New.
3838 (bitmap_elem_to_freelist): Call it.
3839 (bitmap_elt_clear_from): Likewise.
3840 (bitmap_obstack_free): Likewise.
3841 (bitmap_move): Sensitively release memory.
3842 * bitmap.h (struct GTY): Add alloc_descriptor and padding.
3843 (bitmap_initialize): Initialize alloc_descriptor to zero.
3844 * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
3845
3846 2019-05-07 Richard Biener <rguenther@suse.de>
3847
3848 * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
3849 we build a SLP node. Remove max_size and limiting.
3850 (vect_analyze_slp_instance): Record and dump size of the SLP graph.
3851
3852 2019-05-07 Richard Biener <rguenther@suse.de>
3853
3854 PR tree-optimization/90316
3855 * tree-ssa-alias.h (get_continuation_for_phi): Take walking
3856 limit by reference.
3857 (walk_non_aliased_vuses): Take walking limit argument.
3858 * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
3859 walking if it is reached instead of just counting.
3860 (get_continuation_for_phi): Likewise.
3861 (walk_non_aliased_vuses): Likewise, instead of leaving counter
3862 limiting to the callback.
3863 * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
3864 (vn_reference_lookup_3): Likewise.
3865 (vn_reference_lookup_pieces): Likewise.
3866 (vn_reference_lookup): Likewise.
3867 * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
3868 * tree-ssa-scopedtables.c (vuse_eq): Adjust.
3869 (avail_exprs_stack::lookup_avail_expr): Likewise.
3870
3871 2019-05-07 Jan Hubicka <hubicka@ucw.cz>
3872
3873 * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
3874 for comparaible types in the second direction even if first one
3875 hits incomparable type.
3876
3877 2019-05-07 Richard Biener <rguenther@suse.de>
3878
3879 PR lto/90369
3880 * lto-wrapper.c (debug_objcopy): Use the original filename
3881 including archive offset for the filename used for -save-temps.
3882
3883 2019-05-07 Li Jia He <helijia@linux.ibm.com>
3884
3885 * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
3886 detection.
3887
3888 2019-05-06 H.J. Lu <hongjiu.lu@intel.com>
3889 Hongtao Liu <hongtao.liu@intel.com>
3890
3891 PR target/89750
3892 PR target/86444
3893 * config/i386/i386-expand.c (ix86_expand_sse_comi_round):
3894 Modified, original implementation isn't correct.
3895
3896 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
3897
3898 * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
3899 (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
3900 (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
3901 (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
3902 (FRAME_POINTER_REGNUM): Change numbering.
3903 * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
3904 (alt_reg_names): Adjust.
3905 (rs6000_conditional_register_usage): Don't mark hard register 64 as
3906 fixed.
3907 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
3908 (DWARF_FRAME_REGISTERS): Delete.
3909 (DWARF2_FRAME_REG_OUT): Fix whitespace.
3910 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
3911 Adjust.
3912 (REG_ALLOC_ORDER): Adjust.
3913 (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
3914 (REG_CLASS_CONTENTS): Adjust.
3915 (RETURN_ADDR_RTX): Change comment.
3916 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
3917 instead of 67.
3918 (REGISTER_NAMES): Adjust.
3919 (ADDITIONAL_REGISTER_NAMES): Adjust.
3920 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
3921
3922 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
3923
3924 * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
3925 Delete.
3926 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
3927 (DWARF_FRAME_REGISTERS): Adjust.
3928 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
3929 Adjust.
3930 (REG_ALLOC_ORDER): Adjust.
3931 (enum reg_class): Delete SPR_REGS.
3932 (REG_CLASS_NAMES): Delete SPR_REGS.
3933 (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs.
3934 (REGISTER_NAMES): Adjust.
3935 (ADDITIONAL_REGISTER_NAMES): Adjust.
3936 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
3937 * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
3938 * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
3939 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
3940 (htm_spr_regno): Delete.
3941 (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
3942 argument.
3943 (rs6000_dbx_register_number): Adjust.
3944
3945 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
3946
3947 * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
3948
3949 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
3950
3951 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
3952 FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
3953
3954 2019-05-06 Jakub Jelinek <jakub@redhat.com>
3955
3956 PR tree-optimization/88709
3957 PR tree-optimization/90271
3958 * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
3959 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
3960 non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int
3961 variable.
3962 (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
3963 of the store merging group is larger than
3964 PARAM_STORE_MERGING_MAX_SIZE parameter.
3965 (split_group): Add bzero_first argument. If set, always emit first
3966 the first store which must be = {} of the whole area and then for the
3967 rest of the stores consider all zero bytes as paddings.
3968 (imm_store_chain_info::output_merged_store): Check if first store
3969 is = {} of the whole area and if yes, determine which setting of
3970 bzero_first for split_group gives smaller number of stores. Adjust
3971 split_group callers.
3972 (lhs_valid_for_store_merging_p): Allow decls.
3973 (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
3974 no elts.
3975 (pass_store_merging::process_store): Likewise.
3976
3977 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
3978
3979 PR target/89424
3980 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
3981 handling of V1TImode.
3982
3983 2019-05-06 Uroš Bizjak <ubizjak@gmail.com>
3984
3985 PR target/89221
3986 * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
3987 and enable_frame_pointer ...
3988 * configure.ac: ... here. Update help strings for
3989 --enable-frame-pointer.
3990 * configure: Regenerate.
3991 * config/i386/i386-options.c (ix86_option_override_internal): Remove
3992 USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
3993 * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
3994 (USE_X86_64_FRAME_POINTER): Ditto.
3995
3996 2019-05-06 Martin Liska <mliska@suse.cz>
3997
3998 * config.gcc: Append to target_gtfiles and fix indentation.
3999
4000 2019-05-06 Richard Biener <rguenther@suse.de>
4001
4002 PR tree-optimization/90358
4003 * tree-vect-stmts.c (get_group_load_store_type): Properly
4004 detect unused upper half of load.
4005 (vectorizable_load): Likewise.
4006
4007 2019-05-06 Richard Biener <rguenther@suse.de>
4008
4009 PR tree-optimization/88828
4010 * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
4011 (simplify_vector_constructor): ...here. Handle constants in
4012 the constructor.
4013
4014 2019-05-06 Richard Biener <rguenther@suse.de>
4015
4016 PR tree-optimization/90328
4017 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
4018 * tree-data-ref.c (dr_may_alias_p): Check whether the clique
4019 is valid in the loop nest before using it.
4020 (initialize_data_dependence_relation): Adjust.
4021 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
4022 loop as loop-nest to dr_may_alias_p.
4023
4024 2019-05-06 Richard Biener <rguenther@suse.de>
4025
4026 * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
4027
4028 2019-05-06 Richard Biener <rguenther@suse.de>
4029
4030 PR tree-optimization/90316
4031 * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
4032 compute target on demand.
4033 (get_continuation_for_phi): Remove code walking stmts to
4034 get to a target virtual operand which could end up being
4035 quadratic.
4036
4037 2019-05-06 Martin Liska <mliska@suse.cz>
4038
4039 PR sanitizer/90312
4040 * config/i386/i386-options.c (ix86_option_override_internal): Error only
4041 when -mabi is selected to a non-default version.
4042
4043 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com>
4044 Martin Liska <mliska@suse.cz>
4045
4046 * Makefile.in: Add lto-dump.texi.
4047 * cgraph.h: Add new functions get_visibility_string and
4048 get_symtab_type_string.
4049 * doc/gcc.texi: Include lto-dump section.
4050 * doc/lto-dump.texi: New file.
4051 * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
4052 (parse_dump_option): Factor out this function.
4053 * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
4054 (parse_dump_option): Export the function.
4055 * symtab.c (symtab_node::get_visibility_string): New function.
4056 (symtab_node::get_symtab_type_string): Likewise.
4057
4058 2019-05-06 Martin Liska <mliska@suse.cz>
4059
4060 * config/i386/i386-builtins.c: New file.
4061 * config/i386/i386-builtins.h: New file.
4062 * config/i386/i386-expand.c: New file.
4063 * config/i386/i386-expand.h: New file.
4064 * config/i386/i386-features.c: New file.
4065 * config/i386/i386-features.h: New file.
4066 * config/i386/i386-options.c: New file.
4067 * config/i386/i386-options.h: New file.
4068 * config.gcc: Add new files into extra_objs and
4069 target_gtfiles.
4070 * config/i386/i386.c: Split content of the file
4071 into newly introduced files.
4072 * config/i386/i386.h: Declare common variables
4073 and macros.
4074 * config/i386/t-i386: Define dependencies for new files.
4075
4076 2019-05-03 Richard Earnshaw <rearnsha@arm.com>
4077
4078 PR target/89400
4079 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
4080 Restrict 'all' variant to 32-bit configurations.
4081 (unaligned_loadhiu): Likewise.
4082 (unaligned_storehi): Likewise.
4083 (unaligned_storesi): Likewise.
4084 (unaligned_loadhis): Disable when compiling for thumb1.
4085
4086 2019-05-03 Marc Glisse <marc.glisse@inria.fr>
4087
4088 PR tree-optimization/90269
4089 * tree-loop-distribution.c (find_seed_stmts_for_distribution):
4090 Ignore clobbers.
4091
4092 2019-05-03 Martin Liska <mliska@suse.cz>
4093
4094 * hash-map.h: Add is_empty function.
4095 * hash-set.h: Likewise.
4096 * hash-table.h: Likewise.
4097 * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
4098 elements () == 0 (and similar usages).
4099 * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
4100 * gimplify.c (gimplify_bind_expr): Likewise.
4101 (gimplify_switch_expr): Likewise.
4102 * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
4103 * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
4104 * postreload-gcse.c (dump_hash_table): Likewise.
4105 (gcse_after_reload_main): Likewise.
4106 * predict.c (combine_predictions_for_bb): Likewise.
4107 * tree-parloops.c (reduction_phi): Likewise.
4108 (separate_decls_in_region): Likewise.
4109 (transform_to_exit_first_loop): Likewise.
4110 (gen_parallel_loop): Likewise.
4111 (gather_scalar_reductions): Likewise.
4112 (try_create_reduction_list): Likewise.
4113 * var-tracking.c (dump_vars): Likewise.
4114 (emit_notes_for_changes): Likewise.
4115 (vt_emit_notes): Likewise.
4116
4117 2019-05-03 Richard Biener <rguenther@suse.de>
4118
4119 PR tree-optimization/90316
4120 * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
4121 before running VN.
4122
4123 2019-05-03 Richard Biener <rguenther@suse.de>
4124
4125 * tree-vect-stmts.c (get_group_load_store_type): Avoid
4126 peeling for gaps by loading only lower halves of vectors
4127 if possible.
4128 (vectorizable_load): Likewise.
4129
4130 2019-05-03 Richard Biener <rguenther@suse.de>
4131
4132 PR middle-end/89518
4133 * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
4134
4135 2019-05-03 Richard Biener <rguenther@suse.de>
4136
4137 PR middle-end/87314
4138 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
4139 Handle STRING_CST vs DECL or STRING_CST.
4140
4141 2019-05-03 Richard Biener <rguenther@suse.de>
4142
4143 PR tree-optimization/88963
4144 * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
4145 vector loads feeding only BIT_FIELD_REFs to component
4146 loads. Rewrite stores fed by CONSTRUCTORs to component
4147 stores.
4148
4149 2019-05-03 Jakub Jelinek <jakub@redhat.com>
4150
4151 * opts.h (finish_options): Remove lang_mask argument.
4152 (print_help, help_option_argument): Declare.
4153 * opts.c (print_help): Remove forward declaration, no longer static.
4154 (finish_options): Remove lang_mask argument, don't call print_help
4155 here.
4156 * opts-global.c (decode_options): Adjust finish_option caller, call
4157 print_help here.
4158
4159 PR tree-optimization/90303
4160 * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
4161 TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
4162
4163 2019-05-03 Richard Biener <rguenther@suse.de>
4164
4165 PR tree-optimization/89698
4166 * gimple-fold.c (canonicalize_constructor_val): Early out
4167 for constants, handle unfolded INTEGER_CSTs as they appear in
4168 C++ virtual table ctors.
4169
4170 2019-05-03 Richard Biener <rguenther@suse.de>
4171
4172 * passes.c (execute_function_todo): Remove dead code.
4173
4174 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
4175
4176 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
4177 the internal register number, for any "real" register.
4178
4179 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
4180
4181 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
4182 correct numbers for TFHAR, TFIAR, TEXASR.
4183
4184 2019-05-02 Richard Biener <rguenther@suse.de>
4185
4186 PR tree-optimization/89653
4187 * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
4188 update-address-taken before the pass.
4189 * passes.def (pass_tree_loop_init): Put comment before it.
4190
4191 2019-05-02 Richard Biener <rguenther@suse.de>
4192
4193 PR tree-optimization/89509
4194 * tree-ssa-structalias.c (compute_dependence_clique): Look
4195 at the first subvar when determining whether it is restrict.
4196
4197 2019-05-02 Richard Biener <rguenther@suse.de>
4198
4199 PR tree-optimization/90273
4200 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
4201 useless debug stmts.
4202
4203 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com>
4204
4205 * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
4206 ACLE branch.
4207 * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
4208 SVE ACLE branch.
4209 * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
4210 VEC_COND_EXPR be inserted to emulate a conditional internal function.
4211 (build_vect_cond_expr): Emit the VEC_COND_EXPR.
4212 (vectorizable_reduction): Use the functions above to vectorize in a
4213 fully masked loop codes that don't have a conditional internal
4214 function.
4215
4216 2019-05-02 Martin Liska <mliska@suse.cz>
4217
4218 * cgraphclones.c: Call valid_attribute_p with 1 for
4219 target_clone.
4220 * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
4221 it's for target attribute.
4222 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
4223 Add new boolean argument.
4224 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
4225 Likewise.
4226 (ix86_valid_target_attribute_tree): Pass target_clone_attr
4227 to ix86_valid_target_attribute_inner_p.
4228 (ix86_valid_target_attribute_p): Pass flags argument to
4229 ix86_valid_target_attribute_inner_p.
4230 (get_builtin_code_for_version): Use 0 as it's target attribute.
4231
4232 2019-05-02 Martin Liska <mliska@suse.cz>
4233
4234 * gcc.c (process_command): Add dummy file only
4235 if n_infiles == 0.
4236 * opts-global.c (decode_options): Pass lang_mask.
4237 * opts.c (print_help): New function.
4238 (finish_options): Print --help if help_option_argument
4239 is set.
4240 (common_handle_option): Factor out content of OPT__help_
4241 into print_help.
4242 * opts.h (finish_options): Add new argument.
4243
4244 2019-05-02 Martin Liska <mliska@suse.cz>
4245
4246 PR target/88809
4247 * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
4248 With -minline-all-stringops use inline expansion using 4B loop.
4249 * doc/invoke.texi: Document the change of
4250 -minline-all-stringops.
4251
4252 2019-05-01 Jeff Law <law@redhat.com>
4253
4254 PR tree-optimization/88797
4255 * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
4256 PHI feeds a conditional on the RHS of an assignment.
4257
4258 2019-04-30 Andrew Waterman <andrew@sifive.com>
4259 Jim Wilson <jimw@sifive.com>
4260
4261 * config/riscv/constraints.md (L): New.
4262 * config/riscv/predicates.md (lui_operand): New.
4263 (sfb_alu_operand): New.
4264 * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
4265 * config/riscv/riscv.c (riscv_expand_conditional_move): New.
4266 * config/riscv/riscv.h (TARGET_SFB_ALU): New.
4267 * config/riscv/risc.md (type): Add sfb_alu.
4268 (branch<mode>): Renamed from branch_order<mode>. Change predicate for
4269 operand 3 to reg_or_0_operand. In output string, change %3 to %z3.
4270 (branch_zero<mode>): Delete.
4271 (mov<mode>cc): New.
4272 (mov<GPR:mode><X:mode>cc): Likewise.
4273 * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses.
4274
4275 2019-04-30 Nathan Sidwell <nathan@acm.org>
4276
4277 * tree.h (MARK_TS_EXP): New.
4278
4279 2019-04-30 Martin Liska <mliska@suse.cz>
4280
4281 * opts.c (enable_warning_as_error): Provide hints
4282 for unknown options.
4283
4284 2019-04-30 Martin Liska <mliska@suse.cz>
4285
4286 PR debug/90288
4287 * doc/invoke.texi: Add missing dash for gas-locview-support
4288 and gno-as-locview-support.
4289
4290 2019-04-30 Jakub Jelinek <jakub@redhat.com>
4291
4292 PR target/89093
4293 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
4294 whitespace at the start of target attribute string.
4295
4296 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4297
4298 PR target/86538
4299 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
4300 Define __ARM_FEATURE_ATOMICS.
4301
4302 2019-04-30 Martin Liska <mliska@suse.cz>
4303
4304 * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
4305 into built_in_function enum. Remove code for endp == 2 and
4306 use BUILT_IN_* constants.
4307 (gimple_fold_builtin): Call the function with fcode.
4308
4309 2019-04-30 Martin Liska <mliska@suse.cz>
4310
4311 * config/i386/i386.c (ix86_builtin_reciprocal): Cast
4312 DECL_FUNCTION_CODE into ix86_builtins enum before
4313 the switch statement.
4314
4315 2019-04-30 Jakub Jelinek <jakub@redhat.com>
4316
4317 PR tree-optimization/89475
4318 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
4319 calls.
4320
4321 2019-04-30 Martin Liska <mliska@suse.cz>
4322
4323 PR translation/90274
4324 * opts.c (print_filtered_help): Wrap string in _(...).
4325
4326 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com>
4327
4328 PR tree-optimization/90240
4329 Revert:
4330 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
4331
4332 PR tree-optimization/90078
4333 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
4334 checks for infinite_cost overflow.
4335
4336 2019-04-29 Jeff Law <law@redhat.com>
4337
4338 * passes.def: Move -Wrestrict pass after copy propagation.
4339
4340 2019-04-29 Maya Rashish <coypu@sdf.org>
4341
4342 * config.gcc (default_gnu_indirect_function): Default to yes
4343 for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
4344 sparc*-*-netbsd*, x86_64-*-netbsd*.
4345
4346 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru>
4347
4348 * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
4349 where cond2 is NE_EXPR.
4350 (is_value_included_in): Update comment.
4351
4352 2019-04-29 Richard Biener <rguenther@suse.de>
4353
4354 PR tree-optimization/90278
4355 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
4356 EH on comparison simplification.
4357
4358 2019-04-29 Jason Merrill <jason@redhat.com>
4359
4360 PR c++/82081 - tail call optimization breaks noexcept
4361 * tree-tailcall.c (find_tail_calls): Don't turn a call from a
4362 nothrow function to a might-throw function into a tail call.
4363
4364 2019-04-29 Richard Sandiford <richard.sandiford@arm.com>
4365
4366 * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
4367 (DDR_INNER_LOOP): Likewise.
4368 * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
4369 (initialize_data_dependence_relation): Likewise.
4370 (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
4371
4372 2019-04-29 Jakub Jelinek <jakub@redhat.com>
4373
4374 PR rtl-optimization/90257
4375 * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
4376 return value.
4377
4378 Revert the revert:
4379 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
4380
4381 PR target/90178
4382 Revert:
4383 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
4384
4385 Revert the revert:
4386 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
4387
4388 Revert:
4389 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
4390
4391 * lra-spills.c (lra_final_code_change): Remove useless move insns.
4392
4393 2019-04-29 Richard Biener <rguenther@suse.de>
4394
4395 * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
4396 rhs issue a reset.
4397
4398 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org>
4399
4400 * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h,
4401 varasm.h, and netbsd-protos.h.
4402
4403 2019-04-27 Uroš Bizjak <ubizjak@gmail.com>
4404
4405 PR target/89261
4406 * config/i386/i386-protos.h (ix86_data_alignment): Change
4407 the second argument type to unsigned int.
4408 * config/i386/i386.c (ix86_data_alignment): Change "align"
4409 argument type to unsigned int.
4410
4411 2019-04-27 Martin Liska <mliska@suse.cz>
4412
4413 PR middle-end/90258
4414 * opt-suggestions.c (option_proposer::build_option_suggestions):
4415 When get_valid_option_values returns empty values, add the
4416 misspelling candidate.
4417
4418 2019-04-26 Jim Wilson <jimw@sifive.com>
4419
4420 * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
4421 parameter.
4422 * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
4423 Pass orig_mode to riscv_build_integer.
4424 (riscv_split_integer): Pass mode to riscv_move_integer.
4425 (riscv_legitimize_const_move): Likewise.
4426 (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
4427 promoted_mode. Replace force_reg call with code to load constant into
4428 promoted reg and then subreg it for the store.
4429 * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
4430 riscv_move_integer.
4431
4432 2018-04-26 Eugene Sharygin <eush@ispras.ru>
4433
4434 * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
4435 corrupt codes.
4436
4437 2019-04-26 Richard Sandiford <richard.sandiford@arm.com>
4438
4439 * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
4440 commentary about the encoding of precision.
4441
4442 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org>
4443
4444 * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
4445 * config/i386/t-freebsd64: New file.
4446 * config.gcc: Add the t-freebsd64 for multilib support.
4447
4448 2019-04-25 Uroš Bizjak <ubizjak@gmail.com>
4449
4450 * doc/extend.texi (vector_size): Add missing comma after @xref.
4451
4452 2019-04-25 Jakub Jelinek <jakub@redhat.com>
4453
4454 * BASE-VER: Set to 10.0.0.
4455
4456 2019-04-25 Richard Biener <rguenther@suse.de>
4457
4458 PR middle-end/89765
4459 * gimplify.c (gimplify_expr): Avoid turning a lvalue
4460 VIEW_CONVERT_EXPR into one operating on an rvalue.
4461
4462 2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
4463
4464 PR target/89929
4465 * config/i386/i386.c (feature_priority): Moved to file scope.
4466 (processor_features): Likewise.
4467 (processor_model): Likewise.
4468 (_arch_names_table): Likewise.
4469 (arch_names_table): Likewise.
4470 (_feature_list): Removed.
4471 (feature_list): Likewise.
4472 (_isa_names_table): Moved to file scope. Add priority.
4473 (isa_names_table): Likewise.
4474 (get_builtin_code_for_version): Replace feature_list with
4475 isa_names_table. Update error message for P_ZERO priority.
4476
4477 2019-04-25 Richard Biener <rguenther@suse.de>
4478
4479 * tree-pass.h (make_pass_phi_only_cprop): Remove.
4480 * timevar.def (TV_TREE_PHI_CPROP): Likewise.
4481
4482 2019-04-24 Jeff Law <law@redhat.com>
4483
4484 PR tree-optimization/90037
4485 * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
4486 * passes.def: Replace all instance of phi-only cprop with the
4487 lattice propagator. Move propagation pass from after erroneous
4488 path isolation to before erroneous path isolation.
4489 * tree-ssa-phionlycprop.c: Remove.
4490
4491 2019-04-24 Richard Biener <rguenther@suse.de>
4492
4493 PR middle-end/90213
4494 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
4495 by size and BITS_PER_UNIT on poly-wide-ints.
4496
4497 2019-04-25 Richard Biener <rguenther@suse.de>
4498
4499 PR middle-end/90194
4500 * match.pd: Add pattern to simplify view-conversion of an
4501 empty constructor.
4502
4503 2019-04-24 Clement Chigot <clement.chigot@atos.net>
4504
4505 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
4506 OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
4507 for Go on 32 bit AIX.
4508 * config/rs6000/aix72.h: Likewise.
4509
4510 2019-04-24 Jakub Jelinek <jakub@redhat.com>
4511
4512 PR target/90193
4513 * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
4514 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
4515
4516 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
4517
4518 PR target/89952
4519 * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
4520 from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also
4521 for restored hard frame pointer.
4522 (s390_sched_dependencies_evaluation): Implement new target hook.
4523 (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
4524
4525 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com>
4526
4527 * config/arc/arc-options.def: Fix typos and spelling mistakes.
4528 * config/arc/arc.c (arc_init): Cleanup warning message.
4529 (arc_override_options): Likewise.
4530
4531 2019-04-24 Jakub Jelinek <jakub@redhat.com>
4532
4533 PR target/90187
4534 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
4535 a register if both if_true and if_false are MEMs.
4536
4537 PR tree-optimization/90208
4538 * tree-cfg.c (remove_bb): Move forced labels from removed bbs
4539 after labels of new_bb, not before them.
4540
4541 PR tree-optimization/90211
4542 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
4543 which are not SSA_NAMEs.
4544
4545 2018-04-23 Sudakshina Das <sudi.das@arm.com>
4546
4547 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
4548 AArch64.
4549 (aarch64_file_end_indicate_exec_stack): Add gnu note section.
4550
4551 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
4552
4553 PR rtl-optimization/87979
4554 * modulo-sched.c (sms_schedule): Start ii value "mii" should
4555 not equal zero.
4556
4557 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
4558
4559 PR rtl-optimization/84032
4560 * modulo-sched.c (ps_insn_find_column): Change condition so that
4561 branch will always be the last insn in a row inside partial
4562 schedule.
4563
4564 2019-04-23 Richard Biener <rguenther@suse.de>
4565
4566 PR debug/90131
4567 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
4568 dest_single_pred_p argument.
4569 (remove_forwarder_block): Adjust.
4570 (remove_forwarder_block_with_phi): Likewise.
4571
4572 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4573 Bernd Edlinger <bernd.edlinger@hotmail.de>
4574 Jakub Jelinek <jakub@redhat.com>
4575
4576 PR target/89093
4577 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
4578 if used with general-regs-only.
4579 (arm_conditional_register_usage): Don't add non-general regs if
4580 general-regs-only.
4581 (arm_valid_target_attribute_rec): Handle general-regs-only.
4582 * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
4583 general-regs-only.
4584 (TARGET_HARD_FLOAT_SUB): Define.
4585 (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
4586 (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
4587 (TARGET_REALLY_IWMMXT2): Likewise.
4588 * config/arm/arm.opt: Add -mgeneral-regs-only.
4589 * doc/extend.texi: Document ARM general-regs-only target.
4590 * doc/invoke.texi: Document ARM -mgeneral-regs-only.
4591
4592 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
4593
4594 PR tree-optimization/90078
4595 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
4596 checks for infinite_cost overflow.
4597
4598 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
4599
4600 PR tree-optimization/90021
4601 * tree-chrec.c (evolution_function_is_univariate_p): New parameter
4602 and check univariate against it.
4603 * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
4604 * tree-data-ref.c (add_other_self_distances): Pass new argument.
4605
4606 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
4607
4608 PR target/90178
4609 Revert:
4610 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
4611
4612 Revert the revert:
4613 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
4614
4615 Revert:
4616 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
4617
4618 * lra-spills.c (lra_final_code_change): Remove useless move insns.
4619
4620 2019-04-21 Iain Sandoe <iain@sandoe.co.uk>
4621
4622 * config/rs6000/rs6000.md (group_end_nop): Emit insn register
4623 names using operand format, rather than hard-wired.
4624 (speculation_barrier): Likewise.
4625
4626 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org>
4627
4628 PR tree-optimization/88055
4629 * tree-call-cdce.c (comparison_code_if_no_nans): New function.
4630 (gen_one_condition): Use it if !HONOR_NANS.
4631
4632 2019-04-19 Jakub Jelinek <jakub@redhat.com>
4633
4634 PR middle-end/90139
4635 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
4636 assign_temp instead of gen_reg_rtx.
4637
4638 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org>
4639
4640 PR translation/90118
4641 * config/aarch64/aarch64.c (aarch64_override_options_internal):
4642 Add missing space before %<.
4643
4644 2019-04-18 Peter Bergner <bergner@linux.ibm.com>
4645
4646 PR rtl-optimization/87871
4647 * ira-lives.c (make_object_dead): Don't add conflicts to
4648 TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
4649
4650 2019-04-18 Martin Sebor <msebor@redhat.com>
4651
4652 PR middle-end/89797
4653 * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
4654 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
4655 assuming type size fits in SHWI.
4656
4657 2019-04-18 Jan Hubicka <hubicka@ucw.cz>
4658
4659 PR ipa/85051
4660 * ipa-inline.c (flatten_function): New parameter UPDATE.
4661 (ipa_inline, early_inliner): Use it.
4662
4663 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
4664
4665 * fold-const.c (int_const_binop): Return early on failure.
4666
4667 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
4668
4669 PR middle-end/85164
4670 * combine.c (force_int_to_mode): Cast the argument rather than
4671 the result of known_alignment.
4672 * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
4673
4674 2019-04-18 Richard Biener <rguenther@suse.de>
4675
4676 PR debug/90131
4677 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
4678 out from ...
4679 (remove_forwarder_block): ... here.
4680 (remove_forwarder_block_with_phi): Also move debug stmts here.
4681
4682 2019-04-18 Jakub Jelinek <jakub@redhat.com>
4683
4684 PR translation/79183
4685 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
4686 inform where appropriate.
4687
4688 2019-04-18 Richard Biener <rguenther@suse.de>
4689
4690 * tree.c (get_qualified_type): Put found type variants at the
4691 head of the variant list.
4692
4693 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org>
4694
4695 * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
4696
4697 2019-04-17 Hongtao Liu <hongtao.liu@intel.com>
4698
4699 PR target/90125
4700 * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
4701 _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
4702 _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
4703 _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
4704 _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
4705
4706 2019-04-17 Peter Bergner <bergner@linux.ibm.com>
4707
4708 * ira-conflicts.c (print_allocno_conflicts): Always print something,
4709 even for allocno's with no conflicts.
4710 (print_conflicts): Print an extra newline.
4711
4712 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
4713
4714 * auto-inc-dec.c (attempt_change): Set the alignment of the
4715 temporary memory to that of the original.
4716
4717 2019-04-17 Joao Moreira <jmoreira@suse.de>
4718
4719 * targhooks.c (default_print_patchable_function_entry): Emit
4720 __patchable_function_entries section with writable flags to allow
4721 relocation resolution.
4722
4723 2019-04-17 Jonny Grant <jg@jguk.org>
4724
4725 * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
4726
4727 2019-04-17 Jakub Jelinek <jakub@redhat.com>
4728
4729 PR middle-end/90095
4730 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
4731 on lowpart SUBREGs.
4732
4733 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com>
4734
4735 * config/arc/arc.c (arc_init): Format diagnostic string.
4736 (arc_override_options): Likewise.
4737 (check_if_valid_regno_const): Likewise.
4738 (arc_reorg): Likewise.
4739
4740 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
4741
4742 PR target/17108
4743 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
4744 name.
4745 (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
4746 name.
4747 * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
4748 (*movdi_update1): Use Pmode.
4749 (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
4750 (movdi_<mode>_update_stack): Rename to ...
4751 (movdi_update_stack): ... this. Fix comment. Change condition. Don't
4752 use Pmode.
4753 (*movsi_update1): Use Pmode.
4754 (*movsi_update2): Use Pmode.
4755 (movsi_update): Rename to ...
4756 (movsi_<mode>_update): ... this. Use Pmode.
4757 (movsi_update_stack): Fix condition.
4758 (*movhi_update1): Use Pmode. Fix argument to
4759 avoiding_indexed_address_p.
4760 (*movhi_update2): Ditto.
4761 (*movhi_update3): Ditto.
4762 (*movhi_update4): Ditto.
4763 (*movqi_update1): Ditto.
4764 (*movqi_update2): Ditto.
4765 (*movqi_update3): Ditto.
4766 (*movsf_update1, *movdf_update1): Merge, rename to...
4767 (*mov<mode>_update1): This. Use Pmode. Fix argument to
4768 avoiding_indexed_address_p. Add "size" attribute.
4769 (*movsf_update2, *movdf_update2): Merge, rename to...
4770 (*mov<mode>_update2): This. Ditto.
4771 (*movsf_update3): Use Pmode. Fix argument to
4772 avoiding_indexed_address_p.
4773 (*movsf_update4): Ditto.
4774 (allocate_stack): Simplify condition. Adjust pattern names.
4775
4776 2019-04-17 Jakub Jelinek <jakub@redhat.com>
4777
4778 PR target/89093
4779 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
4780 whitespace at the start of target attribute string.
4781
4782 2019-04-16 Pat Haugen <pthaugen@us.ibm.com>
4783
4784 PR target/84369
4785 * config/rs6000/power9.md: Add store forwarding bypass.
4786
4787 2019-04-16 Alexandre Oliva <aoliva@redhat.com>
4788
4789 PR debug/89528
4790 * valtrack.c (dead_debug_insert_temp): Reset debug references
4791 to the return value of a call being removed.
4792
4793 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
4794
4795 * config/arc/arc-protos.h (arc_register_move_cost): Remove.
4796 * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
4797 implement target hook.
4798 (arc_memory_move_cost): New function.
4799 (TARGET_REGISTER_MOVE_COST): Define.
4800 (TARGET_MEMORY_MOVE_COST): Likewise.
4801 * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
4802 (MEMORY_MOVE_COST): Likewise.
4803
4804 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
4805
4806 * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
4807 (sibcall_value_insn): Likewise.
4808 * config/arc/constraints.md (Rs5): Remove.
4809
4810 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
4811
4812 * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
4813 for last two fake registers.
4814 (arc_conditional_register_usage): Make sure fake frame and arg
4815 pointer regs are in general regs class.
4816 (FRAME_POINTER_MASK): Remove.
4817 (RETURN_ADDR_MASK): Remove.
4818 (arc_must_save_register): Use hard frame regnum.
4819 (frame_restore_reg): Use hard_frame_pointer_rtx.
4820 (arc_save_callee_saves): Likewise.
4821 (arc_restore_callee_saves): Likewise.
4822 (arc_save_callee_enter): Likewise.
4823 (arc_restore_callee_leave): Likewise.
4824 (arc_save_callee_milli): Likewise.
4825 (arc_eh_return_address_location): Likewise.
4826 (arc_check_multi): Use hard frame regnum.
4827 (arc_can_eliminate): Likewise.
4828 * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
4829 for register allocator.
4830 (REG_CLASS_CONTENTS): Update GENERAL_REGS.
4831 (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
4832 (FRAME_POINTER_REGNUM): Change it to a fake register.
4833 (HARD_FRAME_POINTER_REGNUM): Defined.
4834 (ARG_POINTER_REGNUM): Change it to a new fake register.
4835 (ELIMINABLE_REGS): Update.
4836 (REGISTER_NAMES): Update names.
4837 * config/arc/arc.md (LP_START): Remove.
4838 (LP_END): Likewise.
4839 (shift_si3_loop): Update pattern.
4840
4841 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
4842
4843 * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
4844 to avoid delay slot scheduling.
4845 (arc_must_save_register): Don't save SP.
4846 * config/arc/arc.md (stack_tie): Remove.
4847 (UNSPEC_ARC_STKTIE): Likewise.
4848
4849 2019-04-16 Kito Cheng <kito.cheng@gmail.com>
4850 Shiva Chen <shiva0217@gmail.com>
4851
4852 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
4853 code gen with large shift amount.
4854
4855 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
4856
4857 * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
4858 subreg.
4859
4860 2019-04-16 Jakub Jelinek <jakub@redhat.com>
4861
4862 PR target/90096
4863 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
4864 print -m64/-mx32/-m32 if it is true.
4865 (ix86_debug_options, ix86_function_specific_print): Pass true as
4866 ADD_ABI_P to ix86_target_string.
4867 (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
4868 ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
4869 or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
4870
4871 PR rtl-optimization/90082
4872 * dce.c (can_delete_call): New function.
4873 (deletable_insn_p, mark_insn): Use it.
4874
4875 PR tree-optimization/90090
4876 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
4877 throw internally.
4878 (is_division_by_square): Likewise. Formatting fix.
4879
4880 2019-04-16 Richard Biener <rguenther@suse.de>
4881
4882 PR tree-optimization/56049
4883 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
4884 equality check if alias-set zero will prevail.
4885
4886 2019-04-15 Jeff Law <law@redhat.com>
4887
4888 * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
4889 size and alignment as unsigned.
4890
4891 2019-04-15 Richard Biener <rguenther@suse.de>
4892
4893 PR debug/90074
4894 * tree-loop-distribution.c (destroy_loop): Preserve correct
4895 debug info.
4896
4897 2019-04-15 Richard Biener <rguenther@suse.de>
4898
4899 PR tree-optimization/90071
4900 * tree-ssa-reassoc.c (init_range_entry): Do not pick up
4901 abnormal operands from def stmts.
4902
4903 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org>
4904
4905 PR rtl-optimization/89794
4906 * combine.c (count_auto_inc): New function.
4907 (try_combine): Count how many auto_inc expressions there were in the
4908 original instructions. Ensure we have the same number in the new
4909 instructions. Remove the code that tried to ensure auto_inc side
4910 effects on i1 and i0 are not lost.
4911
4912 2019-04-15 Richard Biener <rguenther@suse.de>
4913
4914 PR ipa/88936
4915 * tree.h (auto_var_p): Declare.
4916 * tree.c (auto_var_p): New function, split out from ...
4917 (auto_var_in_fn_p): ... here.
4918 * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
4919 member.
4920 (new_var_info): Initialize it.
4921 (set_uids_in_ptset): Also set the shadow variable uid if required.
4922 (ipa_pta_execute): Postprocess points-to solutions assigning
4923 shadow variable uids for locals that may reach their containing
4924 function recursively.
4925 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
4926 assert but instead check whether the points-to solution is
4927 a singleton.
4928
4929 2019-04-15 Martin Jambor <mjambor@suse.cz>
4930
4931 PR ipa/pr89693
4932 * cgraph.c (clone_of_p): Loop over clone chain for each step in
4933 the thunk chain.
4934
4935 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
4936
4937 * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
4938
4939 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
4940 Kito Cheng <kito.cheng@gmail.com>
4941 Shiva Chen <shiva0217@gmail.com>
4942
4943 * config/nds32/nds32-md-auxiliary.c
4944 (nds32_legitimize_pic_address): Use new PIC pattern.
4945 (nds32_legitimize_tls_address): Use new TLS pattern.
4946 (nds32_output_symrel): New.
4947 * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
4948 (nds32_alloc_relax_group_id): Ditto.
4949 * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
4950 (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
4951 relax_group_id.
4952 (nds32_group_tls_insn): Ditto.
4953 (nds32_group_float_insns): Ditto.
4954 * config/nds32/nds32.md (tls_le): New.
4955 (sym_got): Ditto.
4956
4957 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com>
4958
4959 * configure: Add nds32 target for dwarf2 debug_line checking.
4960 * configure.ac: Regenerated.
4961
4962 2019-04-14 Jan Hubicka <hubicka@ucw.cz>
4963
4964 PR lto/89358
4965 * ipa-devirt.c (skip_in_fields_list_p): New.
4966 (odr_types_equivalent_p): Use it.
4967
4968 2019-04-13 Jakub Jelinek <jakub@redhat.com>
4969
4970 PR target/89093
4971 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
4972 instead of strncmp when checking for thumb and arm. Formatting fixes.
4973
4974 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
4975
4976 * doc/install.texi: Document --with-target-system-zlib.
4977
4978 2019-04-12 Martin Sebor <msebor@redhat.com>
4979
4980 PR c/88383
4981 PR c/89288
4982 PR c/89798
4983 PR c/89797
4984 * targhooks.c (default_vector_alignment): Avoid assuming
4985 argument fits in SHWI.
4986 * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
4987 a shift expression.
4988 * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
4989
4990 2019-04-12 Jakub Jelinek <jakub@redhat.com>
4991
4992 PR rtl-optimization/89965
4993 * dce.c: Include rtl-iter.h.
4994 (struct check_argument_load_data): New type.
4995 (check_argument_load): New function.
4996 (find_call_stack_args): Check for loads from stack slots still tracked
4997 in sp_bytes and punt if any is found.
4998
4999 * config/mips/loongson-mmiintrin.h: Fix up #error message.
5000
5001 2019-04-12 Jan Hubicka <hubicka@ucw.cz>
5002
5003 * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
5004 * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
5005
5006 2019-04-12 Martin Liska <mliska@suse.cz>
5007
5008 PR middle-end/89970
5009 * multiple_target.c (create_dispatcher_calls): Wrap ifunc
5010 in error message.
5011 (separate_attrs): Handle multiple 'default's.
5012 (expand_target_clones): Rework error handling code.
5013
5014 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
5015
5016 PR target/87532
5017 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
5018 mode of vector rather than mode of destination for move instruction.
5019 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
5020 Use QI inner mode with V16QI vector mode.
5021
5022 2019-04-12 Jakub Jelinek <jakub@redhat.com>
5023
5024 PR target/52726
5025 * config/tilepro/tilepro.c (tilepro_print_operand): Use just
5026 "invalid %%t operand" in output_operand_lossage message.
5027
5028 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
5029
5030 * config/s390/predicates.md (permute_pattern_operand): New
5031 predicate.
5032 * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
5033 operand for the permute pattern.
5034 ("*vec_perm<mode>"): New insn definition.
5035 ("bswap<mode>"): Generate the permute pattern operand in the
5036 expander and perform the operand reloads for pre arch13 level
5037 already.
5038 ("*bswap<mode>_emu"): Rename to ...
5039 ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
5040 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
5041 Add the USE operand for the permute pattern.
5042 ("*vec_set_bswap_vec<mode>"): Likewise.
5043
5044 2019-04-12 Jakub Jelinek <jakub@redhat.com>
5045
5046 PR c/89946
5047 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
5048 and gcc_unreachable if it fails, just call tree_to_uhwi which
5049 verifies that too. Test TREE_CHAIN instead of list_length > 1.
5050 Start warning message with a lower-case letter. Formatting fixes.
5051
5052 PR rtl-optimization/90026
5053 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
5054 successors, look for BARRIERs inside of the whole BB_FOOTER chain
5055 rather than just at the start of it. If e->src BB_FOOTER is not NULL
5056 in cfglayout mode, use emit_barrier_after_bb.
5057
5058 2018-04-11 Steve Ellcey <sellcey@marvell.com>
5059
5060 PR rtl-optimization/87763
5061 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
5062 New Instruction.
5063
5064 2019-04-11 Tom de Vries <tdevries@suse.de>
5065
5066 * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
5067 max macro using statement expression.
5068
5069 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
5070
5071 * xcoffout.h (xcoff_private_rodata_section_name): Declare.
5072 * xcoffout.c (xcoff_private_rodata_section_name): Define.
5073 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
5074 read_only_private_data_section using xcoff_private_rodata_section_name.
5075 (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
5076
5077 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org>
5078
5079 PR target/90016
5080 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
5081
5082 2019-04-11 Jakub Jelinek <jakub@redhat.com>
5083
5084 PR rtl-optimization/89965
5085 * dce.c (sp_based_mem_offset): New function.
5086 (find_call_stack_args): Use sp_based_mem_offset.
5087
5088 2019-04-11 Jonathan Wakely <jwakely@redhat.com>
5089
5090 * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
5091
5092 2019-04-11 Richard Biener <rguenther@suse.de>
5093
5094 PR tree-optimization/90020
5095 * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
5096 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
5097 * tree-ssa-pre.c (compute_avail): Use it to not put
5098 possibly trapping references after a call that might not
5099 return into EXP_GEN.
5100 * gcse.c (compute_hash_table_work): Do not elide
5101 marking a block containing a call if the call might not
5102 return.
5103
5104 2019-04-11 Richard Biener <rguenther@suse.de>
5105
5106 PR tree-optimization/90018
5107 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
5108 Test both SLP and interleaving variants.
5109
5110 2019-04-11 Robin Dapp <rdapp@linux.ibm.com>
5111
5112 * config/s390/8561.md: New file.
5113 * config/s390/driver-native.c (s390_host_detect_local_cpu):
5114 Add arch13 cpu model.
5115 * config/s390/s390-opts.h (enum processor_type): Likewise.
5116 * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
5117 (s390_get_unit_mask): Likewise.
5118 (s390_is_fpd): Likewise.
5119 (s390_is_fxd): Likewise.
5120 * config/s390/s390.h (s390_tune_attr): Likewise.
5121 * config/s390/s390.md: Include arch13 pipeline description.
5122 * config/s390/s390.opt: Add arch13.
5123
5124 2018-04-10 Steve Ellcey <sellcey@marvell.com>
5125
5126 PR rtl-optimization/87763
5127 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
5128 New prototype.
5129 * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
5130 New function.
5131 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
5132 New instruction.
5133 (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
5134 (*aarch64_bfi<GPI:mode>4_noand): Ditto.
5135 (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
5136 (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
5137
5138 2019-04-10 Jonathan Wakely <jwakely@redhat.com>
5139
5140 * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
5141 "Although" in -fipa-icf documentation.
5142
5143 * doc/invoke.texi (Debugging Options): Explicitly state the semantics
5144 of using multiple -g options.
5145
5146 2019-04-10 Martin Liska <mliska@suse.cz>
5147
5148 PR gcov-profile/89959
5149 * doc/gcov.texi: Make documentation of -x option
5150 more precise.
5151
5152 2019-04-10 Richard Biener <rguenther@suse.de>
5153
5154 * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
5155 member.
5156 (DR_GROUP_SAME_DR_STMT): Remove.
5157 * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
5158 * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
5159 replace with assert.
5160 (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
5161 (vect_record_grouped_load_vectors): Remove unreachable code.
5162
5163 2019-04-10 Richard Earnshaw <rearnsha@arm.com>
5164
5165 PR target/90016
5166 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
5167 obsolete reference to N.
5168
5169 2019-04-10 Jakub Jelinek <jakub@redhat.com>
5170
5171 PR middle-end/90025
5172 * expr.c (store_expr): Set properly size on the MEM passed to
5173 clear_storage.
5174
5175 PR c++/90010
5176 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
5177 with strlen in between hostsz-3 and hostsz-1 inclusive when no
5178 translation is needed, and when translation is needed, only append
5179 ... if the string length is hostsz or more bytes long. Avoid using
5180 strncpy or strcat.
5181
5182 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
5183
5184 PR target/90024
5185 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
5186 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
5187 into three.
5188 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
5189 differences directly.
5190 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
5191
5192 2019-04-09 Jakub Jelinek <jakub@redhat.com>
5193
5194 PR translation/90011
5195 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
5196 from diagnostics.
5197 * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
5198 diagnostics.
5199 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
5200 * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
5201 * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
5202 trailing space from -gsplit-dwarf diagnostics.
5203
5204 PR tree-optimization/89998
5205 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
5206 instead of integer_type_node if possible, don't add ranges if return
5207 type is not compatible with int.
5208 * gimple-fold.c (gimple_fold_builtin_sprintf,
5209 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
5210 integer_type_node.
5211
5212 2019-04-09 Martin Liska <mliska@suse.cz>
5213
5214 * Makefile.in: Use GENERATOR_CFLAGS for all generators.
5215 * doc/install.texi: Document the new config.
5216
5217 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
5218
5219 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
5220 use gimple_expr_type for load and store calls. Skip over the
5221 condition argument in a conditional internal function.
5222 Protect use of TREE_INT_CST_LOW.
5223
5224 2019-04-09 Jakub Jelinek <jakub@redhat.com>
5225
5226 PR target/90015
5227 * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
5228 (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove
5229 trailing period from it too.
5230
5231 2019-04-08 wu yuan <wuyuan5@huawei.com>
5232
5233 * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
5234 * config/aarch64/aarch64.md : Add "tsv110.md"
5235 * config/aarch64/tsv110.md: New file.
5236
5237 2019-04-08 Richard Biener <rguenther@suse.de>
5238
5239 PR tree-optimization/90006
5240 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
5241 calls like lrint.
5242
5243 2019-04-08 Andrea Corallo <andrea.corallo@arm.com>
5244
5245 PR target/83033
5246 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
5247 construction.
5248 (fma_root_node): Likewise.
5249 (func_fma_steering): Likewise.
5250
5251 2019-04-08 Jakub Jelinek <jakub@redhat.com>
5252
5253 PR rtl-optimization/89865
5254 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
5255
5256 PR rtl-optimization/89865
5257 * config/i386/i386.md
5258 (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
5259 numbers not to clash with the additional operands[4].
5260 (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
5261 with extra register copy in the middle.
5262
5263 2019-04-08 Martin Liska <mliska@suse.cz>
5264
5265 PR gcov-profile/89961
5266 * doc/gcov.texi: Document data_file.
5267 * gcov.c (generate_results): Add data_info into JSON output.
5268
5269 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
5270
5271 PR tree-optimization/89725
5272 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer
5273 loop's chrec as invariant symbol.
5274 * tree-chrec.h (chrec_contains_symbols): New parameter.
5275 * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
5276 (build_classic_dist_vector_1, add_other_self_distances): Bypass access
5277 function of loops not in DDR's loop_nest.
5278 * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
5279
5280 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
5281
5282 PR target/89623
5283 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
5284 Mask.
5285
5286 2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
5287
5288 PR target/89945
5289 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
5290 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
5291
5292 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com>
5293
5294 * sched-deps.c (sched_macro_fuse_insns): Check return value of
5295 targetm.fixed_condition_code_regs.
5296
5297 2019-04-05 Richard Biener <rguenther@suse.de>
5298
5299 PR debug/89892
5300 PR debug/89905
5301 * tree-cfgcleanup.c (remove_forwarder_block): Always move
5302 debug bind stmts but reset them if they are not valid at the
5303 destination.
5304
5305 2019-04-05 Martin Liska <mliska@suse.cz>
5306
5307 PR translation/89936
5308 * collect-utils.c (collect_execute): Use %< and %>, or %qs in
5309 order to wrap keywords or arguments.
5310 * collect2.c (main): Likewise.
5311 (scan_prog_file): Likewise.
5312 (scan_libraries): Likewise.
5313 * common/config/riscv/riscv-common.c
5314 (riscv_subset_list::parsing_subset_version): Likewise.
5315 (riscv_subset_list::parse_std_ext): Likewise.
5316 * config/aarch64/aarch64.c (aarch64_override_options_internal):
5317 Likewise.
5318 * config/arm/arm.c (arm_option_override): Likewise.
5319 * config/cris/cris.c (cris_print_operand): Likewise.
5320 * config/darwin-c.c (darwin_pragma_options): Likewise.
5321 (darwin_pragma_unused): Likewise.
5322 (darwin_pragma_ms_struct): Likewise.
5323 * config/ft32/ft32.c (ft32_print_operand): Likewise.
5324 * config/i386/i386.c (print_reg): Likewise.
5325 (ix86_print_operand): Likewise.
5326 * config/i386/xm-djgpp.h: Likewise.
5327 * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
5328 * config/m32c/m32c.c (m32c_option_override): Likewise.
5329 * config/msp430/msp430.c (msp430_option_override): Likewise.
5330 * config/nds32/nds32.c (nds32_option_override): Likewise.
5331 * config/nvptx/mkoffload.c (main): Likewise.
5332 * config/rx/rx.c (rx_print_operand): Likewise.
5333 (valid_psw_flag): Likewise.
5334 * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
5335 (vms_pragma_nomember_alignment): Likewise.
5336 (vms_pragma_extern_model): Likewise.
5337 * lto-wrapper.c (compile_offload_image): Likewise.
5338 * omp-offload.c (oacc_parse_default_dims): Likewise.
5339 * symtab.c (symtab_node::verify_base): Likewise.
5340 * tlink.c (recompile_files): Likewise.
5341 (start_tweaking): Likewise.
5342 * tree-profile.c (parse_profile_filter): Likewise.
5343
5344 2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
5345
5346 PR tree-optimization/89956
5347 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
5348 multiple negates of the same value.
5349
5350 2019-04-04 Martin Sebor <msebor@redhat.com>
5351
5352 PR middle-end/89957
5353 PR middle-end/89911
5354 * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
5355 have the same precision since the function crashes otherwise.
5356 * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
5357 has non-zero arguments.
5358
5359 2019-04-04 Martin Sebor <msebor@redhat.com>
5360
5361 PR middle-end/89934
5362 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
5363 out if the number of arguments is less than expected.
5364
5365 2019-04-04 Jeff Law <law@redhat.com>
5366
5367 PR rtl-optimization/89399
5368 * ree.c (combine_set_extension): Use single_set rather than
5369 digging into PATTERN for items on the candidate list.
5370 (combine_reaching_defs): Likewise.
5371
5372 2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
5373
5374 PR rtl-optimization/46590
5375 * loop-invariant.c (find_defs): Move df_remove_problem and
5376 df_process_deferred_rescans to move_invariants.
5377 Move df_live_add_problem and df_live_set_all_dirty calls
5378 to move_invariants.
5379 (move_invariants): Likewise.
5380 (move_loop_invariants): Likewise, making the df_live calls
5381 conditional on -O. Remove the problem again if we added it
5382 locally.
5383
5384 2019-04-03 qing zhao <qing.zhao@oracle.com>
5385
5386 PR tree-optimization/89730
5387 * ipa-inline.c (can_inline_edge_p): Delete the checking for
5388 -flive-patching=inline-only-static.
5389 (can_inline_edge_by_limits_p): Add the checking for
5390 -flive-patching=inline-only-static and grant always_inline
5391 even when -flive-patching=inline-only-static is specified.
5392
5393 2019-04-03 Jeff Law <law@redhat.com>
5394
5395 PR rtl-optimization/81025
5396 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
5397
5398 2019-04-03 Richard Biener <rguenther@suse.de>
5399
5400 PR tree-optimization/84101
5401 * tree-vect-stmts.c: Include explow.h for hard_function_value,
5402 regs.h for hard_regno_nregs.
5403 (cfun_returns): New helper.
5404 (vect_model_store_cost): When vectorizing a store to a decl
5405 we return and the function ABI returns in a multi-reg location
5406 account for the possible spilling that will happen.
5407
5408 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com>
5409
5410 * config/s390/s390.c (s390_legitimate_address_p): Reject long
5411 displacement addresses for vector mode operands.
5412
5413 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com>
5414
5415 * config/arc/arc.c (GMASK_LEN): Define.
5416 (arc_restore_callee_saves): Restore first blink when
5417 !optimize_size.
5418
5419 2019-04-03 Sudakshina Das <sudi.das@arm.com>
5420
5421 * doc/extend.texi: Add deprecated comment on sign-return-address
5422 function attribute and add mbranch-protection.
5423 * doc/invoke.texi: Add bti to the options for mbranch-protection.
5424
5425 2019-04-03 Richard Biener <rguenther@suse.de>
5426
5427 PR lto/89896
5428 * lto-wrapper.c (run_gcc): Avoid implicit rules making
5429 the all target phony.
5430
5431 2019-04-02 Uroš Bizjak <ubizjak@gmail.com>
5432
5433 PR target/89902
5434 PR target/89903
5435 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
5436 Return false for variable DImode shifts.
5437 (dimode_scalar_chain::compute_convert_gain): Do not handle
5438 register count operand in variable DImode shifts.
5439 (dimode_scalar_chain::make_vector_copies): Remove support to copy
5440 count argument of a variable shift instruction to a vector register.
5441 (dimode_scalar_chain::convert_reg): Remove support to convert
5442 count argument of a variable shift instruction.
5443
5444 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
5445
5446 PR rtl-optimization/84206
5447 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
5448 iterating over loop headers.
5449
5450 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
5451
5452 PR rtl-optimization/85876
5453 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
5454 beyond the original fence.
5455
5456 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com>
5457
5458 * config.gcc: Mark spu* targets as deprecated/obsolete.
5459
5460 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5461
5462 * config/s390/s390-builtin-types.def: New builtin function type
5463 definitions. Remove unused types.
5464 * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
5465 (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
5466 (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
5467 overloaded builtins.
5468 (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
5469 (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
5470 * config/s390/vecintrin.h (vec_float): New builtin macro definition.
5471 (vec_double, vec_signed, vec_unsigned): Define to use the new
5472 overloaded builtins.
5473 * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
5474 Remove expanders.
5475
5476 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5477
5478 * config/s390/s390-builtin-types.def: New builtin function type
5479 definitions.
5480 * config/s390/s390-builtins.def (s390_vec_search_string_cc)
5481 (s390_vec_search_string_until_zero_cc): New overloaded builtins.
5482 (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
5483 (s390_vstrszh, s390_vstrszf): New low-level builtins.
5484 * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
5485 constant definitions.
5486 * config/s390/vecintrin.h (vec_search_string_cc)
5487 (vec_search_string_until_zero_cc): New builtin name definitions.
5488 * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
5489 expanders.
5490 ("vec_vstrs<mode>"): New insn definition.
5491
5492 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5493
5494 * config/s390/s390-builtin-types.def: Add new builtin function
5495 types.
5496 * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
5497 New overloaded builtins.
5498 (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and
5499 s390_vsrd.
5500 * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
5501 (UNSPEC_VEC_SLDBYTE): ... this.
5502 (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
5503 * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
5504 definitions.
5505 * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
5506 Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
5507 ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
5508
5509 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5510
5511 ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
5512 New insn definition.
5513 * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
5514 * config/s390/vector.md (V_HW_HSD): ... here.
5515
5516 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5517
5518 * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
5519 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
5520 ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
5521 ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
5522 New insn definitions.
5523
5524 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5525
5526 * config/s390/s390-builtin-types.def: Add new builtin function type.
5527 * config/s390/s390-builtins.def: Add overloaded builtin
5528 s390_vec_reve and low-level builtins for s390_vler and s390_vster.
5529 * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
5530 * config/s390/vecintrin.h (vec_reve): New builtin name definition.
5531 * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
5532 ("eltswap<mode>"): New expander.
5533 ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
5534 insn definitions.
5535
5536 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5537
5538 * config/s390/s390-builtin-types.def: Add new builtin function types.
5539 * config/s390/s390-builtins.def: Add overloaded builtin
5540 s390_vec_revb. Add low-level builtins for vlbr and vstbr
5541 instructions.
5542 * config/s390/vecintrin.h (vec_revb): New builtin name definition.
5543 * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
5544 ("bswap<mode>"): New expander.
5545 ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
5546
5547 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5548
5549 * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
5550 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
5551 vector builtin version number in __VEC__.
5552
5553 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5554
5555 * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
5556 iterators.
5557 (SFSI): New mode attribute.
5558 ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
5559 ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
5560 rename to ...
5561 ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
5562 ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
5563 ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
5564 ("floatsi<mode>2"): Add wcefb instruction.
5565
5566 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5567
5568 * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
5569 * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
5570 mode iterators.
5571 ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
5572 ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
5573 support 32 bit fp-int conversions. Rename to ...
5574 ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
5575 ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
5576 ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
5577 ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
5578 ... to these.
5579
5580 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5581
5582 * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
5583 if-then-else constructs if we can use the select instruction.
5584 * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
5585
5586 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5587
5588 * config/s390/s390.md ("*popcountdi_arch13_cc")
5589 ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
5590 definition.
5591 ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
5592 Append _z196 to make it ...
5593 ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
5594 ("popcounthi2_z196"): ... this.
5595 ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
5596 ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
5597
5598 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5599
5600 * config/s390/s390.c (s390_canonicalize_comparison): Convert
5601 certain compares for arch13 in order to make use of the condition
5602 code result produced by the new instructions.
5603 (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
5604 nxrk, and nxgrk instruction patterns.
5605 * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
5606 (inv_no): Add new code iterator together with some attributes.
5607 ("*andc_split_<mode>"): Disable splitter for arch13.
5608 ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
5609 ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
5610 ("*<ANDOR:bitops_name>c<GPR:mode>")
5611 ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
5612 ("*n<ANDOR:inv_bitops_name><mode>_cconly")
5613 ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
5614 ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
5615
5616 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5617
5618 * common/config/s390/s390-common.c (processor_flags_table): New
5619 entry for arch13.
5620 * config.gcc: Support arch13 with the --with-arch= configure flag.
5621 * config/s390/driver-native.c (s390_host_detect_local_cpu):
5622 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
5623 * config/s390/s390.c (s390_get_sched_attrmask)
5624 (s390_get_unit_mask): Add PROCESSOR_ARCH13.
5625 * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
5626 * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
5627 (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
5628 (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
5629 definitions.
5630 * config/s390/s390.opt: Support arch13 as processor type in
5631 command line options.
5632
5633 2019-04-02 Martin Liska <mliska@suse.cz>
5634
5635 PR translation/89912
5636 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
5637 Fix param description of graphite-max-arrays-per-scop.
5638
5639 2019-04-02 Eric Botcazou <ebotcazou@adacore.com>
5640
5641 * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
5642 (ASAN_CC1_SPEC): Use it in 64-bit mode.
5643 * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
5644
5645 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
5646
5647 PR rtl-optimization/85412
5648 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
5649 sel_sched_region_1, not after.
5650
5651 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
5652
5653 PR rtl-optimization/86928
5654 * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
5655 compute_live if necessary.
5656 (sel_redirect_edge_and_branch): Likewise.
5657
5658 2019-04-01 Vladimir Makarov <vmakarov@redhat.com>
5659
5660 PR rtl-optimization/89865
5661 * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
5662 register if it is a part of small class.
5663
5664 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
5665
5666 PR rtl-optimization/87273
5667 * sel-sched-ir.c (merge_fences): Remove assert.
5668
5669 2019-04-01 Richard Biener <rguenther@suse.de>
5670
5671 PR tree-optimization/46590
5672 * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
5673 (dom_walker::m_reachability): Add in place of...
5674 (dom_walker::m_skip_unreachable_blocks): ...this.
5675 * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
5676 Move complex initialization ...
5677 (dom_walker::walk): Here. Especially compute m_bb_to_rpo
5678 lazily and initialize edge flags on each invocation.
5679 (dom_walker::bb_reachable): Use m_reachability.
5680
5681 2019-04-01 Martin Liska <mliska@suse.cz>
5682
5683 PR driver/89861
5684 * opt-suggestions.c (option_proposer::build_option_suggestions):
5685 Add variant without any argument in order to provide better
5686 hints.
5687
5688 2019-04-01 Richard Biener <rguenther@suse.de>
5689
5690 PR c/71598
5691 * gimple.c: Include langhooks.h.
5692 (gimple_get_alias_set): Treat enumeral types as the underlying
5693 integer type.
5694
5695 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org>
5696 Eric Botcazou <ebotcazou@adacore.com>
5697
5698 PR rtl-optimization/89862
5699 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
5700 that operates on the full registers for WORD_REGISTER_OPERATIONS
5701 architectures.
5702
5703 2019-03-29 Jim Wilson <jimw@sifive.com>
5704
5705 * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
5706 Clear MASK_RVC and then set if C subset supported.
5707
5708 2019-03-29 Jakub Jelinek <jakub@redhat.com>
5709
5710 PR c/89872
5711 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
5712 non-addressable complit into its initializer if it is volatile.
5713
5714 2019-03-29 Roman Zhuykov <zhroma@ispras.ru>
5715
5716 * opts-common.c (integral_argument): Set errno properly in one case.
5717
5718 2019-03-29 Martin Liska <mliska@suse.cz>
5719
5720 * doc/invoke.texi: Remove -Wchkp from documentation.
5721
5722 2019-03-29 Martin Liska <mliska@suse.cz>
5723
5724 * dbgcnt.c (print_limit_reach): New function.
5725 (dbg_cnt): Use it.
5726
5727 2019-03-29 Martin Liska <mliska@suse.cz>
5728
5729 * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
5730 (dbg_cnt_process_opt): Parse first tokens aas
5731 dbg_cnt_process_single_pair is also using strtok.
5732
5733 2019-03-29 Jakub Jelinek <jakub@redhat.com>
5734
5735 PR rtl-optimization/87485
5736 * function.c (expand_function_end): Move stack_protect_epilogue
5737 before loading of return value into hard register(s).
5738
5739 2019-03-28 Jakub Jelinek <jakub@redhat.com>
5740
5741 PR middle-end/89621
5742 * tree-inline.h (struct copy_body_data): Add
5743 dont_remap_vla_if_no_change flag.
5744 * tree-inline.c (remap_type_3, remap_type_2): New functions.
5745 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
5746 and remap_type_2 returns false.
5747 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
5748 Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
5749 only from where it is copied to nested contexts.
5750
5751 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
5752
5753 PR target/89865
5754 * config/i386/i386.md (RMW operation with LEA peephole):
5755 Use LEAMODE mode attribute instead of SWI mode iterator for
5756 LEA pattern.
5757
5758 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
5759
5760 PR target/89848
5761 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
5762 Also process XEXP (src, 0) of a shift insn.
5763
5764 2019-03-28 David Malcolm <dmalcolm@redhat.com>
5765
5766 PR middle-end/89725
5767 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
5768 Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
5769
5770 2019-03-28 Jakub Jelinek <jakub@redhat.com>
5771
5772 * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
5773 test.
5774 (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
5775 (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing
5776 immediately after first one with df_analyze in between, but rather
5777 process all bbs, queueing ones that need second pass in a worklist,
5778 df_analyze, process queued debug insn changes and if second pass is
5779 needed, process bbs from worklist, df_analyze, process queued debug
5780 insns again.
5781
5782 * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
5783 or CALL_P instead of INSN_P && !DEBUG_INSN_P.
5784 (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
5785
5786 2019-03-28 Jonathan Wakely <jwakely@redhat.com>
5787
5788 PR c/79022
5789 * gengtype.h (create_nested_ptr_option): Fix parameter names to match
5790 definition.
5791
5792 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl>
5793
5794 PR target/85667
5795 * config/i386/i386.c (ix86_function_value_1): Call the newly added
5796 function for 32-bit MS_ABI.
5797 (function_value_ms_32): New function.
5798
5799 2019-03-27 Andrew Stubbs <ams@codesourcery.com>
5800
5801 * config/gcn/gcn.md (CC_SAVE_REG): New constant.
5802 (movdi): Call gen_movdi_symbol_save_scc.
5803 (gen_movdi_symbol_save_scc): New insn and split.
5804
5805 2019-03-27 Peter Bergner <bergner@linux.ibm.com>
5806
5807 PR rtl-optimization/89313
5808 * function.c (matching_constraint_num): New static function.
5809 (match_asm_constraints_1): Use it. Fixup white space and comment.
5810 Don't replace inputs with non-matching constraints which conflict
5811 with early clobber outputs.
5812
5813 2019-03-27 Jeff Law <law@redhat.com>
5814
5815
5816 PR rtl-optimization/87761
5817 PR rtl-optimization/89826
5818 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
5819 slightly later.
5820 (pass_cprop_hardreg::execute): Call df_analyze after adding the
5821 note problem to get REG_DEAD/REG_UNUSED notes updated.
5822
5823 2019-03-27 Richard Biener <rguenther@suse.de>
5824
5825 PR tree-optimization/89463
5826 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
5827 queue edges to remove.
5828 (eliminate_unnecessary_stmts): Remove dead PHIs alongside
5829 dead stmts. Delay edge removal until PHIs are removed to
5830 make debug-stmt creation not confused by seemingly degenerate
5831 PHIs.
5832
5833 2019-03-27 Alan Modra <amodra@gmail.com>
5834
5835 * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
5836 throughout file.
5837 * config/rs6000/darwin.h: Likewise.
5838 * config/rs6000/rs6000.c: Likewise.
5839
5840 2019-03-27 Alan Modra <amodra@gmail.com>
5841
5842 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
5843 assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting.
5844
5845 2019-03-26 Andrew Waterman <andrew@sifive.com>
5846 Jim Wilson <jimw@sifive.com>
5847
5848 * config/riscv/generic.md (generic_alu, generic_load, generic_store)
5849 (generic_xfer, generic_branch, generic_imul, generic_idivsi)
5850 (generic_idivdi, generic_fmul_single, generic_fmul_double)
5851 (generic_fdiv, generic_fsqrt): Add check for generic tune.
5852 (generic_alu): Add auipc to type list.
5853 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
5854 (riscv_microarchitecture): Declare.
5855 * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
5856 * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
5857 field.
5858 (riscv_microarchitecture): New.
5859 (sifive_7_tune_info): New.
5860 (riscv_cpu_info_table): Add microarchitecture value for rocket and
5861 size. Add sifive-3-series, sifive-5-series, and sifive-7-series
5862 entries.
5863 (riscv_store_data_bypass_p): New.
5864 (riscv_option_override): Set riscv_microarchitecture from
5865 cpu->microarchitecture.
5866 * config/riscv/riscv.md: Include sifive-7.md.
5867 (type): Add auipc.
5868 (tune): New.
5869 (auipc<mode>): Change type to auipc.
5870 (restore_stack_nonlocal): New.
5871 * config/riscv/sifive-7.md: New.
5872 * doc/invoke.texi (RISC-V Options): Update mtune docs.
5873
5874 2019-03-26 Uroš Bizjak <ubizjak@gmail.com>
5875
5876 PR target/89827
5877 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
5878 Also process XEXP (src, 0) of a shift insn.
5879
5880 2019-03-26 Richard Biener <rguenther@suse.de>
5881
5882 * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
5883 (copy_debug_stmt): Likewise.
5884 (expand_call_inline): Likewise.
5885 (copy_bb): Avoid redundant lookup & set of gimple_block.
5886 * gimple-low.c (lower_gimple_return): Likewise.
5887 (lower_builtin_setjmp): Likewise.
5888
5889 2019-03-26 Jakub Jelinek <jakub@redhat.com>
5890
5891 * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
5892 is constant 0, turn into static const data member initialized to false.
5893 (hash_table::hash_table): Only initialize m_gather_mem_stats #if
5894 GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param.
5895
5896 2019-03-26 Jason Merrill <jason@redhat.com>
5897 Jakub Jelinek <jakub@redhat.com>
5898
5899 * mem-stats.h (mem_alloc_description::unregister_descriptor): New
5900 method.
5901 (mem_alloc_description::release_object_overhead): Fix comment typos.
5902 * hash-table.h (hash_table::~hash_table): Call
5903 release_instance_overhead only if m_entries is non-NULL, otherwise
5904 call unregister_descriptor.
5905
5906 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
5907
5908 PR tree-optimization/81740
5909 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
5910 In case of outer loop vectorization, check for backward dependence
5911 at the inner loop if outer loop dependence is reversed.
5912
5913 2019-03-26 Alan Modra <amodra@gmail.com>
5914
5915 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
5916 rs6000_vector_mem init. Correct wI and wJ comment.
5917
5918 2019-03-25 Alexander Monakov <amonakov@ispras.ru>
5919
5920 PR rtl-optimization/88347
5921 PR rtl-optimization/88423
5922 * sched-deps.c (sched_analyze_insn): Take into account that for
5923 tablejumps the barrier appears after a label and a jump_table_data.
5924
5925 2019-03-25 Martin Sebor <msebor@redhat.com>
5926
5927 PR c/89812
5928 * c-common.c (check_user_alignment): Rename local. Correct maximum
5929 alignment in diagnostic. Avoid assuming argument fits in SHWI,
5930 convert it to UHWI when it fits.
5931
5932 2019-03-25 Johan Karlsson <johan.karlsson@enea.com>
5933
5934 PR debug/86964
5935 * dwarf2out.c (premark_used_variables): New function.
5936 (prune_unused_types_walk): Do not mark not premarked external
5937 variables.
5938 (prune_unused_types): Call premark_used_variables.
5939
5940 2019-03-25 Vladimir Makarov <vmakarov@redhat.com>
5941
5942 PR rtl-optimization/89676
5943 * lra-constraints.c (curr_insn_transform): Do match reload for
5944 early clobbers when the match was successful only for different
5945 registers.
5946
5947 2019-03-25 Martin Sebor <msebor@redhat.com>
5948
5949 * doc/extend.texi (Common Type Attributes): Document vector_size.
5950 (Common Variable Attributes): Mention size constraint. Correct
5951 quoting and typos.
5952 (Vector Extensions): Use @dfn when defining bas type. Clarify
5953 base type and size constraints.
5954
5955 2019-03-25 Richard Biener <rguenther@suse.de>
5956
5957 PR tree-optimization/89789
5958 * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
5959 changes from non-undefined back to undefined.
5960
5961 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de>
5962
5963 * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
5964 heap string and a gc string, but since this variable is unknown to
5965 ggc the gc string might get reused and corrupted. Fixed by always
5966 using a heap string.
5967
5968 2019-03-25 Richard Biener <rguenther@suse.de>
5969
5970 PR tree-optimization/89779
5971 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
5972 to remove IV defs, delay actual removal.
5973 (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset.
5974 (tree_ssa_iv_optimize): Remove eliminated IV defs at the
5975 very end, properly also reset loop control IV information.
5976
5977 2019-03-25 Richard Biener <rguenther@suse.de>
5978
5979 PR tree-optimization/89802
5980 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
5981 move EH data to folded stmt.
5982
5983 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
5984
5985 * config/s390/s390-builtin-types.def: Remove few unused types and
5986 fix sort order for others.
5987
5988 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
5989
5990 * config/s390/s390-c.c (s390_fn_types_compatible): Print the
5991 expected and found types with -mdebug during builtin matching.
5992
5993 2019-03-25 Richard Biener <rguenther@suse.de>
5994
5995 PR middle-end/89790
5996 * fold-const.c (operand_equal_p): Revert last change with
5997 updated comment.
5998
5999 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org>
6000
6001 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
6002 notes for the result of the __tls_get_addr calls.
6003 * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
6004
6005 2019-03-24 Jeff Law <law@redhat.com>
6006
6007 * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
6008
6009 PR rtl-optimization/87761
6010 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
6011 not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan
6012 as needed.
6013 (pass_cprop_hardreg::execute): Add df note problem and defer insn
6014 rescans. Reprocess blocks as needed, calling df_analyze before
6015 reprocessing. Always call df_analyze before fixing up debug bind
6016 insns.
6017
6018 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org>
6019
6020 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
6021 big endian.
6022
6023 2019-03-22 Andrew Pinski <apinski@marvell.com>
6024
6025 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
6026 attrribute for uxtw.
6027
6028 2019-03-26 Jeff Law <law@redhat.com>
6029
6030 PR rtl-optimization/87761
6031 * config/mips/mips-protos.h (mips_split_move): Add new argument.
6032 (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
6033 (mips_split_move): Accept new INSN argument. Try to forward SRC
6034 into the next instruction.
6035 (mips_split_move_insn): Pass INSN through to mips_split_move.
6036
6037 2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
6038
6039 PR rtl-optimization/89676
6040 * lra-constraints.c (curr_insn_transform): Do match reload for
6041 early clobbers even if the match was successful.
6042
6043 2019-03-22 Jakub Jelinek <jakub@redhat.com>
6044
6045 PR c++/87481
6046 * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
6047
6048 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
6049
6050 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
6051
6052 2019-03-22 Jakub Jelinek <jakub@redhat.com>
6053
6054 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
6055 <avx512>_fmsub_<mode>_mask3<round_name>,
6056 <avx512>_fnmadd_<mode>_mask3<round_name>,
6057 <avx512>_fnmsub_<mode>_mask3<round_name>,
6058 avx512f_vmfmadd_<mode>_mask3<round_name>,
6059 avx512f_vmfmsub_<mode>_mask3<round_name>,
6060 *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
6061 instead of register_operand and %v instead of v for match_operand 1.
6062 (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
6063 (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use
6064 <round_nimm_predicate> instead of register_operand and %v instead of v
6065 for match_operand 1.
6066
6067 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
6068 <avx512>_fmadd_<mode>_mask3<round_name>,
6069 <avx512>_fmsub_<mode>_mask<round_name>,
6070 <avx512>_fmsub_<mode>_mask3<round_name>,
6071 <avx512>_fnmadd_<mode>_mask<round_name>,
6072 <avx512>_fnmadd_<mode>_mask3<round_name>,
6073 <avx512>_fnmsub_<mode>_mask<round_name>,
6074 <avx512>_fnmsub_<mode>_mask3<round_name>,
6075 <avx512>_fmaddsub_<mode>_mask<round_name>,
6076 <avx512>_fmaddsub_<mode>_mask3<round_name>,
6077 <avx512>_fmsubadd_<mode>_mask<round_name>,
6078 <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
6079 <round_nimm_predicate> instead of nonimmediate_operand.
6080 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
6081 fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
6082 Use register_operand instead of <round_nimm_predicate> for the
6083 operand that needs to match output.
6084 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
6085 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
6086 Likewise. Formatting fixes.
6087
6088 PR target/89784
6089 * config/i386/i386.c (enum ix86_builtins): Remove
6090 IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
6091 * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
6092 __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
6093 __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
6094 __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
6095 __builtin_ia32_vfmsubss3_mask3): New builtins.
6096 * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
6097 avx512f_vmfmadd_<mode>_mask3<round_name>,
6098 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
6099 *avx512f_vmfmsub_<mode>_mask<round_name>,
6100 avx512f_vmfmsub_<mode>_mask3<round_name>,
6101 *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
6102 *avx512f_vmfnmadd_<mode>_mask<round_name>,
6103 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
6104 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
6105 *avx512f_vmfnmsub_<mode>_mask<round_name>,
6106 avx512f_vmfnmsub_<mode>_mask3<round_name>,
6107 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
6108 (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
6109 * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
6110 _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
6111 _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
6112 _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
6113 _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
6114 _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
6115 _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
6116 _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
6117 _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
6118 _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
6119 _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
6120 _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
6121 _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
6122 _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
6123 _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
6124 _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
6125 _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
6126 _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
6127 _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
6128 _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
6129
6130 2019-03-21 Martin Sebor <msebor@redhat.com>
6131
6132 PR tree-optimization/89350
6133 * builtins.c (compute_objsize): Also ignore offsets whose upper
6134 bound is negative.
6135 * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
6136 (builtin_memref::builtin_memref): Initialize new member.
6137 Allow EXPR to be null.
6138 (builtin_memref::extend_offset_range): Replace local with a member.
6139 Avoid assuming pointer offsets are unsigned.
6140 (builtin_memref::set_base_and_offset): Determine base object
6141 before computing offset range.
6142 (builtin_access::builtin_access): Handle memset.
6143 (builtin_access::generic_overlap): Replace local with a member.
6144 (builtin_access::strcat_overlap): Same.
6145 (builtin_access::overlap): Same.
6146 (maybe_diag_overlap): Same.
6147 (maybe_diag_access_bounds): Same.
6148 (wrestrict_dom_walker::check_call): Handle memset.
6149 (check_bounds_or_overlap): Same.
6150
6151 2019-03-21 Jan Hubicka <hubicka@ucw.cz>
6152 Jakub Jelinek <jakub@redhat.com>
6153
6154 PR lto/89692
6155 * tree.c (fld_type_variant, fld_incomplete_type_of,
6156 fld_process_array_type): Call fld->pset.add and don't call
6157 add_tree_to_fld_list if it returns true.
6158 (free_lang_data_in_type): Similarly with self-recursive call. Purge
6159 non-marked types from TYPE_NEXT_VARIANT list.
6160 (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
6161
6162 2019-03-21 Jakub Jelinek <jakub@redhat.com>
6163
6164 * hash-table.h (hash_table): Add Lazy template parameter defaulted
6165 to false, if true, don't alloc_entries during construction, but defer
6166 it to the first method that needs m_entries allocated.
6167 (hash_table::hash_table, hash_table::~hash_table,
6168 hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
6169 hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
6170 hash_table::clear_slot, hash_table::traverse_noresize,
6171 hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
6172 * hash-set.h (hash_set): Add Lazy template parameter defaulted to
6173 false.
6174 (hash_set::contains): If Lazy is true, use find_slot_with_hash with
6175 NO_INSERT instead of find_with_hash.
6176 (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
6177 hash_set::m_table): Add Lazy to template params of hash_table.
6178 (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
6179 * attribs.c (test_attribute_exclusions): Likewise.
6180 * hash-set-tests.c (test_set_of_strings): Add iterator tests for
6181 hash_set. Add tests for hash_set with Lazy = true.
6182
6183 2019-03-21 Richard Biener <rguenther@suse.de>
6184
6185 PR tree-optimization/89779
6186 * tree.c (tree_nop_conversion): Consolidate and fix defensive
6187 checks with respect to released SSA names now having error_mark_node
6188 type.
6189 * fold-const.c (operand_equal_p): Likewise.
6190
6191 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com>
6192
6193 PR target/89775
6194 * config/s390/s390.c (global_not_special_regno_p): Move to make it
6195 available to ...
6196 (s390_optimize_register_info): Use global_not_special_regno_p to
6197 check for global regs.
6198
6199 2019-03-20 Jakub Jelinek <jakub@redhat.com>
6200
6201 PR target/89752
6202 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
6203 update this_alternative nor this_alternative_set.
6204
6205 2019-03-19 Jim Wilson <jimw@sifive.com>
6206
6207 PR target/89411
6208 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals
6209 align, size, offset. Use them to handle a BLKmode reference. Update
6210 comment.
6211 (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
6212
6213 2019-03-19 Jakub Jelinek <jakub@redhat.com>
6214
6215 PR rtl-optimization/89768
6216 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
6217 instead of GEN_INT.
6218 (unroll_loop_runtime_iterations): Likewise.
6219
6220 2019-03-19 Martin Sebor <msebor@redhat.com>
6221
6222 PR tree-optimization/89644
6223 * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
6224 rather than endptr as an indicator of nul-termination.
6225
6226 PR tree-optimization/89644
6227 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
6228 arrays in determining sequence sizes in strncpy and stpncpy.
6229
6230 2019-03-19 Martin Liska <mliska@suse.cz>
6231
6232 PR middle-end/89737
6233 * predict.c (combine_predictions_for_bb): Empty likely_edges and
6234 unlikely_edges if there's an edge that belongs to both these sets.
6235
6236 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org>
6237
6238 PR target/89746
6239 * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
6240 non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
6241 go via a stack temporary.
6242
6243 2019-03-19 Jakub Jelinek <jakub@redhat.com>
6244
6245 PR target/89378
6246 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
6247 instead of gen_rtx_SUBREG.
6248 * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
6249
6250 2019-03-19 Richard Biener <rguenther@suse.de>
6251
6252 PR debug/88389
6253 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
6254
6255 2019-03-19 Jan Hubicka <hubicka@ucw.cz>
6256
6257 PR lto/87809
6258 PR lto/89335
6259 * tree.c (free_lang_data_in_decl): Do not free context of C++
6260 destrutors.
6261
6262 2019-03-19 Jakub Jelinek <jakub@redhat.com>
6263
6264 PR target/89506
6265 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
6266 subs for the first alternative except when operands[3] is 1.
6267
6268 PR target/89752
6269 * gimplify.c (gimplify_asm_expr): For output argument with
6270 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
6271 diagnose error.
6272
6273 2019-03-19 Eric Botcazou <ebotcazou@adacore.com>
6274
6275 PR rtl-optimization/89753
6276 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
6277 explicit unrolling factor even more robust.
6278
6279 2019-03-19 Jakub Jelinek <jakub@redhat.com>
6280
6281 PR target/89726
6282 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
6283 compensation use x2 += 1 instead of x2 -= -1 and when honoring
6284 signed zeros, do another copysign after the compensation.
6285
6286 2019-03-18 Martin Sebor <msebor@redhat.com>
6287
6288 PR tree-optimization/89720
6289 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
6290 more conservatively, the same as anti-range.
6291
6292 2019-03-18 Richard Biener <rguenther@suse.de>
6293
6294 PR middle-end/88945
6295 * tree-ssanames.c (release_ssa_name_fn): For released SSA names
6296 use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
6297 basic-blocks that are removed. Remove restoring SSA_NAME_VAR.
6298 * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
6299
6300 2019-03-18 Andrew Stubbs <ams@codesourcery.com>
6301
6302 * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
6303 Extend queue to 1024 entries.
6304 Add "consumed" field.
6305 (gomp_print_output): Remove print_index parameter.
6306 Add final parameter.
6307 Change limit to unsigned.
6308 Use consumed field to implement circular buffer.
6309 Detect interrupted print in final pass.
6310 Flush output at the end.
6311 (run): Update gomp_print_output usage.
6312 (main): Initialize kernargs->output_data.consumed.
6313
6314 2019-03-18 Richard Sandiford <richard.sandiford@arm.com>
6315
6316 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
6317 calculation of the minimum number of scalar iterations for
6318 fully-predicated loops.
6319
6320 2019-03-18 Martin Jambor <mjambor@suse.cz>
6321
6322 PR tree-optimization/89546
6323 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
6324 any propagation to its children took place.
6325
6326 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com>
6327
6328 PR target/89627
6329 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
6330 parameter, and make use of it.
6331 (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
6332
6333 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
6334
6335 * config/arc/arc.opt (mcode-density-frame): Get the inital value
6336 from TARGET_CODE_DENSITY_FRAME_DEFAULT.
6337 * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
6338 * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
6339 * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
6340 match what the ops is doing.
6341 (push_multi_fp_blink): Likewise.
6342 * config/arc/arc.c (arc_override_options): Enable enter/leave when
6343 compiling for size and elf target.
6344 (arc_save_callee_enter): Adjust note to match what enter/leave
6345 operation does.
6346
6347 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
6348
6349 * config/arc/arc.md (tst_movb): Fix constraint.
6350
6351 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
6352
6353 * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
6354
6355 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
6356
6357 * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
6358 * config/arc/arc.c (arc_conditional_register_usage): Remove all
6359 reg_alloc_order references.
6360 (size_alloc_order): Define.
6361 (arc_adjust_reg_alloc_order): New function.
6362 * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
6363 order.
6364 (ADJUST_REG_ALLOC_ORDER): Define.
6365 (HONOR_REG_ALLOC_ORDER): Likewise.
6366
6367 2019-03-18 Richard Biener <rguenther@suse.de>
6368
6369 PR target/87561
6370 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
6371 loads and stores a bit more.
6372
6373 2019-03-18 Richard Biener <rguenther@suse.de>
6374
6375 PR target/87561
6376 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
6377 load pessimization to stores as well.
6378
6379 2019-03-18 Andrey Belevantsev <abel@ispras.ru>
6380
6381 PR middle-end/86979
6382 * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
6383 successor, use NULL as its av set.
6384
6385 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org>
6386
6387 PR rtl-optimization/89721
6388 * lra-constraints (invariant_p): Return false if side_effects_p holds.
6389
6390 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org>
6391
6392 PR target/87532
6393 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6394 When handling vec_extract, use modular arithmetic to allow
6395 constant selectors greater than vector length.
6396 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
6397 V1TImode vectors to have constant selector values greater than 0.
6398 Use modular arithmetic to compute vector index.
6399 (rs6000_split_vec_extract_var): Use modular arithmetic to compute
6400 index for in-memory vectors. Correct code generation for
6401 in-register vectors.
6402 (altivec_expand_vec_ext_builtin): Use modular arithmetic to
6403 compute index.
6404
6405 2019-03-15 Alexandre Oliva <aoliva@redhat.com>
6406
6407 PR c++/88534
6408 PR c++/88537
6409 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
6410 VAR_DECL args.
6411
6412 2019-03-15 Jakub Jelinek <jakub@redhat.com>
6413
6414 PR c++/89709
6415 * tree.c (inchash::add_expr): Strip any location wrappers.
6416 * fold-const.c (operand_equal_p): Move stripping of location wrapper
6417 after hash verification.
6418
6419 PR debug/89704
6420 * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
6421 SIGN_EXTEND and ZERO_EXTEND.
6422
6423 2019-03-14 Jason Merrill <jason@redhat.com>
6424 Jakub Jelinek <jakub@redhat.com>
6425
6426 * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
6427 than if is_empty (*slot).
6428 * hash-set-tests.c (test_set_of_strings): Add tests for addition of
6429 existing elt and for elt removal.
6430 * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
6431 of already removed elt.
6432
6433 2019-03-15 H.J. Lu <hongjiu.lu@intel.com>
6434
6435 PR target/89650
6436 * config/i386/i386.c (remove_partial_avx_dependency): Handle
6437 REG_EH_REGION note.
6438
6439 2019-03-14 Martin Liska <mliska@suse.cz>
6440
6441 PR other/89712
6442 * doc/invoke.texi: Remove -fdump-class-hierarchy option.
6443
6444 2019-03-14 Richard Biener <rguenther@suse.de>
6445
6446 PR target/89711
6447 * config/i386/i386.c (make_resolver_func): Properly set
6448 DECL_CONTEXT on the RESULT_DECL.
6449 * config/rs6000/rs6000.c (make_resolver_func): Likewise.
6450
6451 2019-03-14 Richard Biener <rguenther@suse.de>
6452
6453 * gimple-pretty-print.c: Include cfgloop.h.
6454 (dump_gimple_phi): Adjust.
6455 (dump_gimple_bb_header): Dump loop header for GIMPLE.
6456 (pp_cfg_jump): Adjust.
6457 (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
6458 * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
6459 (lower_phi_internal_fn): Remove.
6460 (verify_gimple_call): Remove IFN_PHI special-casing.
6461 (dump_function_to_file): Dump IL state.
6462 * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
6463 done to deal with PHI nodes being present in non-SSA state.
6464
6465 2019-03-14 Jakub Jelinek <jakub@redhat.com>
6466
6467 PR ipa/89684
6468 * multiple_target.c (create_dispatcher_calls): Change
6469 references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
6470 In the node->iterate_referring loop, push *ref rather than ref, call
6471 ref->remove_reference () and always pass 0 to iterate_referring.
6472
6473 PR rtl-optimization/89679
6474 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
6475 would contain a paradoxical SUBREG.
6476
6477 2019-03-14 Richard Biener <rguenther@suse.de>
6478
6479 PR tree-optimization/89710
6480 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
6481 safe_dyn_cast.
6482
6483 2019-03-14 Martin Liska <mliska@suse.cz>
6484
6485 * coverage.c (coverage_begin_function): Stream also
6486 end_column.
6487 * doc/gcov.texi: Document 2 new fields in JSON file. Improve
6488 documentation about function declaration location.
6489 * gcov-dump.c (tag_function): Print whole range
6490 of function declaration.
6491 * gcov.c (struct function_info): Add end_column field.
6492 (function_info::function_info): Initialize it.
6493 (output_json_intermediate_file): Output {start,end}_column
6494 fields.
6495 (read_graph_file): Read end_column.
6496
6497 2019-03-14 Richard Biener <rguenther@suse.de>
6498
6499 PR middle-end/89698
6500 * fold-const.c (operand_equal_p): For INDIRECT_REF check
6501 that the access types are similar.
6502
6503 2019-03-14 Jakub Jelinek <jakub@redhat.com>
6504
6505 PR tree-optimization/89703
6506 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
6507 aren't compatible also with builtin_decl_explicit. Check pure
6508 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
6509 and BUILT_IN_STPNCPY{,_CHK}.
6510
6511 2019-03-14 H.J. Lu <hongjiu.lu@intel.com>
6512
6513 PR target/89523
6514 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
6515 addr32 prefix to VSIB address for X32.
6516 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
6517 "%M2" to opcode.
6518 (*avx512pf_gatherpf<mode>df_mask): Likewise.
6519 (*avx512pf_scatterpf<mode>sf_mask): Likewise.
6520 (*avx512pf_scatterpf<mode>df_mask): Likewise.
6521 (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
6522 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
6523 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
6524 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
6525 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
6526 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
6527 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
6528 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
6529 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
6530 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
6531 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
6532 (*avx512f_scatterdi<mode>): Likewise.
6533
6534 2019-03-13 Vladimir Makarov <vmakarov@redhat.com>
6535
6536 PR target/85860
6537 * lra-constraints.c (inherit_in_ebb): Update
6538 potential_reload_hard_regs along with live_hard_regs.
6539
6540 2019-03-13 Jakub Jelinek <jakub@redhat.com>
6541
6542 PR debug/89498
6543 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
6544 DWARF_OFFSET_SIZE.
6545 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
6546
6547 2019-03-13 Martin Sebor <msebor@redhat.com>
6548
6549 PR tree-optimization/89662
6550 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
6551 has a size.
6552
6553 2019-03-13 Richard Biener <rguenther@suse.de>
6554
6555 PR middle-end/89677
6556 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
6557 throw FP expressions at tree-affine.
6558
6559 2019-03-14 Richard Biener <rguenther@suse.de>
6560
6561 * tree-pretty-print.c (dump_generic_node): For -gimple properly
6562 dump negative integer constants using _Literal (type) -num.
6563
6564 2019-03-13 Jakub Jelinek <jakub@redhat.com>
6565
6566 * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
6567 nonlocal_value member.
6568
6569 PR middle-end/88588
6570 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
6571 (ipa_simd_modify_function_body): Handle PHIs.
6572
6573 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
6574
6575 * config/s390/s390.c (s390_option_override_internal): Use more
6576 aggressive inlining parameters.
6577
6578 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
6579
6580 * config/s390/3906.md: New file.
6581 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
6582 (LONGRUNNING_THRESHOLD): Remove.
6583 (MAX_SCHED_MIX_SCORE): Decrease.
6584 (MAX_SCHED_MIX_DISTANCE): Decrease.
6585 (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
6586 (struct s390_sched_state): New struct to hold scheduling state.
6587 (S390_SCHED_STATE_NORMAL): Remove.
6588 (S390_SCHED_STATE_CRACKED): Remove.
6589 (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
6590 (s390_get_sched_attrmask): Use new attribute.
6591 (s390_get_unit_mask): Use new units.
6592 (s390_is_fpd): New function.
6593 (s390_is_fxd): New function.
6594 (s390_is_longrunning): New function.
6595 (s390_sched_score): Use new functions.
6596 (s390_sched_reorder): Likewise.
6597 (s390_sched_variable_issue): Rework and use new functions.
6598 (s390_sched_init): Use new functions.
6599 * config/s390/s390.h (s390_tune_attr): Add z14.
6600 * config/s390/s390.md: Add z14.
6601
6602 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
6603
6604 * config/s390/2964.md: Update pipeline description.
6605 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
6606 (LONGRUNNING_THRESHOLD): Remove.
6607 (LATENCY_FACTOR): Remove.
6608 (s390_get_unit_mask): Add unit.
6609 (s390_sched_score): Use fxd/fpd.
6610 (s390_sched_variable_issue): Use fxd/fpd.
6611
6612 2019-03-12 Martin Liska <mliska@suse.cz>
6613
6614 * config/i386/i386.c: Reword an error message.
6615
6616 2019-03-12 Martin Jambor <mjambor@suse.cz>
6617
6618 * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
6619 terminate with newline.
6620
6621 2019-03-12 Jakub Jelinek <jakub@redhat.com>
6622
6623 PR target/52726
6624 * config/s390/s390.md (tabort): Use %wd instead of
6625 HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
6626 letters and periods.
6627 * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
6628 output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
6629 's with %< and %>.
6630
6631 PR middle-end/89663
6632 * builtins.c (expand_builtin_int_roundingfn,
6633 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
6634 gcc_unreachable if validate_arglist fails.
6635
6636 2019-03-12 Richard Biener <rguenther@suse.de>
6637
6638 PR tree-optimization/89664
6639 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
6640 free the occurance tree after the early out.
6641
6642 2019-03-11 Jakub Jelinek <jakub@redhat.com>
6643
6644 PR middle-end/89655
6645 PR bootstrap/89656
6646 * vr-values.c (vr_values::update_value_range): If
6647 old_vr->varying_p (), don't update it, make new_vr also VARYING
6648 and return false.
6649
6650 2019-03-11 Martin Liska <mliska@suse.cz>
6651
6652 * config/aarch64/aarch64.c (aarch64_override_options_internal):
6653 Fix double string quoting.
6654
6655 2019-03-11 Martin Liska <mliska@suse.cz>
6656
6657 * collect-utils.c (collect_wait): Wrap apostrophes
6658 in gcc internal format with %'.
6659 * collect2.c (main): Likewise.
6660 (scan_prog_file): Likewise.
6661 (scan_libraries): Likewise.
6662 * config/i386/i386.c (ix86_expand_call): Likewise.
6663 (ix86_handle_interrupt_attribute): Likewise.
6664 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
6665 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
6666 * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
6667 * lto-wrapper.c (find_crtoffloadtable): Likewise.
6668 * symtab.c (symtab_node::verify_base): Likewise.
6669 * tree-cfg.c (verify_gimple_label): Likewise.
6670 * tree.c (verify_type_variant): Likewise.
6671
6672 2019-03-11 Martin Liska <mliska@suse.cz>
6673
6674 * builtins.c (expand_builtin_thread_pointer): Wrap an option name
6675 in a string format message and fix GNU coding style.
6676 (expand_builtin_set_thread_pointer): Likewise.
6677 * common/config/aarch64/aarch64-common.c
6678 (aarch64_rewrite_selected_cpu): Likewise.
6679 * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
6680 * common/config/arc/arc-common.c (arc_handle_option): Likewise.
6681 * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
6682 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
6683 * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
6684 * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
6685 * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
6686 * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
6687 * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
6688 * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
6689 Likewise.
6690 * common/config/riscv/riscv-common.c
6691 (riscv_subset_list::parsing_subset_version): Likewise.
6692 (riscv_subset_list::parse_std_ext): Likewise.
6693 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
6694 (riscv_subset_list::parse): Likewise.
6695 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
6696 * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
6697 (aarch64_override_options_internal): Likewise.
6698 (aarch64_validate_mcpu): Likewise.
6699 (aarch64_validate_march): Likewise.
6700 (aarch64_validate_mtune): Likewise.
6701 (aarch64_override_options): Likewise.
6702 * config/alpha/alpha.c (alpha_option_override): Likewise.
6703 * config/arc/arc.c (arc_init): Likewise.
6704 (parse_mrgf_banked_regs_option): Likewise.
6705 (arc_override_options): Likewise.
6706 (arc_expand_builtin_aligned): Likewise.
6707 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
6708 (arm_expand_builtin): Likewise.
6709 * config/arm/arm.c (arm_option_check_internal): Likewise.
6710 (arm_configure_build_target): Likewise.
6711 (arm_option_override): Likewise.
6712 (arm_options_perform_arch_sanity_checks): Likewise.
6713 (arm_handle_cmse_nonsecure_entry): Likewise.
6714 (arm_handle_cmse_nonsecure_call): Likewise.
6715 (arm_tls_referenced_p): Likewise.
6716 (thumb1_expand_prologue): Likewise.
6717 * config/avr/avr.c (avr_option_override): Likewise.
6718 * config/bfin/bfin.c (bfin_option_override): Likewise.
6719 * config/c6x/c6x.c (c6x_option_override): Likewise.
6720 * config/cr16/cr16.c (cr16_override_options): Likewise.
6721 * config/cris/cris.c (cris_option_override): Likewise.
6722 * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
6723 * config/darwin-c.c (macosx_version_as_macro): Likewise.
6724 * config/darwin.c (darwin_override_options): Likewise.
6725 * config/frv/frv.c (frv_expand_builtin): Likewise.
6726 * config/h8300/h8300.c (h8300_option_override): Likewise.
6727 * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
6728 (ix86_option_override_internal): Likewise.
6729 (warn_once_call_ms2sysv_xlogues): Likewise.
6730 (ix86_expand_prologue): Likewise.
6731 (split_stack_prologue_scratch_regno): Likewise.
6732 (ix86_warn_parameter_passing_abi): Likewise.
6733 * config/ia64/ia64.c (fix_range): Likewise.
6734 * config/m68k/m68k.c (m68k_option_override): Likewise.
6735 * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
6736 * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
6737 (mips_set_compression_mode): Likewise.
6738 * config/mmix/mmix.c (mmix_option_override): Likewise.
6739 * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
6740 * config/msp430/msp430.c (msp430_option_override): Likewise.
6741 * config/nds32/nds32.c (nds32_option_override): Likewise.
6742 * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
6743 (nios2_option_override): Likewise.
6744 (nios2_expand_custom_builtin): Likewise.
6745 * config/nvptx/mkoffload.c (main): Likewise.
6746 * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
6747 * config/pa/pa.c (fix_range): Likewise.
6748 (pa_option_override): Likewise.
6749 * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
6750 (riscv_option_override): Likewise.
6751 * config/rl78/rl78.c (rl78_option_override): Likewise.
6752 * config/rs6000/aix61.h: Likewise.
6753 * config/rs6000/aix71.h: Likewise.
6754 * config/rs6000/aix72.h: Likewise.
6755 * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
6756 * config/rs6000/freebsd64.h: Likewise.
6757 * config/rs6000/linux64.h: Likewise.
6758 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
6759 (rs6000_expand_zeroop_builtin): Likewise.
6760 (rs6000_expand_mtfsb_builtin): Likewise.
6761 (rs6000_expand_set_fpscr_rn_builtin): Likewise.
6762 (rs6000_expand_set_fpscr_drn_builtin): Likewise.
6763 (rs6000_invalid_builtin): Likewise.
6764 (rs6000_expand_split_stack_prologue): Likewise.
6765 * config/rs6000/rtems.h: Likewise.
6766 * config/rx/rx.c (valid_psw_flag): Likewise.
6767 (rx_expand_builtin): Likewise.
6768 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
6769 * config/s390/s390.c (s390_expand_builtin): Likewise.
6770 (s390_function_profiler): Likewise.
6771 (s390_option_override_internal): Likewise.
6772 (s390_option_override): Likewise.
6773 * config/sh/sh.c (sh_option_override): Likewise.
6774 (sh_builtin_saveregs): Likewise.
6775 (sh_fix_range): Likewise.
6776 * config/sh/vxworks.h: Likewise.
6777 * config/sparc/sparc.c (sparc_option_override): Likewise.
6778 * config/spu/spu.c (spu_option_override): Likewise.
6779 (fix_range): Likewise.
6780 * config/visium/visium.c (visium_option_override): Likewise.
6781 (visium_handle_interrupt_attr): Likewise.
6782 * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
6783 * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
6784 (dbg_cnt_process_opt): Likewise.
6785 * dwarf2out.c (output_dwarf_version): Likewise.
6786 * except.c (expand_eh_return): Likewise.
6787 * gcc.c (defined): Likewise.
6788 (driver_handle_option): Likewise.
6789 (process_command): Likewise.
6790 (compare_files): Likewise.
6791 (driver::prepare_infiles): Likewise.
6792 (driver::do_spec_on_infiles): Likewise.
6793 (driver::maybe_run_linker): Likewise.
6794 * omp-offload.c (oacc_parse_default_dims): Likewise.
6795 * opts-global.c (handle_common_deferred_options): Likewise.
6796 * opts.c (parse_sanitizer_options): Likewise.
6797 (common_handle_option): Likewise.
6798 (enable_warning_as_error): Likewise.
6799 * passes.c (enable_disable_pass): Likewise.
6800 * plugin.c (parse_plugin_arg_opt): Likewise.
6801 (default_plugin_dir_name): Likewise.
6802 * targhooks.c (default_expand_builtin_saveregs): Likewise.
6803 (default_pch_valid_p): Likewise.
6804 * toplev.c (init_asm_output): Likewise.
6805 (process_options): Likewise.
6806 (toplev::run_self_tests): Likewise.
6807 * tree-cfg.c (verify_gimple_call): Likewise.
6808 * tree-inline.c (inline_forbidden_p_stmt): Likewise.
6809 (tree_inlinable_function_p): Likewise.
6810 * var-tracking.c (vt_find_locations): Likewise.
6811
6812 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com>
6813
6814 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
6815 only on the else branch.
6816
6817 2019-03-11 Martin Liska <mliska@suse.cz>
6818
6819 * gcov.c (output_intermediate_json_line): Print function
6820 name of each line.
6821 (output_json_intermediate_file): Add new argument.
6822 * doc/gcov.texi: Document the change.
6823
6824 2019-03-11 Eric Botcazou <ebotcazou@adacore.com>
6825
6826 PR rtl-optimization/89588
6827 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
6828 explicit unrolling factor more robust.
6829
6830 2019-03-11 Richard Biener <rguenther@suse.de>
6831
6832 PR tree-optimization/89649
6833 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
6834 * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
6835 on the prolog and epilog loops.
6836 (vect_loop_versioning): Return copy of loop.
6837 * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
6838 on the non-vectorized version of the loop.
6839
6840 2019-03-10 Uroš Bizjak <ubizjak@gmail.com>
6841
6842 PR target/68924
6843 * config/i386/sse.md (*vec_extractv2di_0_sse):
6844 Add (=r,x) alternative and corresponding splitter.
6845
6846 2019-03-10 Martin Jambor <mjambor@suse.cz>
6847
6848 PR tree-optimization/85762
6849 PR tree-optimization/87008
6850 PR tree-optimization/85459
6851 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
6852 it points to if there is a type changing MEM_REF. Adjust all callers.
6853 (build_accesses_from_assign): Disable total scalarization if
6854 contains_vce_or_bfcref_p returns true through the new parameter, for
6855 both rhs and lhs.
6856
6857 2019-03-09 Jakub Jelinek <jakub@redhat.com>
6858
6859 PR c/88568
6860 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
6861 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
6862
6863 PR target/79645
6864 * common.opt (fdiagnostics-show-labels,
6865 fdiagnostics-show-line-numbers, fdiagnostics-format=,
6866 fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
6867 gas-locview-support, ginline-points, ginternal-reset-location-views):
6868 Terminate description text with a dot.
6869 * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
6870 * config/mcore/mcore.opt (m210, m340): Likewise.
6871 * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
6872 mnops=): Start description text with a capital letter.
6873 * config/arc/arc.opt (msize-level=): Likewise.
6874 * config/sh/sh.opt (minline-ic_invalidate): Likewise.
6875 * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
6876 mnewlib): Likewise.
6877 * config/ft32/ft32.opt (msim): Likewise.
6878 (mft32b, mcompress): Likewise. Terminate description text with a dot.
6879 (mnodiv, mnopm): Terminate description text with a dot.
6880 * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
6881 a colon.
6882 * config/i386/i386.opt (prefer_vector_width, instrument_return):
6883 Likewise.
6884 * config/rx/rx.opt (nofpu): Remove trailing spaces from description
6885 text.
6886
6887 PR rtl-optimization/89634
6888 * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
6889 are modified in BB_END (e->src) instruction.
6890
6891 2019-03-08 David Malcolm <dmalcolm@redhat.com>
6892
6893 PR target/79926
6894 * config/i386/i386.c (ix86_set_current_function): Make "sorry"
6895 messages more amenable to translation, and improve wording.
6896
6897 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com>
6898
6899 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
6900 ud- and du-chains between phases.
6901
6902 2019-03-08 Richard Sandiford <richard.sandiford@arm.com>
6903
6904 PR debug/89631
6905 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
6906 instead of POLY_INT_CST.
6907
6908 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
6909
6910 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
6911 requirement.
6912
6913 2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
6914
6915 PR target/68924
6916 PR target/78782
6917 PR target/87558
6918 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
6919 (_mm_storeu_si64): Ditto.
6920
6921 2019-03-08 Martin Liska <mliska@suse.cz>
6922
6923 PR target/86952
6924 * config/i386/i386.c (ix86_option_override_internal): Disable
6925 jump tables when retpolines are used.
6926
6927 2019-03-08 Jan Hubicka <hubicka@ucw.cz>
6928
6929 PR go/63560
6930 * ipa-split.c (execute_split_functions): Do not split
6931 'noinline' or 'section' function.
6932
6933 2019-03-08 Jakub Jelinek <jakub@redhat.com>
6934
6935 PR target/79846
6936 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
6937 HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
6938 HOST_WIDE_INT_PRINT_DEC. Formatting fixes.
6939
6940 PR ipa/80000
6941 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
6942 from diagnostics. Formatting fixes.
6943
6944 PR target/85665
6945 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
6946 warn_odr diagnostics.
6947
6948 PR other/80058
6949 * lra-constraints.c (process_alt_operands): Avoid one space before
6950 " at the end of line and another after " on another line in a string
6951 literal.
6952 * attribs.c (handle_dll_attribute): Likewise.
6953 * config/avr/avr-devices.c (avr_texinfo): Likewise.
6954
6955 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
6956 warning_at or inform messages in G_() if there is no ?:.
6957
6958 PR tree-optimization/89550
6959 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
6960 returned true. Formatting fixes.
6961 (expand_builtin_strnlen): Formatting fixes.
6962 * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
6963 if warning_at returned true.
6964 * tree-cfg.c (pass_warn_function_return::execute): Likewise.
6965
6966 2019-03-08 Richard Biener <rguenther@suse.de>
6967
6968 PR middle-end/89578
6969 * cfgloop.h (struct loop): Add owned_clique field.
6970 * cfgloopmanip.c (copy_loop_info): Copy it.
6971 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
6972 cliques.
6973 * tree-inline.c (copy_loops): Remap owned_clique.
6974 * lto-streamer-in.c (input_cfg): Stream owned_clique.
6975 * lto-streamer-out.c (output_cfg): Likewise.
6976
6977 2019-03-08 Jakub Jelinek <jakub@redhat.com>
6978
6979 PR target/80190
6980 * config/darwin.c: Include intl.h.
6981 (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
6982 composing the message out of two separate parts.
6983
6984 2019-03-07 Jakub Jelinek <jakub@redhat.com>
6985
6986 PR target/80003
6987 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
6988 doesn't start with a capital letter and doesn't end with a dot.
6989 (ix86_function_arg_boundary): Make sure diagnostics doesn't start
6990 with a capital letter.
6991 (ix86_mangle_function_version_assembler_name): Likewise.
6992 (ix86_generate_version_dispatcher_body): Likewise.
6993 (fold_builtin_cpu): Likewise.
6994 (get_builtin_code_for_version): Likewise. Remove extraneous space.
6995 (ix86_handle_interrupt_attribute): Make the diagnostics easier for
6996 translators, wrap full type name in %qs.
6997
6998 PR translation/79999
6999 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
7000 depend clause with source (or sink) modifier.
7001 * omp-expand.c (expand_omp_ordered_sink): Likewise.
7002
7003 PR target/89602
7004 * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
7005 *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
7006 (avx512f_load<mode>_mask): New define_expand.
7007 * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
7008 __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
7009 __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
7010 __builtin_ia32_movess_mask): New builtins.
7011 * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
7012 _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
7013 _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
7014 _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
7015
7016 2019-03-07 Martin Jambor <mjambor@suse.cz>
7017
7018 PR lto/87525
7019 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
7020 for extern inline functions.
7021
7022 2019-03-07 Martin Jambor <mjambor@suse.cz>
7023
7024 PR ipa/88235
7025 * cgraph.h (cgraph_node): New inline method former_thunk_p.
7026 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
7027 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
7028 have multiple callees. At the end check if declarations match as
7029 opposed to cgraph_nodes.
7030
7031 2019-03-07 Martin Liska <mliska@suse.cz>
7032
7033 * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
7034 which is equivalent to searching for this in clones chain.
7035 * symtab.c (symtab_node::verify_base): Similarly compare ASM
7036 names with a neighbour and special case first node in a chain.
7037
7038 2019-01-25 Jason Merrill <jason@redhat.com>
7039
7040 PR c++/80916 - spurious "static but not defined" warning.
7041 * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
7042 for an internal symbol with DECL_EXTERNAL.
7043
7044 2019-04-07 Richard Biener <rguenther@suse.de>
7045
7046 PR middle-end/89618
7047 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
7048 * tree-inline.c (copy_loops): Simplify.
7049
7050 2019-03-07 Martin Liska <mliska@suse.cz>
7051
7052 * dwarf2out.c (add_AT_vms_delta): Revert function removal.
7053
7054 2019-03-07 Richard Biener <rguenther@suse.de>
7055
7056 PR tree-optimization/89595
7057 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
7058 stmt iterator as reference, take boolean output parameter to
7059 indicate whether the stmt was removed and thus the iterator
7060 already advanced.
7061 (dom_opt_dom_walker::before_dom_children): Re-iterate over
7062 stmts created by folding.
7063
7064 2019-03-07 Jakub Jelinek <jakub@redhat.com>
7065
7066 PR c++/89585
7067 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
7068 at toplevel.
7069
7070 2019-03-06 Peter Bergner <bergner@linux.ibm.com>
7071
7072 PR rtl-optimization/88845
7073 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
7074 LRA.
7075 * lra.c (remove_scratches_1): New function.
7076 (remove_scratches): Use it.
7077 (lra_emit_move): Likewise.
7078
7079 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com>
7080
7081 * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
7082 unaligned_access variable.
7083 * config/arc/arc.c (arc_override_options): Set unaligned access
7084 default on for HS CPUs.
7085 * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
7086
7087 2019-03-06 Martin Liska <mliska@suse.cz>
7088
7089 PR gcov-profile/89577
7090 * doc/gcov.texi: Prefer to use --coverage.
7091 * doc/sourcebuild.texi: Likewise.
7092
7093 2019-03-02 Jason Merrill <jason@redhat.com>
7094
7095 PR c++/86485 - -Wmaybe-unused with empty class ?:
7096 * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
7097
7098 2019-03-05 Jakub Jelinek <jakub@redhat.com>
7099
7100 PR target/89587
7101 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
7102 if_multiarch.
7103
7104 PR middle-end/89590
7105 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
7106 exactly one argument.
7107
7108 2019-03-05 Jakub Jelinek <jakub@redhat.com>
7109 Richard Sandiford <richard.sandiford@arm.com>
7110
7111 PR tree-optimization/89570
7112 * match.pd (vec_cond into cond_op simplification): Don't use
7113 get_conditional_internal_fn, use as_internal_fn (cond_op).
7114
7115 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com>
7116
7117 PR target/89222
7118 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
7119 to decide when to split off a non-zero offset from a symbol.
7120 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
7121 in function symbols.
7122
7123 2019-03-05 Richard Biener <rguenther@suse.de>
7124
7125 PR tree-optimization/89594
7126 * tree-if-conv.c (pass_if_conversion::execute): Handle
7127 case where .LOOP_VECTORIZED_FUNCTION was removed.
7128
7129 2019-03-05 Jakub Jelinek <jakub@redhat.com>
7130
7131 PR bootstrap/89560
7132 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
7133 instead alloca it only when needed with the needed size.
7134
7135 PR tree-optimization/89570
7136 * match.pd (vec_cond into cond_op simplification): Guard with
7137 vectorized_internal_fn_supported_p test and #if GIMPLE.
7138
7139 PR tree-optimization/89566
7140 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
7141 Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
7142 Punt if get_user_idx_format succeeds, but idx_format argument is
7143 not provided or doesn't have pointer type, or if idx_args is above
7144 number of provided arguments.
7145
7146 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com>
7147
7148 PR tree-optimization/89437
7149 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
7150
7151 2019-03-04 Richard Biener <rguenther@suse.de>
7152
7153 PR middle-end/89572
7154 * tree-scalar-evolution.c: (get_loop_exit_condition): Use
7155 safe_dyn_cast.
7156
7157 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com>
7158
7159 PR tree-optimization/89487
7160 * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
7161 (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
7162 (distribute_loop): Don't do runtime alias check if there is non-
7163 addressable data reference.
7164 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
7165 is a register variable.
7166
7167 2019-03-02 Jakub Jelinek <jakub@redhat.com>
7168
7169 PR target/89506
7170 * config/arm/arm.md (cmpsi2_addneg): Use
7171 trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
7172 If operands[2] is 0 or INT_MIN, force use of subs.
7173 (*compare_scc splitter): Use gen_int_mode.
7174 (*negscc): Likewise.
7175 * config/arm/thumb2.md (*thumb2_negscc): Likewise.
7176
7177 2019-03-01 Kito Cheng <kito.cheng@gmail.com>
7178 Monk Chiang <sh.chiang04@gmail.com>
7179
7180 * common/config/riscv/riscv-common.c: Include sstream.
7181 (riscv_subset_list::to_string): New.
7182 (riscv_arch_str): Likewise.
7183 * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
7184 * config.in: Regen.
7185 * config/riscv/riscv-protos.h (riscv_arch_str): New.
7186 * config/riscv/riscv.c (INCLUDE_STRING): Defined.
7187 (riscv_emit_attribute): New.
7188 (riscv_file_start): Emit attribute if needed.
7189 (riscv_option_override): Init riscv_emit_attribute_p.
7190 * config/riscv/riscv.opt (mriscv-attribute): New option.
7191 * configure.ac (riscv*-*-*): Check binutils is supporting ELF
7192 * configure: Regen.
7193 * doc/install.texi: Document --with-riscv-attribute.
7194 * doc/invoke.texi: Document -mriscv-attribute.
7195
7196 * common/config/riscv/riscv-common.c:
7197 Include config/riscv/riscv-protos.h.
7198 (INCLUDE_STRING): Defined.
7199 (RISCV_DONT_CARE_VERSION): Defined.
7200 (riscv_subset_t): Declare.
7201 (riscv_subset_t::riscv_subset_t): New.
7202 (riscv_subset_list): Declare.
7203 (riscv_subset_list::riscv_subset_list): New.
7204 (riscv_subset_list::~riscv_subset_list): Likewise.
7205 (riscv_subset_list::parsing_subset_version): Likewise.
7206 (riscv_subset_list::parse_std_ext): Likewise.
7207 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
7208 (riscv_subset_list::add): Likewise.
7209 (riscv_subset_list::lookup): Likewise.
7210 (riscv_subset_list::xlen): Likewise.
7211 (riscv_subset_list::parse): Likewise.
7212 (riscv_supported_std_ext): Likewise.
7213 (current_subset_list): Likewise.
7214 (riscv_parse_arch_string): Using riscv_subset_list::parse to
7215 parse.
7216
7217 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org>
7218
7219 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
7220 rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
7221 * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
7222
7223 2019-03-01 Alexander Monakov <amonakov@ispras.ru>
7224
7225 PR rtl-optimization/85899
7226 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
7227 fallthru edges leading to the exit block.
7228
7229 2019-03-01 Tamar Christina <tamar.christina@arm.com>
7230
7231 PR target/89517
7232 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
7233 rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
7234
7235 2019-03-01 Richard Sandiford <richard.sandiford@arm.com>
7236
7237 PR tree-optimization/89535
7238 * tree-vect-stmts.c (vectorizable_call): Record the vector types
7239 for each operand. Calculate the fallback choice for mask operands
7240 and pass it to vect_get_vec_def_for_operand.
7241
7242 2019-03-01 Richard Biener <rguenther@suse.de>
7243
7244 PR middle-end/89541
7245 * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
7246 get virtual operands.
7247 (get_expr_operands): Handle CONST_DECL like other decls.
7248
7249 2019-03-01 Jakub Jelinek <jakub@redhat.com>
7250
7251 PR middle-end/89503
7252 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
7253 on DECL_P and EXPR_P.
7254
7255 2019-03-01 Richard Biener <rguenther@suse.de>
7256
7257 PR middle-end/89497
7258 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
7259 argument, defaulted to zero.
7260 * passes.c (execute_function_todo): Pass down SSA update flags
7261 to cleanup_tree_cfg.
7262 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
7263 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
7264 form if requested.
7265 (cleanup_tree_cfg): Get and pass down SSA update flags.
7266
7267 2019-03-01 Jakub Jelinek <jakub@redhat.com>
7268
7269 PR bootstrap/89539
7270 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
7271 early_lto_debug argument.
7272
7273 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
7274
7275 PR tree-optimization/89536
7276 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
7277 only whether bit #0 of the value is 0 instead of the entire value.
7278
7279 2019-02-28 Marek Polacek <polacek@redhat.com>
7280
7281 PR c++/87068 - missing diagnostic with fallthrough statement.
7282 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
7283 at the end of a seq, save its location to walk_stmt_info.
7284 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
7285 a switch.
7286
7287 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
7288
7289 PR lto/88585
7290 * tree.c (find_atomic_core_type): Move ahead in file.
7291 (check_base_type): Correctly compare alignments of atomic types.
7292
7293 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
7294
7295 PR target/89455
7296 * config/i386/i386.c (get_builtin_code_for_version): Identify
7297 Westmere from PCLMUL, instead of AES.
7298
7299 2019-02-28 Jakub Jelinek <jakub@redhat.com>
7300
7301 PR target/89434
7302 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
7303 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
7304 -UINTVAL (...).
7305
7306 2019-02-28 Tamar Christina <tamar.christina@arm.com>
7307
7308 PR target/88530
7309 * config/aarch64/aarch64-option-extensions.def: Document it.
7310 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
7311 if empty hwcaps.
7312
7313 2019-02-28 Jakub Jelinek <jakub@redhat.com>
7314
7315 PR c/89520
7316 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
7317 builtins if they don't have a single scalar floating point argument.
7318 Formatting fixes.
7319
7320 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
7321
7322 PR rtl-optimization/89490
7323 * varasm.c (get_block_for_section): Bail out for mergeable sections.
7324 (default_use_anchors_for_symbol_p, output_object_block): Assert the
7325 block section is not mergeable.
7326
7327 2019-02-27 Jakub Jelinek <jakub@redhat.com>
7328
7329 PR target/70341
7330 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
7331 old define_insn to ...
7332 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
7333 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
7334 Rename old define_insn to ...
7335 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
7336 (thumb2_casesi_internal_pic): New define_expand. Rename old
7337 define_insn to ...
7338 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
7339 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
7340 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
7341
7342 2019-02-27 Richard Biener <rguenther@suse.de>
7343
7344 PR debug/88878
7345 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
7346
7347 2019-02-27 Richard Biener <rguenther@suse.de>
7348
7349 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
7350 building.
7351
7352 2019-02-27 Richard Biener <rguenther@suse.de>
7353
7354 PR debug/88878
7355 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
7356 parameter, prefix section name with .gnu.debuglto_ if true.
7357 (dwarf2out_finish): Pass false to output_comdat_type_unit.
7358 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
7359
7360 2019-02-27 Richard Biener <rguenther@suse.de>
7361
7362 PR debug/89514
7363 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
7364 rather than on use_debug_types, doing what output_die does.
7365 (value_format): Likewise.
7366
7367 2019-02-27 Martin Jambor <mjambor@suse.cz>
7368 Martin Sebor <msebor@redhat.com>
7369
7370 * doc/invoke.texi (Warning Options): Reword description of
7371 -Wno-absolute-value.
7372
7373 2019-02-27 Jakub Jelinek <jakub@redhat.com>
7374
7375 PR tree-optimization/89280
7376 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
7377 builtin_setjmp_setup_bb): New functions.
7378 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
7379 When visiting __builtin_setjmp_setup block, queue in special
7380 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
7381 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
7382 from visited after the loop if they don't have any visited successor
7383 blocks.
7384
7385 2018-02-26 Steve Ellcey <sellcey@marvell.com>
7386
7387 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
7388 New function.
7389 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
7390
7391 2019-02-26 Jakub Jelinek <jakub@redhat.com>
7392
7393 PR c++/89507
7394 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
7395 with types other than sizetype/ssizetype.
7396
7397 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
7398
7399 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
7400 (enum sparc_processor_type): ...this.
7401 (enum sparc_code_model_type): New enumeration type.
7402 (enum sparc_memory_model_type): Tweak comments.
7403 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
7404 (mtune): Likewise.
7405 (mcmodel): Use sparc_code_model enumeration and variable.
7406 (sparc_code_model): New enumeration.
7407 (mdebug): Add Undocumented marker.
7408 * config/sparc/sparc.h (enum cmodel): Delete.
7409 (sparc_cmodel): Likewise.
7410 (TARGET_CM_MEDLOW): Adjust to above renaming.
7411 (TARGET_CM_MEDMID): Likewise.
7412 (TARGET_CM_MEDANY): Likewise.
7413 (TARGET_CM_EMBMEDANY): Likewise.
7414 * config/sparc/sparc.c (sparc_cmodel): Delete.
7415 (sparc_option_override): Remove string/value mapping support for the
7416 code model. Move code and memory model support to after the handling
7417 of target flags. Do private machine setup last.
7418 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
7419 (sparc_legitimize_reload_address): Likewise.
7420 (sparc_output_mi_thunk): Likewise.
7421 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
7422
7423 2019-02-26 Jakub Jelinek <jakub@redhat.com>
7424
7425 PR tree-optimization/89500
7426 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
7427 (handle_builtin_strlen): Remove noncst_bound variable. Always
7428 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
7429 cst if the first cst bytes starting at x are known to be non-zero,
7430 even if the string is not zero terminated. Don't try to modify
7431 *si for strnlen. Update strlen_to_stridx only for strlen or if
7432 we can prove strnlen returns the same value as strlen would.
7433
7434 2019-02-26 Martin Liska <mliska@suse.cz>
7435
7436 * alloc-pool.h (struct pool_usage): Remove extra
7437 print_dash_line.
7438 * bitmap.h (struct bitmap_usage): Likewise.
7439 * ggc-common.c (struct ggc_usage): Likewise.
7440 * mem-stats.h (struct mem_usage): Likewise.
7441 (mem_alloc_description::dump): Print dash lines
7442 here and repeat header at the end of a table report.
7443 It's then more readable.
7444 * tree-phinodes.c (phinodes_print_statistics): Make
7445 horizontal alignment.
7446 * tree-ssanames.c (ssanames_print_statistics): Likewise.
7447 * vec.c (struct vec_usage): Remove extra print_dash_line.
7448 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
7449
7450 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
7451
7452 * doc/extend.texi (__builtin_object_size):
7453 Use @pxref instead of @xref inside parenthesis.
7454 (__builtin_has_attribute): Add missing comma after @xref.
7455 (__builtin_object_size): Ditto.
7456 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
7457 * fortran/invoke.texi (-ffpe-trap): Use @var for every item
7458 in the list.
7459
7460 2019-02-26 Jeff Law <law@redhat.com>
7461
7462 PR rtl-optimization/87761
7463 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
7464 detect obviously dead insns and delete them.
7465
7466 2019-02-26 Richard Biener <rguenther@suse.de>
7467
7468 PR tree-optimization/89505
7469 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
7470 to handle restrict pointed-to vars with multiple subvars
7471 correctly.
7472
7473 2019-02-26 Richard Biener <rguenther@suse.de>
7474
7475 PR tree-optimization/89489
7476 * tree-parloops.c (create_loop_fn): Copy over last_clique.
7477
7478 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
7479
7480 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
7481 and move around comment.
7482 <BIT_AND_EXPR>: Likewise.
7483 <BIT_NOT_EXPR>: Add specific handling for boolean types.
7484
7485 2019-02-26 Jakub Jelinek <jakub@redhat.com>
7486
7487 PR target/89474
7488 * config/i386/i386.c (remove_partial_avx_dependency): Call
7489 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
7490 after changing possibly many instructions to use that pseudo. Fix up
7491 insertion of v4sf_const0 setter at the start of bb.
7492
7493 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
7494
7495 PR c/80409
7496 * doc/extend.texi (Variadic Pointer Args): New section.
7497
7498 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
7499 Martin Sebor <msebor@gmail.com>
7500
7501 * common.opt (Wattribute-alias): Likewise.
7502 * doc/invoke.texi (Option Summary): List general form of
7503 -Wattribute-alias=. List positive form of -Wmissing-attributes.
7504 (-Wmissing-attributes): Invert entry, rewrite and correct default.
7505 Add cross-references.
7506 (-Wattribute-alias): Rewrite and correct default. Mention
7507 considered attributes (same as for -Wmissing-attributes).
7508
7509 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
7510
7511 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
7512 (_mm_cvtpd_ps): Likewise.
7513 (_mm_cvttpd_epi32): Likewise.
7514
7515 PR target/89338
7516 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
7517 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
7518
7519 PR target/89339
7520 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
7521
7522 2019-02-25 Tamar Christina <tamar.christina@arm.com>
7523
7524 PR target/88530
7525 * common/config/aarch64/aarch64-common.c
7526 (struct aarch64_option_extension): Add is_synthetic.
7527 (all_extensions): Use it.
7528 (TARGET_OPTION_INIT_STRUCT): Define hook.
7529 (struct gcc_targetm_common): Moved to end.
7530 (all_extensions_by_on): New.
7531 (opt_ext_cmp, typedef opt_ext): New.
7532 (aarch64_option_init_struct): New.
7533 (aarch64_contains_opt): New.
7534 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
7535 * config/aarch64/aarch64-option-extensions.def
7536 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
7537 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
7538 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
7539 Set is_synthetic to false.
7540 (crypto): Set is_synthetic to true.
7541 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
7542 SYNTHETIC.
7543
7544 2019-02-25 Tamar Christina <tamar.christina@arm.com>
7545
7546 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
7547 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
7548 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
7549 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
7550 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
7551 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
7552 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
7553 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
7554 Rename ...
7555 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
7556 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
7557 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
7558 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
7559 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
7560 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
7561 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
7562 vfmlsl_laneq_high_f16): ... To this.
7563 * config/arm/neon.md: Update comments.
7564
7565 2019-02-25 Tamar Christina <tamar.christina@arm.com>
7566
7567 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
7568 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
7569 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
7570 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
7571 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
7572 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
7573 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
7574 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
7575 Rename ...
7576 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
7577 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
7578 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
7579 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
7580 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
7581 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
7582 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
7583 vfmlslq_laneq_high_f16): ... To this.
7584
7585 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
7586
7587 PR rtl-optimization/86096
7588 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
7589 comparing mw_order values.
7590
7591 2019-02-25 Jakub Jelinek <jakub@redhat.com>
7592
7593 PR target/89434
7594 * config/arm/arm.md (*subsi3_carryin_const): Use
7595 arm_neg_immediate_operand predicate instead of
7596 arm_not_immediate_operand, "L" constraint instead of "K" and
7597 print it using %n2 instead of %B2.
7598 (*subsi3_carryin_const0): New define_insn.
7599 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
7600 instead of arm_not_operand and "I" constraint instead of "K" and
7601 print it using %n3 instead of %B2. Instead of using match_dup 2 add
7602 another match_operand and in the condition check that it is negation
7603 of operands[2].
7604 (*subsi3_carryin_compare_const0): New define_ins.
7605 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
7606 *subsi3_carryin_const.
7607 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
7608 split into *subsi3_carryin_compare_const0 if the highpart is zero.
7609
7610 PR target/89438
7611 * config/arm.vfp.md (*negdf2_vfp): Use
7612 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
7613 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
7614
7615 2019-02-24 Jakub Jelinek <jakub@redhat.com>
7616
7617 PR rtl-optimization/89445
7618 * simplify-rtx.c (simplify_ternary_operation): Don't use
7619 simplify_merge_mask on operands that may trap.
7620 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
7621 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
7622 second operand is CONST_VECTOR, check if any element could be zero.
7623 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
7624 their operands can trap.
7625
7626 2019-02-23 Martin Sebor <msebor@redhat.com>
7627
7628 * gimple-ssa-sprintf.c (target_strtol): Rename...
7629 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
7630 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
7631 check for range error.
7632
7633 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
7634
7635 PR driver/69471
7636 * opts-common.c (prune_options): Also prune joined switches
7637 with Negative and RejectNegative.
7638 * config/i386/i386.opt (march=): Add Negative(march=).
7639 (mtune=): Add Negative(mtune=).
7640 * doc/options.texi: Document Negative used together with Joined
7641 and RejectNegative.
7642
7643 2019-02-22 Martin Sebor <msebor@redhat.com>
7644
7645 * doc/extend.texi (Other Builtins): Add
7646 __builtin_is_constant_evaluated.
7647
7648 2019-02-22 Richard Biener <rguenther@suse.de>
7649
7650 PR tree-optimization/87609
7651 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
7652
7653 2019-02-22 Jeff Law <law@redhat.com>
7654
7655 PR rtl-optimization/87761
7656 * config/mips/mips.md: Add new combiner pattern to recognize
7657 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
7658
7659 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
7660
7661 PR target/89324
7662 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
7663 destination register in peepholes generating patterns for ADDS/SUBS.
7664 (add<mode>3_compare0,
7665 *addsi3_compare0_uxtw, add<mode>3_compareC,
7666 add<mode>3_compareV_imm, add<mode>3_compareV,
7667 *adds_<optab><ALLX:mode>_<GPI:mode>,
7668 *subs_<optab><ALLX:mode>_<GPI:mode>,
7669 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
7670 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
7671 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
7672 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
7673 sub<mode>3_compare1): Allow stack pointer for source register.
7674 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
7675
7676 2019-02-22 Martin Sebor <msebor@redhat.com>
7677
7678 PR tree-optimization/88993
7679 PR tree-optimization/88853
7680 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
7681 New helper.
7682 (sprintf_dom_walker::call_info::is_string_func): New helper.
7683 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
7684 for formatted string functions.
7685 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
7686
7687 2019-02-22 Martin Sebor <msebor@redhat.com>
7688
7689 PR c/89425
7690 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
7691 unreachable subexpressions.
7692
7693 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
7694 Hongtao Liu <hongtao.liu@intel.com>
7695 Sunil K Pandey <sunil.k.pandey@intel.com>
7696
7697 PR target/87007
7698 * config/i386/i386-passes.def: Add
7699 pass_remove_partial_avx_dependency.
7700 * config/i386/i386-protos.h
7701 (make_pass_remove_partial_avx_dependency): New.
7702 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
7703 New function.
7704 (pass_data_remove_partial_avx_dependency): New.
7705 (pass_remove_partial_avx_dependency): Likewise.
7706 (make_pass_remove_partial_avx_dependency): Likewise.
7707 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
7708 (*extendsfdf2): Add avx_partial_xmm_update.
7709 (truncdfsf2): Likewise.
7710 (*float<SWI48:mode><MODEF:mode>2): Likewise.
7711 (SF/DF conversion splitters): Disabled for TARGET_AVX.
7712
7713 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
7714
7715 PR middle-end/85598
7716 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
7717 analysis for pass.
7718
7719 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
7720
7721 PR target/89444
7722 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
7723 (PTA_SKYLAKE): Add PTA_AES.
7724 (PTA_GOLDMONT): Likewise.
7725
7726 2019-02-22 Sudakshina Das <sudi.das@arm.com>
7727
7728 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
7729 instruction if enabled.
7730 (aarch64_override_options): Remove reference to return address key.
7731
7732 2019-02-22 Richard Biener <rguenther@suse.de>
7733
7734 PR tree-optimization/89440
7735 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
7736 not necessary assert.
7737
7738 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
7739
7740 PR fortran/72741
7741 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
7742 (oacc_replace_fn_attrib_attr): ... this new function.
7743 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
7744 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
7745
7746 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7747
7748 * config/arm/arm-cpus.in (ares): Rename to...
7749 (neoverse-n1): ... This. Add ares as alias.
7750 * config/arm/arm-tables.opt: Regenerate.
7751 * config/arm/arm-tune.md: Likewise.
7752 * doc/invoke.txt (ARM Options): Document neoverse-n1.
7753
7754 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7755
7756 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
7757 * config/aarch64/aarch64-tune.md: Regenerate.
7758 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
7759
7760 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7761
7762 * config/aarch64/aarch64.c (ares_tunings): Rename to...
7763 (neoversen1_tunings): ... This.
7764 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
7765 (neoverse-n1): New CPU.
7766 * config/aarch64/aarch64-tune.md: Regenerate.
7767 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
7768
7769 2019-02-22 Richard Biener <rguenther@suse.de>
7770
7771 PR middle-end/87609
7772 * cfghooks.h (dependence_hash): New typedef.
7773 (struct copy_bb_data): New type.
7774 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
7775 (duplicate_block): Likewise.
7776 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
7777 (copy_bbs): Create and pass down copy_bb_data.
7778 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
7779 (rtl_duplicate_bb): Likewise.
7780 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
7781 remap dependence info.
7782
7783 2019-02-22 Richard Biener <rguenther@suse.de>
7784
7785 PR tree-optimization/87609
7786 * tree-core.h (tree_base): Document special clique values.
7787 * tree-inline.c (remap_dependence_clique): Do not use the
7788 special clique value of one.
7789 (maybe_set_dependence_info): Use clique one.
7790 (clear_dependence_clique): New callback.
7791 (compute_dependence_clique): Clear clique one from all refs
7792 before assigning it (again).
7793
7794 2019-02-21 Martin Sebor <msebor@redhat.com>
7795
7796 * doc/extend.texi (__clear_cache): Correct signature.
7797
7798 2019-02-21 Ian Lance Taylor <iant@golang.org>
7799
7800 PR go/89170
7801 * varasm.c (decode_addr_const): Call lookup_constant_def rather
7802 than output_constant_def.
7803 (add_constant_to_table): New static function.
7804 (output_constant_def): Call add_constant_to_table.
7805 (tree_output_constant_def): Likewise.
7806
7807 2019-02-21 Jakub Jelinek <jakub@redhat.com>
7808
7809 PR c++/89285
7810 * builtins.c (fold_builtin_arith_overflow): If first two args are
7811 INTEGER_CSTs, set intres and ovfres to constants rather than calls
7812 to ifn.
7813
7814 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
7815
7816 PR target/87412
7817 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
7818 error for -mindirect-branch/-mfunction-return with incompatible
7819 -fcf-protection.
7820
7821 2019-02-21 Jakub Jelinek <jakub@redhat.com>
7822
7823 PR bootstrap/88714
7824 * constraints.md (q): Remove.
7825 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
7826 instead of q.
7827
7828 2019-02-21 Martin Jambor <mjambor@suse.cz>
7829
7830 PR hsa/89302
7831 * omp-general.c (omp_extract_for_data): Removed a duplicate call
7832 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
7833 (omp_adjust_for_condition): ...here. Added necessary parameters.
7834 * omp-general.h (omp_adjust_for_condition): Updated declaration.
7835 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
7836 proper values to new parameters of omp_adjust_for_condition.
7837
7838 2019-02-20 Jakub Jelinek <jakub@redhat.com>
7839
7840 PR middle-end/89412
7841 * expr.c (expand_assignment): If result is a MEM, use change_address
7842 instead of simplify_gen_subreg.
7843
7844 2019-02-20 Jakub Jelinek <jakub@redhat.com>
7845 David Malcolm <dmalcolm@redhat.com>
7846
7847 PR middle-end/89091
7848 * fold-const.c (decode_field_reference): Return NULL_TREE if
7849 lang_hooks.types.type_for_size returns NULL. Check it before
7850 overwriting *exp_. Use return NULL_TREE instead of return 0.
7851
7852 2019-02-20 Jakub Jelinek <jakub@redhat.com>
7853
7854 PR middle-end/88074
7855 PR middle-end/89415
7856 * toplev.c (do_compile): Double the emin/emax exponents to workaround
7857 buggy mpc_norm.
7858
7859 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
7860
7861 PR target/89397
7862 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
7863 TARGET_SSE in addition to TARGET_SSE_MATH.
7864
7865 (ix86_excess_precision): Ditto.
7866 (ix86_float_exceptions_rounding_supported_p): Ditto.
7867 (use_rsqrt_p): Ditto.
7868 * config/i386/sse.md (rsqrt<mode>2): Ditto.
7869
7870 2019-02-20 David Malcolm <dmalcolm@redhat.com>
7871
7872 PR c/89410
7873 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
7874 linenum_arith_t when determining if two adjacent line spans are
7875 close enough to merge.
7876 (diagnostic_show_locus): Use linenum_arith_t when iterating over
7877 lines within each line_span.
7878
7879 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
7880
7881 PR target/86487
7882 * lra-constraints.c(uses_hard_regs_p): Fix handling of
7883 paradoxical SUBREGS.
7884
7885 2019-02-20 Li Jia He <helijia@linux.ibm.com>
7886
7887 PR target/88100
7888 * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
7889 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
7890 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
7891 range checking it.
7892
7893 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
7894
7895 * config/gcn/gcn.c (print_operand): Fix typo.
7896
7897 2019-02-19 Richard Biener <rguenther@suse.de>
7898
7899 PR middle-end/88074
7900 * toplev.c (do_compile): Initialize mpfr's exponent range
7901 based on available float modes.
7902
7903 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
7904
7905 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
7906 as long as the epilogue isn't completed.
7907
7908 2019-02-18 Martin Sebor <msebor@redhat.com>
7909
7910 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
7911 __has_cpp_attribute, and __has_include.
7912
7913 2019-02-18 Martin Sebor <msebor@redhat.com>
7914
7915 * doc/invoke.texi (-Wreturn-type): Correct and expand.
7916
7917 2019-02-18 Martin Sebor <msebor@redhat.com>
7918
7919 PR middle-end/89294
7920 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
7921 expression.
7922 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
7923
7924 2019-02-18 Richard Biener <rguenther@suse.de>
7925
7926 PR tree-optimization/89296
7927 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
7928 of no-warning flag to cases that might emit the bogus warning.
7929
7930 2019-02-18 Jakub Jelinek <jakub@redhat.com>
7931
7932 PR bootstrap/88714
7933 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
7934 "q" constraint.
7935 * config/arm/vfp.md (*movdi_vfp): Likewise.
7936 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
7937 "q" constraint for operands[0].
7938
7939 PR target/89369
7940 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
7941 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
7942 pattern in a temporary buffer.
7943 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
7944 than 64-operands[2].
7945
7946 PR target/89361
7947 * config/s390/s390.c (s390_indirect_branch_attrvalue,
7948 s390_indirect_branch_settings): Define unconditionally.
7949 (s390_set_current_function): Likewise, but guard the whole body except
7950 the s390_indirect_branch_settings call with
7951 #if S390_USE_TARGET_ATTRIBUTE.
7952 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
7953
7954 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
7955 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
7956 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
7957 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
7958 HOST_WIDE_INT_1U instead of 1ULL.
7959 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
7960 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
7961 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
7962 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
7963 instead of 1UL.
7964 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
7965 instead of 1ul.
7966
7967 2019-02-18 Martin Jambor <mjambor@suse.cz>
7968
7969 PR tree-optimization/89209
7970 * tree-sra.c (create_access_replacement): New optional parameter
7971 reg_tree. Use it as a type if non-NULL and access type is not of
7972 a register type.
7973 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
7974 to create_access_replacement.
7975 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
7976 Check lacc is non-NULL before attempting to re-create it on the RHS.
7977
7978 2019-02-18 Martin Liska <mliska@suse.cz>
7979
7980 PR ipa/89306
7981 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
7982 by default.
7983 (symbol_table::free_edge): Recycle m_summary_id.
7984 * cgraph.h (get_summary_id): New.
7985 (symbol_table::release_symbol): Set m_summary_id to -1
7986 by default.
7987 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
7988 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
7989 function_summary to fast_function_summary.
7990 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
7991 * ipa-pure-const.c (class funct_state_summary_t):
7992 Switch from function_summary to fast_function_summary.
7993 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
7994 (class ipa_ref_opt_summary_t): Switch from function_summary
7995 to fast_function_summary.
7996 * symbol-summary.h (class function_summary_base): New class
7997 that is created from base of former function_summary.
7998 (function_summary_base::unregister_hooks): New.
7999 (class function_summary): Inherit from function_summary_base.
8000 (class call_summary_base): New class
8001 that is created from base of former call_summary.
8002 (class call_summary): Inherit from call_summary_base.
8003 (struct is_same): New.
8004 (class fast_function_summary): New summary class.
8005 (class fast_call_summary): New summary class.
8006 * vec.h (vec_safe_grow_cleared): New function.
8007
8008 2019-02-18 Martin Liska <mliska@suse.cz>
8009
8010 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
8011 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
8012 * doc/tm.texi: Document new target hook.
8013 * doc/tm.texi.in: Likewise.
8014 * target.def: Add new target macro.
8015 * gcc.c (find_fortran_preinclude_file): Do not search multilib
8016 suffixes.
8017
8018 2019-02-17 Alan Modra <amodra@gmail.com>
8019
8020 PR target/89271
8021 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
8022 output reg on add insn.
8023 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
8024
8025 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
8026
8027 PR target/89372
8028 * config/i386/sse.md (ssedoublemode): Remove V4HI.
8029 (PMULHRSW): Likewise.
8030 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
8031 TARGET_AVX2.
8032 (ssse3_pmulhrswv4hi3): New expander.
8033
8034 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
8035
8036 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
8037 MMX. Add isa attribute.
8038
8039 2019-02-16 Jakub Jelinek <jakub@redhat.com>
8040
8041 PR rtl-optimization/66152
8042 * builtins.h (c_readstr): Declare.
8043 * builtins.c (c_readstr): Remove forward declaration. Add
8044 null_terminated_p argument, if false, read all bytes from the
8045 string instead of stopping after '\0'.
8046 * expr.c (string_cst_read_str): New function.
8047 (store_expr): Use string_cst_read_str instead of
8048 builtin_strncpy_read_str. Try to store by pieces the whole
8049 exp_len first, and only if that fails, split it up into
8050 store by pieces followed by clear_storage. Formatting fix.
8051
8052 * config/i386/i386.md (*movqi_internal): Remove static from
8053 buf variable. Use output_asm_insn (buf, operands); return "";
8054 instead of return buf;.
8055 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
8056 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
8057 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
8058
8059 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
8060
8061 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
8062 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
8063 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
8064 (CC1_SPEC): Likewise.
8065 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
8066
8067 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
8068
8069 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
8070 the base address on 64-bit strict-alignment platforms.
8071
8072 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
8073
8074 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
8075
8076 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
8077
8078 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
8079
8080 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
8081
8082 PR rtl-optimization/88308
8083 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
8084 on copied instruction.
8085
8086 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
8087
8088 * final.c (insn_current_reference_address): Replace test on JUMP_P
8089 with test on jump_to_label_p.
8090 * config/visium/visium-passes.def: New file.
8091 * config/visium/t-visium (PASSES_EXTRA): Define.
8092 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
8093 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
8094 (TRAMPOLINE_ALIGNMENT): Define.
8095 * config/visium/visium.c (visium_option_override): Do not register
8096 the machine-specific reorg pass here.
8097 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
8098 for the GR6.
8099 (output_branch): Adjust threshold for long branch instruction.
8100 * config/visium/visium.md (cpu): Move around.
8101 (length): Adjust for the GR6.
8102
8103 2019-02-15 Richard Biener <rguenther@suse.de>
8104 Jakub Jelinek <jakub@redhat.com>
8105
8106 PR tree-optimization/89278
8107 * tree-loop-distribution.c: Include tree-eh.h.
8108 (generate_memset_builtin, generate_memcpy_builtin): Call
8109 rewrite_to_non_trapping_overflow on builtin->size before passing it
8110 to force_gimple_operand_gsi.
8111
8112 2019-02-15 Jakub Jelinek <jakub@redhat.com>
8113
8114 PR other/89342
8115 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
8116 optimize_debug.
8117 * opth-gen.awk: Likewise.
8118
8119 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
8120
8121 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
8122 Enable MMX, SSE and SSE2 by default.
8123 * config/i386/i386.c (ix86_option_override_internal): Do not
8124 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
8125
8126 2019-02-14 Jakub Jelinek <jakub@redhat.com>
8127
8128 PR rtl-optimization/89354
8129 * combine.c (make_extraction): Punt if extraction_mode is narrower
8130 than len bits.
8131
8132 2019-02-14 Maya Rashish <coypu@sdf.org>
8133
8134 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
8135 * config/netbsd-d.c: New file.
8136 * config/t-netbsd: Add netbsd-d.o
8137
8138 2018-02-14 Steve Ellcey <sellcey@marvell.com>
8139
8140 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
8141 affects_type_identity to true for aarch64_vector_pcs.
8142 (aarch64_comp_type_attributes): New function.
8143 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
8144
8145 2019-02-14 Tamar Christina <tamar.christina@arm.com>
8146
8147 PR target/88850
8148 * config/arm/iterators.md (ANY64): Add V4HF.
8149
8150 2019-02-14 Martin Liska <mliska@suse.cz>
8151
8152 PR rtl-optimization/89242
8153 * dce.c (delete_unmarked_insns): Call free_dominance_info we
8154 process a transformation.
8155
8156 2019-02-14 Jakub Jelinek <jakub@redhat.com>
8157
8158 PR tree-optimization/89314
8159 * fold-const.c (fold_binary_loc): Cast strlen argument to
8160 const char * before dereferencing it. Formatting fixes.
8161
8162 PR middle-end/89284
8163 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
8164
8165 2019-02-13 Ian Lance Taylor <iant@golang.org>
8166
8167 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
8168 and set current index for other optimizations.
8169
8170 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
8171
8172 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
8173 nonimmediate_operand as operand 2 predicate.
8174 (vec_set<VF2_512_256:mode>_0): Ditto.
8175 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
8176 (*vec_concatv2si): Remove alternative 2.
8177 (*vec_concatv4si_0): Use vm constraint for alternative 0.
8178 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
8179 (vec_concatv2di): Split alternatives 4,5,6 to ...
8180 (*vec_concatv2di_0) ... new pattern.
8181
8182 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
8183
8184 PR target/89190
8185 * config/arm/arm.c (ldm_stm_operation_p) Set
8186 addr_reg_in_reglist correctly for first register.
8187 (load_multiple_sequence): Remove dead base check.
8188 (gen_ldm_seq): Correctly set write_back for Thumb-1.
8189
8190 2019-02-13 Tamar Christina <tamar.christina@arm.com>
8191
8192 PR target/88847
8193 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
8194 Expose as @aarch64_pred_mov.
8195 * config/aarch64/aarch64.c (aarch64_classify_address):
8196 Use expand_insn which legitimizes operands.
8197
8198 2019-02-13 Martin Liska <mliska@suse.cz>
8199
8200 * builtins.h (expand_builtin_with_bounds): Remove declaration.
8201 * calls.c (struct arg_data): Remove special_slot, pointer_arg
8202 and pointer_offset fields.
8203 (initialize_argument_information): Remove usage of dead
8204 fields.
8205 * cgraph.h (struct cgraph_thunk_info): Remove
8206 add_pointer_bounds_args.
8207 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
8208 fields.
8209 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
8210 fields.
8211 * config/i386/i386.c (ix86_function_arg_advance): Remove
8212 unrelated comment.
8213 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
8214 (def_builtin): Remove usage of dead
8215 fields.
8216 (ix86_add_new_builtins): Likewise.
8217 * ipa-fnsummary.c (compute_fn_summary): Likewise.
8218 * ipa-icf.c (sem_function::equals_wpa): Likewise.
8219 (sem_function::init): Likewise.
8220 (sem_variable::merge): Likewise.
8221 * ipa-visibility.c (function_and_variable_visibility): Likewise.
8222 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
8223 * lto-cgraph.c (lto_output_node): Likewise.
8224 (lto_output_varpool_node): Likewise.
8225 (input_node): Likewise.
8226 (input_varpool_node): Likewise.
8227 * lto-streamer-out.c (lto_output): Likewise.
8228 * tree-inline.c (expand_call_inline): Remove usage of
8229 assign_stmts.
8230 * tree-inline.h (struct copy_body_data): Likewise.
8231 * varpool.c (varpool_node::dump): Likewise.
8232
8233 2019-02-13 Jakub Jelinek <jakub@redhat.com>
8234
8235 PR middle-end/89303
8236 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
8237 into pt->vars_contains_escaped_heap instead of setting
8238 pt->vars_contains_escaped_heap to it.
8239
8240 PR middle-end/89281
8241 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
8242 INTVAL (size), compare it to GET_MODE_MASK instead of
8243 1 << GET_MODE_BITSIZE.
8244
8245 PR target/89290
8246 * config/i386/predicates.md (x86_64_immediate_operand): Allow
8247 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
8248 -mcmodel=large.
8249
8250 2019-02-13 Martin Liska <mliska@suse.cz>
8251
8252 PR lto/88858
8253 * cfgrtl.c (remove_barriers_from_footer): New function.
8254 (try_redirect_by_replacing_jump): Use it.
8255 (cfg_layout_redirect_edge_and_branch): Likewise.
8256
8257 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
8258
8259 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
8260 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
8261 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
8262 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
8263 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
8264 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
8265 New BU_CRYPTO_2.
8266 * config/rs6000/rs6000.c (builtin_function_type)
8267 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
8268 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
8269 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
8270 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
8271 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
8272
8273 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
8274
8275 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
8276 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
8277
8278 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
8279
8280 PR target/89229
8281 * config/i386/i386.md (*movoi_internal_avx): Revert revision
8282 268678 and revision 268657.
8283 (*movti_internal): Likewise.
8284
8285 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
8286
8287 PR target/89233
8288 * config/s390/s390.c (s390_decompose_address): Update comment.
8289 (s390_check_qrst_address): Reject invalid address forms after
8290 LRA.
8291
8292 2019-02-12 Martin Liska <mliska@suse.cz>
8293
8294 PR lto/88876
8295 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
8296 we need default values of funct_state for a function that
8297 is not optimized.
8298
8299 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
8300
8301 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
8302 the object to pick the size of stores on strict-alignment platforms.
8303
8304 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
8305 (*movdi_insn_sp32): Likewise.
8306 (*movdi_insn_sp64): Likewise.
8307
8308 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
8309
8310 PR lto/88677
8311 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
8312 types that needs constructiong.
8313 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
8314
8315 2019-02-12 Richard Biener <rguenther@suse.de>
8316
8317 PR tree-optimization/89253
8318 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
8319 duplicate the loop.
8320
8321 2019-02-11 David Malcolm <dmalcolm@redhat.com>
8322
8323 PR lto/88147
8324 * input.c (selftest::test_line_offset_overflow): New selftest.
8325 (selftest::input_c_tests): Call it.
8326
8327 2019-02-11 Martin Sebor <msebor@redhat.com>
8328
8329 PR tree-optimization/88771
8330 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
8331 when -Wstringop-overflow is set.
8332 (builtin_memref::builtin_memref): Adjust excessive upper bound
8333 only when lower bound is not excessive.
8334 (maybe_diag_overlap): Detect and diagnose excessive bounds via
8335 -Wstringop-ovefflow.
8336 (maybe_diag_offset_bounds): Rename...
8337 (maybe_diag_access_bounds): ...to this.
8338 (check_bounds_or_overlap): Adjust for name change above.
8339
8340 2019-02-11 Martin Sebor <msebor@redhat.com>
8341
8342 PR c++/87996
8343 * builtins.c (max_object_size): Move from here...
8344 * builtins.h (max_object_size): ...and here...
8345 * tree.c (max_object_size): ...to here...
8346 * tree.h (max_object_size): ...and here.
8347
8348 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
8349
8350 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
8351 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
8352 for correct semantics.
8353
8354 2019-02-11 Alan Modra <amodra@gmail.com>
8355
8356 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
8357 -mlongcall and -mpltseq.
8358 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
8359 (RS/6000 and PowerPC Options <-mpltseq>): Document.
8360 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
8361 * config/rs6000/sysv4.opt (mpltseq): New option.
8362 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
8363 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
8364 support is lacking. Don't allow -mpltseq with -mbss-plt.
8365 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
8366 -mpltseq given for ELFv1.
8367 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
8368 Only use UNSPEC_PLTSEQ for inline PLT calls.
8369 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
8370 use UNSPEC_PLTSEQ for inline PLT calls.
8371 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
8372 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
8373 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
8374 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
8375 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
8376 (pltseq_mtctr_<mode>): Likewise.
8377
8378 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8379
8380 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
8381 Solaris ld.
8382 * configure: Regenerate.
8383
8384 2019-02-11 Jakub Jelinek <jakub@redhat.com>
8385
8386 PR bootstrap/88714
8387 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
8388 instead of r.
8389
8390 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
8391
8392 * function.c (assign_parm_setup_block): Use the stored
8393 size, not the passed size, when allocating stack-space,
8394 also for a parameter with alignment larger than
8395 MAX_SUPPORTED_STACK_ALIGNMENT.
8396
8397 2019-02-11 Martin Liska <mliska@suse.cz>
8398
8399 PR ipa/89009
8400 * ipa-cp.c (build_toporder_info): Remove usage of a param.
8401 * ipa-inline.c (inline_small_functions): Likewise.
8402 * ipa-pure-const.c (propagate_pure_const): Likewise.
8403 (propagate_nothrow): Likewise.
8404 * ipa-reference.c (propagate): Likewise.
8405 * ipa-utils.c (struct searchc_env): Remove unused field.
8406 (searchc): Always search across AVAIL_INTERPOSABLE.
8407 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
8408 the only called IPA pure const can properly not propagate
8409 across interposable boundary.
8410 * ipa-utils.h (ipa_reduced_postorder): Remove param.
8411
8412 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
8413
8414 * config/nds32/nds32.md (call_internal, call_value_internal,
8415 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
8416
8417 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
8418
8419 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
8420 typo.
8421
8422 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
8423
8424 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
8425 in comments
8426
8427 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
8428
8429 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
8430
8431 2019-02-10 Jakub Jelinek <jakub@redhat.com>
8432
8433 PR tree-optimization/89268
8434 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
8435 if preds is non-NULL.
8436
8437 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
8438
8439 PR lto/89272
8440 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
8441 polymorphic types.
8442
8443 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
8444
8445 * config/nds32/nds32.md (trap): New pattern.
8446
8447 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
8448
8449 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
8450 dwarf span.
8451
8452 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
8453
8454 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
8455 to split POST_INC.
8456
8457 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
8458
8459 * ipa-visibility.c (localize_node): Also do not localize
8460 LDPR_PREVAILING_DEF_IRONLY_EXP.
8461
8462 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
8463
8464 PR lto/87957
8465 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
8466 instead of type_with_linkage.
8467
8468 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
8469
8470 PR ipa/88755
8471 * params.def (uninlined-function-insns, uninlined-function-time,
8472 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
8473 bound so we don't get overflows.
8474
8475 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
8476
8477 * config/rs6000/rs6000-string.c (expand_compare_loop,
8478 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
8479 memcmp/strncmp.
8480
8481 2019-02-09 Jakub Jelinek <jakub@redhat.com>
8482
8483 PR middle-end/89246
8484 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
8485 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
8486 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
8487
8488 2019-02-09 Alan Modra <amodra@gmail.com>
8489
8490 PR target/88343
8491 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
8492 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
8493 setup.
8494
8495 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
8496
8497 PR middle-end/88560
8498 * lra-constraints.c (process_alt_operands): Don't increase reject
8499 for memory when offset memory is required.
8500
8501 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
8502
8503 * config/s390/vector.md: Implement vector copysign.
8504
8505 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
8506
8507 * expr.c (expand_constructor): Correct indentations.
8508
8509 2019-02-08 Richard Biener <rguenther@suse.de>
8510
8511 PR tree-optimization/89247
8512 * tree-if-conv.c: Include tree-cfgcleanup.h.
8513 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
8514 (tree_if_conversion): Pass through predicate vector.
8515 (pass_if_conversion::execute): Do CFG cleanup and SSA update
8516 inline, see if any if-converted loops we refrece in
8517 LOOP_VECTORIZED calls vanished and fixup.
8518 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
8519
8520 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
8521
8522 * config/s390/constraints.md (jdd): New constraint.
8523
8524 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
8525
8526 PR target/89229
8527 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
8528 upper 16 vector registers without TARGET_AVX512VL.
8529 (*movti_internal): Likewise.
8530
8531 2019-02-08 Jakub Jelinek <jakub@redhat.com>
8532
8533 PR rtl-optimization/89234
8534 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
8535 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
8536 (copy_reg_eh_region_note_backward): Likewise.
8537
8538 2019-02-08 Richard Biener <rguenther@suse.de>
8539
8540 PR middle-end/89223
8541 * tree-data-ref.c (initialize_matrix_A): Fail if constant
8542 doesn't fit in HWI.
8543 (analyze_subscript_affine_affine): Handle failure from
8544 initialize_matrix_A.
8545
8546 2019-02-08 Jakub Jelinek <jakub@redhat.com>
8547
8548 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
8549 cfun everywhere.
8550
8551 2019-02-07 David Malcolm <dmalcolm@redhat.com>
8552
8553 PR tree-optimization/86637
8554 PR tree-optimization/89235
8555 * tree-vect-loop.c (optimize_mask_stores): Add an
8556 auto_purge_vect_location sentinel to ensure that vect_location is
8557 purged on exit.
8558 * tree-vectorizer.c
8559 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
8560 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
8561 to ensure that vect_location is purged on exit.
8562 (pass_slp_vectorize::execute): Likewise, replacing the manual
8563 reset.
8564 * tree-vectorizer.h (class auto_purge_vect_location): New class.
8565
8566 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8567
8568 * config/aarch64/iterators.md (max_opp): New code_attr.
8569 (USMAX): New code iterator.
8570 * config/aarch64/predicates.md (aarch64_smin): New predicate.
8571 (aarch64_smax): Likewise.
8572 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
8573 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
8574 MINUS (MAX MIN).
8575
8576 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
8577
8578 PR target/89229
8579 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
8580 for TARGET_AVX512VL.
8581 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
8582
8583 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
8584
8585 * config/s390/s390-builtin-types.def: Add new types.
8586 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
8587 (s390_vec_xlw4): Make the memory operand into a const pointer.
8588 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
8589 float.
8590 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
8591 a new vector type with the alignment of the scalar memory operand.
8592
8593 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
8594 Jakub Jelinek <jakub@redhat.com>
8595
8596 PR bootstrap/88714
8597 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
8598 arm_count_ldrdstrd_insns): New declarations.
8599 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
8600 MINUS.
8601 (valid_operands_ldrd_strd): New function.
8602 (arm_count_ldrdstrd_insns): New function.
8603 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
8604 sets instead of single DImode set and define new insns to match this.
8605
8606 2019-02-07 Tamar Christina <tamar.christina@arm.com>
8607
8608 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
8609 Make it a C initializer.
8610
8611 2019-02-07 Tamar Christina <tamar.christina@arm.com>
8612
8613 PR/target 88850
8614 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
8615
8616 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8617
8618 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
8619 Use neon_dot<q> for type.
8620 (neon_<sup>dot_lane<vsi2qi>): Likewise.
8621
8622 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8623
8624 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
8625 Use neon_dot<q> for type.
8626 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
8627 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
8628
8629 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
8630
8631 PR rtl-optimization/89225
8632 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
8633 sizes check.
8634
8635 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
8636
8637 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
8638 after restoring registers saved to allocate the frame on Windows.
8639
8640 2019-02-06 Richard Biener <rguenther@suse.de>
8641
8642 PR tree-optimization/89182
8643 * graphite.h (cached_scalar_evolution_in_region): Declare.
8644 * graphite.c (struct seir_cache_key): New.
8645 (struct sese_scev_hash): Likewise.
8646 (seir_cache): New global.
8647 (cached_scalar_evolution_in_region): New function.
8648 (graphite_transform_loops): Allocate and release seir_cache.
8649 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
8650 cached_scalar_evolution_in_region.
8651 * graphite-scop-detection.c (scop_detection::can_represent_loop):
8652 Simplify.
8653 (scop_detection::graphite_can_represent_expr: Use
8654 cached_scalar_evolution_in_region.
8655 (scop_detection::stmt_simple_for_scop_p): Likewise.
8656 (find_params_in_bb): Likewise.
8657 (gather_bbs::before_dom_children): Likewise.
8658 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
8659 (add_loop_constraints): Likewise.
8660
8661 2019-02-06 Jakub Jelinek <jakub@redhat.com>
8662
8663 PR middle-end/89210
8664 * fold-const-call.c (fold_const_vec_convert): Pass true as last
8665 operand to new_unary_operation only if both element types are integral
8666 and it isn't a widening conversion. Return NULL_TREE if
8667 new_unary_operation failed.
8668
8669 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
8670
8671 PR target/88856
8672 * config/s390/s390.md: Remove load and test FP splitter.
8673
8674 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
8675
8676 PR target/89112
8677 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
8678 expand_compare_loop, expand_block_compare_gpr,
8679 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
8680 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
8681 #include "profile-count.h" and "predict.h" for types and functions
8682 needed to work with REG_BR_PROB notes.
8683
8684 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
8685
8686 PR target/89112
8687 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
8688 for the long branch case.
8689
8690 2019-02-05 Jakub Jelinek <jakub@redhat.com>
8691
8692 PR target/89188
8693 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
8694 can throw, non-call exceptions are enabled and we can't delete
8695 dead exceptions or alter cfg. Set must_clean if
8696 delete_insn_and_edges returns true, don't set it blindly for calls.
8697 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
8698
8699 PR rtl-optimization/89195
8700 * combine.c (make_extraction): For MEMs, don't extract bytes outside
8701 of the original MEM.
8702
8703 2019-02-05 Martin Liska <mliska@suse.cz>
8704
8705 PR gcov-profile/89000
8706 * gcov.c (function_summary): Remove argument.
8707 (file_summary): New function.
8708 (print_usage): Replace tabs with spaces.
8709 (generate_results): Use new function file_summary.
8710
8711 2019-02-05 Jakub Jelinek <jakub@redhat.com>
8712
8713 PR target/89186
8714 * optabs.c (prepare_cmp_insn): Pass x and y to
8715 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
8716
8717 2019-02-05 Richard Biener <rguenther@suse.de>
8718
8719 PR middle-end/89150
8720 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
8721 (struct bitmap_element): Drop chain_prev so we properly recurse on
8722 the prev member, supporting tree views.
8723 (struct bitmap_head): GTY skip the obstack member.
8724
8725 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
8726
8727 PR c/88698
8728 * doc/extend.texi (Vector Extensions): Add an example of using vector
8729 types together with x86 intrinsics.
8730
8731 2019-02-04 Alan Modra <amodra@gmail.com>
8732
8733 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
8734 str[] size to 160, and comment.
8735
8736 2019-02-04 Alan Modra <amodra@gmail.com>
8737
8738 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
8739 (rs6000_pltseq_template): Guard output of TLS markers with
8740 TARGET_TLS_MARKERS.
8741 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
8742 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
8743 to use inline PLT sequences.
8744 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
8745 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
8746 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
8747
8748 2019-02-04 Martin Liska <mliska@suse.cz>
8749
8750 PR ipa/88985
8751 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
8752 out when ipa_fn_summaries does not contain entry for callee.
8753
8754 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
8755
8756 * config/sparc/sparc.h: Remove superfluous blank lines.
8757 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
8758 (got_register_rtx): ...this.
8759 (sparc_got): Adjust to above renaming.
8760 (sparc_tls_got): Likewise.
8761 (sparc_delegitimize_address): Likewise.
8762 (sparc_output_mi_thunk): Likewise.
8763 (sparc_init_pic_reg): Likewise.
8764 (save_local_or_in_reg_p): Fix test on the GOT register.
8765 (USE_HIDDEN_LINKONCE): Move around.
8766 (get_pc_thunk_name): Likewise.
8767 (gen_load_pcrel_sym): Likewise.
8768 (load_got_register): Likewise.
8769
8770 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
8771
8772 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
8773 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
8774
8775 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
8776
8777 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
8778 into consideration.
8779
8780 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
8781
8782 * config.gcc (with_nds32_lib, glibc):
8783 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
8784 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
8785 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
8786
8787 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
8788
8789 PR target/89071
8790 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
8791 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
8792 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
8793 (*rcpsf2_sse): Ditto.
8794 (*rsqrtsf2_sse): Ditto.
8795 (sse4_1_round<mode<2): Ditto.
8796
8797 2019-02-03 Richard Biener <rguenther@suse.de>
8798
8799 PR debug/87295
8800 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
8801 orig.
8802
8803 2019-02-02 Jakub Jelinek <jakub@redhat.com>
8804
8805 PR middle-end/87887
8806 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
8807 Punt with warning on aggregate return or argument types. Ignore
8808 type/mode checking for uniform arguments.
8809
8810 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
8811
8812 * combine.c (try_combine): Do not print "Can't combine" messages unless
8813 printing failed combination attempts.
8814
8815 2019-02-01 Martin Jambor <mjambor@suse.cz>
8816
8817 PR hsa/87863
8818 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
8819 segment and global segment variables before making them static.
8820
8821 2019-02-01 Martin Jambor <mjambor@suse.cz>
8822
8823 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
8824 missed optimization dump with dump_enabled_p.
8825
8826 2019-02-01 Richard Biener <rguenther@suse.de>
8827
8828 PR middle-end/88597
8829 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
8830 the instantiate cache.
8831 (instantiate_scev_binary): Elide second operand procesing
8832 if equal to the first.
8833 * tree-chrec.c (chrec_contains_symbols): Add visited set.
8834 (chrec_contains_undetermined): Likewise.
8835 (tree_contains_chrecs): Likewise.
8836
8837 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
8838
8839 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
8840
8841 2019-02-01 Jakub Jelinek <jakub@redhat.com>
8842
8843 PR tree-optimization/89143
8844 * wide-int-range.h (wide_int_range_absu): Declare.
8845 * wide-int-range.cc (wide_int_range_absu): New function.
8846 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
8847
8848 PR tree-optimization/88107
8849 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
8850 instead of assertion that eh_region_outermost is non-NULL, if it
8851 is NULL, set *ALL to true and return NULL.
8852 (move_sese_region_to_fn): Adjust caller, if all is set, call
8853 duplicate_eh_regions with NULL region.
8854
8855 2019-02-01 Richard Biener <rguenth@suse.de>
8856
8857 PR rtl-optimization/88593
8858 * mode-switching.c (optimize_mode_switching): Free dominators before
8859 calling cleanup_cfg.
8860
8861 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
8862
8863 PR tree-optimization/88932
8864 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
8865
8866 2019-01-31 Jakub Jelinek <jakub@redhat.com>
8867
8868 PR middle-end/89137
8869 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
8870 bogus clang warning.
8871
8872 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
8873
8874 PR target/89071
8875 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
8876 alternative to avoid partial SSE register stall for TARGET_AVX.
8877 (truncdfsf2): Ditto.
8878 (sse4_1_round<mode>2): Ditto.
8879
8880 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
8881
8882 PR tree-optimization/89008
8883 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
8884 process anything of the form X * 0.
8885
8886 2019-01-31 Richard Biener <rguenther@suse.de>
8887
8888 PR tree-optimization/89135
8889 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
8890 with abnormal preds.
8891
8892 2019-01-31 Jakub Jelinek <jakub@redhat.com>
8893
8894 PR sanitizer/89124
8895 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
8896 always_inline callees into no_sanitize_address callers.
8897
8898 2019-01-31 Richard Biener <rguenther@suse.de>
8899
8900 PR rtl-optimization/89115
8901 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
8902
8903 2019-01-30 Martin Sebor <msebor@redhat.com>
8904
8905 PR other/89106
8906 * doc/extend.texi (cast to a union): Correct and expand.
8907
8908 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
8909
8910 PR rtl-optimization/87246
8911 * lra-constraints.c (simplify_operand_subreg): Reload memory
8912 in subreg if the address became invalid.
8913
8914 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
8915
8916 PR target/87064
8917 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
8918 Disable for little-endian.
8919
8920 2019-01-30 Richard Biener <rguenther@suse.de>
8921
8922 PR rtl-optimization/89115
8923 * opts.c (default_options_optimization): Reduce
8924 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
8925 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
8926 to the default.
8927
8928 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
8929
8930 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
8931 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
8932 type of vector element when vec_extract is implemented by direct
8933 move.
8934
8935 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
8936
8937 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
8938
8939 2019-01-30 Richard Biener <rguenther@suse.de>
8940
8941 PR tree-optimization/89111
8942 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
8943 canonicalization to appropriately sized access types.
8944
8945 2019-01-30 Jakub Jelinek <jakub@redhat.com>
8946
8947 PR c++/89105
8948 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
8949 for arguments to functions that are TU-local and shouldn't be
8950 referenced by assembly.
8951
8952 2019-01-30 Ulrich Drepper <drepper@redhat.com>
8953
8954 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
8955 after '='.
8956
8957 2019-01-29 Martin Sebor <msebor@redhat.com>
8958
8959 PR c/88956
8960 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
8961
8962 2019-01-29 Jakub Jelinek <jakub@redhat.com>
8963
8964 PR c++/66676
8965 PR ipa/89104
8966 * omp-simd-clone.c (simd_clone_clauses_extract)
8967 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
8968 OMP_CLAUSE_ALIGNED_ALIGNMENT.
8969
8970 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
8971
8972 * config.gcc: Force .init_array for ARC.
8973
8974 2019-01-29 Richard Biener <rguenther@suse.de>
8975
8976 PR debug/87295
8977 * dwarf2out.c (collect_skeleton_dies): New helper.
8978 (copy_decls_for_unworthy_types): Call it.
8979 (build_abbrev_table): Assert we do not try to replace
8980 DW_AT_signature refs with local refs.
8981
8982 2019-01-28 Jakub Jelinek <jakub@redhat.com>
8983
8984 PR middle-end/89002
8985 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
8986 for lastprivate/linear IV, push gimplify context around gimplify_assign
8987 and, if it needed any temporaries, pop it into a gimple bind around the
8988 sequence.
8989
8990 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
8991
8992 * common.opt (-Wattribute-alias): Remove "no-" from name.
8993 Make -Wattribute-alias command line option and
8994 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
8995
8996 2019-01-28 Jakub Jelinek <jakub@redhat.com>
8997
8998 PR target/89073
8999 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
9000 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
9001 x86 ISA options.
9002 (bmi2): Add missing @opindex.
9003 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
9004 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
9005 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
9006 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
9007 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
9008 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
9009 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
9010 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
9011 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
9012 xsavec, xsaveopt and xsaves options.
9013
9014 2019-01-28 Richard Biener <rguenther@suse.de>
9015
9016 PR debug/89076
9017 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
9018 support removal.
9019
9020 2019-01-28 Richard Biener <rguenther@suse.de>
9021
9022 PR tree-optimization/88739
9023 * tree-cfg.c (verify_types_in_gimple_reference): Verify
9024 BIT_FIELD_REFs only are applied to mode-precision operands
9025 when they are integral.
9026 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
9027 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
9028 BIT_FIELD_REFs of non-mode-precision integral operands.
9029
9030 2019-01-27 Jakub Jelinek <jakub@redhat.com>
9031
9032 PR target/87214
9033 * config/i386/sse.md
9034 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
9035 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
9036 first constants in pairs are multiples of 2. Formatting fixes.
9037 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
9038 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
9039 first constants in each quadruple are multiples of 4. Formatting fixes.
9040
9041 2019-01-26 Martin Jambor <mjambor@suse.cz>
9042
9043 PR ipa/88933
9044 * tree-inline.c: Include tree-cfgcleanup.h.
9045 (delete_unreachable_blocks_update_callgraph): Move...
9046 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
9047 ...here, make externally visible, make second argument bool, adjust
9048 all callers.
9049 * tree-cfgcleanup.c: Include cgraph.h.
9050 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
9051 Declare.
9052 * ipa-prop.c: Include tree-cfgcleanup.h.
9053 (ipcp_transform_function): Call
9054 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
9055
9056 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
9057
9058 PR rtl-optimization/88846
9059 * ira.c (process_set_for_memref_referenced_p): New.
9060 (memref_referenced_p): Add new param. Use
9061 process_set_for_memref_referenced_p. Add new switch cases.
9062 (memref_used_between_p): Pass new arg to memref_referenced_p.
9063
9064 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
9065
9066 PR target/88469
9067 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
9068 argument ABI_BREAK. Set to true if the calculated alignment has
9069 changed in gcc-9. Check bit-fields for their base type alignment.
9070 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
9071 (aarch64_function_arg_boundary): Likewise.
9072 (aarch64_gimplify_va_arg_expr): Likewise.
9073
9074 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
9075
9076 PR middle-end/89037
9077 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
9078 instead of accessing TREE_INT_CST_ELT directly.
9079
9080 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
9081
9082 * doc/sourcebuild.texi (Environment attributes): Add fenv and
9083 fenv_exceptions description.
9084
9085 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
9086
9087 PR rtl-optimization/87763
9088 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
9089 Allow SUBREG when matching CC_NZmode compare.
9090
9091 2019-01-25 Richard Biener <rguenther@suse.de>
9092
9093 PR tree-optimization/89049
9094 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
9095 Look at the pattern stmt to determine if the stmt is vectorized.
9096
9097 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
9098
9099 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
9100 (pred_mov<mode>): Handle all-register forms using both a new
9101 alternative and a split.
9102
9103 2019-01-25 Richard Biener <rguenther@suse.de>
9104
9105 PR tree-optimization/86865
9106 * graphite-scop-detection.c (scop_detection::can_represent_loop):
9107 Reject non-do-while loops.
9108
9109 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
9110
9111 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
9112 * config/rs6000/constraints.md (Q constraint): Use REG_P.
9113 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
9114 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
9115 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
9116 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
9117 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
9118 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
9119 vlogical_operand, gpc_reg_operand, int_reg_operand,
9120 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
9121 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
9122 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
9123 (save_world_operation, restore_world_operation, lmw_operation,
9124 stmw_operation): Use MEM_P and REG_P.
9125 (tie_operand): Use MEM_P.
9126 (vrsave_operation, crsave_operation): Use REG_P.
9127 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
9128 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
9129 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
9130 (call_operand): Use HARD_REGISTER_P.
9131 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
9132 Use CONST_INT_P.
9133 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
9134 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
9135 quad_aligned_load_p, replace_swapped_aligned_store,
9136 recombine_lvx_pattern, replace_swapped_aligned_load,
9137 recombine_stvx_pattern): Use MEM_P.
9138 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
9139 Use MEM_P and SYMBOL_REF_P.
9140 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
9141 (insn_is_swappable_p): Use REG_P and MEM_P.
9142 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
9143 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
9144 Use CONST_INT_P.
9145 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
9146 Use CONST_DOUBLE_P.
9147 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
9148 CONST_WIDE_INT_P.
9149 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
9150 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
9151 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
9152 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
9153 reg_or_subregno:
9154 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
9155 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
9156 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
9157 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
9158 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
9159 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
9160 rs6000_split_logical_di): Use CONST_INT_P.
9161 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
9162 REG_P and SYMBOL_REF_P.
9163 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
9164 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
9165 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
9166 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
9167 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
9168 (small_data_operand, print_operand_address): Use CONST_INT_P and
9169 SYMBOL_REF_P.
9170 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
9171 (rs6000_init_hard_regno_mode_ok, direct_move_p):
9172 Use HARD_REGISTER_NUM_P.
9173 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
9174 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
9175 SUBREG_P and SYMBOL_REF_P.
9176 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
9177 and HARD_REGISTER_NUM_P.
9178 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
9179 reg_or_subregno.
9180 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
9181 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
9182 MEM_P and REG_P.
9183 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
9184 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
9185 find_addr_reg): Use REG_P.
9186 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
9187 (rs6000_emit_le_vsx_move): Use SUBREG_P.
9188 (offsettable_ok_by_alignment, constant_pool_expr_p,
9189 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
9190 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
9191 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
9192 rs6000_assemble_integer, create_TOC_reference,
9193 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
9194 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
9195 (rs6000_split_vec_extract_var): Use reg_or_subregno.
9196 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
9197 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
9198 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
9199 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
9200 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
9201 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
9202 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
9203 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
9204 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
9205 and cbranch<mode>4): Use CONST_INT_P.
9206 (multiple define_splits): Use REG_P and SUBREG_P.
9207 (define_expands call, call_value): Use MEM_P.
9208 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
9209 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
9210 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
9211 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
9212 and HARD_REGISTER_NUM_P.
9213 (multiple define_splits): Use HARD_REGISTER_NUM_P.
9214
9215 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
9216
9217 PR rtl-optimization/88948
9218 * rtl.h (prepare_copy_insn): New prototype.
9219 * gcse.c (prepare_copy_insn): New function, split out from
9220 process_insert_insn.
9221 (process_insert_insn): Use prepare_copy_insn.
9222 * store-motion.c (replace_store_insn): Use prepare_copy_insn
9223 instead of gen_move_insn.
9224
9225 2019-01-24 Jakub Jelinek <jakub@redhat.com>
9226
9227 PR debug/89006
9228 * config/i386/i386.c (ix86_pic_register_p): Return true for
9229 UNSPEC_SET_GOT too.
9230
9231 PR tree-optimization/88964
9232 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
9233 punt if HONOR_SNANS (chrec).
9234
9235 PR middle-end/89015
9236 * tree-nested.c (convert_nonlocal_reference_stmt,
9237 convert_local_reference_stmt, convert_tramp_reference_stmt,
9238 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
9239 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
9240 or GIMPLE_OMP_TASK.
9241
9242 PR tree-optimization/89027
9243 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
9244 for "omp simd array" variables.
9245
9246 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
9247
9248 PR target/88469
9249 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
9250 force the alignment of m_val.
9251
9252 2019-01-24 Richard Biener <rguenther@suse.de>
9253
9254 PR lto/87187
9255 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
9256 When in "legacy" debug mode make sure to reset self-origins.
9257
9258 2019-01-24 Martin Liska <mliska@suse.cz>
9259
9260 PR gcov-profile/88994
9261 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
9262 result will be always smaller or equal to the original.
9263 * gcov.c (mangle_name): Fix else branch where we should
9264 also copy to PTR and shift the pointer.
9265
9266 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
9267
9268 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
9269 * vr-values.c (find_case_label_ranges): Fix a comment typo.
9270
9271 2019-01-23 Xuepeng Guo <xuepeng.guo@intel.com>
9272
9273 * common/config/i386/i386-common.c
9274 (OPTION_MASK_ISA_ENQCMD_SET,
9275 OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
9276 (ix86_handle_option): Handle -menqcmd.
9277 * config.gcc (enqcmdintrin.h): New header file.
9278 * config/i386/cpuid.h (bit_ENQCMD): New bit.
9279 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
9280 -menqcmd.
9281 * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
9282 function type.
9283 * config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
9284 __builtin_ia32_enqcmds): New builtins.
9285 * config/i386/i386-c.c (__ENQCMD__): New macro.
9286 * config/i386/i386-option.c (ix86_target_string): Add
9287 -menqcmd.
9288 (ix86_valid_target_attribute_inner_p): Likewise.
9289 * config/i386/i386-expand.c
9290 (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
9291 IX86_BUILTIN_ENQCMDS.
9292 * config/i386/i386.h (TARGET_ENQCMD): New.
9293 * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
9294 (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
9295 (movdir64b_<mode>): Parameterize to enable share expansion code
9296 with ENQCMD in function ix86_expand_builtin.
9297 * config/i386/i386.opt: Add -menqcmd.
9298 * config/i386/immintrin.h: Include enqcmdintrin.h.
9299 * config/i386/enqcmdintrin.h: New intrinsic file.
9300 * doc/invoke.texi: Add -menqcmd.
9301
9302 2019-01-23 Bin Cheng <bin.cheng@arm.com>
9303 Steve Ellcey <sellcey@marvell.com>
9304
9305 PR target/85711
9306 * recog.c (address_operand): Return false on wrong mode for address.
9307 (constrain_operands): Check for mode with 'p' constraint.
9308
9309 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
9310
9311 PR target/88998
9312 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
9313 Disparage MMX alternative.
9314 (sse2_cvtpd2pi): Ditto.
9315 (sse2_cvttpd2pi): Ditto.
9316
9317 2019-01-23 David Malcolm <dmalcolm@redhat.com>
9318
9319 PR driver/89014
9320 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
9321 use-after-free of the result of
9322 aarch64_get_extension_string_for_isa_flags.
9323
9324 2019-01-23 Jakub Jelinek <jakub@redhat.com>
9325
9326 PR c/44715
9327 * doc/extend.texi: Document break and continue behavior in
9328 statement expressions.
9329
9330 2019-01-23 Richard Biener <rguenther@suse.de>
9331
9332 PR tree-optimization/89008
9333 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
9334 not leave another stray operand.
9335
9336 2019-01-23 Jakub Jelinek <jakub@redhat.com>
9337
9338 * BASE-VER: Bump to 9.0.1.
9339
9340 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
9341
9342 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
9343 thunk that returns by reference, use the type of the return object
9344 of the thunk instead of that of the alias to build the dereference.
9345
9346 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
9347
9348 * config/arc/atomic.md: Add operand to DMB instruction.
9349
9350 2019-01-23 Jakub Jelinek <jakub@redhat.com>
9351
9352 PR tree-optimization/88964
9353 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
9354 build_zero_cst instead of build_int_cst. Return false for loop
9355 invariants which honor signed zeros.
9356
9357 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
9358
9359 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
9360
9361 2019-01-22 Jakub Jelinek <jakub@redhat.com>
9362
9363 PR target/88965
9364 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
9365 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
9366 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
9367
9368 PR middle-end/88968
9369 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
9370 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
9371
9372 PR target/87064
9373 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
9374 Disable for little endian.
9375
9376 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
9377
9378 PR target/88469
9379 * config/arm/arm.c (arm_needs_double_word_align): Check
9380 DECL_BIT_FIELD_TYPE.
9381
9382 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
9383 H.J. Lu <hongjiu.lu@intel.com>
9384
9385 PR target/88909
9386 * config/i386/i386-builtin.def: Add mask2 to all builtin
9387 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
9388 SPECIAL_ARGS.
9389 * config/i386/i386.c (BDESC): Add mask2 to the definition.
9390 (BDESC_FIRST): Likewise.
9391 (define_builtin): Add an argument for mask2. Updated to handle
9392 both ix86_isa_flags and ix86_isa_flags2.
9393 (define_builtin_const): Likewise.
9394 (define_builtin_pure): Likewise.
9395 (define_builtin2): Deleted.
9396 (define_builtin_const2): Likewise.
9397 (builtin_description): Add a member, mask2.
9398 (bdesc_*): Add mask2 to builtin initializations.
9399 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
9400 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
9401 support.
9402 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
9403
9404 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
9405
9406 PR target/88954
9407 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
9408 noplt attribute.
9409
9410 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
9411
9412 PR target/88469
9413 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
9414 alignment is dominated by a bitfield with 64-bit aligned base type.
9415 (arm_function_arg): Emit a warning if the alignment has changed since
9416 earlier GCC releases.
9417 (arm_function_arg_boundary): Likewise.
9418 (arm_setup_incoming_varargs): Likewise.
9419
9420 2019-01-22 Richard Biener <rguenther@suse.de>
9421
9422 PR tree-optimization/88862
9423 * graphite-scop-detection.c
9424 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
9425
9426 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
9427
9428 * doc/extend.tex (AMD GCN Function Attributes): New section.
9429 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
9430 * doc/invoke.texi (AMD GCN Options): New section.
9431 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
9432
9433 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
9434
9435 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
9436 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
9437
9438 2019-01-22 Jakub Jelinek <jakub@redhat.com>
9439
9440 PR tree-optimization/88044
9441 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
9442 is false in the first iteration, but !every_iteration, return false
9443 instead of true with niter->niter zero.
9444
9445 PR rtl-optimization/88904
9446 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
9447 any nonequal registers before processing BB_END (b).
9448
9449 PR target/88905
9450 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
9451 GET_MODE (op0).
9452 (expand_binop_directly, expand_doubleword_clz,
9453 expand_doubleword_popcount, expand_ctz, expand_ffs,
9454 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
9455
9456 PR rtl-optimization/49429
9457 PR target/49454
9458 PR rtl-optimization/86334
9459 PR target/88906
9460 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
9461 addressable from here...
9462 (emit_block_op_via_libcall): ... to here.
9463
9464 2019-01-22 Richard Biener <rguenther@suse.de>
9465
9466 * tree-vect-loop.c (vect_analyze_loop_operations): Use
9467 auto_vec for cost vector to fix memleak.
9468 (vectorize_fold_left_reduction): Properly gather SLP defs.
9469 (vectorizable_comparison): Do not swap operands to properly
9470 gather SLP defs.
9471
9472 2019-01-22 Alan Modra <amodra@gmail.com>
9473
9474 PR target/88614
9475 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
9476 stays a reg. Allow a const_int.
9477 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
9478 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
9479 (IS_NOMARK_TLSGETADDR): Define.
9480 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
9481 (rs6000_output_tlsargs): New function.
9482 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
9483 __tls_get_addr call takes an arg.
9484 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
9485 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
9486 delete split..
9487 (call_value_nonlocal_sysv): ..or here, delete split.
9488 (tls_gdld_nomark): Delete.
9489 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
9490 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
9491 (call_value_nonlocal_sysv): Likewise.
9492 (call_value_nonlocal_sysv_secure): Likewise.
9493 (call_value_nonlocal_aix): Likewise.
9494 (call_value_indirect_aix): Likewise.
9495 (call_value_indirect_elfv2): Likewise.
9496 (call_value_local32, call_value_local64): Disable for no-mark tls.
9497 (call_value_local_aix): Likewise.
9498
9499 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
9500
9501 PR target/88938
9502 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
9503 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
9504
9505 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
9506
9507 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
9508 string contents as hash_map keys.
9509
9510 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
9511
9512 PR c/88928
9513 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
9514 for rvalue context. Handle rvalues correctly. Use min_align_of_type
9515 instead of TYPE_ALIGN.
9516 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
9517 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
9518 pointer from TYPE_STUB_DECL.
9519
9520 2019-01-21 Richard Biener <rguenther@suse.de>
9521
9522 PR tree-optimization/88934
9523 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
9524 at the possibly non-constant operand.
9525 (vect_get_constant_vectors): Adjust.
9526
9527 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
9528
9529 PR target/71659
9530 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
9531 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
9532 instead of _X86INTRIN_H_INCLUDED.
9533 * onfig/i386/clwbintrin.h: Likewise.
9534 * config/i386/pkuintrin.h: Likewise.
9535 * config/i386/prfchwintrin.h: Likewise.
9536 * config/i386/rdseedintrin.h: Likewise.
9537 * config/i386/wbnoinvdintrin.h: Likewise.
9538 * config/i386/xsavecintrin.h: Likewise.
9539 * config/i386/xsavesintrin.h: Likewise.
9540 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
9541 * config/i386/xsaveintrin.h: Likewise.
9542 * config/i386/xsaveoptintrin.h: Likewise.
9543 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
9544 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
9545 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
9546 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
9547 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
9548 * config/i386/immintrin.h: Here.
9549
9550 2019-01-20 Martin Jambor <mjambor@suse.cz>
9551
9552 PR ipa/87615
9553 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
9554 with aa_walk_budget.
9555 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
9556 aa_walk_budget_p parameter.
9557 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
9558 walk. Updated all callers.
9559 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
9560 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
9561 unmodified_parm.
9562 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
9563 parameter info. Extract info from fbi. Pass fbi to recursive calls
9564 and to unmodified_parm.
9565 (phi_result_unknown_predicate): New parameter fbi, removed parameter
9566 info, updated call to will_be_nonconstant_expr_predicate.
9567 (param_change_prob): New parameter fbi, limit AA walking.
9568 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
9569 calls to various above functions.
9570 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
9571 parameter. Use it to limit AA walking.
9572 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
9573 fbi, limit AA walk.
9574 (detect_type_change): New parameter fbi, pass it on to
9575 detect_type_change_from_memory_writes.
9576 (detect_type_change_ssa): Likewise.
9577 (aa_overwalked): Removed.
9578 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
9579 accordingly, adjust to the neew AA limiting scheme.
9580 (parm_ref_data_preserved_p): Likewise.
9581 (ipa_compute_jump_functions_for_edge): Adjust call to
9582 get_dynamic_type.
9583 (ipa_analyze_call_uses): Likewise.
9584 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
9585 (ipa_analyze_node): Initialize aa_walk_budget.
9586 (ipcp_transform_function): Likewise.
9587 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
9588 to get_dynamic_type.
9589
9590 2019-01-19 Jakub Jelinek <jakub@redhat.com>
9591
9592 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
9593 outside of #if CHECKING_P code.
9594
9595 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
9596
9597 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
9598 New function, split out from...
9599 (loop_versioning::analyze_stride): ...here.
9600 (loop_versioning::find_per_loop_multiplication): Use gassign.
9601 (loop_versioning::analyze_term_using_scevs): Return a success code.
9602 (loop_versioning::analyze_arbitrary_term): New function.
9603 (loop_versioning::analyze_address_fragment): Use
9604 analyze_arbitrary_term if all else fails.
9605
9606 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
9607
9608 PR target/88892
9609 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
9610 operands.
9611
9612 2019-01-18 Richard Biener <rguenther@suse.de>
9613
9614 PR tree-optimization/88903
9615 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
9616 scalar stmts a SLP shift amount is composed of when detecting
9617 shifts by scalars.
9618
9619 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
9620
9621 PR target/88799
9622 * config/arm/arm-cpus.in (mp): New feature.
9623 (sec): New feature.
9624 (fgroup ARMv7ve): Add mp and sec features.
9625 (arch armv7-a): Add options to allow mp and sec extensions.
9626 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
9627 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
9628 extenstions to the base architecture.
9629 (cpu cortex-a8): Add sec extension to the base architecture.
9630 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
9631 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
9632 variants down to the base v7-a varaint.
9633 * config/arm/t-multilib (v7_a_arch_variants): New variable.
9634 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
9635 of permitted extensions for -march=armv7-a and for
9636 -mcpu=generic-armv7-a.
9637
9638 2019-01-18 Martin Liska <mliska@suse.cz>
9639
9640 * params.def: Fix comment.
9641 * tree-profile.c (gimple_init_gcov_profiler): Bump function
9642 name.
9643 (gimple_gen_ic_func_profiler): Likewise.
9644
9645 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9646
9647 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
9648 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
9649 and put in error checks for stack protector guard options.
9650 (aarch64_stack_protect_guard): New.
9651 (TARGET_STACK_PROTECT_GUARD): Define.
9652 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
9653 (reg_stack_protect_address<mode>): New.
9654 (stack_protect_set): Adjust for SSP_GLOBAL.
9655 (stack_protect_test): Likewise.
9656 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
9657 (-mstack-protector-guard): Likewise.
9658 (-mstack-protector-guard-offset): Likewise.
9659
9660 2019-01-18 Jakub Jelinek <jakub@redhat.com>
9661
9662 PR tree-optimization/86214
9663 * tree-inline.h (struct copy_body_data): Add
9664 add_clobbers_to_eh_landing_pads member.
9665 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
9666 (copy_edges_for_bb): Call it if EH edge destination is <
9667 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
9668 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
9669 if flag_stack_reuse != SR_NONE and clear it afterwards.
9670
9671 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
9672
9673 PR target/85596
9674 * doc/install.texi (with-multilib-list): Document for aarch64.
9675
9676 2019-01-18 Jakub Jelinek <jakub@redhat.com>
9677
9678 PR target/88734
9679 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
9680 (("..."))) with ("...").
9681
9682 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
9683
9684 * doc/extend.texi (Built-in Functions for Memory Model Aware
9685 Atomic Operations): Document atomic fetch and nand.
9686
9687 2019-01-18 Martin Liska <mliska@suse.cz>
9688 Richard Biener <rguenther@suse.de>
9689
9690 PR middle-end/88587
9691 * cgraph.h (create_version_clone_with_body): Add new argument
9692 with attributes.
9693 * cgraphclones.c (cgraph_node::create_version_clone): Add
9694 DECL_ATTRIBUTES to a newly created decl. And call
9695 valid_attribute_p so that proper cl_target_optimization_node
9696 is set for the newly created declaration.
9697 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
9698 for declaration.
9699 (expand_target_clones): Do not call valid_attribute_p, it must
9700 be already done.
9701 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
9702 vector types.
9703
9704 2019-01-17 Jakub Jelinek <jakub@redhat.com>
9705
9706 PR target/88734
9707 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
9708 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
9709 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
9710
9711 2019-01-17 Martin Sebor <msebor@redhat.com>
9712
9713 PR middle-end/88273
9714 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
9715 Handle anti-ranges the same as no range at all.
9716
9717 2018-01-17 Steve Ellcey <sellcey@cavium.com>
9718
9719 * config/aarch64/aarch64.c (cgraph.h): New include.
9720 (intl.h): New include.
9721 (supported_simd_type): New function.
9722 (currently_supported_simd_type): Ditto.
9723 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
9724 (aarch64_simd_clone_adjust): Ditto.
9725 (aarch64_simd_clone_usable): Ditto.
9726 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
9727 (TARGET_SIMD_CLONE_ADJUST): Ditto.
9728 (TARGET_SIMD_CLONE_USABLE): Ditto.
9729 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
9730 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
9731 call.
9732
9733 2019-01-17 Martin Sebor <msebor@redhat.com>
9734
9735 PR tree-optimization/88800
9736 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
9737 NO_WARNING bit here. Avoid folding out-of-bounds calls.
9738 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
9739 redundant argument. Add new argument and issue diagnostics under
9740 its control. Detect out-of-bounds access even with warnings
9741 disabled.
9742 (check_bounds_or_overlap): Change return type. Add argument.
9743 (wrestrict_dom_walker::check_call): Adjust.
9744 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
9745 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
9746 check_bounds_or_overlap's return value.
9747 (handle_builtin_stxncpy): Same.
9748 (handle_builtin_strcat): Same.
9749
9750 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
9751 Kwok Cheung Yeung <kcy@codesourcery.com>
9752 Julian Brown <julian@codesourcery.com>
9753 Tom de Vries <tom@codesourcery.com>
9754
9755 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
9756
9757 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
9758
9759 * doc/sourcebuild.texi: Document dg-require-effective-target
9760 llvm_binutils and offload_gcn.
9761
9762 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
9763 Kwok Cheung Yeung <kcy@codesourcery.com>
9764 Julian Brown <julian@codesourcery.com>
9765 Tom de Vries <tom@codesourcery.com>
9766
9767 * doc/sourcebuild.texi: Document dg-required-effective-target
9768 exceptions.
9769
9770 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
9771 Kwok Cheung Yeung <kcy@codesourcery.com>
9772 Julian Brown <julian@codesourcery.com>
9773 Tom de Vries <tom@codesourcery.com>
9774 Jan Hubicka <hubicka@ucw.cz>
9775 Martin Jambor <mjambor@suse.cz>
9776
9777 * config.gcc: Add amdgcn*-*-amdhsa configuration.
9778 * configure.ac: Check for dlopen.
9779 * configure: Regenerate.
9780
9781 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
9782 Kwok Cheung Yeung <kcy@codesourcery.com>
9783 Julian Brown <julian@codesourcery.com>
9784 Tom de Vries <tom@codesourcery.com>
9785 Jan Hubicka <hubicka@ucw.cz>
9786 Martin Jambor <mjambor@suse.cz>
9787
9788 * common/config/gcn/gcn-common.c: New file.
9789 * config/gcn/driver-gcn.c: New file.
9790 * config/gcn/gcn-builtins.def: New file.
9791 * config/gcn/gcn-hsa.h: New file.
9792 * config/gcn/gcn-modes.def: New file.
9793 * config/gcn/gcn-opts.h: New file.
9794 * config/gcn/gcn-passes.def: New file.
9795 * config/gcn/gcn-protos.h: New file.
9796 * config/gcn/gcn-run.c: New file.
9797 * config/gcn/gcn-tree.c: New file.
9798 * config/gcn/gcn.c: New file.
9799 * config/gcn/gcn.h: New file.
9800 * config/gcn/gcn.opt: New file.
9801 * config/gcn/t-gcn-hsa: New file.
9802
9803 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
9804 Kwok Cheung Yeung <kcy@codesourcery.com>
9805 Julian Brown <julian@codesourcery.com>
9806 Tom de Vries <tom@codesourcery.com>
9807 Jan Hubicka <hubicka@ucw.cz>
9808 Martin Jambor <mjambor@suse.cz>
9809
9810 * config/gcn/constraints.md: New file.
9811 * config/gcn/gcn-valu.md: New file.
9812 * config/gcn/gcn.md: New file.
9813 * config/gcn/predicates.md: New file.
9814
9815 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
9816
9817 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
9818 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
9819 (stmt_uses_0_or_null_in_undefined_way): Likewise.
9820 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
9821
9822 2019-01-17 Tamar Christina <tamar.christina@arm.com>
9823
9824 PR target/88851
9825 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
9826 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
9827 it and document registers.
9828
9829 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9830
9831 * config/aarch64/aarch64.c (ares_tunings): Define.
9832 * config/aarch64/aarch64-cores.def (ares): Use the above.
9833
9834 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
9835
9836 PR target/88794
9837 Revert:
9838 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
9839
9840 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
9841 (_mm512_fixupimm_round_pd): Update parameters and builtin.
9842 (_mm512_maskz_fixupimm_round_pd): Ditto.
9843 (_mm512_fixupimm_round_ps): Ditto.
9844 (_mm512_maskz_fixupimm_round_ps): Ditto.
9845 (_mm_fixupimm_round_sd): Ditto.
9846 (_mm_maskz_fixupimm_round_sd): Ditto.
9847 (_mm_fixupimm_round_ss): Ditto.
9848 (_mm_maskz_fixupimm_round_ss): Ditto.
9849 (_mm512_fixupimm_pd): Ditto.
9850 (_mm512_maskz_fixupimm_pd): Ditto.
9851 (_mm512_fixupimm_ps): Ditto.
9852 (_mm512_maskz_fixupimm_ps): Ditto.
9853 (_mm_fixupimm_sd): Ditto.
9854 (_mm_maskz_fixupimm_sd): Ditto.
9855 (_mm_fixupimm_ss): Ditto.
9856 (_mm_maskz_fixupimm_ss): Ditto.
9857 (_mm512_mask_fixupimm_round_pd): Update builtin.
9858 (_mm512_mask_fixupimm_round_ps): Ditto.
9859 (_mm_mask_fixupimm_round_sd): Ditto.
9860 (_mm_mask_fixupimm_round_ss): Ditto.
9861 (_mm512_mask_fixupimm_pd): Ditto.
9862 (_mm512_mask_fixupimm_ps): Ditto.
9863 (_mm_mask_fixupimm_sd): Ditto.
9864 (_mm_mask_fixupimm_ss): Ditto.
9865 * config/i386/avx512vlintrin.h:
9866 (_mm256_fixupimm_pd): Update parameters and builtin.
9867 (_mm256_maskz_fixupimm_pd): Ditto.
9868 (_mm256_fixupimm_ps): Ditto.
9869 (_mm256_maskz_fixupimm_ps): Ditto.
9870 (_mm_fixupimm_pd): Ditto.
9871 (_mm_maskz_fixupimm_pd): Ditto.
9872 (_mm_fixupimm_ps): Ditto.
9873 (_mm_maskz_fixupimm_ps): Ditto.
9874 (_mm256_mask_fixupimm_pd): Update builtin.
9875 (_mm256_mask_fixupimm_ps): Ditto.
9876 (_mm_mask_fixupimm_pd): Ditto.
9877 (_mm_mask_fixupimm_ps): Ditto.
9878 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
9879 * config/i386/i386-builtin.def: Update builtin definitions.
9880 * config/i386/i386.c: Handle new builtin types and remove useless ones.
9881 * config/i386/sse.md: Update VFIXUPIMM* patterns.
9882 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
9883 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
9884 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
9885 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
9886 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
9887 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
9888 * config/i386/subst.md:
9889 (round_saeonly_sd_mask_operand4): Add new subst_attr.
9890 (round_saeonly_sd_mask_op4): Ditto.
9891 (round_saeonly_expand_operand5): Ditto.
9892 (round_saeonly_expand): Update.
9893
9894 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
9895
9896 PR target/88794
9897 Revert:
9898 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
9899
9900 * config/i386/sse.md: Combine VFIXUPIMM* patterns
9901 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
9902 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
9903 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
9904 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
9905 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
9906 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
9907
9908 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
9909
9910 PR target/88794
9911 Revert:
9912 2018-12-15 Jakub Jelinek <jakub@redhat.com>
9913
9914 PR target/88489
9915 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
9916 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
9917 instead of UNSPEC_FIXUPIMM.
9918
9919 2019-01-17 Richard Biener <rguenther@suse.de>
9920
9921 PR lto/86736
9922 * dwarf2out.c (want_pubnames): Never generate pubnames sections
9923 and friends for the LTO part of debug info.
9924
9925 2019-01-17 Jakub Jelinek <jakub@redhat.com>
9926
9927 PR tree-optimization/86214
9928 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
9929 if x == y.
9930
9931 PR rtl-optimization/88870
9932 * dce.c (deletable_insn_p): Never delete const/pure calls that can
9933 throw if we can't alter the cfg or delete dead exceptions.
9934 (mark_insn): Don't call find_call_stack_args for such calls.
9935
9936 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
9937
9938 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
9939 prototypes for vec_st.
9940 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
9941 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
9942 mainly on signed/unsigned long long and double.
9943
9944 2019-01-16 David Malcolm <dmalcolm@redhat.com>
9945
9946 PR target/88861
9947 * combine.c (delete_noop_moves): Convert to "bool" return,
9948 returning true if any edges are eliminated.
9949 (combine_instructions): Also return true if delete_noop_moves
9950 returns true.
9951
9952 2019-01-16 Tamar Christina <tamar.christina@arm.com>
9953
9954 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
9955 correct max nunits for endian swap.
9956 (aarch64_expand_fcmla_builtin): Correct subreg code.
9957 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
9958 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
9959 lane endianness.
9960
9961 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
9962
9963 * config/alpha/alpha.c (alpha_gimplify_va_arg):
9964 Handle split indirect COMPLEX_TYPE arguments.
9965
9966 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
9967
9968 PR target/86891
9969 * config/aarch64/aarch64-modes.def: Add comment about how the carry
9970 bit is set by add and compare.
9971 (CC_ADC): New CC_MODE.
9972 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
9973 to cache the code and mode of X. Adjust the shape of a CC_Cmode
9974 comparison. Add detection for CC_ADCmode.
9975 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
9976 CC_ADCmode.
9977 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
9978 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
9979 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
9980 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
9981 to eliminate the need for zero-extending the operands.
9982 (add<mode>3_compareC_imm): Delete. Merge into ...
9983 (add<mode>3_compareC): ... this. Restructure the comparison to
9984 eliminate the need for zero-extending the operands.
9985 (add<mode>3_carryin): Use LTU for the overflow detection.
9986 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
9987 Reexpress comparison for overflow.
9988 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
9989 (add<mode>3_carryinC): Likewise.
9990 (add<mode>3_carryinV): Use LTU for carry between partials.
9991 * config/aarch64/predicates.md (aarch64_carry_operation): Update
9992 handling of CC_Cmode and add CC_ADCmode.
9993 (aarch64_borrow_operation): Likewise.
9994
9995 2019-01-16 Tamar Christina <tamar.christina@arm.com>
9996
9997 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
9998 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
9999 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
10000 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
10001
10002 2019-01-16 Martin Liska <mliska@suse.cz>
10003
10004 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
10005 for GCC driver.
10006 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
10007 a new argument.
10008 * gcc.c (add_sysrooted_hdrs_prefix): New function.
10009 (path_prefix_reset): Move up in the source file.
10010 (find_fortran_preinclude_file): Make complex search for the
10011 fortran header files.
10012
10013 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
10014
10015 * godump.c (go_output_typedef): When outputting a typedef, refer
10016 to the underlying type by its name and not its structure.
10017
10018 2019-01-15 David Malcolm <dmalcolm@redhat.com>
10019
10020 PR c++/88795
10021 * tree.c (build_function_type): Assert that arg_types is not
10022 error_mark_node.
10023
10024 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
10025
10026 PR inline-asm/52813
10027 * doc/extend.texi: Document that listing the stack pointer in the
10028 clobber list of an asm is a deprecated feature.
10029 * common.opt (Wdeprecated): Moved from c-family/c.opt.
10030 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
10031 warning instead of an error for clobbers of the stack pointer.
10032 Add a note explaining why.
10033
10034 2019-01-15 Richard Biener <rguenther@suse.de>
10035
10036 PR debug/88046
10037 * dwarf2out.c (gen_member_die): Do not generate inheritance
10038 DIEs late.
10039
10040 2019-01-15 Richard Biener <rguenther@suse.de>
10041
10042 PR tree-optimization/88855
10043 * tree-if-conv.c (combine_blocks): Collect
10044 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
10045
10046 2019-01-15 Tom de Vries <tdevries@suse.de>
10047
10048 PR target/80547
10049 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
10050 lhs == NULL_TREE for gang-level reduction.
10051
10052 2019-01-15 Richard Biener <rguenther@suse.de>
10053 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10054
10055 PR ipa/88788
10056 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
10057 return true if SSA_NAME is already marked in visited bitmap.
10058 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
10059
10060 2019-01-15 Jakub Jelinek <jakub@redhat.com>
10061
10062 PR tree-optimization/88775
10063 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
10064 equal == 0 equality pointer comparisons some more if compared in
10065 integral types and either one points to an automatic var and the
10066 other to a global, or we can prove at least one points to the middle
10067 or both point to start or both point to end.
10068
10069 2019-01-14 Andi Kleen <ak@linux.intel.com>
10070
10071 * Makefile.in: Lower autofdo sampling rate by 10x.
10072 * Makefile.tpl: Dito.
10073
10074 2019-01-14 Tom Honermann <tom@honermann.net>
10075
10076 * defaults.h: Define CHAR8_TYPE.
10077
10078 2019-01-14 Martin Sebor <msebor@redhat.com>
10079
10080 PR target/88638
10081 * doc/extend.texi (Darwin Format Checks): Clarify.
10082
10083 2019-01-14 Richard Biener <rguenther@suse.de>
10084
10085 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
10086 whether we are in (simplify ...) or (match ...) context.
10087
10088 2019-01-14 Jakub Jelinek <jakub@redhat.com>
10089
10090 PR rtl-optimization/88796
10091 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
10092 * cfgexpand.c (stack_protect_prologue): Initialize
10093 crtl->stack_protect_guard_decl.
10094 * function.c (stack_protect_epilogue): Use it instead of calling
10095 targetm.stack_protect_guard again.
10096 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
10097 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
10098 crtl->stack_protect_guard_decl.
10099 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
10100 on the returned MEM_EXPR.
10101
10102 2019-01-12 Tom de Vries <tdevries@suse.de>
10103
10104 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
10105 vector length using -fopenacc-dim.
10106
10107 2019-01-12 Tom de Vries <tdevries@suse.de>
10108
10109 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
10110 lengths into account.
10111
10112 2019-01-12 Svante Signell <svante.signell@gmail.com>
10113
10114 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
10115 (TARGET_CAN_SPLIT_STACK): Define.
10116 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10117
10118 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
10119
10120 * params.def (inline-unit-growth): Set to 40.
10121
10122 2019-01-12 Jakub Jelinek <jakub@redhat.com>
10123
10124 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
10125
10126 2019-01-12 Tom de Vries <tdevries@suse.de>
10127
10128 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
10129 region calling vector-partitionable routine, set default_vector_length
10130 to WARP_SIZE.
10131
10132 2019-01-12 Tom de Vries <tdevries@suse.de>
10133
10134 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
10135 variable default_vector_length.
10136
10137 2019-01-12 Tom de Vries <tdevries@suse.de>
10138
10139 PR middle-end/88703
10140 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
10141 from oacc_default_dims, as oacc_validate_dims would do it, and apply
10142 dimensions limits.
10143
10144 2019-01-12 Tom de Vries <tdevries@suse.de>
10145
10146 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
10147 (nvptx_goacc_validate_dims): Add used parameter.
10148 * doc/tm.texi: Regenerate.
10149 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
10150 argument to call to targetm.goacc.validate_dims.
10151 (default_goacc_validate_dims): Add used
10152 parameter.
10153 * target.def (validate_dims): Add used parameter in DEFHOOK.
10154 * targhooks.h (default_goacc_validate_dims): Add used parameter.
10155
10156 2019-01-11 Jakub Jelinek <jakub@redhat.com>
10157
10158 PR middle-end/85956
10159 PR lto/88733
10160 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
10161 field.
10162 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
10163 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
10164 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
10165 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
10166
10167 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
10168
10169 PR rtl-optimization/87305
10170 * lra-assigns.c
10171 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
10172 for little endian pseudos used as paradoxical subreg.
10173
10174 2019-01-11 Jakub Jelinek <jakub@redhat.com>
10175
10176 PR tree-optimization/88693
10177 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
10178 for STRING_CSTs that don't contain any NUL characters in the first
10179 TREE_STRING_LENGTH bytes.
10180
10181 2019-01-11 Alan Modra <amodra@gmail.com>
10182
10183 PR 88777
10184 PR 88614
10185 * genattrtab.c (min_fn): Don't translate values.
10186 (min_attr_value): Return INT_MAX when the value can't be calculated.
10187 Return minimum among any values that can be calculated.
10188 (max_attr_value): Adjust.
10189
10190 2019-01-11 Jakub Jelinek <jakub@redhat.com>
10191
10192 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
10193
10194 2019-01-11 Steve Ellcey <sellcey@marvell.com>
10195
10196 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
10197 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
10198 (aarch64_return_call_with_max_clobbers): New function.
10199 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
10200 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
10201 argument.
10202 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
10203 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
10204 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
10205 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
10206 * cselib.c (cselib_process_insn): Add argument to
10207 targetm.hard_regno_call_part_clobbered call.
10208 * ira-conflicts.c (ira_build_conflicts): Ditto.
10209 * ira-costs.c (ira_tune_allocno_costs): Ditto.
10210 * lra-constraints.c (inherit_reload_reg): Ditto.
10211 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
10212 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
10213 argument. Call targetm.return_call_with_max_clobbers.
10214 Add argument to targetm.hard_regno_call_part_clobbered call.
10215 (calls_have_same_clobbers_p): New function.
10216 (process_bb_lives): Add call_insn and last_call_insn variables.
10217 Pass call_insn to check_pseudos_live_through_calls.
10218 Modify if stmt to check targetm.return_call_with_max_clobbers.
10219 Update setting of flush variable.
10220 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
10221 to false.
10222 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
10223 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
10224 targetm.hard_regno_call_part_clobbered call.
10225 * reginfo.c (choose_hard_reg_mode): Ditto.
10226 * regrename.c (check_new_reg_p): Ditto.
10227 * reload.c (find_equiv_reg): Ditto.
10228 * reload1.c (emit_reload_insns): Ditto.
10229 * sched-deps.c (deps_analyze_insn): Ditto.
10230 * sel-sched.c (init_regs_for_mode): Ditto.
10231 (mark_unavailable_hard_regs): Ditto.
10232 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
10233 * target.def (hard_regno_call_part_clobbered): Add insn argument.
10234 (return_call_with_max_clobbers): New target function.
10235 * doc/tm.texi: Regenerate.
10236 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
10237 * hooks.c (hook_bool_uint_mode_false): Change to
10238 hook_bool_insn_uint_mode_false.
10239 * hooks.h (hook_bool_uint_mode_false): Ditto.
10240
10241 2019-01-11 Steve Ellcey <sellcey@marvell.com>
10242
10243 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
10244 (aarch64_remove_extra_call_preserved_regs): New function.
10245 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
10246 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
10247 * doc/tm.texi: Regenerate.
10248 * final.c (get_call_reg_set_usage): Call new hook.
10249 * target.def (remove_extra_call_preserved_regs): New hook.
10250 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
10251 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
10252
10253 2019-01-11 Jakub Jelinek <jakub@redhat.com>
10254
10255 PR bootstrap/88714
10256 * passes.c (finish_optimization_passes): Call print_combine_total_stats
10257 inside of pass_combine_1 dump rather than pass_profile_1.
10258
10259 2019-01-11 Tom de Vries <tdevries@suse.de>
10260
10261 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
10262 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
10263 (PTX_NUM_PER_WORKER_BARRIERS): Define.
10264 (nvptx_apply_dim_limits): Prevent vector_length 64 and
10265 num_workers 16.
10266
10267 2019-01-11 Tom de Vries <tdevries@suse.de>
10268
10269 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
10270
10271 2019-01-11 Jan Beulich <jbeulich@suse.com>
10272
10273 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
10274 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
10275 sse2_cvtsi2sd): Add {l}.
10276 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
10277 syntax.
10278
10279 2019-01-10 Jakub Jelinek <jakub@redhat.com>
10280
10281 PR target/88785
10282 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
10283 define_expand.
10284 (*float<floatunssuffix>v2div2sf2): New define_insn.
10285 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
10286 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
10287 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
10288 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
10289 match_operands with "const0_operand" "C".
10290
10291 2019-01-10 Tamar Christina <tamar.christina@arm.com>
10292
10293 * config/aarch64/aarch64-builtins.c
10294 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
10295 (aarch64_init_simd_builtins): ...Here
10296
10297 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
10298
10299 PR rtl-optimization/87305
10300 * lra-assigns.c
10301 (setup_live_pseudos_and_spill_after_risky_transforms): Check
10302 allocation for big endian pseudos used as paradoxical subregs and
10303 spill them if it is wrong.
10304 * lra-constraints.c (lra_constraints): Add a comment.
10305
10306 2019-01-10 Richard Biener <rguenther@suse.de>
10307
10308 PR tree-optimization/88792
10309 * tree-ssa-pre.c (get_representative_for): Do not return a
10310 value-number here.
10311
10312 2019-01-10 Jakub Jelinek <jakub@redhat.com>
10313
10314 PR middle-end/84877
10315 PR bootstrap/88450
10316 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
10317 (assign_parm_setup_block): Do the argument slot realignment here
10318 instead.
10319
10320 2019-01-10 Stefan Agner <stefan@agner.ch>
10321
10322 PR target/88648
10323 * config/arm/arm.c (arm_option_override_internal): Force
10324 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
10325
10326 2019-01-10 Jakub Jelinek <jakub@redhat.com>
10327
10328 PR c/88568
10329 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
10330 DECL_EXTERNAL.
10331
10332 2019-01-10 Tamar Christina <tamar.christina@arm.com>
10333
10334 * config/arm/arm-builtins.c
10335 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
10336 (MAC_LANE_PAIR_QUALIFIERS): New.
10337 (arm_expand_builtin_args): Use it.
10338 (arm_expand_builtin_1): Likewise.
10339 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
10340 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
10341 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
10342 * config/arm/arm_neon.h:
10343 (vcadd_rot90_f16): New.
10344 (vcaddq_rot90_f16): New.
10345 (vcadd_rot270_f16): New.
10346 (vcaddq_rot270_f16): New.
10347 (vcmla_f16): New.
10348 (vcmlaq_f16): New.
10349 (vcmla_lane_f16): New.
10350 (vcmla_laneq_f16): New.
10351 (vcmlaq_lane_f16): New.
10352 (vcmlaq_laneq_f16): New.
10353 (vcmla_rot90_f16): New.
10354 (vcmlaq_rot90_f16): New.
10355 (vcmla_rot90_lane_f16): New.
10356 (vcmla_rot90_laneq_f16): New.
10357 (vcmlaq_rot90_lane_f16): New.
10358 (vcmlaq_rot90_laneq_f16): New.
10359 (vcmla_rot180_f16): New.
10360 (vcmlaq_rot180_f16): New.
10361 (vcmla_rot180_lane_f16): New.
10362 (vcmla_rot180_laneq_f16): New.
10363 (vcmlaq_rot180_lane_f16): New.
10364 (vcmlaq_rot180_laneq_f16): New.
10365 (vcmla_rot270_f16): New.
10366 (vcmlaq_rot270_f16): New.
10367 (vcmla_rot270_lane_f16): New.
10368 (vcmla_rot270_laneq_f16): New.
10369 (vcmlaq_rot270_lane_f16): New.
10370 (vcmlaq_rot270_laneq_f16): New.
10371 (vcadd_rot90_f32): New.
10372 (vcaddq_rot90_f32): New.
10373 (vcadd_rot270_f32): New.
10374 (vcaddq_rot270_f32): New.
10375 (vcmla_f32): New.
10376 (vcmlaq_f32): New.
10377 (vcmla_lane_f32): New.
10378 (vcmla_laneq_f32): New.
10379 (vcmlaq_lane_f32): New.
10380 (vcmlaq_laneq_f32): New.
10381 (vcmla_rot90_f32): New.
10382 (vcmlaq_rot90_f32): New.
10383 (vcmla_rot90_lane_f32): New.
10384 (vcmla_rot90_laneq_f32): New.
10385 (vcmlaq_rot90_lane_f32): New.
10386 (vcmlaq_rot90_laneq_f32): New.
10387 (vcmla_rot180_f32): New.
10388 (vcmlaq_rot180_f32): New.
10389 (vcmla_rot180_lane_f32): New.
10390 (vcmla_rot180_laneq_f32): New.
10391 (vcmlaq_rot180_lane_f32): New.
10392 (vcmlaq_rot180_laneq_f32): New.
10393 (vcmla_rot270_f32): New.
10394 (vcmlaq_rot270_f32): New.
10395 (vcmla_rot270_lane_f32): New.
10396 (vcmla_rot270_laneq_f32): New.
10397 (vcmlaq_rot270_lane_f32): New.
10398 (vcmlaq_rot270_laneq_f32): New.
10399 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
10400 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
10401 vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
10402 vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
10403 vcmlaq_lane270): New.
10404 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
10405 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
10406 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
10407 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
10408 (arm_option_reconfigure_globals): Use them.
10409 * config/arm/iterators.md (VDF, VQ_HSF): New.
10410 (VCADD, VCMLA): New.
10411 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
10412 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
10413 New.
10414 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
10415 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
10416
10417 2019-01-10 Tamar Christina <tamar.christina@arm.com>
10418
10419 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
10420 Add qualifier_lane_pair_index.
10421 (emit-rtl.h): Include.
10422 (TYPES_QUADOP_LANE_PAIR): New.
10423 (aarch64_simd_expand_args): Use it.
10424 (aarch64_simd_expand_builtin): Likewise.
10425 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
10426 New.
10427 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
10428 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
10429 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
10430 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
10431 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
10432 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
10433 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
10434 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
10435 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
10436 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
10437 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
10438 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
10439 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
10440 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
10441 Add __ARM_FEATURE_COMPLEX.
10442 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
10443 fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
10444 fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
10445 fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
10446 fcmlaq_lane270): New.
10447 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
10448 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
10449 aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
10450 * config/aarch64/arm_neon.h:
10451 (vcadd_rot90_f16): New.
10452 (vcaddq_rot90_f16): New.
10453 (vcadd_rot270_f16): New.
10454 (vcaddq_rot270_f16): New.
10455 (vcmla_f16): New.
10456 (vcmlaq_f16): New.
10457 (vcmla_lane_f16): New.
10458 (vcmla_laneq_f16): New.
10459 (vcmlaq_lane_f16): New.
10460 (vcmlaq_rot90_lane_f16): New.
10461 (vcmla_rot90_laneq_f16): New.
10462 (vcmla_rot90_lane_f16): New.
10463 (vcmlaq_rot90_f16): New.
10464 (vcmla_rot90_f16): New.
10465 (vcmlaq_laneq_f16): New.
10466 (vcmla_rot180_laneq_f16): New.
10467 (vcmla_rot180_lane_f16): New.
10468 (vcmlaq_rot180_f16): New.
10469 (vcmla_rot180_f16): New.
10470 (vcmlaq_rot90_laneq_f16): New.
10471 (vcmlaq_rot270_laneq_f16): New.
10472 (vcmlaq_rot270_lane_f16): New.
10473 (vcmla_rot270_laneq_f16): New.
10474 (vcmlaq_rot270_f16): New.
10475 (vcmla_rot270_f16): New.
10476 (vcmlaq_rot180_laneq_f16): New.
10477 (vcmlaq_rot180_lane_f16): New.
10478 (vcmla_rot270_lane_f16): New.
10479 (vcadd_rot90_f32): New.
10480 (vcaddq_rot90_f32): New.
10481 (vcaddq_rot90_f64): New.
10482 (vcadd_rot270_f32): New.
10483 (vcaddq_rot270_f32): New.
10484 (vcaddq_rot270_f64): New.
10485 (vcmla_f32): New.
10486 (vcmlaq_f32): New.
10487 (vcmlaq_f64): New.
10488 (vcmla_lane_f32): New.
10489 (vcmla_laneq_f32): New.
10490 (vcmlaq_lane_f32): New.
10491 (vcmlaq_laneq_f32): New.
10492 (vcmla_rot90_f32): New.
10493 (vcmlaq_rot90_f32): New.
10494 (vcmlaq_rot90_f64): New.
10495 (vcmla_rot90_lane_f32): New.
10496 (vcmla_rot90_laneq_f32): New.
10497 (vcmlaq_rot90_lane_f32): New.
10498 (vcmlaq_rot90_laneq_f32): New.
10499 (vcmla_rot180_f32): New.
10500 (vcmlaq_rot180_f32): New.
10501 (vcmlaq_rot180_f64): New.
10502 (vcmla_rot180_lane_f32): New.
10503 (vcmla_rot180_laneq_f32): New.
10504 (vcmlaq_rot180_lane_f32): New.
10505 (vcmlaq_rot180_laneq_f32): New.
10506 (vcmla_rot270_f32): New.
10507 (vcmlaq_rot270_f32): New.
10508 (vcmlaq_rot270_f64): New.
10509 (vcmla_rot270_lane_f32): New.
10510 (vcmla_rot270_laneq_f32): New.
10511 (vcmlaq_rot270_lane_f32): New.
10512 (vcmlaq_rot270_laneq_f32): New.
10513 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
10514 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
10515 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
10516 (FCADD, FCMLA): New.
10517 (rot): New.
10518 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
10519
10520 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
10521
10522 PR other/16615
10523
10524 * config/pa/pa.c: Change "can not" to "cannot".
10525 * gimple-ssa-evrp-analyze.c: Likewise.
10526 * ipa-icf.c: Likewise.
10527 * ipa-polymorphic-call.c: Likewise.
10528 * ipa-pure-const.c: Likewise.
10529 * lra-constraints.c: Likewise.
10530 * lra-remat.c: Likewise.
10531 * reload1.c: Likewise.
10532 * reorg.c: Likewise.
10533 * tree-ssa-uninit.c: Likewise.
10534
10535 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
10536
10537 PR other/16615
10538
10539 * Makefile.in: Mechanically replace "can not" with "cannot".
10540 * alias.c: Likewise.
10541 * builtins.c: Likewise.
10542 * calls.c: Likewise.
10543 * cgraph.c: Likewise.
10544 * cgraph.h: Likewise.
10545 * cgraphclones.c: Likewise.
10546 * cgraphunit.c: Likewise.
10547 * combine-stack-adj.c: Likewise.
10548 * combine.c: Likewise.
10549 * common/config/i386/i386-common.c: Likewise.
10550 * config/aarch64/aarch64.c: Likewise.
10551 * config/alpha/sync.md: Likewise.
10552 * config/arc/arc.c: Likewise.
10553 * config/arc/predicates.md: Likewise.
10554 * config/arm/arm-c.c: Likewise.
10555 * config/arm/arm.c: Likewise.
10556 * config/arm/arm.h: Likewise.
10557 * config/arm/arm.md: Likewise.
10558 * config/arm/cortex-r4f.md: Likewise.
10559 * config/csky/csky.c: Likewise.
10560 * config/csky/csky.h: Likewise.
10561 * config/darwin-f.c: Likewise.
10562 * config/epiphany/epiphany.md: Likewise.
10563 * config/i386/i386.c: Likewise.
10564 * config/i386/sol2.h: Likewise.
10565 * config/m68k/m68k.c: Likewise.
10566 * config/mcore/mcore.h: Likewise.
10567 * config/microblaze/microblaze.md: Likewise.
10568 * config/mips/20kc.md: Likewise.
10569 * config/mips/sb1.md: Likewise.
10570 * config/nds32/nds32.c: Likewise.
10571 * config/nds32/predicates.md: Likewise.
10572 * config/pa/pa.c: Likewise.
10573 * config/rs6000/e300c2c3.md: Likewise.
10574 * config/rs6000/rs6000.c: Likewise.
10575 * config/s390/s390.h: Likewise.
10576 * config/sh/sh.c: Likewise.
10577 * config/sh/sh.md: Likewise.
10578 * config/spu/vmx2spu.h: Likewise.
10579 * cprop.c: Likewise.
10580 * dbxout.c: Likewise.
10581 * df-scan.c: Likewise.
10582 * doc/cfg.texi: Likewise.
10583 * doc/extend.texi: Likewise.
10584 * doc/fragments.texi: Likewise.
10585 * doc/gty.texi: Likewise.
10586 * doc/invoke.texi: Likewise.
10587 * doc/lto.texi: Likewise.
10588 * doc/md.texi: Likewise.
10589 * doc/objc.texi: Likewise.
10590 * doc/rtl.texi: Likewise.
10591 * doc/tm.texi: Likewise.
10592 * dse.c: Likewise.
10593 * emit-rtl.c: Likewise.
10594 * emit-rtl.h: Likewise.
10595 * except.c: Likewise.
10596 * expmed.c: Likewise.
10597 * expr.c: Likewise.
10598 * fold-const.c: Likewise.
10599 * genautomata.c: Likewise.
10600 * gimple-fold.c: Likewise.
10601 * hard-reg-set.h: Likewise.
10602 * ifcvt.c: Likewise.
10603 * ipa-comdats.c: Likewise.
10604 * ipa-cp.c: Likewise.
10605 * ipa-devirt.c: Likewise.
10606 * ipa-fnsummary.c: Likewise.
10607 * ipa-icf.c: Likewise.
10608 * ipa-inline-transform.c: Likewise.
10609 * ipa-inline.c: Likewise.
10610 * ipa-polymorphic-call.c: Likewise.
10611 * ipa-profile.c: Likewise.
10612 * ipa-prop.c: Likewise.
10613 * ipa-pure-const.c: Likewise.
10614 * ipa-reference.c: Likewise.
10615 * ipa-split.c: Likewise.
10616 * ipa-visibility.c: Likewise.
10617 * ipa.c: Likewise.
10618 * ira-build.c: Likewise.
10619 * ira-color.c: Likewise.
10620 * ira-conflicts.c: Likewise.
10621 * ira-costs.c: Likewise.
10622 * ira-int.h: Likewise.
10623 * ira-lives.c: Likewise.
10624 * ira.c: Likewise.
10625 * ira.h: Likewise.
10626 * loop-invariant.c: Likewise.
10627 * loop-unroll.c: Likewise.
10628 * lower-subreg.c: Likewise.
10629 * lra-assigns.c: Likewise.
10630 * lra-constraints.c: Likewise.
10631 * lra-eliminations.c: Likewise.
10632 * lra-lives.c: Likewise.
10633 * lra-remat.c: Likewise.
10634 * lra-spills.c: Likewise.
10635 * lra.c: Likewise.
10636 * lto-cgraph.c: Likewise.
10637 * lto-streamer-out.c: Likewise.
10638 * postreload-gcse.c: Likewise.
10639 * predict.c: Likewise.
10640 * profile-count.h: Likewise.
10641 * profile.c: Likewise.
10642 * recog.c: Likewise.
10643 * ree.c: Likewise.
10644 * reload.c: Likewise.
10645 * reload1.c: Likewise.
10646 * reorg.c: Likewise.
10647 * resource.c: Likewise.
10648 * rtl.def: Likewise.
10649 * rtl.h: Likewise.
10650 * rtlanal.c: Likewise.
10651 * sched-deps.c: Likewise.
10652 * sched-ebb.c: Likewise.
10653 * sched-rgn.c: Likewise.
10654 * sel-sched-ir.c: Likewise.
10655 * sel-sched.c: Likewise.
10656 * shrink-wrap.c: Likewise.
10657 * simplify-rtx.c: Likewise.
10658 * symtab.c: Likewise.
10659 * target.def: Likewise.
10660 * toplev.c: Likewise.
10661 * tree-call-cdce.c: Likewise.
10662 * tree-cfg.c: Likewise.
10663 * tree-complex.c: Likewise.
10664 * tree-core.h: Likewise.
10665 * tree-eh.c: Likewise.
10666 * tree-inline.c: Likewise.
10667 * tree-loop-distribution.c: Likewise.
10668 * tree-nrv.c: Likewise.
10669 * tree-profile.c: Likewise.
10670 * tree-sra.c: Likewise.
10671 * tree-ssa-alias.c: Likewise.
10672 * tree-ssa-dce.c: Likewise.
10673 * tree-ssa-dom.c: Likewise.
10674 * tree-ssa-forwprop.c: Likewise.
10675 * tree-ssa-loop-im.c: Likewise.
10676 * tree-ssa-loop-ivcanon.c: Likewise.
10677 * tree-ssa-loop-ivopts.c: Likewise.
10678 * tree-ssa-loop-niter.c: Likewise.
10679 * tree-ssa-phionlycprop.c: Likewise.
10680 * tree-ssa-phiopt.c: Likewise.
10681 * tree-ssa-propagate.c: Likewise.
10682 * tree-ssa-threadedge.c: Likewise.
10683 * tree-ssa-threadupdate.c: Likewise.
10684 * tree-ssa-uninit.c: Likewise.
10685 * tree-ssanames.c: Likewise.
10686 * tree-streamer-out.c: Likewise.
10687 * tree.c: Likewise.
10688 * tree.h: Likewise.
10689 * vr-values.c: Likewise.
10690
10691 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
10692
10693 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
10694 (ix86_split_xorsign): Ditto.
10695 * config/i386/i386.c (ix86_expand_xorsign): New function.
10696 (ix86_split_xorsign): Ditto.
10697 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
10698 (xorsign<mode>3): New expander.
10699 (xorsign<mode>3_1): New insn_and_split pattern.
10700 * config/i386/sse.md (xorsign<mode>3): New expander.
10701
10702 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
10703
10704 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
10705 (*tablejump_sp64): Likewise.
10706 (*tablejump<P:mode>): ...this.
10707 (*call_address_sp32): Merge into...
10708 (*call_address_sp64): Likewise.
10709 (*call_address<P:mode>): ...this.
10710 (*call_symbolic_sp32): Merge into...
10711 (*call_symbolic_sp64): Likewise.
10712 (*call_symbolic<P:mode>): ...this.
10713 (call_value): Remove constraint and add predicate.
10714 (*call_value_address_sp32): Merge into...
10715 (*call_value_address_sp64): Likewise.
10716 (*call_value_address<P:mode>): ...this.
10717 (*call_value_symbolic_sp32): Merge into...
10718 (*call_value_symbolic_sp64): Likewise.
10719 (*call_value_symbolic<P:mode>): ...this.
10720 (*sibcall_symbolic_sp32): Merge into...
10721 (*sibcall_symbolic_sp64): Likewise.
10722 (*sibcall_symbolic<P:mode>): ...this.
10723 (sibcall_value): Remove constraint and add predicate.
10724 (*sibcall_value_symbolic_sp32): Merge into...
10725 (*sibcall_value_symbolic_sp64): Likewise.
10726 (*sibcall_value_symbolic<P:mode>): ...this.
10727 (window_save): Minor tweak.
10728 (*branch_sp32): Merge into...
10729 (*branch_sp64): Likewise.
10730 (*branch<P:mode>): ...this.
10731
10732 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
10733 James Clarke <jrtc27@jrtc27.com>
10734
10735 PR target/84010
10736 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
10737 consistently in TLS address generation and adjust code to the renaming
10738 of patterns. Mark calls to __tls_get_addr as const.
10739 * config/sparc/sparc.md (tgd_hi22): Turn into...
10740 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
10741 (tgd_lo10): Turn into...
10742 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
10743 (tgd_add32): Merge into...
10744 (tgd_add64): Likewise.
10745 (tgd_add<P:mode>): ...this and use Pmode throughout.
10746 (tldm_hi22): Turn into...
10747 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
10748 (tldm_lo10): Turn into...
10749 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
10750 (tldm_add32): Merge into...
10751 (tldm_add64): Likewise.
10752 (tldm_add<P:mode>): ...this and use Pmode throughout.
10753 (tldm_call32): Merge into...
10754 (tldm_call64): Likewise.
10755 (tldm_call<P:mode>): ...this and use Pmode throughout.
10756 (tldo_hix22): Turn into...
10757 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
10758 (tldo_lox10): Turn into...
10759 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
10760 (tldo_add32): Merge into...
10761 (tldo_add64): Likewise.
10762 (tldo_add<P:mode>): ...this and use Pmode throughout.
10763 (tie_hi22): Turn into...
10764 (tie_hi22<P:mode>): ...this and use Pmode throughout.
10765 (tie_lo10): Turn into...
10766 (tie_lo10<P:mode>): ...this and use Pmode throughout.
10767 (tie_ld64): Use DImode throughout.
10768 (tie_add32): Merge into...
10769 (tie_add64): Likewise.
10770 (tie_add<P:mode>): ...this and use Pmode throughout.
10771 (tle_hix22_sp32): Merge into...
10772 (tle_hix22_sp64): Likewise.
10773 (tle_hix22<P:mode>): ...this and use Pmode throughout.
10774 (tle_lox22_sp32): Merge into...
10775 (tle_lox22_sp64): Likewise.
10776 (tle_lox22<P:mode>): ...this and use Pmode throughout.
10777 (*tldo_ldub_sp32): Merge into...
10778 (*tldo_ldub_sp64): Likewise.
10779 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
10780 (*tldo_ldub1_sp32): Merge into...
10781 (*tldo_ldub1_sp64): Likewise.
10782 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
10783 (*tldo_ldub2_sp32): Merge into...
10784 (*tldo_ldub2_sp64): Likewise.
10785 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
10786 (*tldo_ldsb1_sp32): Merge into...
10787 (*tldo_ldsb1_sp64): Likewise.
10788 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
10789 (*tldo_ldsb2_sp32): Merge into...
10790 (*tldo_ldsb2_sp64): Likewise.
10791 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
10792 (*tldo_ldub3_sp64): Use DImode throughout.
10793 (*tldo_ldsb3_sp64): Likewise.
10794 (*tldo_lduh_sp32): Merge into...
10795 (*tldo_lduh_sp64): Likewise.
10796 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
10797 (*tldo_lduh1_sp32): Merge into...
10798 (*tldo_lduh1_sp64): Likewise.
10799 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
10800 (*tldo_ldsh1_sp32): Merge into...
10801 (*tldo_ldsh1_sp64): Likewise.
10802 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
10803 (*tldo_lduh2_sp64): Use DImode throughout.
10804 (*tldo_ldsh2_sp64): Likewise.
10805 (*tldo_lduw_sp32): Merge into...
10806 (*tldo_lduw_sp64): Likewise.
10807 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
10808 (*tldo_lduw1_sp64): Use DImode throughout.
10809 (*tldo_ldsw1_sp64): Likewise.
10810 (*tldo_ldx_sp64): Likewise.
10811 (*tldo_stb_sp32): Merge into...
10812 (*tldo_stb_sp64): Likewise.
10813 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
10814 (*tldo_sth_sp32): Merge into...
10815 (*tldo_sth_sp64): Likewise.
10816 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
10817 (*tldo_stw_sp32): Merge into...
10818 (*tldo_stw_sp64): Likewise.
10819 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
10820 (*tldo_stx_sp64): Use DImode throughout.
10821
10822 2018-01-09 Sudakshina Das <sudi.das@arm.com>
10823
10824 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
10825 check configure option to set BTI and Return Address Signing.
10826 * configure.ac: Add --enable-standard-branch-protection and
10827 --disable-standard-branch-protection.
10828 * configure: Regenerated.
10829 * doc/install.texi: Document the same.
10830
10831 2018-01-09 Sudakshina Das <sudi.das@arm.com>
10832 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10833
10834 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
10835 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
10836 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
10837 if bti is enabled.
10838 * config/aarch64/aarch64-bti-insert.c: New file.
10839 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
10840 pass.
10841 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
10842 new bti pass.
10843 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
10844 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
10845 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
10846 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
10847
10848 2018-01-09 Sudakshina Das <sudi.das@arm.com>
10849
10850 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
10851 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
10852 Disable bti for -mbranch-protection=none.
10853 (aarch64_handle_standard_branch_protection): Enable bti for
10854 -mbranch-protection=standard.
10855 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
10856 -mbranch-protection.
10857 (aarch64_bti_enabled): Check if bti is enabled.
10858 * config/aarch64/aarch64.opt: Declare target variable.
10859 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
10860
10861 2018-01-09 Sudakshina Das <sudi.das@arm.com>
10862
10863 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
10864 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
10865 (aarch64_expand_epilogue): Likewise.
10866 (aarch64_output_mi_thunk): Likewise
10867 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
10868 TAILCALL_ADDR_REGS to x16 and x17.
10869 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
10870
10871 2018-01-09 Sudakshina Das <sudi.das@arm.com>
10872
10873 * config/aarch64/aarch64-option-extensions.def: Define
10874 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
10875 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
10876 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
10877 (AARCH64_FL_PREDRES): New.
10878 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
10879 AARCH64_FL_PREDRES by default.
10880 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
10881
10882 2018-01-09 Sudakshina Das <sudi.das@arm.com>
10883
10884 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
10885 ARMv8.5-A.
10886 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
10887 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
10888 * doc/invoke.texi: Document ARMv8.5-A.
10889
10890 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
10891
10892 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
10893 (xorsign<mode>3): Likewise.
10894
10895 2019-01-09 Jelinek <jakub@redhat.com>
10896
10897 PR middle-end/88758
10898 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
10899 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
10900
10901 PR rtl-optimization/88331
10902 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
10903 not currently_expanding_to_rtl.
10904
10905 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
10906
10907 * doc/invoke.texi (-Os): Remove trailing spaces.
10908 (-finline-functions): Remove reference to -O2.
10909
10910 2019-01-08 Jakub Jelinek <jakub@redhat.com>
10911
10912 PR rtl-optimization/79593
10913 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
10914
10915 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
10916 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
10917
10918 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
10919
10920 PR bootstrap/88721
10921 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
10922 to -1 on entry.
10923
10924 PR debug/88723
10925 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
10926 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
10927
10928 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
10929
10930 PR target/88717
10931 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
10932 ix86_avx_u128_mode_entry.
10933
10934 2019-01-08 Martin Liska <mliska@suse.cz>
10935
10936 PR tree-optimization/88753
10937 * tree-switch-conversion.c (switch_conversion::build_one_array):
10938 Come up with local variable constructor. Convert first to
10939 type of constructor values.
10940
10941 2019-01-08 Richard Biener <rguenther@suse.de>
10942
10943 PR tree-optimization/86554
10944 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
10945 rpo_avail): Move earlier.
10946 (visit_nary_op): When value-numbering to expressions
10947 with different overflow behavior make sure there's an
10948 available expression on the path.
10949
10950 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
10951
10952 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
10953 aarch64_parse_branch_protection,
10954 struct aarch64_branch_protect_type,
10955 aarch64_handle_no_branch_protection,
10956 aarch64_handle_standard_branch_protection,
10957 aarch64_validate_mbranch_protection,
10958 aarch64_handle_pac_ret_protection,
10959 aarch64_handle_attr_branch_protection,
10960 accepted_branch_protection_string,
10961 aarch64_pac_ret_subtypes,
10962 aarch64_branch_protect_types,
10963 aarch64_handle_pac_ret_leaf): Define.
10964 (aarch64_override_options_after_change_1, aarch64_override_options):
10965 Add check for accepted_branch_protection_string.
10966 (aarch64_option_save): Save accepted_branch_protection_string.
10967 (aarch64_option_restore): Save accepted_branch_protection_string.
10968 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
10969 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
10970 msign-return-address.
10971 * doc/invoke.texi: Add mbranch-protection.
10972
10973 2019-01-08 Alan Modra <amodra@gmail.com>
10974
10975 PR target/88614
10976 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
10977 Delete "unknownp" parameter. Adjust callers. Handle
10978 CONST_INT, PLUS, MINUS, and MULT.
10979 (attr_value_aligned): Renamed from or_attr_value.
10980 (min_attr_value): Return INT_MIN for unhandled rtl case..
10981 (min_fn): ..and translate to INT_MAX here.
10982 (write_length_unit_log): Modify to cope without "unknown".
10983 (write_attr_value): Handle IF_THEN_ELSE.
10984
10985 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
10986
10987 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
10988 optimization for masked stores.
10989
10990 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
10991
10992 PR middle-end/88567
10993 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
10994 output vector directly to duplicate_and_interleave instead of
10995 going through a temporary. Postpone insertion of ctor_seq to
10996 the end of the loop.
10997
10998 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
10999
11000 PR target/86891
11001 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
11002 unsigned_p. Handle signed and unsigned overflow correction as
11003 required.
11004 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
11005 prototype.
11006 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
11007 for operand 2.
11008 (add<mode>3_compareV_imm): Make this callable for expanding.
11009 (subv<GPI:mode>4): Use register_operand for operand 1. Use
11010 aarch64_plus_operand for operand 2.
11011 (subv<GPI:mode>_insn): New insn pattern.
11012 (subv<GPI:mode>_imm): Likewise.
11013 (negv<GPI:mode>3): New expand pattern.
11014 (negv<GPI:mode>_insn): New insn pattern.
11015 (negv<GPI:mode>_cmp_only): Likewise.
11016 (cmpv<GPI:mode>_insn): Likewise.
11017 (subvti4): Use register_operand for operand 1. Update call to
11018 aarch64_expand_subvti.
11019 (usubvti4): Likewise.
11020 (negvti3): New expand pattern.
11021 (negdi_carryout): New insn pattern.
11022 (negvdi_carryinV): New insn pattern.
11023 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
11024 version the named version.
11025 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
11026 operands.
11027 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
11028 patterns.
11029 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
11030 patterns.
11031 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
11032 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
11033 (sub<mode>3_carryinCV): Delete.
11034 (sub<GPI:mode>3_carryinV): New expand pattern.
11035 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
11036
11037 2019-01-07 Richard Biener <rguenther@suse.de>
11038
11039 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
11040 of tree_operand_hash.
11041
11042 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
11043
11044 PR tree-optimization/88598
11045 * tree.h (single_nonzero_element): Declare.
11046 * tree.c (single_nonzero_element): New function.
11047 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
11048 if I is the only nonzero element of CST.
11049
11050 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
11051
11052 PR tree-optimization/88598
11053 * tree.h (initializer_each_zero_or_onep): Declare.
11054 * tree.c (initializer_each_zero_or_onep): New function.
11055 (signed_or_unsigned_type_for): Handle float types too.
11056 (unsigned_type_for, signed_type_for): Update comments accordingly.
11057 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
11058 x & { 0 or -1, 0 or -1, ... }.
11059
11060 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
11061
11062 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
11063 with x86_64-pc-linux-gnu.
11064
11065 2019-01-07 Tom de Vries <tdevries@suse.de>
11066
11067 PR target/85486
11068 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
11069 function.
11070 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
11071 routines.
11072
11073 2019-01-07 Jakub Jelinek <jakub@redhat.com>
11074
11075 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
11076 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
11077 TARGET_AVX512F as condition.
11078
11079 PR debug/88723
11080 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
11081 const_not_ok_for_debug_p target hook.
11082 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
11083 on UNSPEC and subexpressions thereof if all subexpressions of the
11084 UNSPEC are CONSTANT_P.
11085
11086 PR tree-optimization/88676
11087 * tree-ssa-phiopt.c (two_value_replacement): New function.
11088 (tree_ssa_phiopt_worker): Call it.
11089
11090 PR sanitizer/88619
11091 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
11092 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
11093
11094 PR c++/85052
11095 * tree-vect-generic.c: Include insn-config.h and recog.h.
11096 (expand_vector_piecewise): Add defaulted ret_type argument,
11097 if non-NULL, use that in preference to type for the result type.
11098 (expand_vector_parallel): Formatting fix.
11099 (do_vec_conversion, do_vec_narrowing_conversion,
11100 expand_vector_conversion): New functions.
11101 (expand_vector_operations_1): Call expand_vector_conversion
11102 for VEC_CONVERT ifn calls.
11103 * internal-fn.def (VEC_CONVERT): New internal function.
11104 * internal-fn.c (expand_VEC_CONVERT): New function.
11105 * fold-const-call.c (fold_const_vec_convert): New function.
11106 (fold_const_call): Use it for CFN_VEC_CONVERT.
11107 * doc/extend.texi (__builtin_convertvector): Document.
11108
11109 2019-01-07 Tom de Vries <tdevries@suse.de>
11110
11111 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
11112 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
11113 vector_red_partition, vector_red_sym): New global variables.
11114 (nvptx_option_override): Initialize vector_red_sym.
11115 (nvptx_declare_function_name): Restore red_partition register.
11116 (nvptx_file_end): Emit code to declare the vector reduction variables.
11117 (nvptx_output_red_partition): New function.
11118 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
11119 large vector reductions.
11120 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
11121 (nvptx_init_builtins): Add VECTOR_ADDR.
11122 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
11123 Handle nvptx_expand_shared_addr.
11124 (nvptx_get_shared_red_addr): Add vector argument and handle large
11125 vectors.
11126 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
11127 large vectors.
11128 (nvptx_goacc_reduction_init): Likewise.
11129 (nvptx_goacc_reduction_fini): Likewise.
11130 (nvptx_goacc_reduction_teardown): Likewise.
11131 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
11132 init,fini,teardown}.
11133 (nvptx_init_axis_predicate): Initialize vector_red_partition.
11134 (nvptx_set_current_function): Init vector_red_partition.
11135 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
11136 (nvptx_red_partition): New insn.
11137 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
11138
11139 2019-01-07 Tom de Vries <tdevries@suse.de>
11140
11141 PR target/85381
11142 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
11143 empty loops.
11144
11145 2019-01-07 Tom de Vries <tdevries@suse.de>
11146
11147 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
11148 (nvptx_option_override): Init oacc_bcast_partition.
11149 (nvptx_init_oacc_workers): New function.
11150 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
11151 (nvptx_needs_shared_bcast): New function.
11152 (nvptx_find_par): Generalize to enable vectors to use shared-memory
11153 to propagate state.
11154 (nvptx_shared_propagate): Initialize vector bcast partition and
11155 synchronization state.
11156 (nvptx_single): Generalize to enable vectors to use shared-memory
11157 to propagate state.
11158 (nvptx_process_pars): Likewise.
11159 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
11160 * config/nvptx/nvptx.h (struct machine_function): Add
11161 bcast_partition and sync_bar members.
11162
11163 2019-01-07 Tom de Vries <tdevries@suse.de>
11164
11165 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
11166 (nvptx_apply_dim_limits): New function.
11167 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
11168 PTX_WARP_SIZE.
11169
11170 2019-01-07 Tom de Vries <tdevries@suse.de>
11171
11172 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
11173 as late as possible.
11174
11175 2019-01-07 Tom de Vries <tdevries@suse.de>
11176
11177 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
11178 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
11179 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
11180 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
11181 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
11182
11183 2019-01-07 Tom de Vries <tdevries@suse.de>
11184
11185 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
11186
11187 2019-01-07 Tom de Vries <tdevries@suse.de>
11188
11189 * omp-offload.c (oacc_get_min_dim): New function.
11190 * omp-offload.h (oacc_get_min_dim): Declare.
11191
11192 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
11193
11194 PR target/88521
11195 * config/i386/i386.c (function_value_ms_64): Return small sturct in
11196 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
11197
11198 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
11199
11200 PR tree-opt/86020
11201 Revert:
11202 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
11203
11204 * ipa-inline.c (edge_badness): Use inlined_time instead of
11205 inline_summaries->get.
11206
11207 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
11208
11209 * opts.c (enable_fdo_optimizations): Enable
11210 version-loops-for-strides, loop-interchange, unrol-and-jam
11211 and tree-loop-distribution.
11212 * invoke.texi: Document newly enabled options.
11213
11214 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
11215
11216 * doc/invoke.texi (max-inline-insns-small): New parameters.
11217 * ipa-inline.c (want_early_inline_function_p): simplify.
11218 (want_inline_small_function_p): Fix pasto from previous patch;
11219 use max-inline-insns-small bound.
11220 * params.def (max-inline-insns-small): New param.
11221 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
11222 variables correctly.
11223
11224 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
11225
11226 * doc/invoke.texi: Document max-inline-insns-size,
11227 uninlined-function-insns, uninlined-function-time,
11228 uninlined-thunk-insns and uninlined-thunk-time.
11229 * params.def: Add max-inline-insns-size,
11230 uninlined-function-insns, uninlined-function-time,
11231 uninlined-thunk-insns and uninlined-thunk-time.
11232 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
11233 new parameters.
11234 * ipa-inline.c (can_inline_edge_by_limits_p,
11235 want_inline_small_function_p): Use new parameters.
11236
11237 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
11238
11239 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
11240
11241 2019-01-05 Jakub Jelinek <jakub@redhat.com>
11242
11243 PR middle-end/82564
11244 PR target/88620
11245 * expr.c (expand_assignment): For calls returning VLA structures
11246 if to_rtx is not a MEM, force it into a stack temporary.
11247
11248 PR debug/88635
11249 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
11250 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
11251 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
11252 subexpressions of both operands.
11253 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
11254 subrtxes are CONSTANT_P.
11255 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
11256 2018-11-09 changes.
11257
11258 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
11259
11260 * params.def (hot-bb-count-ws-permille): Set to 990.
11261
11262 2019-01-04 Martin Sebor <msebor@redhat.com>
11263
11264 PR c/88546
11265 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
11266 leaf.
11267
11268 2019-01-04 Martin Sebor <msebor@redhat.com>
11269
11270 PR c/88363
11271 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
11272
11273 2019-01-04 Jakub Jelinek <jakub@redhat.com>
11274
11275 * gdbinit.in: Turn off pagination for the skip commands, restore
11276 it to previous state afterwards.
11277
11278 2019-01-04 Jakub Jelinek <jakub@redhat.com>
11279
11280 PR target/88594
11281 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
11282 of GET_MODE (opN) as modes of the libcall arguments.
11283
11284 2019-01-04 Jan Beulich <jbeulich@suse.com>
11285
11286 * config/i386/sse.md
11287 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
11288 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
11289 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
11290 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
11291 avx512f_vmcmp<mode>3<round_saeonly_name>,
11292 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
11293 avx512f_maskcmp<mode>3,
11294 <avx512>_cvt<ssemodesuffix>2mask<mode>,
11295 <avx512>_cvt<ssemodesuffix>2mask<mode>,
11296 *<avx512>_cvtmask2<ssemodesuffix><mode>,
11297 *<avx512>_cvtmask2<ssemodesuffix><mode>,
11298 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
11299 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
11300 <avx512>_gt<mode>3<mask_scalar_merge_name>,
11301 <avx512>_gt<mode>3<mask_scalar_merge_name>,
11302 <avx512>_testm<mode>3<mask_scalar_merge_name>,
11303 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
11304 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
11305 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
11306 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
11307 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
11308 avx512cd_maskb_vec_dup<mode>,
11309 avx512cd_maskw_vec_dup<mode>,
11310 avx512dq_fpclass<mode><mask_scalar_merge_name>,
11311 avx512dq_vmfpclass<mode>,
11312 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
11313 instead of =Yk.
11314
11315 2019-01-03 Martin Sebor <msebor@redhat.com>
11316
11317 PR tree-optimization/88659
11318 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
11319
11320 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
11321
11322 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
11323 unaligned vsx and avoid lxvd2x/stxvd2x.
11324 (gen_lvx_v4si_move): New function.
11325
11326 2019-01-03 Tom de Vries <tdevries@suse.de>
11327
11328 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
11329 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
11330 function.
11331 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
11332
11333 2019-01-03 Tom de Vries <tdevries@suse.de>
11334
11335 * config/nvptx/nvptx.c (struct offload_attrs): New.
11336 (populate_offload_attrs): New function. Factor mask extraction out of
11337 nvptx_reorg. Add extraction of dimensions.
11338 (nvptx_reorg): Use populate_offload_attrs.
11339
11340 2019-01-03 Tom de Vries <tdevries@suse.de>
11341
11342 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
11343 cases for oacc_min_dims_p and routine_p. Add asserts for
11344 oacc_default_dims_p and offload_region_p.
11345
11346 2019-01-03 Tom de Vries <tdevries@suse.de>
11347
11348 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
11349 factored out of ...
11350 (nvptx_goacc_validate_dims): ... here.
11351
11352 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
11353
11354 PR tree-optimization/85574
11355 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
11356 structure.
11357 (struct ssa_equip_hash_traits): Declare.
11358 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
11359
11360 2019-01-03 Jakub Jelinek <jakub@redhat.com>
11361
11362 PR debug/88644
11363 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
11364 change it to qualified_type.
11365
11366 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
11367
11368 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
11369 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
11370
11371 2019-01-02 Martin Sebor <msebor@redhat.com>
11372 Jeff Law <law@redhat.com>
11373
11374 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
11375 (get_range_strlen_tree): Update appropriately.
11376 (get_range_strlen)
11377 * gimple-fold.h (get_range_strlen): Drop unused last argument.
11378
11379 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
11380 rather than set_range_info.
11381 * tree-ssa-strlen.c (set_strlen_range): Extracted from
11382 maybe_set_strlen_range. Handle potentially boundary crossing
11383 cases more conservatively.
11384 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
11385 Call set_strlen_range.
11386 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
11387
11388 PR middle-end/88663
11389 * gimple-fold.c (get_range_strlen): Update prototype to no longer
11390 need the flexp argument.
11391 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
11392 from calls to get_range_strlen. Update comments. Just update
11393 VAL for an unterminated const char array and let the reset of the
11394 code handle it normally. No longer try to set *flexp. Adjust
11395 return value.
11396 (get_range_strlen): Update for the new get_range_strlen API.
11397 (get_maxval_strlen): Similarly.
11398 (gimple_fold_builtin_strlen): Handle update meaning of return value
11399 from get_range_strlen.
11400 * gimple-ssa-sprintf.c (get_string_length): Update for the new
11401 get_range_strlen API.
11402
11403 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
11404
11405 PR lto/88130
11406 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
11407 false at WPA time when body was removed.
11408
11409 2019-01-02 Martin Liska <mliska@suse.cz>
11410
11411 PR tree-optimization/88650
11412 * predict.c (set_even_probabilities): Calculate probability
11413 remainer only when really used.
11414
11415 2019-01-02 Richard Biener <rguenther@suse.de>
11416
11417 PR middle-end/88651
11418 * tree-data-ref.c (analyze_subscript_affine_affine): Use
11419 widest_ints when mangling max_stmt_execution results.
11420
11421 2019-01-02 Richard Biener <rguenther@suse.de>
11422
11423 PR tree-optimization/88621
11424 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
11425 bitfields when canoncalizing.
11426
11427 2019-01-02 Richard Biener <rguenther@suse.de>
11428
11429 PR target/87545
11430 * config/i386/x86-tune-costs.h (intel_cost): Adjust
11431 cost of cheap SSE instruction.
11432
11433 2019-01-02 Richard Biener <rguenther@suse.de>
11434
11435 PR ipa/85574
11436 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
11437 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
11438 function.
11439 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
11440 set after UIDs before splitting them.
11441
11442 2019-01-01 Martin Sebor <msebor@redhat.com>
11443 Jeff Law <law@redhat.com>
11444
11445 * gimple-fold.c (get_range_strlen_tree): Record if the computed
11446 length is optimistic. If it is, then arrange to compute the
11447 conservative length as well.
11448
11449 * gimple-fold.h (get_range_strlen): Update prototype.
11450 * builtins.c (check_access): Update call to get_range_strlen to use
11451 c_strlen_data pointer. Change various variable accesses to instead
11452 pull data from the c_strlen_data structure.
11453 (check_strncat_sizes, expand_builtin_strncat): Likewise.
11454 * calls.c (maybe_warn_nonstring_arg): Likewise.
11455 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
11456 minimum length if maximum lengh is unknown.
11457 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
11458 that used c_strlen, it's no longer needed. Restructure slightly.
11459 (format_string): Set unlikely range appropriately.
11460 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
11461 formatting issues.
11462 (get_range_strlen): Accept c_strlen_data pointer for external
11463 call sites as well. Pass through to call to internal get_range_strlen.
11464 Adjust minlen, maxlen and maxbound as needed.
11465 (get_maxval_strlen): Update comments.
11466 (gimple_fold_builtin_strlen): Update call to get_range_strlen
11467 to use c_strlen_data pointer. Change variable accesses to instead
11468 use c_strlen_data data members.
11469
11470 * gimple-fold.c (get_range_strlen): Update prototype.
11471 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
11472 local variables. Use pdata to return information to caller.
11473 Update calls to get_range_strlen. Update pdata->maxbound.
11474 (get_range_strlen -- static version): Similarly.
11475 (get_range_strlen -- extern version): Update for internal
11476 get_range_strlen API change. Convert to external data format.
11477 (get_maxval_strlen): Similarly.
11478
11479 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
11480
11481 * coverage.c (get_coverage_counts): Use current_function_decl.
11482 * profile.c (read_thunk_profile): New function.
11483 (branch_prob): Add THUNK parameter.
11484 * tree-profile.c (tree_profiling): Handle thunks.
11485 * value-prof.c (init_node_map): Handle thunks.
11486 * value-prof.h (branch_prob): Upate prototype.
11487 (read_thunk_profile): Declare.
11488
11489 2019-01-01 Jakub Jelinek <jakub@redhat.com>
11490
11491 Update copyright years.
11492
11493 * gcc.c (process_command): Update copyright notice dates.
11494 * gcov-dump.c (print_version): Ditto.
11495 * gcov.c (print_version): Ditto.
11496 * gcov-tool.c (print_version): Ditto.
11497 * gengtype.c (create_file): Ditto.
11498 * doc/cpp.texi: Bump @copying's copyright year.
11499 * doc/cppinternals.texi: Ditto.
11500 * doc/gcc.texi: Ditto.
11501 * doc/gccint.texi: Ditto.
11502 * doc/gcov.texi: Ditto.
11503 * doc/install.texi: Ditto.
11504 * doc/invoke.texi: Ditto.
11505 \f
11506 Copyright (C) 2019 Free Software Foundation, Inc.
11507
11508 Copying and distribution of this file, with or without modification,
11509 are permitted in any medium without royalty provided the copyright
11510 notice and this notice are preserved.