]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
Remove COPY_HARD_REG_SET
[thirdparty/gcc.git] / gcc / ChangeLog
1 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
2
3 * hard-reg-set.h (COPY_HARD_REG_SET): Delete.
4 * caller-save.c (save_call_clobbered_regs): Use assignment instead
5 of COPY_HARD_REG_SET.
6 * config/epiphany/epiphany.c (epiphany_compute_frame_size): Likewise.
7 (epiphany_conditional_register_usage): Likewise.
8 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
9 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
10 * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
11 * config/m32c/m32c.c (m32c_register_move_cost): Likewise.
12 * config/m68k/m68k.c (m68k_conditional_register_usage): Likewise.
13 * config/mips/mips.c (mips_class_max_nregs): Likewise.
14 * config/pdp11/pdp11.c (pdp11_conditional_register_usage): Likewise.
15 * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise.
16 * config/sh/sh.c (output_stack_adjust): Likewise.
17 * final.c (collect_fn_hard_reg_usage): Likewise.
18 (get_call_reg_set_usage): Likewise.
19 * ira-build.c (ira_create_object, remove_low_level_allocnos)
20 (ira_flattening): Likewise.
21 * ira-color.c (add_allocno_hard_regs, add_allocno_hard_regs_to_forest)
22 (setup_left_conflict_sizes_p, setup_profitable_hard_regs)
23 (get_conflict_and_start_profitable_regs, allocno_reload_assign)
24 (ira_reassign_pseudos): Likewise.
25 * ira-conflicts.c (print_allocno_conflicts): Likewise.
26 (ira_build_conflicts): Likewise.
27 * ira-costs.c (restrict_cost_classes): Likewise.
28 (setup_regno_cost_classes_by_aclass): Likewise.
29 * ira.c (setup_class_hard_regs, setup_alloc_regs): Likewise.
30 (setup_reg_subclasses, setup_class_subset_and_memory_move_costs)
31 (setup_stack_reg_pressure_class, setup_pressure_classes)
32 (setup_allocno_and_important_classes, setup_class_translate_array)
33 (setup_reg_class_relations, setup_prohibited_class_mode_regs)
34 (ira_setup_eliminable_regset): Likewise.
35 * lra-assigns.c (find_hard_regno_for_1): Likewise.
36 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
37 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
38 (process_alt_operands, inherit_in_ebb): Likewise.
39 * lra-lives.c (process_bb_lives): Likewise.
40 * lra-spills.c (assign_spill_hard_regs): Likewise.
41 * lra.c (lra): Likewise.
42 * mode-switching.c (new_seginfo): Likewise.
43 * postreload.c (reload_combine): Likewise.
44 * reg-stack.c (straighten_stack): Likewise.
45 * reginfo.c (save_register_info, restore_register_info): Likewise.
46 (init_reg_sets_1, record_subregs_of_mode): Likewise
47 * regrename.c (create_new_chain, rename_chains): Likewise.
48 * reload1.c (order_regs_for_reload, find_reg): Likewise.
49 (find_reload_regs): Likewise.
50 * resource.c (find_dead_or_set_registers): Likewise.
51 (mark_target_live_regs): Likewise.
52 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
53
54 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
55
56 * rtl.h (CALL_INSN_FUNCTION_USAGE): Document what SETs mean.
57 (note_pattern_stores): Declare.
58 (note_stores): Take an rtx_insn *.
59 * rtlanal.c (set_of): Use note_pattern_stores instead of note_stores.
60 (find_all_hard_reg_sets): Pass the insn rather than its pattern to
61 note_stores. Remove explicit handling of CALL_INSN_FUNCTION_USAGE.
62 (note_stores): Take an rtx_insn * as argument and process
63 CALL_INSN_FUNCTION_USAGE. Rename old function to...
64 (note_pattern_stores): ...this.
65 (find_first_parameter_load): Pass the insn rather than
66 its pattern to note_stores.
67 * alias.c (memory_modified_in_insn_p, init_alias_analysis): Likewise.
68 * caller-save.c (setup_save_areas, save_call_clobbered_regs)
69 (insert_one_insn): Likewise.
70 * combine.c (combine_instructions): Likewise.
71 (likely_spilled_retval_p): Likewise.
72 (try_combine): Use note_pattern_stores instead of note_stores.
73 (record_dead_and_set_regs): Pass the insn rather than its pattern
74 to note_stores.
75 (reg_dead_at_p): Likewise.
76 * config/bfin/bfin.c (workaround_speculation): Likewise.
77 * config/c6x/c6x.c (maybe_clobber_cond): Likewise. Take an rtx_insn *
78 rather than an rtx.
79 * config/frv/frv.c (frv_registers_update): Use note_pattern_stores
80 instead of note_stores.
81 (frv_optimize_membar_local): Pass the insn rather than its pattern
82 to note_stores.
83 * config/gcn/gcn.c (gcn_md_reorg): Likewise.
84 * config/i386/i386.c (ix86_avx_u128_mode_after): Likewise.
85 * config/mips/mips.c (vr4130_true_reg_dependence_p): Likewise.
86 (r10k_needs_protection_p, mips_sim_issue_insn): Likewise.
87 (mips_reorg_process_insns): Likewise.
88 * config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
89 * config/sh/sh.c (flow_dependent_p): Likewise. Take rtx_insn *s
90 rather than rtxes.
91 * cse.c (delete_trivially_dead_insns): Pass the insn rather than
92 its pattern to note_stores.
93 * cselib.c (cselib_record_sets): Use note_pattern_stores instead
94 of note_stores.
95 * dce.c (mark_nonreg_stores): Remove the "body" parameter and pass
96 the insn to note_stores.
97 (prescan_insns_for_dce): Update call accordingly.
98 * ddg.c (mem_write_insn_p): Pass the insn rather than its pattern
99 to note_stores.
100 * df-problems.c (can_move_insns_across): Likewise.
101 * dse.c (emit_inc_dec_insn_before, replace_read): Likewise.
102 * function.c (assign_parm_setup_reg): Likewise.
103 * gcse-common.c (record_last_mem_set_info_common): Likewise.
104 * gcse.c (load_killed_in_block_p, compute_hash_table_work): Likewise.
105 (single_set_gcse): Likewise.
106 * ira.c (validate_equiv_mem): Likewise.
107 (update_equiv_regs): Use note_pattern_stores rather than note_stores
108 for no_equiv.
109 * loop-doloop.c (doloop_optimize): Pass the insn rather than its
110 pattern to note_stores.
111 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
112 * loop-iv.c (simplify_using_initial_values): Likewise.
113 * mode-switching.c (optimize_mode_switching): Likewise.
114 * optabs.c (emit_libcall_block_1): Likewise.
115 (expand_atomic_compare_and_swap): Likewise.
116 * postreload-gcse.c (load_killed_in_block_p): Likewise.
117 (record_opr_changes): Likewise. Remove explicit handling of
118 CALL_INSN_FUNCTION_USAGE.
119 * postreload.c (reload_combine, reload_cse_move2add): Likewise.
120 * regcprop.c (kill_clobbered_values): Likewise.
121 (copyprop_hardreg_forward_1): Pass the insn rather than its pattern
122 to note_stores.
123 * regrename.c (build_def_use): Likewise.
124 * reload1.c (reload): Use note_pattern_stores instead of note_stores
125 for mark_not_eliminable.
126 (reload_as_needed): Pass the insn rather than its pattern
127 to note_stores.
128 (emit_output_reload_insns): Likewise.
129 * resource.c (mark_target_live_regs): Likewise.
130 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
131 * sched-rgn.c (sets_likely_spilled): Use note_pattern_stores
132 instead of note_stores.
133 * shrink-wrap.c (try_shrink_wrapping): Pass the insn rather than
134 its pattern to note_stores.
135 * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Likewise.
136 * var-tracking.c (adjust_insn, add_with_sets): Likewise.
137
138 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
139
140 * hard-reg-set.h (HARD_REG_SET): Define using a typedef rather
141 than a #define. Use a structure rather than an array as the
142 fallback definition. Remove special cases for low array sizes.
143 (const_hard_reg_set): New typedef.
144 (hard_reg_set_subset_p): Use it instead of "const HARD_REG_SET".
145 (hard_reg_set_equal_p, hard_reg_set_intersect_p): Likewise.
146 (hard_reg_set_empty_p): Likewise.
147 (SET_HARD_REG_BIT): Use a function rather than a macro to
148 handle the case in which HARD_REG_SET is a structure.
149 (CLEAR_HARD_REG_BIT, TEST_HARD_REG_BIT, CLEAR_HARD_REG_SET)
150 (SET_HARD_REG_SET, COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
151 (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
152 (IOR_COMPL_HARD_REG_SET): Likewise.
153 (hard_reg_set_iterator::pset): Constify the pointer target.
154 (hard_reg_set_iter_init): Take a const_hard_reg_set instead
155 of a "const HARD_REG_SET". Update the handling of non-integer
156 HARD_REG_SETs.
157 * recog.h: Test HARD_CONST instead of CLEAR_HARD_REG_SET.
158 * reload.h: Likewise.
159 * rtl.h (choose_hard_reg_mode): Remove unnecessary line break.
160 * regs.h (in_hard_reg_set_p): Take a const_hard_reg_set instead
161 of a "const HARD_REG_SET".
162 (overlaps_hard_reg_set_p, range_overlaps_hard_reg_set_p): Likewise.
163 (range_in_hard_reg_set_p): Likewise.
164 * ira-costs.c (restrict_cost_classes): Likewise.
165 * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise.
166 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
167 Pass a NO_REGS HARD_REG_SET rather than NULL to emit_set_fp_mode.
168 * config/ia64/ia64.c (rws_insn): In the CHECKING_P version,
169 use unsigned HOST_WIDEST_FAST_INT rather than HARD_REG_ELT_TYPE.
170 (rws_insn_set, rws_insn_test): In the CHECKING_P version,
171 take an unsigned int and open-code the HARD_REG_SET operations.
172
173 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
174
175 * Makefile.in (OBJS): Remove bt-load.o.
176 * doc/invoke.texi (fbranch-target-load-optimize): Delete.
177 (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise.
178 * common.opt (fbranch-target-load-optimize): Mark as Ignore and
179 document that the option no longer does anything.
180 (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise.
181 * target.def (branch_target_register_class): Delete.
182 (branch_target_register_callee_saved): Likewise.
183 * doc/tm.texi.in (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
184 (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise.
185 * doc/tm.texi: Regenerate.
186 * tree-pass.h (make_pass_branch_target_load_optimize1): Delete.
187 (make_pass_branch_target_load_optimize2): Likewise.
188 * passes.def (pass_branch_target_load_optimize1): Likewise.
189 (pass_branch_target_load_optimize2): Likewise.
190 * targhooks.h (default_branch_target_register_class): Likewise.
191 * targhooks.c (default_branch_target_register_class): Likewise.
192 * opt-suggestions.c (test_completion_valid_options): Remove
193 -fbtr-bb-exclusive from the list of test options.
194 * bt-load.c: Remove.
195
196 2019-09-09 Barnaby Wilks <barnaby.wilks@arm.com>
197
198 * match.pd: Add flag_unsafe_math_optimizations check
199 before deciding on the widest type in a binary math operation.
200
201 2019-09-09 Martin Liska <mliska@suse.cz>
202
203 * config/i386/i386.opt: Update comment of removed
204 options that are preserved only for backward
205 compatibility.
206
207 2019-09-09 Jakub Jelinek <jakub@redhat.com>
208
209 PR target/87853
210 * config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi
211 instead of __v16qs.
212
213 PR target/91704
214 * config/i386/avxintrin.h (__v32qs): New typedef.
215 * config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs
216 instead of __v32qi.
217
218 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
219
220 * doc/invoke.texi (Option Summary): Cover eBPF.
221 (eBPF Options): New section.
222 * doc/extend.texi (BPF Built-in Functions): Likewise.
223 (BPF Kernel Helpers): Likewise.
224
225 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
226
227 * config.gcc: Support for bpf-*-* targets.
228 * common/config/bpf/bpf-common.c: New file.
229 * config/bpf/t-bpf: Likewise.
230 * config/bpf/predicates.md: Likewise.
231 * config/bpf/constraints.md: Likewise.
232 * config/bpf/bpf.opt: Likewise.
233 * config/bpf/bpf.md: Likewise.
234 * config/bpf/bpf.h: Likewise.
235 * config/bpf/bpf.c: Likewise.
236 * config/bpf/bpf-protos.h: Likewise.
237 * config/bpf/bpf-opts.h: Likewise.
238 * config/bpf/bpf-helpers.h: Likewise.
239 * config/bpf/bpf-helpers.def: Likewise.
240
241 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
242
243 * doc/sourcebuild.texi (Effective-Target Keywords): Document
244 indirect_calls.
245
246 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
247
248 * opt-functions.awk (integer_range_info): Make sure values are in
249 numeric context before operating with them.
250
251 2019-09-08 Segher Boessenkool <segher@kernel.crashing.org>
252
253 * genemit.c (gen_split): Print the filename and line number where the
254 splitter (or peephole2) was defined, to the dump file.
255
256 2019-09-07 Jakub Jelinek <jakub@redhat.com>
257
258 PR tree-optimization/91665
259 * tree-vect-loop.c (vectorizable_reduction): Punt if base has type
260 incompatible with the type of PHI result.
261
262 2019-09-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
263
264 PR target/91684
265 * config/arm/arm.c (arm_block_set_aligned_non_vect): Use
266 gen_unaligned_storedi for 4-byte aligned addresses.
267
268 2019-09-06 Jim Wilson <jimw@sifive.com>
269
270 * config/riscv/riscv.c (riscv_option_override): Revert 2019-08-30
271 change.
272
273 2019-09-06 Segher Boessenkool <segher@kernel.crashing.org>
274
275 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_MV_CR_OV.
276
277 2019-09-06 Segher Boessenkool <segher@kernel.crashing.org>
278
279 * config/rs6000/rs6000.c (rs6000_rtx_costs) <case UNSPEC>: Delete.
280 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_FRSP.
281
282 2019-09-06 Uroš Bizjak <ubizjak@gmail.com>
283
284 PR target/91654
285 * config/i386/x86-tune-costs.h (skylake_cost): Raise the
286 cost of SSE->integer and integer->SSE moves from 2 to 6.
287 (core_cost): Ditto.
288
289 2019-09-06 Jakub Jelinek <jakub@redhat.com>
290
291 * function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P
292 before testing TYPE_TRANSPARENT_AGGR.
293 * calls.c (initialize_argument_information, load_register_parameters):
294 Likewise.
295
296 2019-09-06 Richard Earnshaw <rearnsha@arm.com>
297
298 * config/arm/arm.md (cmp_and): Add short-it variant for thumb2 with
299 high regs.
300 (cmp_ior): Likewise.
301
302 2019-09-06 Martin Liska <mliska@suse.cz>
303
304 * doc/match-and-simplify.texi: Separate tuples with ;.
305
306 2019-09-06 Martin Liska <mliska@suse.cz>
307
308 PR c++/91125
309 * Makefile.in: Remove tlink.o.
310 * collect2.c (do_link): New function isolated
311 from do_tlink.
312 (main): Use.
313 * collect2.h (do_tlink): Remove declaration of do_tlink.
314 * doc/extend.texi: Remove documentation of -frepo.
315 * doc/invoke.texi: Likewise.
316 * doc/sourcebuild.texi: Remove cleanup-repo-files.
317 * tlink.c: Remove.
318
319 2019-09-05 Jakub Jelinek <jakub@redhat.com>
320 Jim Wilson <jimw@sifive.com>
321
322 PR target/91635
323 * config/riscv/riscv.md (zero_extendsidi2, zero_extendhi<GPR:mode>2,
324 extend<SHORT:mode><SUPERQI:mode>2): Don't split if
325 paradoxical_subreg_p (operands[0]).
326 (*lshrsi3_zero_extend_3+1, *lshrsi3_zero_extend_3+2): Add clobber and
327 use as intermediate value.
328
329 2019-09-05 Andrew Stubbs <ams@codesourcery.com>
330
331 * config/gcn/gcn.md (*movti_insn): Set delayeduse for global_store.
332 (sync_compare_and_swap<mode>_insn): Likewise.
333
334 2019-09-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
335
336 PR middle-end/91615
337 * expr.c (expand_expr_real_1): Handle misaligned TARGET_MEM_REF
338 without movmisalign optab.
339
340 2019-09-05 Jakub Jelinek <jakub@redhat.com>
341
342 PR middle-end/91001
343 PR middle-end/91105
344 PR middle-end/91106
345 * calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR
346 types, use type of their first field instead of type of
347 args[i].tree_value.
348
349 2019-09-05 Richard Biener <rguenther@suse.de>
350
351 PR rtl-optimization/91656
352 * postreload-gcse.c (record_last_mem_set_info): Revert addition
353 of early out.
354
355 2019-09-05 Richard Biener <rguenther@suse.de>
356
357 PR middle-end/90501
358 * tree-inline.c (declare_return_variable): Mark the return
359 slot as addressable after building an address of it.
360
361 2019-09-05 Arnaud Charlet <charlet@adacore.com>
362
363 * doc/install.texi: Update and clarify requirements to build GNAT.
364
365 2019-09-05 Richard Sandiford <richard.sandiford@arm.com>
366
367 PR middle-end/91577
368 * cfgexpand.c (discover_nonconstant_array_refs): Force the source
369 of an IFN_LOAD_LANES call and the destination of an IFN_STORE_LANES
370 call to be in memory.
371 (pass_expand::execute): Call discover_nonconstant_array_refs before
372 setting currently_expanding_to_rtl.
373
374 2019-09-04 Caroline Tice <cmtice@google.com>
375
376 * opts.c (finish_options): Disallow -fvtable-verify and -flto to be
377 specified together.
378
379 2019-09-04 Marek Polacek <polacek@redhat.com>
380
381 * doc/invoke.texi: Remove -fdeduce-init-list documentation.
382
383 2019-09-04 Uroš Bizjak <ubizjak@gmail.com>
384
385 PR target/32413
386 * config/i386/i386.c (inline_secondary_memory_needed): Return true
387 for QI and HImode moves between SSE and general registers.
388
389 2019-09-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
390
391 PR c/78736
392 * doc/invoke.texi: Document -Wenum-conversion.
393
394 2019-09-04 Richard Biener <rguenther@suse.de>
395
396 PR rtl-optimization/36262
397 * postreload-gcse.c: Include intl.h and gcse.h.
398 (insert_expr_in_table): Insert at the head of cur_expr->avail_occr
399 to avoid linear list walk.
400 (record_last_mem_set_info): Gate off if not computing transparentness.
401 (get_bb_avail_insn): If transparentness isn't computed give up
402 early.
403 (gcse_after_reload_main): Skip compute_transp and extended PRE
404 if gcse_or_cprop_is_too_expensive says so.
405
406 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
407
408 * config/msp430/msp430.c (msp430_init_sections): Remove handling of the
409 noinit section.
410 (msp430_select_section): Handle decls with the "noinit" attribute with
411 default_elf_select_section.
412 Handle SECCAT_RODATA_MERGE_* section types with
413 default_elf_select_section.
414 Add comments about handling of unsupported section types.
415 (msp430_section_type_flags): Remove handling of the noinit section.
416
417 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
418
419 * config/msp430/msp430.c (msp430_attr): Remove warnings about
420 conflicting msp430-specific attributes.
421 (msp430_section_attr): Likewise.
422 Add warnings about conflicts with generic "noinit" and "section"
423 attributes.
424 Fix grammar in -mlarge error message.
425 (msp430_data_attr): Rename to msp430_persist_attr.
426 Add warnings about conflicts with generic "noinit" and "section"
427 attributes.
428 Add warning for when variable is not initialized.
429 Chain conditionals which prevent the attribute being added.
430 (ATTR_EXCL): New helper.
431 (attr_reent_exclusions): New exclusion table.
432 (attr_naked_exclusions): Likewise.
433 (attr_crit_exclusions): Likewise.
434 (attr_lower_exclusions): Likewise.
435 (attr_upper_exclusions): Likewise.
436 (attr_either_exclusions): Likewise.
437 (attr_persist_exclusions): Likewise.
438 (msp430_attribute_table): Update with exclusion rules.
439 (msp430_output_aligned_decl_common): Don't output common symbol if decl
440 has a section.
441
442 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
443
444 * config/msp430/msp430.c (TARGET_HANDLE_GENERIC_ATTRIBUTE): Define.
445 (msp430_handle_generic_attribute): New function.
446 * doc/tm.texi: Regenerate.
447 * doc/tm.texi.in: Add TARGET_HANDLE_GENERIC_ATTRIBUTE.
448 * hooks.c (hook_tree_treeptr_tree_tree_int_boolptr_null): New.
449 * hooks.h (hook_tree_treeptr_tree_tree_int_boolptr_null): New.
450 * target.def: Define new hook TARGET_HANDLE_GENERIC_ATTRIBUTE.
451
452 2019-09-03 Kamlesh Kumar <kamleshbhalui@gmail.com>
453
454 PR tree-optimization/91504
455 * match.pd: Add ((~a & b) ^a) --> (a | b).
456
457 2019-09-03 Jakub Jelinek <jakub@redhat.com>
458
459 PR target/91604
460 * config/i386/i386-expand.c (split_double_mode): If there is more than
461 one MEM operand and they are rtx_equal_p, reuse lo_half/hi_half from
462 already split matching MEM operand instead of calling adjust_address
463 again.
464
465 2019-09-03 Ulrich Weigand <uweigand@de.ibm.com>
466
467 * config.gcc: Obsolete spu target. Remove references to spu.
468 * configure.ac: Remove references to spu.
469 * configure: Regenerate.
470 * config/spu/: Remove directory.
471 * common/config/spu/: Remove directory.
472
473 * doc/extend.texi: Remove references to spu.
474 * doc/invoke.texi: Likewise.
475 * doc/md.texi: Likewise.
476 * doc/sourcebuild.texi: Likewise.
477
478 2019-09-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
479
480 PR middle-end/91603
481 PR middle-end/91612
482 PR middle-end/91613
483 * expr.c (expand_expr_real_1): Handle unaligned decl_rtl
484 and SSA_NAME referring to CONSTANT_P correctly.
485
486 2019-09-03 Richard Biener <rguenther@suse.de>
487
488 * tree-ssa-sccvn.h (vn_nary_op_lookup): Remove.
489 (vn_nary_op_insert): Likewise.
490 * tree-ssa-sccvn.c (init_vn_nary_op_from_op): Remove.
491 (vn_nary_op_lookup): Likewise.
492 (vn_nary_op_insert): Likewise.
493
494 2019-09-03 Ilya Leoshkevich <iii@linux.ibm.com>
495
496 * config/s390/s390.c (s390_canonicalize_comparison): Use XEXP
497 (*op0, 1) instead of XEXP (*op1, 0).
498
499 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
500
501 * config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define.
502 (aarch64_fjcvtzs): New define_insn.
503 * config/aarch64/aarch64.h (TARGET_JSCVT): Define.
504 * config/aarch64/aarch64-builtins.c (aarch64_builtins):
505 Add AARCH64_JSCVT.
506 (aarch64_init_builtins): Initialize __builtin_aarch64_jcvtzs.
507 (aarch64_expand_builtin): Handle AARCH64_JSCVT.
508 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
509 __ARM_FEATURE_JCVT where appropriate.
510 * config/aarch64/arm_acle.h (__jcvt): Define.
511
512 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
513
514 * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_FRINT32Z,
515 UNSPEC_FRINT32X, UNSPEC_FRINT64Z, UNSPEC_FRINT64X.
516 (aarch64_<frintnzs_op><mode>): New define_insn.
517 * config/aarch64/aarch64.h (TARGET_FRINT): Define.
518 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
519 __ARM_FEATURE_FRINT when appropriate.
520 * config/aarch64/aarch64-simd-builtins.def: Add builtins for frint32z,
521 frint32x, frint64z, frint64x.
522 * config/aarch64/arm_acle.h (__rint32zf, __rint32z, __rint64zf,
523 __rint64z, __rint32xf, __rint32x, __rint64xf, __rint64x): Define.
524 * config/aarch64/arm_neon.h (vrnd32z_f32, vrnd32zq_f32, vrnd32z_f64,
525 vrnd32zq_f64, vrnd32x_f32, vrnd32xq_f32, vrnd32x_f64, vrnd32xq_f64,
526 vrnd64z_f32, vrnd64zq_f32, vrnd64z_f64, vrnd64zq_f64, vrnd64x_f32,
527 vrnd64xq_f32, vrnd64x_f64, vrnd64xq_f64): Define.
528 * config/aarch64/iterators.md (VSFDF): Define.
529 (FRINTNZX): Likewise.
530 (frintnzs_op): Likewise.
531
532 2019-09-03 Dennis Zhang <dennis.zhang@arm.com>
533
534 * config/aarch64/aarch64-cores.def (AARCH64_CORE): New entries
535 for Cortex-A77, Cortex-A76AE, Cortex-A65, Cortex-A65AE, and
536 Cortex-A34.
537 * config/aarch64/aarch64-tune.md: Regenerated.
538 * doc/invoke.texi: Document the new processors.
539
540 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
541
542 * config/aarch64/aarch64-option-extensions.def (sb): Add feature
543 string.
544 (ssbs): Likewise.
545 (sve2): Likewise.
546 (sve2-sm4): Likewise.
547 (sveaes): Likewise.
548 (svesha3): Likewise.
549 (svebitperm): Likewise.
550
551 2019-09-03 Jakub Jelinek <jakub@redhat.com>
552 Richard Biener <rguenther@suse.de>
553
554 PR tree-optimization/91597
555 * tree-vrp.c (extract_range_from_binary_expr): Remove unsafe
556 BIT_AND_EXPR optimization for pointers, even if both operand
557 ranges don't include NULL, the result can be NULL.
558
559 2019-09-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
560
561 PR middle-end/91605
562 * expr.c (addr_expr_of_non_mem_decl_p_1): Refactor into...
563 (non_mem_decl_p): ...this.
564 (mem_ref_refers_to_non_mem_p): Handle DECL_P as well as MEM_REF.
565 (expand_assignment): Call mem_ref_referes_to_non_mem_p
566 unconditionally as before.
567
568 2019-09-02 Eric Botcazou <ebotcazou@adacore.com>
569
570 PR target/91323
571 * doc/generic.texi (LTGT_EXPR): Merge with other comparison operators.
572 * rtl.def (LTGT): Likewise. Add note about floating-point exceptions.
573 * tree.def (LTGT_EXPR): Likewise.
574 * config/sparc/sparc.c (select_cc_mode): Return CCFPEmode for LTGT.
575
576 2019-09-02 Jakub Jelinek <jakub@redhat.com>
577
578 PR go/91617
579 * fold-const.c (range_check_type): For enumeral and boolean
580 type, pass 1 to type_for_size langhook instead of
581 TYPE_UNSIGNED (etype). Return unsigned_type_for result whenever
582 etype isn't TYPE_UNSIGNED INTEGER_TYPE.
583 (build_range_check): Don't call unsigned_type_for for pointer types.
584 * match.pd (X / C1 op C2): Don't call unsigned_type_for on
585 range_check_type result.
586
587 2019-09-02 Eric Botcazou <ebotcazou@adacore.com>
588
589 * gimple-ssa-strength-reduction.c (valid_mem_ref_cand_p): New function.
590 (replace_ref): Do not replace a chain of only two candidates which are
591 valid memory references.
592
593 2019-09-02 Martin Liska <mliska@suse.cz>
594
595 * tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
596 Bail out when we'll end up with the same number of clusters as
597 at the beginning.
598 (bit_test_cluster::find_bit_tests): Likewise for bit tests.
599 (jump_table_cluster::can_be_handled): Remove the guard
600 as it's already handled in ::is_enabled. Allocate output
601 after early bail out.
602
603 2019-09-02 Martin Liska <mliska@suse.cz>
604
605 PR gcov-profile/91601
606 * gcov.c (path_contains_zero_cycle_arc): Rename to ...
607 (path_contains_zero_or_negative_cycle_arc): ... this and handle
608 also negative edges.
609 (circuit): Handle also negative edges as they can happen
610 in some situations.
611
612 2019-09-01 Eric Botcazou <ebotcazou@adacore.com>
613
614 PR target/91472
615 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true
616 during LRA/reload in PIC mode if the PIC register hasn't been used yet.
617 (sparc_pic_register_p): Test reload_in_progress for consistency's sake.
618
619 2019-09-01 Jakub Jelinek <jakub@redhat.com>
620
621 PR middle-end/91623
622 * optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only
623 EQ_EXPR/NE_EXPR is supported, verify that op0 only contains
624 zeros or negative elements and use NE_EXPR instead of LT_EXPR against
625 zero vector.
626
627 PR lto/91572
628 * tree.c (find_decls_types_in_node): Also walk TREE_PURPOSE of
629 GIMPLE_ASM TREE_LIST operands.
630
631 2019-08-31 Gerald Pfeifer <gerald@pfeifer.com>
632
633 * doc/generic.texi (Unary and Binary Expressions): Mark up
634 an instance of TYPE_MIN.
635
636 2019-08-31 Stafford Horne <shorne@gmail.com>
637
638 * config/or1k/constraints.md (t): New constraint.
639 * config/or1k/or1k.h (GOT_REGS): New register class.
640 * config/or1k/or1k.md (set_got_tmp, set_got): Use t contraint.
641
642 2019-08-30 Jim Wilson <jimw@sifive.com>
643
644 * config/riscv/riscv.c (riscv_option_override): If -msave-restore
645 and -fpic and -mplt then disable -msave-restore and warn.
646
647 2019-08-30 Martin Sebor <msebor@redhat.com>
648
649 PR middle-end/91599
650 * tree-ssa-strlen.c (handle_store): Use a fallback location if
651 the statement doesn't have one.
652 * gimple-pretty-print.c (percent_G_format): Same.
653
654 PR middle-end/91584
655 * tree-vrp.c (vrp_prop::check_mem_ref): Normalize type domain bounds
656 before using them to validate MEM_REF offset.
657
658 2019-08-30 Marek Polacek <polacek@redhat.com>
659
660 * doc/invoke.texi (-Wvolatile): Use @code for volatile.
661
662 2019-08-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
663
664 * config/arm/arm.md (unaligned_loaddi,
665 unaligned_storedi): New unspec insn patterns.
666 * config/arm/neon.md (unaligned_storev8qi): Likewise.
667 * config/arm/arm.c (gen_cpymem_ldrd_strd): Use unaligned_loaddi
668 and unaligned_storedi for 4-byte aligned memory.
669 (arm_block_set_aligned_vect): Use unaligned_storev8qi for
670 4-byte aligned memory.
671
672 2019-08-30 Martin Jambor <mjambor@suse.cz>
673
674 tree-optimization/91579
675 * tree-tailcall.c (tailr_arg_needs_copy): New variable.
676 (find_tail_calls): Allocate tailr_arg_needs_copy and set its bits as
677 appropriate.
678 (arg_needs_copy_p): Removed.
679 (eliminate_tail_call): Test tailr_arg_needs_copy instead of calling
680 arg_needs_copy_p.
681 (tree_optimize_tail_calls_1): Likewise. Free tailr_arg_needs_copy.
682
683 2019-08-29 Uroš Bizjak <ubizjak@gmail.com>
684
685 * config/i386/i386-features.c
686 (general_scalar_chain::compute_convert_gain):
687 Correct cost for double-word shifts.
688 (general_scalar_to_vector_candidate_p): Reject count operands
689 greater or equal to mode bitsize.
690
691 2019-08-29 Uroš Bizjak <ubizjak@gmail.com>
692
693 * config/i386/i386.c (inline_secondary_memory_needed): Return true
694 for moves between SSE and non-general registers and between
695 mask and non-general registers.
696 (ix86_register_move_cost): Remove stalled comment.
697
698 2019-08-29 Richard Biener <rguenther@suse.de>
699
700 * config/i386/i386-features.c (general_scalar_chain::convert_insn):
701 Guard debug work with MAY_HAVE_DEBUG_BIND_INSNS.
702
703 2019-08-29 Richard Biener <rguenther@suse.de>
704
705 PR bootstrap/91580
706 * config/i386/i386-features.c (general_scalar_chain::convert_insn):
707 Do not emit scalar copies for debug-insns, instead replace
708 their uses with the reg copy used in the chain or reset them
709 if there is a reaching definition outside of the chain as well.
710
711 2019-08-29 Jakub Jelinek <jakub@redhat.com>
712
713 PR target/91560
714 * config/i386/i386-expand.c (expand_vec_perm_movs,
715 expand_vec_perm_blend, expand_vec_perm_vpermil,
716 expand_vec_perm_pshufb, expand_vec_perm_1,
717 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
718 expand_vec_perm_interleave2, expand_vec_perm_vpermq_perm_1,
719 expand_vec_perm_vperm2f128, expand_vec_perm_interleave3,
720 expand_vec_perm_vperm2f128_vblend, expand_vec_perm_2vperm2f128_vshuf,
721 expand_vec_perm_even_odd, expand_vec_perm_broadcast): Adjust function
722 comments - replace ix86_expand_vec_perm_builtin_1 with
723 ix86_expand_vec_perm_const_1.
724 (expand_vec_perm2_vperm2f128_vblend): New function.
725 (ix86_expand_vec_perm_const_1): New forward declaration. Call
726 expand_vec_perm2_vperm2f128_vblend as last resort.
727 (canonicalize_perm): Formatting fix.
728
729 PR tree-optimization/91351
730 * tree-cfg.c (generate_range_test): Use range_check_type instead of
731 unsigned_type_for.
732 * tree-cfgcleanup.c (convert_single_case_switch): Punt if
733 range_check_type returns NULL.
734 * tree-switch-conversion.c (switch_conversion::build_one_array):
735 Use range_check_type instead of unsigned_type_for, don't perform
736 linear opt if it returns NULL.
737 (bit_test_cluster::find_bit_tests): Formatting fix.
738 (bit_test_cluster::emit): Use range_check_type instead of
739 unsigned_type_for.
740 (switch_decision_tree::try_switch_expansion): Punt if range_check_type
741 returns NULL.
742
743 2019-08-29 Richard Biener <rguenther@suse.de>
744
745 PR tree-optimization/91568
746 * tree-vectorizer.h (_slp_tree::max_nunits): Add.
747 (vect_update_max_nunits): Add overload for poly_uint64.
748 * tree-vect-slp.c (vect_create_new_slp_node): Initialize it.
749 (vect_build_slp_tree): Record max_nunits into the subtree
750 and merge it upwards.
751 (vect_print_slp_tree): Print max_nunits.
752
753 2019-08-28 Marek Polacek <polacek@redhat.com>
754
755 Implement P1152R4: Deprecating some uses of volatile.
756 PR c++/91361
757 * doc/invoke.texi: Document -Wvolatile.
758
759 2019-08-28 Marek Polacek <polacek@redhat.com>
760
761 PR c++/91360 - Implement C++20 P1143R2: constinit.
762 * doc/invoke.texi: Document -Wc++20-compat.
763
764 2019-08-28 Martin Sebor <msebor@redhat.com>
765
766 PR tree-optimization/91457
767 * builtins.c (component_size): New function.
768 (compute_objsize): Add argument. Handle ARRAY_REF and COMPONENT_REF.
769 * builtins.h (compute_objsize): Add argument.
770 * tree-ssa-strlen.c (handle_store): Handle no-warning bit.
771 * tree-vrp.c (vrp_prop::check_array_ref): Return warning result.
772 (vrp_prop::check_mem_ref): Same.
773 (vrp_prop::search_for_addr_array): Set no-warning bit.
774 (check_array_bounds): Same.
775
776 2019-08-28 Martin Sebor <msebor@redhat.com>
777
778 PR driver/80545
779 * opts-common.c (option_enabled): Correct checking for language
780 options.
781
782 2019-08-28 Uroš Bizjak <ubizjak@gmail.com>
783
784 * config/i386/i386.c (ix86_register_move_cost): Do not
785 limit the cost of moves to/from XMM register to minimum 8.
786
787 2019-08-28 Martin Jambor <mjambor@suse.cz>
788
789 PR ipa/91468
790 * ipa-cp.c (merge_agg_lats_step): Removed redundant test, made a
791 checking assert a normal assert to test it really is redundant.
792 * ipa-prop.c (compute_complex_assign_jump_func): Removed
793 redundant test.
794 (update_jump_functions_after_inlining): Removed combining unary
795 arithmetic operations with an ancestor jump function.
796 (ipcp_modif_dom_walker::before_dom_children): Fix wrong use of rhs
797 instead of t.
798
799 2019-08-28 Richard Biener <rguenther@suse.de>
800
801 * config/i386/i386-features.c (convert_scalars_to_vector): Do not
802 add the MD problem.
803
804 2019-08-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
805 Richard Biener <rguenther@suse.de>
806
807 * expr.c (expand_assignment): Handle misaligned DECLs.
808 (expand_expr_real_1): Handle FUNCTION_DECL as unaligned.
809 * function.c (assign_parm_adjust_stack_rtl): Check movmisalign optab
810 too.
811 (assign_parm_setup_stack): Allocate properly aligned stack slots.
812 * varasm.c (build_constant_desc): Align constants of misaligned types.
813 * config/arm/predicates.md (aligned_operand): New predicate.
814 * config/arm/arm.md (movdi, movsi, movhi, movhf, movsf, movdf): Use
815 aligned_operand to check restrictions on memory addresses.
816 * config/arm/neon.md (movti, mov<VSTRUCT>, mov<VH>): Likewise.
817 * config/arm/vec-common.md (mov<VALL>): Likewise.
818
819 2019-08-28 Jakub Jelinek <jakub@redhat.com>
820
821 PR libgomp/91530
822 * config/i386/sse.md (vec_shl_<mode>, vec_shr_<mode>): Use
823 V_128 iterator instead of VI_128.
824
825 2019-08-28 Martin Liska <mliska@suse.cz>
826
827 PR tree-optimization/90970
828 * builtins.c (check_access): Remove assignment to maxread
829 as it hasn't been used since when it was introduced in r255755.
830
831 2019-08-27 Martin Sebor <msebor@redhat.com>
832
833 PR tree-optimization/91567
834 * gimple-ssa-sprintf.c (get_string_length): Handle more forms of lengths
835 of unknown strings.
836 * vr-values.c (vr_values::extract_range_basic): Set strlen upper bound
837 to PTRDIFF_MAX - 2.
838
839 2019-08-27 Jeff Law <law@redhat.com>
840
841 * tree-ssa-strlen.c (printf_strlen_execute): Initialize
842 the loop optimizer and SCEV before sizing ssa_ver_to_stridx.
843
844 2019-08-27 Uroš Bizjak <ubizjak@gmail.com>
845
846 PR target/91528
847 * config/i386/i386-features.c (convert_scalars_to_vector):
848 Update crtl->stack_realign_needed, crtl->stack_realign_tried and
849 crtl->stack_realign_processed. Update crtl->drap_reg by calling
850 targetm.calls.get_drap_rtx. If drap_rtx is non-null then
851 Update crtl->args.internal_arg_pointer and call fixup_tail_calls.
852
853 2019-08-27 Richard Biener <rguenther@suse.de>
854
855 * config/i386/i386-features.h
856 (general_scalar_chain::~general_scalar_chain): Add.
857 (general_scalar_chain::insns_conv): New bitmap.
858 (general_scalar_chain::n_sse_to_integer): New.
859 (general_scalar_chain::n_integer_to_sse): Likewise.
860 (general_scalar_chain::make_vector_copies): Adjust signature.
861 * config/i386/i386-features.c
862 (general_scalar_chain::general_scalar_chain): Outline,
863 initialize new members.
864 (general_scalar_chain::~general_scalar_chain): New.
865 (general_scalar_chain::mark_dual_mode_def): Record insns
866 we need to insert conversions at and count them.
867 (general_scalar_chain::compute_convert_gain): Account
868 for conversion instructions at chain boundary.
869 (general_scalar_chain::make_vector_copies): Generate a single
870 copy for a def by a specific insn.
871 (general_scalar_chain::convert_registers): First populate
872 defs_map, then make copies at out-of chain insns.
873
874 2019-08-27 Richard Earnshaw <rearnsha@arm.com>
875
876 * config/arm/arm.md (stack_protect_set_insn): Add security-related
877 comment.
878 * config/aarch64/aarch64.md (stack_protect_set_<mode>): Likewise.
879
880 2019-08-27 Martin Liska <mliska@suse.cz>
881
882 * cgraph.c (cgraph_node::remove): Remove dead assignment before
883 loop.
884 * config/i386/i386-features.c (scalar_chain::emit_conversion_insns):
885 Enclose in anonymous namespace.
886 * config/i386/x86-tune-costs.h (struct processor_costs): Wrap
887 hard_register initialization in braces.
888 * tree-vrp.h (value_range_base::supports_type_p): Return false
889 for function with boolean return type.
890
891 2019-08-26 Uroš Bizjak <ubizjak@gmail.com>
892
893 * config/i386/i386.c (emit_i387_cw_initialization)
894 <case I387_CW_ROUNDEVEN>: Fix masking operand value.
895
896 2019-08-26 Martin Sebor <msebor@redhat.com>
897
898 PR c++/83431
899 * gimple-ssa-sprintf.c (pass_data_sprintf_length): Remove object.
900 (sprintf_dom_walker): Remove class.
901 (get_int_range): Make argument const.
902 (directive::fmtfunc, directive::set_precision): Same.
903 (format_none): Same.
904 (build_intmax_type_nodes): Same.
905 (adjust_range_for_overflow): Same.
906 (format_floating): Same.
907 (format_character): Same.
908 (format_string): Same.
909 (format_plain): Same.
910 (get_int_range): Cast away constness.
911 (format_integer): Same.
912 (get_string_length): Call get_range_strlen_dynamic. Handle
913 null lendata.maxbound.
914 (should_warn_p): Adjust argument scope qualifier.
915 (maybe_warn): Same.
916 (format_directive): Same.
917 (parse_directive): Same.
918 (is_call_safe): Same.
919 (try_substitute_return_value): Same.
920 (sprintf_dom_walker::handle_printf_call): Rename...
921 (handle_printf_call): ...to this. Initialize target to host charmap
922 here instead of in pass_sprintf_length::execute.
923 (struct call_info): Make global.
924 (sprintf_dom_walker::compute_format_length): Make global.
925 (sprintf_dom_walker::handle_gimple_call): Same.
926 * passes.def (pass_sprintf_length): Replace with pass_strlen.
927 * print-rtl.c (print_pattern): Reduce the number of spaces to
928 avoid -Wformat-truncation.
929 * tree-pass.h (make_pass_warn_printf): New function.
930 * tree-ssa-strlen.c (strlen_optimize): New variable.
931 (get_string_length): Add comments.
932 (get_range_strlen_dynamic): New function.
933 (check_and_optimize_call): New function.
934 (handle_integral_assign): New function.
935 (strlen_check_and_optimize_stmt): Factor code out into
936 strlen_check_and_optimize_call and handle_integral_assign.
937 (strlen_dom_walker::evrp): New member.
938 (strlen_dom_walker::before_dom_children): Use evrp member.
939 (strlen_dom_walker::after_dom_children): Use evrp member.
940 (printf_strlen_execute): New function.
941 (pass_strlen::gate): Update to handle printf calls.
942 (dump_strlen_info): New function.
943 (pass_data_warn_printf): New variable.
944 (pass_warn_printf): New class.
945 * tree-ssa-strlen.h (get_range_strlen_dynamic): Declare.
946 (handle_printf_call): Same.
947 * tree-vrp.c (value_range_base::type): Adjust assertion.
948 * vr-values.c (vr_values::update_value_range): Use type of the first
949 argument rather than the second.
950
951 2019-08-26 Richard Biener <rguenther@suse.de>
952
953 * config/i386/i386-features.c (general_remove_non_convertible_regs):
954 Remove.
955 (convert_scalars_to_vector): Do not call it.
956
957 2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com>
958 Uros Bizjak <ubizjak@gmail.com>
959
960 * builtins.c (mathfn_built_in_2): Change CASE_MATHFN to
961 CASE_MATHFN_FLOATN for roundeven.
962 * config/i386/i386.c (ix86_i387_mode_needed): Add case
963 I387_ROUNDEVEN.
964 (ix86_mode_needed): Likewise.
965 (ix86_mode_after): Likewise.
966 (ix86_mode_entry): Likewise.
967 (ix86_mode_exit): Likewise.
968 (ix86_emit_mode_set): Likewise.
969 (emit_i387_cw_initialization): Add case I387_CW_ROUNDEVEN.
970 * config/i386/i386.h (ix86_stack_slot): Add SLOT_CW_ROUNDEVEN.
971 (ix86_entity): Add I387_ROUNDEVEN.
972 (NUM_MODES_FOR_MODE_SWITCHING): Add I387_CW_ANY.
973 * config/i386/i386.md: Define UNSPEC_FRNDINT_ROUNDEVEN.
974 (define_int_iterator): Likewise.
975 (define_int_attr): Likewise for rounding_insn, rounding and ROUNDING.
976 (define_constant): Define ROUND_ROUNDEVEN mode.
977 (define_attr): Add roundeven mode for i387_cw.
978 (<rouding_insn><mode>2): Add condition for ROUND_ROUNDEVEN.
979 * internal-fn.def (ROUNDEVEN): New builtin function.
980 * optabs.def (roundeven_optab): New optab.
981
982 2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com>
983
984 * builtins.c (mathfn_built_in_2): Added CASE_MATHFN_FLOATN
985 for ROUNDEVEN.
986 * builtins.def: Added function definitions for roundeven function
987 variants.
988 * fold-const-call.c (fold_const_call_ss): Added case for roundeven
989 function call. Adjust condition for floor, ceil, trunc and round.
990 * fold-const.c (negate_mathfn_p): Added case for roundeven function.
991 (tree_call_nonnegative_warnv_p): Added case for roundeven function.
992 (integer_valued_real_call_p): Added case for roundeven function.
993 * real.c (is_even): New function. Returns true if real number is even,
994 otherwise returns false.
995 (is_halfway_below): New function. Returns true if real number is
996 halfway between two integers, else return false.
997 (real_roundeven): New function. Round real number to nearest integer,
998 rounding halfway cases towards even.
999 * real.h (real_value): Added descriptive comments. Added function
1000 declaration for roundeven function.
1001 * doc/extend.texi (Other Builtins): List roundeven variants among
1002 functions which can be handled as builtins.
1003
1004 2019-08-26 Richard Biener <rguenther@suse.de>
1005
1006 PR target/91522
1007 PR target/91527
1008 * config/i386/i386-features.h (general_scalar_chain::defs_map):
1009 New member.
1010 (general_scalar_chain::replace_with_subreg): Remove.
1011 (general_scalar_chain::replace_with_subreg_in_insn): Likewise.
1012 (general_scalar_chain::convert_reg): Adjust signature.
1013 * config/i386/i386-features.c (scalar_chain::add_insn): Do not
1014 iterate over all defs of a reg.
1015 (general_scalar_chain::replace_with_subreg): Remove.
1016 (general_scalar_chain::replace_with_subreg_in_insn): Likewise.
1017 (general_scalar_chain::make_vector_copies): Populate defs_map,
1018 place copy only after defs that are used as vectors in the chain.
1019 (general_scalar_chain::convert_reg): Emit a copy for a specific
1020 def in a specific instruction.
1021 (general_scalar_chain::convert_op): All reg uses are converted here.
1022 (general_scalar_chain::convert_insn): Emit copies for scalar
1023 uses of defs here. Replace uses with the copies we created.
1024 Replace and convert the def. Adjust REG_DEAD notes, remove
1025 REG_EQUIV/EQUAL notes.
1026 (general_scalar_chain::convert_registers): Only handle copies
1027 into the chain here.
1028
1029 2019-08-26 Robin Dapp <rdapp@linux.ibm.com>
1030
1031 * match.pd: Add (T)(A) + CST -> (T)(A + CST).
1032
1033 2019-08-26 Robin Dapp <rdapp@linux.ibm.com>
1034
1035 * gimple-loop-versioning.cc (loop_versioning::record_address_fragment):
1036 Add nop_convert case.
1037 * tree-ssa-propagate.c (substitute_and_fold_dom_walker::before_dom_children):
1038 Fold all statements if requested.
1039 * tree-ssa-propagate.h (class substitute_and_fold_engine):
1040 Allow to fold all statements.
1041 * tree-vrp.c (class vrp_folder):
1042 Let substitute_and_fold_engine fold all statements.
1043
1044 2019-08-26 Richard Biener <rguenther@suse.de>
1045
1046 PR tree-optimization/91526
1047 * passes.def: Note that after late FRE we do TODO_update_address_taken.
1048 * tree-ssa-sccvn.c (pass_fre::execute): In late mode schedule
1049 TODO_update_address_taken.
1050
1051 2019-08-26 Gerald Pfeifer <gerald@pfeifer.com>
1052
1053 * config/i386/gmm_malloc.h: Only use <errno.h> and errno if
1054 __STDC_HOSTED__.
1055
1056 2019-08-23 Mihailo Stojanovic <mistojanovic@wavecomp.com>
1057
1058 * config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI
1059 machine mode for unspec_volatile operand.
1060
1061 2019-08-23 Wilco Dijkstra <wdijkstr@arm.com>
1062
1063 * gcc/doc/invoke.texi (mneon-for-64bits): Deprecate option.
1064 * gcc/config/arm/arm.opt (mneon-for-64bits): Deprecate option.
1065 * gcc/config/arm/arm.h (TARGET_PREFER_NEON_64BITS): Remove.
1066 (prefer_neon_for_64bits): Remove.
1067 * gcc/config/arm/arm.c (prefer_neon_for_64bits): Remove.
1068 (tune_params): Remove PREF_NEON_64_FALSE uses.
1069 (arm_option_override): Remove prefer_neon selection code.
1070 (arm_print_tune_info): Remove prefer_neon_for_64bits.
1071 * gcc/config/arm/arm-protos.h (tune_params): Remove
1072 prefer_neon_for_64bits.
1073 (prefer_neon_for_64bits): Remove.
1074
1075 2019-08-23 Iain Sandoe <iain@sandoe.co.uk>
1076
1077 PR pch/61250
1078 * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure
1079 and issue any diagnostics needed before collecting the pre-PCH
1080 state.
1081
1082 2019-08-23 Jakub Jelinek <jakub@redhat.com>
1083
1084 PR middle-end/91283
1085 * common.opt (fexcess-precision=): Add Optimization flag. Use
1086 flag_excess_precision variable instead of
1087 flag_excess_precision_cmdline.
1088 * flags.h (class target_flag_state): Remove x_flag_excess_precision
1089 member.
1090 (flag_excess_precision): Don't define.
1091 * langhooks.c (lhd_post_options): Set flag_excess_precision instead of
1092 flag_excess_precision_cmdline. Remove comment.
1093 * opts.c (set_fast_math_flags): Use frontend_set_flag_excess_precision
1094 and x_flag_excess_precision instead of
1095 frontend_set_flag_excess_precision_cmdline and
1096 x_flag_excess_precision_cmdline.
1097 (fast_math_flags_set_p): Use x_flag_excess_precision instead of
1098 x_flag_excess_precision_cmdline.
1099 * toplev.c (init_excess_precision): Remove.
1100 (lang_dependent_init_target): Don't call it.
1101
1102 2019-08-23 Martin Liska <mliska@suse.cz>
1103
1104 * lto-wrapper.c (run_gcc): When setting jobserver
1105 set also parallel to 1. This was done so before r273908.
1106
1107 2019-08-23 Dennis Zhang <dennis.zhang@arm.com>
1108
1109 * config/arm/arm-cpus.in (cortex-m35p): New entry.
1110 (cortex-a76ae): Likewise.
1111 (cortex-a77): Likewise
1112 * config/arm/arm-tables.opt: Regenerate.
1113 * config/arm/arm-tune.md: Likewise.
1114 * doc/invoke.texi (ARM Options): Document cortex-m35p, cortx-a76ae,
1115 cortex-a77 CPU options.
1116
1117 2019-08-23 Martin Liska <mliska@suse.cz>
1118
1119 * profile.c (instrument_values): Do not set
1120 0 as last argument.
1121 * tree-profile.c (gimple_gen_interval_profiler): Remove
1122 last argument.
1123 (gimple_gen_pow2_profiler): Likewise.
1124 (gimple_gen_topn_values_profiler): Likewise.
1125 (gimple_gen_ic_profiler): Likewise.
1126 (gimple_gen_time_profiler): Likewise.
1127 (gimple_gen_average_profiler): Likewise.
1128 (gimple_gen_ior_profiler): Likewise.
1129 * value-prof.c (dump_histogram_value): Use default
1130 in switch statement instead of HIST_TYPE_MAX.
1131 (stream_in_histogram_value): Likewise.
1132 (gimple_duplicate_stmt_histograms): Do not
1133 use NULL for implicitly set arguments.
1134 (gimple_divmod_values_to_profile): Do not use
1135 reserve+quick_push.
1136 (gimple_indirect_call_to_profile): Likewise.
1137 (gimple_find_values_to_profile): Use implicit
1138 function call arguments.
1139 * value-prof.h (gimple_alloc_histogram_value):
1140 Set default values.
1141 (gimple_gen_interval_profiler): Remove last argument.
1142 (gimple_gen_pow2_profiler): Likewise.
1143 (gimple_gen_topn_values_profiler): Likewise.
1144 (gimple_gen_ic_profiler): Likewise.
1145 (gimple_gen_time_profiler): Likewise.
1146 (gimple_gen_average_profiler): Likewise.
1147 (gimple_gen_ior_profiler): Likewise.
1148
1149 2019-08-22 Martin Sebor <msebor@redhat.com>
1150
1151 PR middle-end/91490
1152 * builtins.c (c_strlen): Rename argument and introduce new local.
1153 Set no-warning bit on original argument.
1154 * expr.c (string_constant): Pass argument type to fold_ctor_reference.
1155 Fold empty and zero constructors into empty strings.
1156 * gimple-fold.c (fold_nonarray_ctor_reference): Return a STRING_CST
1157 for missing initializers.
1158 * tree.c (build_string_literal): Handle optional argument.
1159 * tree.h (build_string_literal): Add defaulted argument.
1160 * gimple-ssa-warn-restrict.c (maybe_diag_access_bounds): Check
1161 no-warning bit on original expression.
1162
1163 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org>
1164
1165 PR target/91481
1166 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
1167 and UNSPEC_DARN_RAW.
1168 (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and
1169 UNSPECV_DARN_RAW.
1170 (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32.
1171 (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW.
1172 (darn): Use an unspec_volatile, and UNSPECV_DARN.
1173
1174 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org>
1175
1176 * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
1177 UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to...
1178 * config/rs6000/rs6000.md (unspec): ... here.
1179 * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb,
1180 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
1181 cmpeqb, *cmpeqb_internal): Delete, move to...
1182 * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb,
1183 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
1184 cmpeqb, *cmpeqb_internal): ... here.
1185
1186 2019-08-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1187
1188 * config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32
1189 intrinsics if __ARM_FP.
1190 Use __ARM_FEATURE_CRC32 ifdef guard.
1191
1192 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
1193
1194 * config/arm/arm.md (neon_for_64bits): Remove.
1195 (avoid_neon_for_64bits): Remove.
1196 (arm_adddi3): Always split early.
1197 (arm_subdi3): Always split early.
1198 (negdi2): Remove Neon expansion.
1199 (split zero_extend): Split before reload.
1200 (split sign_extend): Split before reload.
1201
1202 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
1203
1204 * config/arm/iterators.md (qhs_extenddi_cstr): Update.
1205 (qhs_extenddi_cstr): Likewise.
1206 * config/arm/arm.md (ashldi3): Always expand early.
1207 (ashlsi3): Likewise.
1208 (ashrsi3): Likewise.
1209 (zero_extend<mode>di2): Remove Neon variants.
1210 (extend<mode>di2): Likewise.
1211 * config/arm/neon.md (ashldi3_neon_noclobber): Remove.
1212 (signed_shift_di3_neon): Likewise.
1213 (unsigned_shift_di3_neon): Likewise.
1214 (ashrdi3_neon_imm_noclobber): Likewise.
1215 (lshrdi3_neon_imm_noclobber): Likewise.
1216 (<shift>di3_neon): Likewise.
1217 (split extend): Remove DI extend split patterns.
1218
1219 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
1220
1221 * config/arm/arm.md (split and/eor/ior): Remove Neon check.
1222 (split not): Add DImode not splitter.
1223 (anddi3): Remove pattern.
1224 (anddi3_insn): Likewise.
1225 (anddi_zesidi_di): Likewise.
1226 (anddi_sesdi_di): Likewise.
1227 (anddi_notdi_di): Likewise.
1228 (anddi_notzesidi_di): Likewise.
1229 (anddi_notsesidi_di): Likewise.
1230 (iordi3): Likewise.
1231 (iordi3_insn): Likewise.
1232 (iordi_zesidi_di): Likewise.
1233 (iordi_sesidi_di): Likewise.
1234 (xordi3): Likewise.
1235 (xordi3_insn): Likewise.
1236 (xordi_sesidi_di): Likewise.
1237 (xordi_zesidi_di): Likewise.
1238 (one_cmpldi2): Likewise.
1239 (one_cmpldi2_insn): Likewise.
1240 * config/arm/constraints.md: Remove De, Df, Dg constraints.
1241 * config/arm/iwmmxt.md (iwmmxt_iordi3): Remove general register
1242 alternative.
1243 (iwmmxt_xordi3): Likewise.
1244 (iwmmxt_anddi3): Likewise.
1245 * config/arm/neon.md (orndi3_neon): Remove pattern.
1246 (anddi_notdi_di): Likewise.
1247 * config/arm/predicates.md (arm_anddi_operand_neon): Remove.
1248 (arm_iordi_operand_neon): Likewise.
1249 (arm_xordi_operand_neon): Likewise.
1250 * config/arm/thumb2.md(iordi_notdi_di): Remove pattern.
1251 (iordi_notzesidi_di): Likewise.
1252 (iordi_notdi_zesidi): Likewise.
1253 (iordi_notsesidi_di): Likewise.
1254
1255 2019-08-22 Richard Earnshaw <rearnsha@arm.com>
1256
1257 * config/arm/arm.md (iorsi3_compare0): Add alternative for 16-bit thumb
1258 insn.
1259 (iorsi3_compare0_scratch): Likewise.
1260
1261 2019-08-22 Sylvia Taylor <sylvia.taylor@arm.com>
1262
1263 * config/aarch64/aarch64-simd-builtins.def:
1264 (ld1x4): New.
1265 (st1x4): Likewise.
1266 * config/aarch64/aarch64-simd.md:
1267 (aarch64_ld1x4<VALLDIF:mode>): New pattern.
1268 (aarch64_st1x4<VALLDIF:mode>): Likewise.
1269 (aarch64_ld1_x4_<mode>): Likewise.
1270 (aarch64_st1_x4_<mode>): Likewise.
1271 * config/aarch64/arm_neon.h:
1272 (vld1_s8_x4): New function.
1273 (vld1q_s8_x4): Likewise.
1274 (vld1_s16_x4): Likewise.
1275 (vld1q_s16_x4): Likewise.
1276 (vld1_s32_x4): Likewise.
1277 (vld1q_s32_x4): Likewise.
1278 (vld1_u8_x4): Likewise.
1279 (vld1q_u8_x4): Likewise.
1280 (vld1_u16_x4): Likewise.
1281 (vld1q_u16_x4): Likewise.
1282 (vld1_u32_x4): Likewise.
1283 (vld1q_u32_x4): Likewise.
1284 (vld1_f16_x4): Likewise.
1285 (vld1q_f16_x4): Likewise.
1286 (vld1_f32_x4): Likewise.
1287 (vld1q_f32_x4): Likewise.
1288 (vld1_p8_x4): Likewise.
1289 (vld1q_p8_x4): Likewise.
1290 (vld1_p16_x4): Likewise.
1291 (vld1q_p16_x4): Likewise.
1292 (vld1_s64_x4): Likewise.
1293 (vld1_u64_x4): Likewise.
1294 (vld1_p64_x4): Likewise.
1295 (vld1q_s64_x4): Likewise.
1296 (vld1q_u64_x4): Likewise.
1297 (vld1q_p64_x4): Likewise.
1298 (vld1_f64_x4): Likewise.
1299 (vld1q_f64_x4): Likewise.
1300 (vst1_s8_x4): Likewise.
1301 (vst1q_s8_x4): Likewise.
1302 (vst1_s16_x4): Likewise.
1303 (vst1q_s16_x4): Likewise.
1304 (vst1_s32_x4): Likewise.
1305 (vst1q_s32_x4): Likewise.
1306 (vst1_u8_x4): Likewise.
1307 (vst1q_u8_x4): Likewise.
1308 (vst1_u16_x4): Likewise.
1309 (vst1q_u16_x4): Likewise.
1310 (vst1_u32_x4): Likewise.
1311 (vst1q_u32_x4): Likewise.
1312 (vst1_f16_x4): Likewise.
1313 (vst1q_f16_x4): Likewise.
1314 (vst1_f32_x4): Likewise.
1315 (vst1q_f32_x4): Likewise.
1316 (vst1_p8_x4): Likewise.
1317 (vst1q_p8_x4): Likewise.
1318 (vst1_p16_x4): Likewise.
1319 (vst1q_p16_x4): Likewise.
1320 (vst1_s64_x4): Likewise.
1321 (vst1_u64_x4): Likewise.
1322 (vst1_p64_x4): Likewise.
1323 (vst1q_s64_x4): Likewise.
1324 (vst1q_u64_x4): Likewise.
1325 (vst1q_p64_x4): Likewise.
1326 (vst1_f64_x4): Likewise.
1327 (vst1q_f64_x4): Likewise.
1328
1329 2019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1330
1331 * config/aarch64/aarch64-sve.md (vcond_mask): Add "@".
1332
1333 2019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1334 Richard Sandiford <richard.sandiford@arm.com>
1335
1336 PR target/88839
1337 * config/aarch64/aarch64.c (aarch64_evpc_sel): New function.
1338 (aarch64_expand_vec_perm_const_1): Call aarch64_evpc_sel.
1339
1340 2019-08-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1341
1342 PR target/90724
1343 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y
1344 in reg if it fails aarch64_plus_operand predicate.
1345
1346 2019-08-21 Richard Biener <rguenther@suse.de>
1347
1348 PR tree-optimization/91482
1349 * tree-ssa-ccp.c (ccp_folder::fold_stmt): Remove useless
1350 BUILT_IN_ASSUME_ALIGNED calls.
1351
1352 2019-08-21 Richard Biener <rguenther@suse.de>
1353
1354 PR target/91498
1355 PR target/91503
1356 * config/i386/i386-features.c
1357 (general_scalar_chain::make_vector_copies): Copy stack temporary
1358 rtx when using it multiple times.
1359 (general_scalar_chain::convert_reg): Likewise.
1360
1361 2019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
1362
1363 * function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==.
1364
1365 2019-08-20 Matthew Beliveau <mbelivea@redhat.com>
1366
1367 * tree-ssa-dse.c (dse_optimize_redundant_stores): Improved check to
1368 catch more redundant zero initialization cases.
1369 (dse_dom_walker::dse_optimize_stmt): Likewise.
1370
1371 2019-08-20 Richard Biener <rguenther@suse.de>
1372
1373 PR lto/91307
1374 * ipa.c (cgraph_build_static_cdtor_1): Use names not recognizable
1375 by collect2 when targetm.have_ctors_dtors which avoids dragging
1376 in temporary filenames from LTO input objects.
1377
1378 2019-08-20 Richard Biener <rguenther@suse.de>
1379
1380 PR tree-optimization/37242
1381 * tree-ssa-sccvn.c (visit_nary_op): Also CSE (T)(a + b)
1382 to (T)a + (T)b if we know that a + b does not overflow.
1383
1384 2019-08-20 Eric Botcazou <ebotcazou@adacore.com>
1385
1386 PR rtl-optimization/91347
1387 * dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls
1388 before reload if HARD_FRAME_POINTER_IS_ARG_POINTER.
1389
1390 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
1391
1392 * calls.h (function_arg_info): Add a pass_by_reference field,
1393 defaulting to false.
1394 * calls.c (apply_pass_by_reference_rules): Set pass_by_reference
1395 when applying pass-by-reference semantics.
1396 (initialize_argument_information): Likewise.
1397 (emit_library_call_value_1): Likewise.
1398 * function.c (assign_parm_data_one): Remove passed_pointer field.
1399 (assign_parm_find_data_types): Don't set it.
1400 (assign_parm_find_stack_rtl, assign_parm_adjust_stack_rtl)
1401 (assign_parm_setup_reg, assign_parms, gimplify_parameters): Use
1402 arg.pass_by_reference instead of passed_pointer.
1403
1404 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
1405
1406 * calls.c (emit_library_call_value_1): Merge arg and orig_arg
1407 into a single function_arg_info, updating its fields when we
1408 apply pass-by-reference and promotion semantics. Use the
1409 function_arg_info to track the mode rather than keeping it in
1410 a separate local variable.
1411 (initialize_argument_information): Likewise. Base the final
1412 arg_to_skip on this new function_arg_info rather than creating
1413 a new one from scratch.
1414
1415 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
1416
1417 * function.c (assign_parm_data_one): Replace passed_type,
1418 promoted_mode and named_arg with a function_arg_info field.
1419 (assign_parm_find_data_types): Remove local variables and
1420 assign directly to "data". Make data->passed_mode shadow
1421 data->arg.mode until promotion, then assign the promoted
1422 mode to data->arg.mode.
1423 (assign_parms_setup_varargs, assign_parm_find_entry_rtl)
1424 (assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl)
1425 (assign_parm_remove_parallels, assign_parm_setup_block_p)
1426 (assign_parm_setup_block, assign_parm_setup_reg)
1427 (assign_parm_setup_stack, assign_parms, gimplify_parameters): Use
1428 arg.mode instead of promoted_mode, arg.type instead of passed_type
1429 and arg.named instead of named_arg. Use data->arg for
1430 function_arg_info structures that had the field values passed_type,
1431 promoted_mode and named_arg. Base other function_arg_infos on
1432 data->arg, changing the necessary properties.
1433
1434 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
1435
1436 * calls.h (apply_pass_by_reference_rules): Declare.
1437 * calls.c (apply_pass_by_reference_rules): New function.
1438 * config/c6x/c6x.c (c6x_call_saved_register_used): Use it.
1439 * config/rs6000/rs6000-call.c (rs6000_parm_needs_stack): Likewise.
1440 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
1441 * function.c (assign_parm_find_data_types): Likewise.
1442 * var-tracking.c (prepare_call_arguments): Likewise.
1443
1444 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
1445
1446 * target.def (must_pass_in_stack): Take a function_arg_info instead
1447 of a mode and a type.
1448 * doc/tm.texi: Regenerate.
1449 * calls.h (must_pass_in_stack_var_size): Take a function_arg_info
1450 instead of a mode and a type.
1451 (must_pass_in_stack_var_size_or_pad): Likewise.
1452 * calls.c (must_pass_in_stack_var_size): Likewise.
1453 (must_pass_in_stack_var_size_or_pad): Likewise.
1454 (initialize_argument_information): Update call to
1455 targetm.calls.must_pass_in_stack.
1456 (must_pass_va_arg_on_stack): Likewise.
1457 * function.c (assign_parm_find_entry_rtl): Likewise.
1458 * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Likewise.
1459 * config/alpha/alpha.c (alpha_function_arg): Likewise.
1460 (alpha_function_arg_advance): Likewise.
1461 * config/cr16/cr16.c (cr16_function_arg): Likewise.
1462 (cr16_function_arg_advance): Likewise.
1463 * config/cris/cris.c (cris_pass_by_reference): Likewise.
1464 (cris_arg_partial_bytes): Likewise.
1465 * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise.
1466 * config/lm32/lm32.c (lm32_function_arg): Likewise.
1467 * config/mcore/mcore.c (mcore_num_arg_regs): Likewise.
1468 (mcore_function_arg, mcore_arg_partial_bytes): Likewise.
1469 * config/mips/mips.c (mips_pass_by_reference): Likewise.
1470 * config/mmix/mmix.c (mmix_function_arg_advance): Likewise.
1471 (mmix_function_arg_1, mmix_pass_by_reference): Likewise.
1472 * config/sh/sh.c (sh_pass_by_reference): Likewise.
1473 * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise.
1474 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
1475 * config/arm/arm.c (arm_must_pass_in_stack): Take a function_arg_info
1476 instead of a mode and a type.
1477 * config/fr30/fr30.c (fr30_must_pass_in_stack): Likewise.
1478 (fr30_num_arg_regs): Likewise.
1479 (fr30_setup_incoming_varargs): Update calls accordingly.
1480 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
1481 (fr30_function_arg_advance): Likewise.
1482 * config/frv/frv.c (frv_must_pass_in_stack): Take a function_arg_info
1483 instead of a mode and a type.
1484 * config/gcn/gcn.c (num_arg_regs): Likewise.
1485 (gcn_function_arg, gcn_function_arg_advance): Update calls to
1486 num_arg_regs and targetm.calls.must_pass_in_stack.
1487 (gcn_arg_partial_bytes): Likewise.
1488 * config/i386/i386.c (ix86_must_pass_in_stack): Take a
1489 function_arg_info instead of a mode and a type.
1490 (classify_argument): Update call accordingly.
1491 * config/nds32/nds32.c (nds32_must_pass_in_stack): Take a
1492 function_arg_info instead of a mode and a type.
1493 * config/rs6000/rs6000-internal.h (rs6000_must_pass_in_stack):
1494 Likewise.
1495 * config/rs6000/rs6000-call.c (rs6000_must_pass_in_stack): Likewise.
1496 (rs6000_parm_needs_stack): Update call accordingly.
1497 (setup_incoming_varargs): Likewise.
1498
1499 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
1500
1501 * target.def (callee_copies): Take a function_arg_info instead
1502 of a mode, type and named flag.
1503 * doc/tm.texi: Regenerate.
1504 * targhooks.h (hook_callee_copies_named): Take a function_arg_info
1505 instead of a mode, type and named flag.
1506 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
1507 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
1508 (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
1509 * targhooks.c (hook_callee_copies_named): Take a function_arg_info
1510 instead of a mode, type and named flag.
1511 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
1512 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
1513 (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
1514 * calls.h (reference_callee_copied): Take a function_arg_info
1515 instead of a mode, type and named flag.
1516 * calls.c (reference_callee_copied): Likewise.
1517 (initialize_argument_information): Update call accordingly.
1518 (emit_library_call_value_1): Likewise.
1519 * function.c (gimplify_parameters): Likewise.
1520 * config/aarch64/aarch64.c (TARGET_CALLEE_COPIES): Define to
1521 hook_bool_CUMULATIVE_ARGS_arg_info_false instead of
1522 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false.
1523 * config/c6x/c6x.c (c6x_callee_copies): Delete.
1524 (TARGET_CALLEE_COPIES): Define to
1525 hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
1526 * config/epiphany/epiphany.c (TARGET_CALLEE_COPIES): Define to
1527 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
1528 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
1529 * config/mips/mips.c (mips_callee_copies): Take a function_arg_info
1530 instead of a mode, type and named flag.
1531 * config/mmix/mmix.c (TARGET_CALLEE_COPIES): Define to
1532 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
1533 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
1534 * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): Likewise.
1535 * config/msp430/msp430.c (msp430_callee_copies): Delete.
1536 (TARGET_CALLEE_COPIES): Define to
1537 hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
1538 * config/pa/pa.c (pa_callee_copies): Take a function_arg_info
1539 instead of a mode, type and named flag.
1540 * config/sh/sh.c (sh_callee_copies): Likewise.
1541 * config/v850/v850.c (TARGET_CALLEE_COPIES): Define to
1542 hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
1543 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
1544
1545 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
1546
1547 * target.def (function_arg_advance): Take a function_arg_info instead
1548 of a mode, type and named flag.
1549 * doc/tm.texi: Regenerate.
1550 * targhooks.h (default_function_arg_advance): Take a function_arg_info
1551 instead of a mode, type and named flag.
1552 * targhooks.c (default_function_arg_advance): Likewise.
1553 * calls.c (initialize_argument_information): Update call to
1554 targetm.calls.function_arg_advance.
1555 (emit_library_call_value_1): Likewise.
1556 * dse.c (get_call_args): Likewise.
1557 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
1558 * function.c (assign_parms, gimplify_parameters): Likewise.
1559 * var-tracking.c (prepare_call_arguments): Likewise.
1560 * config/aarch64/aarch64.c (aarch64_function_arg_advance): Take a
1561 function_arg_info instead of a mode, type and named flag.
1562 (aarch64_setup_incoming_varargs): Update call accordingly.
1563 * config/alpha/alpha.c (alpha_function_arg_advance): Take a
1564 function_arg_info instead of a mode, type and named flag.
1565 (alpha_setup_incoming_varargs): Update call accordingly.
1566 * config/arc/arc.c (arc_function_arg_advance): Take a
1567 function_arg_info instead of a mode, type and named flag.
1568 (arc_setup_incoming_varargs): Update call accordingly.
1569 * config/arm/arm.c (arm_function_arg_advance): Take a
1570 function_arg_info instead of a mode, type and named flag.
1571 (cmse_func_args_or_return_in_stack): Update call accordingly.
1572 (arm_function_ok_for_sibcall): Likewise.
1573 (cmse_nonsecure_call_clear_caller_saved): Likewise.
1574 * config/avr/avr.c (avr_function_arg_advance): Take a
1575 function_arg_info instead of a mode, type and named flag.
1576 * config/bfin/bfin.c (bfin_function_arg_advance): Likewise.
1577 * config/c6x/c6x.c (c6x_function_arg_advance): Likewise.
1578 (c6x_call_saved_register_used): Update call accordingly.
1579 * config/cr16/cr16.c (cr16_function_arg_advance): Take a
1580 function_arg_info instead of a mode, type and named flag.
1581 * config/cris/cris.c (cris_function_arg_advance): Likewise.
1582 * config/csky/csky.c (csky_function_arg_advance): Likewise.
1583 (csky_setup_incoming_varargs): Update call accordingly.
1584 * config/epiphany/epiphany.c (epiphany_function_arg_advance): Take a
1585 function_arg_info instead of a mode, type and named flag.
1586 * config/fr30/fr30.c (fr30_function_arg_advance): Likewise.
1587 * config/frv/frv.c (frv_function_arg_advance): Likewise.
1588 * config/ft32/ft32.c (ft32_function_arg_advance): Likewise.
1589 * config/gcn/gcn.c (gcn_function_arg_advance): Likewise.
1590 * config/h8300/h8300.c (h8300_function_arg_advance): Likewise.
1591 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
1592 (ix86_setup_incoming_varargs): Update call accordingly.
1593 * config/ia64/ia64.c (ia64_function_arg_advance): Take a
1594 function_arg_info instead of a mode, type and named flag.
1595 (ia64_setup_incoming_varargs): Update call accordingly.
1596 * config/iq2000/iq2000.c (iq2000_function_arg_advance): Take a
1597 function_arg_info instead of a mode, type and named flag.
1598 (iq2000_expand_prologue): Update call accordingly.
1599 * config/lm32/lm32.c (lm32_function_arg_advance): Take a
1600 function_arg_info instead of a mode, type and named flag.
1601 * config/m32c/m32c.c (m32c_function_arg_advance): Likewise.
1602 * config/m32r/m32r.c (m32r_function_arg_advance): Likewise.
1603 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
1604 * config/mcore/mcore.c (mcore_function_arg_advance): Likewise.
1605 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
1606 Likewise.
1607 (microblaze_expand_prologue): Update call accordingly.
1608 * config/mips/mips.c (mips_function_arg_advance): Take a
1609 function_arg_info instead of a mode, type and named flag.
1610 (mips_setup_incoming_varargs): Update call accordingly.
1611 (mips_output_args_xfer): Likewise.
1612 * config/mmix/mmix.c (mmix_function_arg_advance): Take a
1613 function_arg_info instead of a mode, type and named flag.
1614 * config/mn10300/mn10300.c (mn10300_function_arg_advance): Likewise.
1615 * config/moxie/moxie.c (moxie_function_arg_advance): Likewise.
1616 * config/msp430/msp430.c (msp430_function_arg_advance): Likewise.
1617 * config/nds32/nds32.c (nds32_function_arg_advance): Likewise.
1618 * config/nios2/nios2.c (nios2_function_arg_advance): Likewise.
1619 (nios2_setup_incoming_varargs): Update call accordingly.
1620 * config/nvptx/nvptx.c (nvptx_function_arg_advance): Take a
1621 function_arg_info instead of a mode, type and named flag.
1622 * config/or1k/or1k.c (or1k_function_arg_advance): Likewise.
1623 * config/pa/pa.c (pa_function_arg_advance): Likewise.
1624 * config/pdp11/pdp11.c (pdp11_function_arg_advance): Likewise.
1625 * config/pru/pru.c (pru_function_arg_advance): Likewise.
1626 * config/riscv/riscv.c (riscv_function_arg_advance): Likewise.
1627 (riscv_setup_incoming_varargs): Update call accordingly.
1628 * config/rl78/rl78.c (rl78_function_arg_advance): Take a
1629 function_arg_info instead of a mode, type and named flag.
1630 * config/rs6000/rs6000-internal.h (rs6000_function_arg_advance):
1631 Likewise.
1632 * config/rs6000/rs6000-call.c (rs6000_function_arg_advance): Likewise.
1633 (rs6000_parm_needs_stack): Update call accordingly.
1634 * config/rx/rx.c (rx_function_arg_advance): Take a function_arg_info
1635 instead of a mode, type and named flag.
1636 * config/s390/s390.c (s390_function_arg_advance): Likewise.
1637 (s390_call_saved_register_used): Update call accordingly.
1638 * config/sh/sh.c (sh_function_arg_advance): Take a function_arg_info
1639 instead of a mode, type and named flag.
1640 (sh_output_mi_thunk): Update call accordingly.
1641 * config/sparc/sparc.c (sparc_function_arg_advance): Take a
1642 function_arg_info instead of a mode, type and named flag.
1643 * config/spu/spu.c (spu_function_arg_advance): Likewise.
1644 (spu_setup_incoming_varargs): Update call accordingly.
1645 * config/stormy16/stormy16.c (xstormy16_function_arg_advance): Take a
1646 function_arg_info instead of a mode, type and named flag.
1647 * config/tilegx/tilegx.c (tilegx_function_arg_advance): Likewise.
1648 (tilegx_setup_incoming_varargs): Update call accordingly.
1649 * config/tilepro/tilepro.c (tilepro_function_arg_advance): Take a
1650 function_arg_info instead of a mode, type and named flag.
1651 (tilegx_setup_incoming_varargs): Update call accordingly.
1652 * config/v850/v850.c (v850_function_arg_advance): Take a
1653 function_arg_info instead of a mode, type and named flag.
1654 * config/vax/vax.c (vax_function_arg_advance): Likewise.
1655 * config/visium/visium.c (visium_function_arg_advance): Likewise.
1656 (visium_setup_incoming_varargs): Update call accordingly.
1657 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Take a
1658 function_arg_info instead of a mode, type and named flag.
1659
1660 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
1661
1662 * target.def (function_arg, function_incoming_arg): Take a
1663 function_arg_info instead of a mode, tree and named flag.
1664 * doc/tm.texi: Regenerate.
1665 * targhooks.h (default_function_arg): Take a function_arg_info
1666 instead of a mode, tree and named flag.
1667 (default_function_incoming_arg): Likewise.
1668 * targhooks.c (default_function_arg): Likewise.
1669 (default_function_incoming_arg): Likewise.
1670 * calls.h (function_arg_info::end_marker_p): New function.
1671 (function_arg_info::end_marker): Likewise.
1672 * calls.c (prepare_call_address, initialize_argument_information)
1673 (expand_call, emit_library_call_value_1): Update calls to
1674 targetm.calls.function_arg and targetm.calls.function_incoming_arg.
1675 * dse.c: Include calls.h.
1676 (get_call_args): Update call to targetm.calls.function_arg.
1677 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
1678 * var-tracking.c (prepare_call_arguments): Likewise.
1679 * function.c (assign_parm_find_entry_rtl): Update call to
1680 targetm.calls.function_incoming_arg.
1681 * config/aarch64/aarch64.c (aarch64_function_arg): Take a
1682 function_arg_info instead of a mode, tree and named flag.
1683 * config/alpha/alpha.c (alpha_function_arg): Likewise.
1684 * config/arc/arc.c (arc_function_arg): Likewise.
1685 * config/arm/arm.c (arm_function_arg): Likewise.
1686 (cmse_func_args_or_return_in_stack): Update call accordingly.
1687 (arm_function_ok_for_sibcall): Likewise.
1688 (cmse_nonsecure_call_clear_caller_saved): Likewise.
1689 * config/avr/avr.c (avr_function_arg): Take a function_arg_info
1690 instead of a mode, tree and named flag.
1691 * config/bfin/bfin.c (bfin_function_arg): Likewise.
1692 * config/c6x/c6x.c (c6x_function_arg): Likewise.
1693 (c6x_call_saved_register_used): Update call accordingly.
1694 * config/cr16/cr16.c (cr16_function_arg): Take a function_arg_info
1695 instead of a mode, tree and named flag.
1696 * config/cris/cris.c (cris_function_arg, cris_function_incoming_arg)
1697 (cris_function_arg_1): Likewise.
1698 * config/csky/csky.c (csky_function_arg): Likewise.
1699 * config/epiphany/epiphany.c (epiphany_function_arg): Likewise.
1700 * config/fr30/fr30.c (fr30_function_arg): Likewise.
1701 * config/frv/frv.c (frv_function_arg, frv_function_incoming_arg)
1702 (frv_function_arg_1): Likewise.
1703 * config/ft32/ft32.c (ft32_function_arg): Likewise.
1704 * config/gcn/gcn.c (gcn_function_arg): Likewise.
1705 * config/h8300/h8300.c (h8300_function_arg): Likewise.
1706 * config/i386/i386.c (ix86_function_arg): Likewise.
1707 * config/ia64/ia64.c (ia64_function_arg, ia64_function_incoming_arg)
1708 (ia64_function_arg_1): Likewise.
1709 * config/iq2000/iq2000.c (iq2000_function_arg): Likewise.
1710 (iq2000_expand_prologue, iq2000_pass_by_reference): Update call
1711 accordingly.
1712 * config/lm32/lm32.c (lm32_function_arg): Take a function_arg_info
1713 instead of a mode, tree and named flag.
1714 * config/m32c/m32c.c (m32c_function_arg): Likewise.
1715 * config/m32r/m32r.c (m32r_function_arg): Likewise.
1716 * config/m68k/m68k.c (m68k_function_arg): Likewise.
1717 * config/mcore/mcore.c (mcore_function_arg): Likewise.
1718 * config/microblaze/microblaze.c (microblaze_function_arg): Likewise.
1719 (microblaze_expand_prologue): Update call accordingly.
1720 * config/mips/mips.c (mips_function_arg): Take a function_arg_info
1721 instead of a mode, tree and named flag.
1722 * config/mmix/mmix.c (mmix_function_incoming_arg, mmix_function_arg)
1723 (mmix_function_arg_1): Likewise.
1724 * config/mn10300/mn10300.c (mn10300_function_arg): Likewise.
1725 * config/moxie/moxie.c (moxie_function_arg): Likewise.
1726 * config/msp430/msp430.c (msp430_function_arg): Likewise.
1727 * config/nds32/nds32.c (nds32_function_arg): Likewise.
1728 * config/nios2/nios2.c (nios2_function_arg): Likewise.
1729 * config/nvptx/nvptx.c (nvptx_function_arg): Likewise.
1730 (nvptx_function_incoming_arg): Likewise.
1731 * config/or1k/or1k.c (or1k_function_arg): Likewise.
1732 * config/pa/pa.c (pa_function_arg): Likewise.
1733 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
1734 * config/pru/pru.c (pru_function_arg): Likewise.
1735 * config/riscv/riscv.c (riscv_function_arg): Likewise.
1736 * config/rl78/rl78.c (rl78_function_arg): Likewise.
1737 * config/rs6000/rs6000-internal.h (rs6000_function_arg): Likewise.
1738 * config/rs6000/rs6000-call.c (rs6000_function_arg): Likewise.
1739 (rs6000_parm_needs_stack): Update call accordingly.
1740 * config/rx/rx.c (rx_function_arg): Take a function_arg_info
1741 instead of a mode, tree and named flag.
1742 * config/s390/s390.c (s390_function_arg): Likewise.
1743 (s390_call_saved_register_used): Update call accordingly.
1744 * config/sh/sh.c (sh_function_arg): Take a function_arg_info
1745 instead of a mode, tree and named flag.
1746 (sh_output_mi_thunk): Update call accordingly.
1747 * config/sparc/sparc.c (sparc_function_arg_1, sparc_function_arg)
1748 (sparc_function_incoming_arg): Take a function_arg_info instead of
1749 a mode, tree and named flag.
1750 * config/spu/spu.c (spu_function_arg): Likewise.
1751 * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise.
1752 * config/tilegx/tilegx.c (tilegx_function_arg): Likewise.
1753 * config/tilepro/tilepro.c (tilepro_function_arg): Likewise.
1754 * config/v850/v850.c (v850_function_arg): Likewise.
1755 * config/vax/vax.c (vax_function_arg): Likewise.
1756 * config/visium/visium.c (visium_function_arg): Likewise.
1757 * config/xtensa/xtensa.c (xtensa_function_arg_1, xtensa_function_arg)
1758 (xtensa_function_incoming_arg): Likewise.
1759
1760 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
1761
1762 * target.def (setup_incoming_varargs): Take a function_arg_info
1763 instead of a mode and tree.
1764 * doc/tm.texi: Regenerate.
1765 * targhooks.h (default_setup_incoming_varargs): Take a
1766 function_arg_info instead of a mode and tree.
1767 * targhooks.c (default_setup_incoming_varargs): Likewise.
1768 * config/aarch64/aarch64.c (aarch64_setup_incoming_varargs): Likewise.
1769 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
1770 * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
1771 * config/arm/arm.c (arm_setup_incoming_varargs): Likewise.
1772 * config/bfin/bfin.c (setup_incoming_varargs): Likewise.
1773 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
1774 * config/csky/csky.c (csky_setup_incoming_varargs): Likewise.
1775 * config/epiphany/epiphany.c (epiphany_setup_incoming_varargs):
1776 Likewise.
1777 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
1778 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
1779 * config/ft32/ft32.c (ft32_setup_incoming_varargs): Likewise.
1780 * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
1781 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
1782 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
1783 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
1784 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
1785 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
1786 * config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
1787 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
1788 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
1789 * config/nds32/nds32.c (nds32_setup_incoming_varargs): Likewise.
1790 * config/nios2/nios2.c (nios2_setup_incoming_varargs): Likewise.
1791 * config/riscv/riscv.c (riscv_setup_incoming_varargs): Likewise.
1792 * config/rs6000/rs6000-internal.h (setup_incoming_varargs): Likewise.
1793 * config/rs6000/rs6000-call.c (setup_incoming_varargs): Likewise.
1794 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
1795 * config/spu/spu.c (spu_setup_incoming_varargs): Likewise.
1796 * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs): Likewise.
1797 * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs): Likewise.
1798 * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
1799 * function.c (assign_parms_setup_varargs): Update call to
1800 targetm.calls.setup_incoming_varargs.
1801
1802 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
1803
1804 * target.def (pass_by_reference): Take a function_arg_info instead
1805 of a mode, type and named flag.
1806 * doc/tm.texi: Regenerate.
1807 * targhooks.h (hook_pass_by_reference_must_pass_in_stack): Update
1808 accordingly.
1809 (hook_bool_CUMULATIVE_ARGS_arg_info_false): Declare.
1810 * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Take a
1811 function_arg_info instead of a mode, type and named flag.
1812 (hook_bool_CUMULATIVE_ARGS_arg_info_false): New function.
1813 * calls.h (pass_by_reference): Take a function_arg_info instead of a
1814 mode, type and named flag.
1815 * calls.c (pass_by_reference): Likewise.
1816 (pass_va_arg_by_reference): Update call accordingly.
1817 (initialize_argument_information): Likewise.
1818 (emit_library_call_value_1): Likewise.
1819 * function.c (assign_parm_find_data_types): Likewise.
1820 * var-tracking.c (prepare_call_arguments): Likewise.
1821 * stor-layout.c: Include calls.h.
1822 (compute_record_mode): Update call to targetm.calls.pass_by_reference.
1823 * config/aarch64/aarch64.c (aarch64_pass_by_reference): Take a
1824 function_arg_info instead of a mode, type and named flag.
1825 * config/alpha/alpha.c (alpha_pass_by_reference): Likewise.
1826 * config/arc/arc.c (arc_pass_by_reference): Likewise.
1827 * config/arm/arm.c (arm_pass_by_reference): Likewise.
1828 * config/bfin/bfin.c (bfin_pass_by_reference): Likewise.
1829 * config/c6x/c6x.c (c6x_pass_by_reference): Likewise.
1830 (c6x_call_saved_register_used): Update call to pass_by_reference.
1831 * config/cris/cris.c (cris_pass_by_reference): Take a
1832 function_arg_info instead of a mode, type and named flag.
1833 * config/epiphany/epiphany.c (epiphany_pass_by_reference): Take a
1834 function_arg_info instead of a mode, type and named flag.
1835 (epiphany_arg_partial_bytes): Update call accordingly.
1836 * config/ft32/ft32.c (ft32_pass_by_reference): Take a
1837 function_arg_info instead of a mode, type and named flag.
1838 (ft32_arg_partial_bytes): Update call accordingly.
1839 * config/i386/i386.c (ix86_pass_by_reference): Take a
1840 function_arg_info instead of a mode, type and named flag.
1841 * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise.
1842 * config/m32c/m32c.c (m32c_pass_by_reference): Likewise.
1843 * config/m32r/m32r.c (m32r_pass_by_reference): Likewise.
1844 (m32r_return_in_memory): Update call accordingly.
1845 * config/mips/mips.c (mips_pass_by_reference): Take a
1846 function_arg_info instead of a mode, type and named flag.
1847 * config/mmix/mmix.c (mmix_pass_by_reference): Likewise.
1848 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
1849 * config/moxie/moxie.c (moxie_pass_by_reference): Likewise.
1850 (moxie_arg_partial_bytes): Update call accordingly.
1851 * config/msp430/msp430.c (msp430_pass_by_reference): Take a
1852 function_arg_info instead of a mode, type and named flag.
1853 * config/nvptx/nvptx.c (nvptx_pass_by_reference): Likewise.
1854 * config/or1k/or1k.c (or1k_pass_by_reference): Likewise.
1855 * config/pa/pa.c (pa_pass_by_reference): Likewise.
1856 * config/riscv/riscv.c (riscv_pass_by_reference): Likewise.
1857 (riscv_return_in_memory): Update call accordingly.
1858 * config/rs6000/rs6000-internal.h (rs6000_pass_by_reference): Take a
1859 function_arg_info instead of a mode, type and named flag.
1860 * config/rs6000/rs6000-call.c (rs6000_pass_by_reference): Likewise.
1861 (rs6000_parm_needs_stack): Update call to pass_by_reference.
1862 * config/s390/s390.c (s390_pass_by_reference): Take a
1863 function_arg_info instead of a mode, type and named flag.
1864 (s390_call_saved_register_used): Update call accordingly.
1865 * config/sh/sh.c (sh_pass_by_reference): Take a function_arg_info
1866 instead of a mode, type and named flag.
1867 * config/sparc/sparc.c (sparc_pass_by_reference): Likewise.
1868 * config/spu/spu.c (spu_pass_by_reference): Likewise.
1869 * config/tilegx/tilegx.c (tilegx_pass_by_reference): Likewise.
1870 * config/tilepro/tilepro.c (tilepro_pass_by_reference): Likewise.
1871 * config/v850/v850.c (v850_pass_by_reference): Likewise.
1872 * config/visium/visium.c (visium_pass_by_reference): Likewise.
1873
1874 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
1875
1876 * target.def (arg_partial_bytes): Take a function_arg_info instead
1877 of a mode, type and named flag.
1878 * doc/tm.texi: Regenerate.
1879 * target.h (function_arg_info): Declare.
1880 * calls.h (function_arg_info): New class.
1881 * targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
1882 (hook_int_CUMULATIVE_ARGS_arg_info_0): Declare.
1883 * targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
1884 (hook_int_CUMULATIVE_ARGS_arg_info_0): New function.
1885 * calls.c (initialize_argument_information): Update call to
1886 targetm.calls.partial_bytes.
1887 (emit_library_call_value_1): Likewise.
1888 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
1889 * function.c (assign_parm_find_entry_rtl): Likewise.
1890 * config/alpha/alpha.c (alpha_arg_partial_bytes): Take a
1891 function_arg_info instead of a mode, type and named flag.
1892 * config/arc/arc.c (arc_arg_partial_bytes): Likewise.
1893 * config/arm/arm.c (arm_arg_partial_bytes): Likewise.
1894 (cmse_func_args_or_return_in_stack): Update accordingly.
1895 * config/bfin/bfin.c (bfin_arg_partial_bytes): Take a
1896 function_arg_info instead of a mode, type and named flag.
1897 * config/cris/cris.c (cris_arg_partial_bytes): Likewise.
1898 * config/csky/csky.c (csky_arg_partial_bytes): Likewise.
1899 * config/epiphany/epiphany.c (epiphany_arg_partial_bytes): Likewise.
1900 * config/fr30/fr30.c: Include calls.h.
1901 (fr30_arg_partial_bytes): Take a function_arg_info instead of a mode,
1902 type and named flag.
1903 * config/frv/frv.c: Include calls.h.
1904 (frv_arg_partial_bytes): Take a function_arg_info instead of a mode,
1905 type and named flag.
1906 * config/ft32/ft32.c (ft32_arg_partial_bytes): Likewise.
1907 * config/gcn/gcn.c (gcn_arg_partial_bytes): Likewise.
1908 * config/ia64/ia64.c (ia64_arg_partial_bytes): Likewise.
1909 * config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Likewise.
1910 * config/m32r/m32r.c (m32r_arg_partial_bytes): Likewise.
1911 * config/mcore/mcore.c (mcore_arg_partial_bytes): Likewise.
1912 * config/microblaze/microblaze.c (function_arg_partial_bytes):
1913 Likewise.
1914 * config/mips/mips.c (mips_arg_partial_bytes): Likewise.
1915 * config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Likewise.
1916 * config/moxie/moxie.c (moxie_arg_partial_bytes): Likewise.
1917 * config/msp430/msp430.c (msp430_arg_partial_bytes): Likewise.
1918 * config/nds32/nds32.c (nds32_arg_partial_bytes): Likewise.
1919 * config/nios2/nios2.c (nios2_arg_partial_bytes): Likewise.
1920 * config/pa/pa.c (pa_arg_partial_bytes): Likewise.
1921 * config/pru/pru.c (pru_arg_partial_bytes): Likewise.
1922 * config/riscv/riscv.c (riscv_arg_partial_bytes): Likewise.
1923 * config/rs6000/rs6000-internal.h (rs6000_arg_partial_bytes): Likewise.
1924 * config/rs6000/rs6000-call.c (rs6000_arg_partial_bytes): Likewise.
1925 (rs6000_parm_needs_stack): Update call accordingly.
1926 * config/sh/sh.c (sh_arg_partial_bytes): Take a
1927 function_arg_info instead of a mode, type and named flag.
1928 * config/sparc/sparc.c (sparc_arg_partial_bytes): Likewise.
1929 * config/v850/v850.c (v850_arg_partial_bytes): Likewise.
1930
1931 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
1932
1933 * calls.h (must_pass_va_arg_in_stack): Declare.
1934 * calls.c (must_pass_va_arg_in_stack): New function.
1935 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use it.
1936 * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
1937 * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
1938 Likewise.
1939 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
1940
1941 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
1942
1943 * calls.h (pass_va_arg_by_reference): Declare.
1944 * calls.c (pass_va_arg_by_reference): New function.
1945 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Use it.
1946 * config/alpha/alpha.c (alpha_gimplify_va_arg): Likewise.
1947 * config/gcn/gcn.c (gcn_gimplify_va_arg_expr): Likewise.
1948 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
1949 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1950 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Likewise.
1951 (mips_gimplify_va_arg_expr): Likewise.
1952 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Likewise.
1953 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1954 * config/rs6000/rs6000-call.c (rs6000_gimplify_va_arg): Likewise.
1955 * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
1956 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
1957 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
1958 * config/tilegx/tilegx.c (tilegx_gimplify_va_arg_expr): Likewise.
1959 * config/tilepro/tilepro.c (tilepro_gimplify_va_arg_expr): Likewise.
1960 * config/visium/visium.c (visium_gimplify_va_arg): Likewise.
1961 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
1962 * targhooks.c (std_gimplify_va_arg_expr): Likewise.
1963
1964 2019-08-20 Richard Biener <rguenther@suse.de>
1965
1966 PR target/91498
1967 * config/i386/i386-features.c (general_scalar_chain::convert_op):
1968 Use (vec_merge (vec_duplicate..)) style vector from scalar move.
1969 (convert_scalars_to_vector): Add timode_p parameter and use it
1970 to guard TImode-only operation.
1971 (pass_stv::gate): Adjust so STV runs twice for TARGET_64BIT.
1972 (pass_stv::execute): Pass down timode_p.
1973
1974 2019-08-20 Lili Cui <lili.cui@intel.com>
1975
1976 * common/config/i386/i386-common.c
1977 (processor_names): Add tigerlake and cooperlake.
1978 (processor_alias_table): Add tigerlake and cooperlake.
1979 * config.gcc: Add -march=tigerlake and cooperlake.
1980 * config/i386/driver-i386.c
1981 (host_detect_local_cpu): Detect tigerlake and cooperlake.
1982 Add "has_avx" to classify processor.
1983 * config/i386/i386-builtins.c (processor_model) :
1984 Add M_INTEL_COREI7_TIGERLAKE and M_INTEL_COREI7_COOPERLAKE.
1985 (arch_names_table): Add tigerlake and cooperlake.
1986 (get_builtin_code_for_version) : Handle PROCESSOR_TIGERLAKE
1987 and PROCESSOR_COOPERLAKE.
1988 * config/i386/i386-c.c
1989 (ix86_target_macros_internal): Handle tigerlake and cooperlake.
1990 * config/i386/i386-options.c
1991 (m_TIGERLAKE) : Define.
1992 (m_COOPERLAKE) : Ditto.
1993 (m_CORE_AVX512): Ditto.
1994 (processor_cost_table): Add cascadelake.
1995 (ix86_option_override_internal): Hadle PTA_MOVDIRI, PTA_MOVDIR64B.
1996 * config/i386/i386.h
1997 (ix86_size_cost) : Define TARGET_TIGERLAKE and TARGET_COOPERLAKE.
1998 (processor_type) : Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE.
1999 (PTA_MOVDIRI): Ditto.
2000 (PTA_MOVDIR64B): Ditto.
2001 (PTA_COOPERLAKE) : Ditto.
2002 (PTA_TIGERLAKE) : Ditto.
2003 (processor_type) : Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE.
2004 * doc/extend.texi: Add tigerlake and cooperlake.
2005 * doc/invoke.texi: Add tigerlake and cooperlake.
2006
2007 2019-08-20 Gerald Pfeifer <gerald@pfeifer.com>
2008
2009 * doc/install.texi (Specific, alpha): Remove note to use
2010 binutils 2.11.2 or later.
2011
2012 2019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
2013
2014 PR middle-end/89544
2015 * function.c (assign_parm_find_stack_rtl): Use larger alignment
2016 when possible.
2017
2018 2019-08-19 Joel Hutton <Joel.Hutton@arm.com>
2019
2020 * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow2_recip): New prototype
2021 * config/aarch64/aarch64.c (aarch64_fpconst_pow2_recip): New function
2022 * config/aarch64/aarch64.md (*aarch64_<su_optab>cvtf<fcvt_target><GPF:mode>2_mult): New pattern
2023 (*aarch64_<su_optab>cvtf<fcvt_iesize><GPF:mode>2_mult): New pattern
2024 * config/aarch64/constraints.md (Dt): New constraint
2025 * config/aarch64/predicates.md (aarch64_fpconst_pow2_recip): New predicate
2026
2027 2019-08-19 Richard Biener <rguenther@suse.de>
2028
2029 PR tree-optimization/91403
2030 * tree-scalar-evolution.c (follow_ssa_edge_binary): Inline
2031 cases we can handle with tail-recursion...
2032 (follow_ssa_edge_expr): ... here. Do so.
2033
2034 2019-08-19 Kito Cheng <kito.cheng@sifive.com>
2035
2036 PR target/91441
2037 * toplev.c (process_options): Check TARGET_ASAN_SHADOW_OFFSET is
2038 implemented for -fsanitize=kernel-address, and merge check logic
2039 with -fsanitize=address.
2040
2041 2019-08-18 Iain Sandoe <iain@sandoe.co.uk>
2042
2043 * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
2044 for cpu and machine. Factor 64/32b builtins.
2045
2046 2019-08-18 Gerald Pfeifer <gerald@pfeifer.com>
2047
2048 * doc/install.texi (Specific, bfin): blackfin.uclinux.org is
2049 gone, point to sourceforge.net.
2050
2051 2019-08-17 Gerald Pfeifer <gerald@pfeifer.com>
2052
2053 * doc/ux.texi (User Experience Guidelines): Update reference.
2054
2055 2019-08-17 Gerald Pfeifer <gerald@pfeifer.com>
2056
2057 * doc/include/gpl_v3.texi (Copying): Adjust the link to "Why
2058 not LGPL".
2059
2060 2019-08-16 Eric Botcazou <ebotcazou@adacore.com>
2061
2062 * tree-sra.c (build_reconstructed_reference): Return NULL_TREE instead
2063 of NULL. Add guard for broken VIEW_CONVERT_EXPRs.
2064
2065 2019-08-16 Martin Sebor <msebor@redhat.com>
2066
2067 * tree.def (TYPE_SIZE): Clarify.
2068 * tree.h (TYPE_SIZE, TYPE_SIZE_UNIT, DECL_SIZE): Add comments.
2069
2070 2019-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
2071
2072 PR tree-optimization/91109
2073 * lra-int.h (lra_need_for_scratch_reg_p): Declare.
2074 * lra.c (lra): Use lra_need_for_scratch_reg_p.
2075 * lra-spills.c (lra_need_for_scratch_reg_p): New function.
2076
2077 2019-08-16 Uroš Bizjak <ubizjak@gmail.com>
2078
2079 * config/i386/mmx.md (mmxdoublemode): New mode attribute.
2080 (mmx_uavg<mode>3): Macroize expaner from mmx_uavgv8qi3 and
2081 mmx_uavgv4hi3 using MMXMODE12 mode iterator.
2082 (uavg<mode>3_ceil): New expander.
2083 * config/i386/sse.md (uavg<mode>3_ceil): Use ssedoublemode
2084 mode iterator when creating CONST1_RTX.
2085 (<sse2_avx2>_uavg<mode>3<mask_name>): Ditto.
2086 (*<sse2_avx2>_uavg<mode>3<mask_name>): Use ssedoublemode
2087 mode iterator for const1_operand predicate.
2088
2089 2019-08-16 Richard Biener <rguenther@suse.de>
2090
2091 * tree-scalar-evolution.c (follow_ssa_edge_expr): Declare.
2092 (follow_ssa_edge_binary): Call follow_ssa_edge_expr instead of
2093 follow_ssa_edge.
2094 (follow_ssa_edge_in_condition_phi_branch): Likewise.
2095 (analyze_evolution_in_loop): Likewise.
2096 (follow_ssa_edge, follow_ssa_edge_in_rhs): Inline into ...
2097 (follow_ssa_edge_expr): ... here. Refactor code.
2098
2099 2019-08-16 Richard Biener <rguenther@suse.de>
2100
2101 PR target/91469
2102 * config/i386/i386-features.c
2103 (general_scalar_chain::replace_with_subreg): Stop at memory operands.
2104
2105 2019-08-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2106
2107 PR other/91255
2108 * gensupport.c (has_subst_attribute): Error out on set_attr_alternative
2109 only if subst_name matches curr_attr string.
2110
2111 2019-08-16 Richard Biener <rguenther@suse.de>
2112
2113 * tree-ssa-forwprop.c (simplify_builtin_call): Do not remove
2114 stmt at gsi_p, instead replace it with a NOP removed later.
2115 (pass_forwprop::execute): Fully propagate lattice, DCE stmts
2116 that became dead because of that.
2117
2118 2019-08-16 Aldy Hernandez <aldyh@redhat.com>
2119
2120 * gimple-ssa-evrp-analyze.c (record_ranges_from_phis): Skip PHIs
2121 for which we can't represent a range.
2122 * ipa-cp.c (ipcp_vr_lattice::set_to_bottom): Pass type to
2123 set_varying.
2124 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
2125 Set VR_UNDEFINED if type is not supported.
2126 * tree-ssanames.c (get_range_info): Pass type to set_varying.
2127 * tree-vrp.c (value_range_base::check): Assert that a varying has
2128 min/max set.
2129 (value_range_base::equal_p): Early bail for undefines.
2130 (value_range_base::set_varying): Accept a type.
2131 (value_range::set_varying): Same.
2132 (value_range_base::type): VARYING can have a type, while UNDEFINE
2133 is typeless.
2134 (value_range_base::dump): Print type for VARYING nodes.
2135 (value_range_base::set): Add type to VARYING.
2136 (extract_range_from_multiplicative_op): Pass type to set_varying.
2137 (extract_range_from_binary_expr): Same.
2138 (value_range_base::intersect_helper): Same.
2139 (value_range_base::union_helper): Same.
2140 (value_range_base::normalize_symbolics): Same.
2141 (determine_value_range_1): Same.
2142 * tree-vrp.h (class value_range_base): Add type to set_varying.
2143 Add prototype for dump(void).
2144 Add prototype for supports_type_p.
2145 (class value_range): Add type to set_varying.
2146 Add prototype for dump(void).
2147 * vr-values.c (set_value_range_to_truthvalue): Pass type to
2148 set_varying.
2149 (vr_values::get_lattice_entry): Set varying even if propagation
2150 finished.
2151 Pass type to set_varying.
2152 (vr_values::get_value_range): Remove vr_const_varying.
2153 Reallocate the lattice if needed.
2154 (vr_values::update_value_range): Pass type to set_varying.
2155 (vr_values::extract_range_for_var_from_comparison_expr): Same.
2156 (vr_values::extract_range_from_binary_expr): Same.
2157 (vr_values::extract_range_from_unary_expr): Same.
2158 (vr_values::extract_range_from_cond_expr): Same.
2159 (vr_values::check_for_binary_op_overflow): Same.
2160 (vr_values::extract_range_basic): Same.
2161 (vr_values::extract_range_from_assignment): Same.
2162 (vr_values::vr_values): Increase size of num_vr_values.
2163 (vr_values::extract_range_from_phi_node): Pass type to
2164 set_varying.
2165
2166 2019-08-15 H.J. Lu <hongjiu.lu@intel.com>
2167
2168 PR target/90878
2169 * config/i386/i386.c (inline_memory_move_cost): Use hard_register
2170 for costs of hard register moves.
2171 (ix86_register_move_cost): Likewise.
2172 * config/i386/i386.h (processor_costs): Move costs of hard
2173 register moves to hard_register. Add int_load, int_store,
2174 xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
2175 sse_load, sse_store, sse_unaligned_load and sse_unaligned_store
2176 for costs of RTL expressions.
2177 * config/i386/x86-tune-costs.h: Move costs of hard register
2178 moves to hard_register. Duplicate int_load, int_store,
2179 xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
2180 sse_load, sse_store for costs of RTL expressions.
2181
2182 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2183
2184 * target.def (setup_incoming_vararg_bounds): Remove.
2185 * doc/tm.texi.in (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Remove.
2186 * doc/tm.texi: Regenerate.
2187 * targhooks.c (default_setup_incoming_vararg_bounds): Delete.
2188 * targhooks.h (default_setup_incoming_vararg_bounds): Likewise.
2189 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
2190 (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
2191
2192 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2193
2194 MSP430: Fix lines over 80 characters long in
2195 config/msp430/*.{c,h} files
2196
2197 * config/msp430/driver-msp430.c (msp430_select_cpu): Fix format
2198 specifier in string.
2199 (msp430_select_hwmult_lib): Split line more than 80 characters long.
2200 * config/msp430/msp430-devices.c (msp430_extract_mcu_data): Remove
2201 redundant old comment.
2202 * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common):
2203 Split line more than 80 characters long.
2204 * config/msp430/msp430.c (msp430_option_override): Likewise.
2205 (msp430_return_in_memory): Likewise.
2206 (msp430_gimplify_va_arg_expr): Likewise.
2207 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
2208 (msp430_legitimate_constant): Likewise.
2209 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Likewise.
2210 (msp430_attr): Likewise.
2211 (msp430_data_attr): Likewise.
2212 (msp430_start_function): Likewise.
2213 (gen_prefix): Likewise.
2214 (msp430_init_sections): Likewise.
2215 (msp430_select_section): Likewise.
2216 (msp430_function_section): Likewise.
2217 (msp430_unique_section): Likewise.
2218 (msp430_output_aligned_decl_common): Likewise.
2219 (msp430_do_not_relax_short_jumps): Likewise.
2220 (msp430_init_builtins): Likewise.
2221 (msp430_expand_delay_cycles): Likewise.
2222 (msp430_expand_prologue): Likewise.
2223 (msp430_expand_epilogue): Likewise.
2224 (msp430_expand_helper): Likewise.
2225 (msp430_split_movsi): Likewise.
2226 (msp430_print_operand): Likewise.
2227 (msp430_return_addr_rtx): Likewise.
2228 (msp430x_extendhisi): Likewise.
2229 * config/msp430/msp430.h (STARTFILE_SPEC): Likewise.
2230 (ASM_SPEC): Likewise.
2231 Remove very obvious comments.
2232 (LIB_SPEC): Split line more than 80 characters long.
2233 (EH_RETURN_HANDLER_RTX): Likewise.
2234 (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
2235
2236 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2237
2238 MSP430: Fix whitespace errors and incorrect indentation in
2239 config/msp430/*.{c,h} files
2240
2241 * config/msp430/driver-msp430.c (msp430_select_cpu): Fix indentation.
2242 (msp430_select_hwmult_lib): Likewise.
2243 * config/msp430/msp430-devices.c (parse_devices_csv_1): Likewise.
2244 (msp430_extract_mcu_data): Likewise.
2245 (struct t_msp430_mcu_data): Likewise.
2246 * config/msp430/msp430.c (struct machine_function): Remove whitespace
2247 before left square bracket.
2248 (msp430_option_override): Fix indentation.
2249 (msp430_hard_regno_nregs_with_padding): Likewise.
2250 (msp430_initial_elimination_offset): Likewise.
2251 (msp430_special_register_convention_p): Remove whitespace before left
2252 square bracket and after exclamation mark.
2253 (msp430_evaluate_arg): Likewise.
2254 (msp430_callee_copies): Fix indentation.
2255 (msp430_gimplify_va_arg_expr): Likewise.
2256 (msp430_function_arg_advance): Remove whitespace before left square
2257 bracket.
2258 (reg_ok_for_addr): Likewise.
2259 (msp430_preserve_reg_p): Likewise.
2260 (msp430_compute_frame_info): Likewise.
2261 (msp430_asm_output_addr_const_extra): Add space between function name
2262 and open parenthesis.
2263 (has_section_name): Fix indentation.
2264 (msp430_attr): Remove trailing whitespace.
2265 (msp430_section_attr): Likewise.
2266 (msp430_data_attr): Likewise.
2267 (struct msp430_attribute_table): Fix comment and whitespace.
2268 (msp430_start_function): Remove whitespace before left square bracket.
2269 Add space between function name and open parenthesis.
2270 (msp430_select_section): Remove trailing whitespace.
2271 (msp430_section_type_flags): Remove trailing whitespace.
2272 (msp430_unique_section): Remove space before closing parenthesis.
2273 (msp430_output_aligned_decl_common): Change 8 spaces to a tab.
2274 (msp430_builtins): Remove whitespace before left square bracket.
2275 (msp430_init_builtins): Fix indentation.
2276 (msp430_expand_prologue): Remove whitespace before left square bracket.
2277 Remove space before closing parenthesis.
2278 (msp430_expand_epilogue): Remove whitespace before left square bracket.
2279 (msp430_split_movsi): Remove space before closing parenthesis.
2280 (helper_function_name_mappings): Fix indentation.
2281 (msp430_use_f5_series_hwmult): Fix whitespace.
2282 (use_32bit_hwmult): Likewise.
2283 (msp430_no_hwmult): Likewise.
2284 (msp430_output_labelref): Remove whitespace before left square bracket.
2285 (msp430_print_operand_raw): Likewise.
2286 (msp430_print_operand_addr): Likewise.
2287 (msp430_print_operand): Add two spaces after '.' in comment.
2288 Fix trailing whitespace.
2289 (msp430x_extendhisi): Fix indentation.
2290 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Change 8 spaces to
2291 tab.
2292 (PC_REGNUM): Likewise.
2293 (STACK_POINTER_REGNUM): Likewise.
2294 (CC_REGNUM): Likewise.
2295
2296 2019-08-15 Richard Biener <rguenther@suse.de>
2297
2298 PR target/91454
2299 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): New
2300 helper.
2301 (general_scalar_chain::make_vector_copies): Use it.
2302
2303 2019-08-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
2304
2305 * function.c (assign_parm_setup_reg): Handle misaligned stack arguments.
2306
2307 2019-08-15 Martin Liska <mliska@suse.cz>
2308
2309 * tree-ssa-dce.c (propagate_necessity): We can't reach now
2310 operators with no arguments.
2311 (eliminate_unnecessary_stmts): Likewise here.
2312
2313 2019-08-15 Uroš Bizjak <ubizjak@gmail.com>
2314
2315 * config/i386/i386-features.c (general_scalar_chain::convert_insn)
2316 <case COMPARE>: Revert 2019-08-14 change.
2317 (convertible_comparison_p): Revert 2019-08-14 change. Return false
2318 for (TARGET_64BIT || mode != DImode).
2319
2320 2019-08-15 Aldy Hernandez <aldyh@redhat.com>
2321
2322 * tree-vrp.c (value_range_base::set): Merge in code from
2323 value_range_base::set_and_canonicalize.
2324 Enforce canonicalization at set time.
2325 Normalize [MIN, MAX] into VARYING and ~[MIN, MAX] into UNDEFINED.
2326 (value_range_base::set_undefined): Inline call to set().
2327 (value_range_base::set_varying): Same.
2328 (value_range_base::singleton_p): Handle VR_ANTI_RANGEs.
2329 (vrp_val_max): New argument handle_pointers.
2330 (vrp_val_min): Same.
2331 (ranges_from_anti_range): Same.
2332 (extract_range_into_wide_ints): Use tree argument instead of sign
2333 and precision.
2334 (extract_range_from_multiplicative_op): Take in tree type instead
2335 of precision and sign. Adapt function for canonicalized ranges.
2336 (extract_range_from_binary_expr): Pass type to
2337 extract_range_from_multiplicative_op.
2338 Adapt for canonicalized ranges.
2339 (extract_range_from_unary_expr): Same.
2340 (value_range_base::intersect_helper): Adjust for canonicalized
2341 ranges.
2342 (value_range_base::union_helper): Same.
2343 (value_range_base::normalize_symbolics): New.
2344 * tree-vrp.h (class value_range_base): Remove
2345 set_and_canonicalize.
2346 New prototype for normalize_symbolics.
2347 (class value_range): Remove set_and_canonicalize.
2348 (vrp_val_min): Adjust prototype.
2349 (vrp_val_max): Same.
2350 * vr-values.c
2351 (vr_values::extract_range_for_var_from_comparison_expr): Call set
2352 instead of set_and_canonicalize.
2353
2354 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2355
2356 PR middle-end/91444
2357 * tree-vect-stmts.c (vectorizable_call): Check that the function
2358 is a BUILT_IN_MD function before passing it to
2359 targetm.vectorize.builtin_md_vectorized_function.
2360
2361 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2362
2363 * config/aarch64/aarch64-protos.h (aarch64_sve_mode_p): Declare.
2364 * config/aarch64/aarch64.c (aarch64_sve_mode_p): New function.
2365 (aarch64_select_early_remat_modes): Use it.
2366
2367 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2368
2369 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Return
2370 16 for SVE predicates even if they are fixed-length.
2371
2372 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2373
2374 * config/aarch64/aarch64-sve.md (and<PRED_ALL:mode>3): Make the
2375 operand order match the MOV /Z alias.
2376
2377 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2378
2379 * config/aarch64/aarch64.c (aarch64_output_sve_cnt_immediate): Take
2380 the vector pattern as an aarch64_svpattern argument. Update the
2381 overloaded caller accordingly.
2382 (aarch64_output_sve_scalar_inc_dec): Update call accordingly.
2383 (aarch64_output_sve_vector_inc_dec): Likewise.
2384
2385 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2386
2387 * config/aarch64/aarch64.c (aarch64_add_offset): In the fallback
2388 multiplication case, try to compute VG * (lowest set bit) directly
2389 rather than always basing the multiplication on VG. Use
2390 expand_mult for the multiplication if we can.
2391
2392 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2393
2394 * config/aarch64/aarch64-protos.h
2395 (aarch64_sve_scalar_inc_dec_immediate_p): Declare.
2396 (aarch64_sve_inc_dec_immediate_p): Rename to...
2397 (aarch64_sve_vector_inc_dec_immediate_p): ...this.
2398 (aarch64_output_sve_addvl_addpl): Take a single rtx argument.
2399 (aarch64_output_sve_scalar_inc_dec): Declare.
2400 (aarch64_output_sve_inc_dec_immediate): Rename to...
2401 (aarch64_output_sve_vector_inc_dec): ...this.
2402 * config/aarch64/aarch64.c (aarch64_sve_scalar_inc_dec_immediate_p)
2403 (aarch64_output_sve_scalar_inc_dec): New functions.
2404 (aarch64_output_sve_addvl_addpl): Remove the base and offset
2405 arguments. Only handle true ADDVL and ADDPL instructions;
2406 don't emit an INC or DEC.
2407 (aarch64_sve_inc_dec_immediate_p): Rename to...
2408 (aarch64_sve_vector_inc_dec_immediate_p): ...this.
2409 (aarch64_output_sve_inc_dec_immediate): Rename to...
2410 (aarch64_output_sve_vector_inc_dec): ...this. Update call to
2411 aarch64_sve_vector_inc_dec_immediate_p.
2412 * config/aarch64/predicates.md (aarch64_sve_scalar_inc_dec_immediate)
2413 (aarch64_sve_plus_immediate): New predicates.
2414 (aarch64_pluslong_operand): Accept aarch64_sve_plus_immediate
2415 rather than aarch64_sve_addvl_addpl_immediate.
2416 (aarch64_sve_inc_dec_immediate): Rename to...
2417 (aarch64_sve_vector_inc_dec_immediate): ...this. Update call to
2418 aarch64_sve_vector_inc_dec_immediate_p.
2419 (aarch64_sve_add_operand): Update accordingly.
2420 * config/aarch64/constraints.md (Uai): New constraint.
2421 (vsi): Update call to aarch64_sve_vector_inc_dec_immediate_p.
2422 * config/aarch64/aarch64.md (add<GPI:mode>3): Don't force the second
2423 operand into a register if it satisfies aarch64_sve_plus_immediate.
2424 (*add<GPI:mode>3_aarch64, *add<GPI:mode>3_poly_1): Add an alternative
2425 for Uai. Update calls to aarch64_output_sve_addvl_addpl.
2426 * config/aarch64/aarch64-sve.md (add<mode>3): Call
2427 aarch64_output_sve_vector_inc_dec instead of
2428 aarch64_output_sve_inc_dec_immediate.
2429
2430 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2431
2432 * config/aarch64/iterators.md (UNSPEC_REVB, UNSPEC_REVH)
2433 (UNSPEC_REVW): New constants.
2434 (elem_bits): New mode attribute.
2435 (SVE_INT_UNARY): New int iterator.
2436 (optab): Handle UNSPEC_REV[BHW].
2437 (sve_int_op): New int attribute.
2438 (min_elem_bits): Handle VNx16QI and the predicate modes.
2439 * config/aarch64/aarch64-sve.md (*aarch64_sve_rev64<mode>)
2440 (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Delete.
2441 (@aarch64_pred_<SVE_INT_UNARY:optab><SVE_I:mode>): New pattern.
2442 * config/aarch64/aarch64.c (aarch64_sve_data_mode): New function.
2443 (aarch64_sve_int_mode, aarch64_sve_rev_unspec): Likewise.
2444 (aarch64_split_sve_subreg_move): Use UNSPEC_REV[BHW] instead of
2445 unspecs based on the total width of the reversed data.
2446 (aarch64_evpc_rev_local): Likewise (for SVE only). Use a
2447 reinterpret followed by a subreg on big-endian targets.
2448
2449 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2450 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2451
2452 * config/aarch64/aarch64-sve.md
2453 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Add /z
2454 alternatives in which one of the inputs is in the same register
2455 as the output.
2456
2457 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2458
2459 * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_ext)
2460 (*aarch64_sve_ext<mode>): Add MOVPRFX alternatives.
2461
2462 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2463
2464 * config/aarch64/aarch64-sve.md (*sub<SVE_F:mode>3): Remove immediate
2465 FADD and FSUB alternatives. Add a MOVPRFX alternative for FSUBR.
2466
2467 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2468 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2469
2470 * config/aarch64/aarch64-sve.md (add<SVE_I:mode>3, sub<SVE_I:mode>3)
2471 (<LOGICAL:optab><SVE_I:mode>3, *add<SVE_F:mode>3, *mul<SVE_F:mode>3)
2472 (*fabd<SVE_F:mode>3): Add more MOVPRFX alternatives.
2473
2474 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2475 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2476
2477 * config/aarch64/aarch64-sve.md (*v<ASHIFT:optab><SVE_I:mode>3):
2478 Add an alternative that uses reversed shifts.
2479
2480 2019-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2481
2482 * config/aarch64/aarch64-cores.def (cortex-a76): Use neoversen1 tuning
2483 struct.
2484
2485 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2486
2487 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Add
2488 a commutativity marker.
2489
2490 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2491 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2492
2493 * config/aarch64/aarch64-protos.h (aarch64_prepare_sve_int_fma)
2494 (aarch64_prepare_sve_cond_int_fma): Declare.
2495 * config/aarch64/aarch64.c (aarch64_convert_mult_to_shift)
2496 (aarch64_prepare_sve_int_fma): New functions.
2497 (aarch64_prepare_sve_cond_int_fma): Likewise.
2498 * config/aarch64/aarch64-sve.md
2499 (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Add a "@" marker.
2500 (fma<SVE_I:mode>4, cond_fma<SVE_I:mode>, *cond_fma<SVE_I:mode>_2)
2501 (*cond_fma<SVE_I:mode>_4, *cond_fma<SVE_I:mode>_any, fnma<SVE_I:mode>4)
2502 (cond_fnma<SVE_I:mode>, *cond_fnma<SVE_I:mode>_2)
2503 (*cond_fnma<SVE_I:mode>_4, *cond_fnma<SVE_I:mode>_any): New patterns.
2504 (*madd<mode>): Rename to...
2505 (*fma<mode>4): ...this.
2506 (*msub<mode>): Rename to...
2507 (*fnma<mode>4): ...this.
2508
2509 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2510 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2511
2512 * config/aarch64/aarch64.c (aarch64_print_vector_float_operand):
2513 Print 2.0 naturally.
2514 (aarch64_sve_float_mul_immediate_p): Return true for 2.0.
2515 * config/aarch64/predicates.md
2516 (aarch64_sve_float_negated_arith_immediate): New predicate,
2517 renamed from aarch64_sve_float_arith_with_sub_immediate.
2518 (aarch64_sve_float_arith_with_sub_immediate): Test for both
2519 positive and negative constants.
2520 (aarch64_sve_float_arith_with_sub_operand): Redefine as a register
2521 or an aarch64_sve_float_arith_with_sub_immediate.
2522 * config/aarch64/constraints.md (vsN): Use
2523 aarch64_sve_float_negated_arith_immediate.
2524 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_I1): New int
2525 iterator.
2526 (sve_pred_fp_rhs2_immediate): New int attribute.
2527 * config/aarch64/aarch64-sve.md
2528 (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>): Use
2529 sve_pred_fp_rhs1_operand and sve_pred_fp_rhs2_operand.
2530 (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_2_const)
2531 (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_any_const)
2532 (*cond_add<SVE_F:mode>_2_const, *cond_add<SVE_F:mode>_any_const)
2533 (*cond_sub<mode>_3_const, *cond_sub<mode>_any_const): New patterns.
2534
2535 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2536 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2537
2538 * config/aarch64/aarch64-sve.md (*aarch64_cond_abd<SVE_F:mode>_2)
2539 (*aarch64_cond_abd<SVE_F:mode>_3)
2540 (*aarch64_cond_abd<SVE_F:mode>_any): New patterns.
2541
2542 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2543 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2544
2545 * config/aarch64/aarch64-sve.md (*aarch64_cond_<su>abd<mode>_2)
2546 (*aarch64_cond_<su>abd<mode>_any): New patterns.
2547
2548 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2549 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2550
2551 * internal-fn.def (IFN_COND_SHL, IFN_COND_SHR): New internal functions.
2552 * internal-fn.c (FOR_EACH_CODE_MAPPING): Handle shifts.
2553 * match.pd (UNCOND_BINARY, COND_BINARY): Likewise.
2554 * optabs.def (cond_ashl_optab, cond_ashr_optab, cond_lshr_optab): New
2555 optabs.
2556 * optabs.h (create_convert_operand_from): Expand comment.
2557 * optabs.c (maybe_legitimize_operand): Allow implicit broadcasts
2558 when mapping scalar rtxes to vector operands.
2559 * config/aarch64/iterators.md (SVE_INT_BINARY): Add ashift,
2560 ashiftrt and lshiftrt.
2561 (sve_int_op, sve_int_op_rev, sve_pred_int_rhs2_operand): Handle them.
2562 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_const)
2563 (*cond_<optab><mode>_any_const): New patterns.
2564
2565 2019-08-15 Martin Liska <mliska@suse.cz>
2566
2567 PR ipa/91438
2568 * cgraph.c (cgraph_node::remove): When setting
2569 n->origin = NULL for all nested functions, reset
2570 also next_nested.
2571
2572 2019-08-15 Martin Liska <mliska@suse.cz>
2573
2574 * cgraph.c (cgraph_node::verify_node): Verify origin, nested
2575 and next_nested.
2576
2577 2019-08-15 Martin Liska <mliska@suse.cz>
2578
2579 PR ipa/91404
2580 * passes.c (order): Remove.
2581 (uid_hash_t): Likewise).
2582 (remove_cgraph_node_from_order): Remove from set
2583 of pointers (cgraph_node *).
2584 (insert_cgraph_node_to_order): New.
2585 (duplicate_cgraph_node_to_order): New.
2586 (do_per_function_toporder): Register all 3 cgraph hooks.
2587 Skip removed_nodes now as we know about all of them.
2588
2589 2019-08-14 Uroš Bizjak <ubizjak@gmail.com>
2590
2591 * config/i386/i386-expand.c (ix86_expand_vector_init_one_nonzero)
2592 <case E_V8QImode>: Use vector_set path for
2593 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
2594 (ix86_expand_vector_init_one_var) <case E_V8QImode>:
2595 Do not widen for TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
2596
2597 2019-08-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
2598
2599 * builtins.c (expand_builtin_init_descriptor): Set memory alignment.
2600
2601 2019-08-14 Martin Sebor <msebor@redhat.com>
2602
2603 PR tree-optimization/91294
2604 * tree-ssa-strlen.c (handle_store): Avoid treating lower bound of
2605 source length as exact.
2606
2607 2019-08-14 Christophe Lyon <christophe.lyon@linaro.org>
2608
2609 * doc/extend.texi: Add "noinit" attribute documentation.
2610 * doc/sourcebuild.texi: Add noinit effective target documentation.
2611 * varasm.c (default_section_type_flags): Add support for "noinit"
2612 section.
2613 (default_elf_select_section): Add support for "noinit" attribute.
2614 * config/msp430/msp430.c (msp430_attribute_table): Remove
2615 "noinit" entry.
2616
2617 2019-08-14 Richard Biener <rguenther@suse.de>
2618 Uroš Bizjak <ubizjak@gmail.com>
2619
2620 PR target/91154
2621 * config/i386/i386-features.h (scalar_chain::scalar_chain): Add
2622 mode arguments.
2623 (scalar_chain::smode): New member.
2624 (scalar_chain::vmode): Likewise.
2625 (dimode_scalar_chain): Rename to...
2626 (general_scalar_chain): ... this.
2627 (general_scalar_chain::general_scalar_chain): Take mode arguments.
2628 (timode_scalar_chain::timode_scalar_chain): Initialize scalar_chain
2629 base with TImode and V1TImode.
2630 * config/i386/i386-features.c (scalar_chain::scalar_chain): Adjust.
2631 (general_scalar_chain::vector_const_cost): Adjust for SImode
2632 chains.
2633 (general_scalar_chain::compute_convert_gain): Likewise. Add
2634 {S,U}{MIN,MAX} support.
2635 (general_scalar_chain::replace_with_subreg): Use vmode/smode.
2636 (general_scalar_chain::make_vector_copies): Likewise. Handle
2637 non-DImode chains appropriately.
2638 (general_scalar_chain::convert_reg): Likewise.
2639 (general_scalar_chain::convert_op): Likewise.
2640 (general_scalar_chain::convert_insn): Likewise. Add
2641 fatal_insn_not_found if the result is not recognized.
2642 (convertible_comparison_p): Pass in the scalar mode and use that.
2643 (general_scalar_to_vector_candidate_p): Likewise. Rename from
2644 dimode_scalar_to_vector_candidate_p. Add {S,U}{MIN,MAX} support.
2645 (scalar_to_vector_candidate_p): Remove by inlining into single
2646 caller.
2647 (general_remove_non_convertible_regs): Rename from
2648 dimode_remove_non_convertible_regs.
2649 (remove_non_convertible_regs): Remove by inlining into single caller.
2650 (convert_scalars_to_vector): Handle SImode and DImode chains
2651 in addition to TImode chains.
2652 * config/i386/i386.md (<maxmin><MAXMIN_IMODE>3): New expander.
2653 (*<maxmin><MAXMIN_IMODE>3_1): New insn-and-split.
2654 (*<maxmin>di3_doubleword): Likewise.
2655
2656 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2657 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2658
2659 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2)
2660 (*cond_bic<mode>_any): New patterns.
2661
2662 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2663
2664 * config/aarch64/aarch64.c (aarch64_print_operand): Allow %e to
2665 take the equivalent mask, as well as a bit count.
2666 * config/aarch64/predicates.md (aarch64_sve_uxtb_immediate)
2667 (aarch64_sve_uxth_immediate, aarch64_sve_uxt_immediate)
2668 (aarch64_sve_pred_and_operand): New predicates.
2669 * config/aarch64/iterators.md (sve_pred_int_rhs2_operand): New
2670 code attribute.
2671 * config/aarch64/aarch64-sve.md
2672 (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Use it.
2673 (*cond_uxt<mode>_2, *cond_uxt<mode>_any): New patterns.
2674
2675 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2676
2677 * config/aarch64/aarch64-sve.md
2678 (*cond_<SVE_COND_FCVTI:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
2679 (*cond_<SVE_COND_ICVTF:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>):
2680 New patterns.
2681
2682 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2683 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2684
2685 * config/aarch64/aarch64-sve.md
2686 (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_2): New pattern.
2687 (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_any): Likewise.
2688
2689 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2690 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2691
2692 * config/aarch64/aarch64-sve.md
2693 (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_2): New pattern.
2694 (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_any): Likewise.
2695
2696 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2697
2698 * config/aarch64/iterators.md (SVE_COND_FP_ABS_CMP): New iterator.
2699 * config/aarch64/aarch64-sve.md (*aarch64_pred_fac<cmp_op><mode>):
2700 New pattern.
2701
2702 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2703 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2704
2705 * config/aarch64/aarch64-sve.md (*aarch64_sel_dup<mode>): New pattern.
2706
2707 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2708 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2709
2710 * config/aarch64/aarch64.c (aarch64_bit_representation): New function.
2711 (aarch64_print_vector_float_operand): Also handle 8-bit floats.
2712 (aarch64_print_operand): Add support for %I.
2713 (aarch64_sve_dup_immediate_p): Handle scalars as well as vectors.
2714 Bitcast floating-point constants to the corresponding integer constant.
2715 (aarch64_float_const_representable_p): Handle vectors as well
2716 as scalars.
2717 (aarch64_expand_sve_vcond): Make sure that the operands are valid
2718 for the new vcond_mask_<mode><vpred> expander.
2719 * config/aarch64/predicates.md (aarch64_sve_dup_immediate): Also
2720 test aarch64_float_const_representable_p.
2721 (aarch64_sve_reg_or_dup_imm): New predicate.
2722 * config/aarch64/aarch64-sve.md (vec_extract<vpred><Vel>): Use
2723 gen_vcond_mask_<mode><vpred> instead of
2724 gen_aarch64_sve_dup<mode>_const.
2725 (vcond_mask_<mode><vpred>): Turn into a define_expand that
2726 accepts aarch64_sve_reg_or_dup_imm and aarch64_simd_reg_or_zero
2727 for operands 1 and 2 respectively. Force operand 2 into a
2728 register if operand 1 is a register. Fold old define_insn...
2729 (aarch64_sve_dup<mode>_const): ...and this define_insn...
2730 (*vcond_mask_<mode><vpred>): ...into this new pattern. Handle
2731 floating-point constants that can be moved as integers. Add
2732 alternatives for MOV /M and FMOV /M.
2733 (vcond<mode><v_int_equiv>, vcondu<mode><v_int_equiv>)
2734 (vcond<mode><v_fp_equiv>): Accept nonmemory_operand for operands
2735 1 and 2 respectively.
2736 * config/aarch64/constraints.md (Ufc): Handle vectors as well
2737 as scalars.
2738 (vss): New constraint.
2739
2740 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2741
2742 * config/aarch64/predicates.md (aarch64_sve_float_maxmin_immediate)
2743 (aarch64_sve_float_maxmin_operand): New predicates.
2744 * config/aarch64/constraints.md (vsB): New constraint.
2745 (vsM): Fix typo.
2746 * config/aarch64/iterators.md (sve_pred_fp_rhs2_operand): Use
2747 aarch64_sve_float_maxmin_operand for UNSPEC_COND_FMAXNM and
2748 UNSPEC_COND_FMINNM.
2749 * config/aarch64/aarch64-sve.md (<maxmin_uns><SVE_F:mode>3):
2750 Use aarch64_sve_float_maxmin_operand for operand 2.
2751 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Likewise.
2752 Add alternatives for the constant forms.
2753
2754 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2755
2756 * config/aarch64/constraints.md (vsb): New constraint.
2757 (vsm): Generalize description.
2758 * config/aarch64/iterators.md (SVE_INT_BINARY_IMM): New code
2759 iterator.
2760 (sve_imm_con): Handle smax, smin, umax and umin.
2761 (sve_imm_prefix): New code attribute.
2762 * config/aarch64/predicates.md (aarch64_sve_vsb_immediate)
2763 (aarch64_sve_vsb_operand): New predicates.
2764 (aarch64_sve_mul_immediate): Rename to...
2765 (aarch64_sve_vsm_immediate): ...this.
2766 (aarch64_sve_mul_operand): Rename to...
2767 (aarch64_sve_vsm_operand): ...this.
2768 * config/aarch64/aarch64-sve.md (mul<mode>3): Generalize to...
2769 (<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...this.
2770 (*mul<mode>3, *post_ra_mul<mode>3): Generalize to...
2771 (*<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3)
2772 (*post_ra_<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...these and
2773 add movprfx support for the immediate alternatives.
2774 (<su><maxmin><mode>3, *<su><maxmin><mode>3): Delete in favor
2775 of the above.
2776 (*<SVE_INT_BINARY_SD:optab><SVE_SDI:mode>3): Fix incorrect predicate
2777 for operand 3.
2778
2779 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2780
2781 * config/aarch64/predicates.md (aarch64_simd_imm_one): New predicate.
2782 * config/aarch64/aarch64-sve.md (*cnot<mode>): New pattern.
2783 (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
2784
2785 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2786
2787 * config/aarch64/iterators.md (SVE_INT_UNARY): Add clrsb and clz.
2788 (optab, sve_int_op): Handle them.
2789 * config/aarch64/aarch64-sve.md: Expand comment.
2790
2791 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2792
2793 * config/aarch64/predicates.md (const_1_to_3_operand): New predicate.
2794 * config/aarch64/aarch64-sve.md (*aarch64_adr_uxtw)
2795 (*aarch64_adr<mode>_shift, *aarch64_adr_shift_uxtw): New patterns.
2796
2797 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2798
2799 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor)
2800 (aarch64_expand_sve_const_pred_trn): New functions.
2801 (aarch64_expand_sve_const_pred_1): Add a recurse_p parameter and
2802 use the above functions when the parameter is true.
2803 (aarch64_expand_sve_const_pred): Update call accordingly.
2804 * config/aarch64/aarch64-sve.md (*aarch64_sve_<perm_insn><mode>):
2805 Rename to...
2806 (@aarch64_sve_<perm_insn><mode>): ...this.
2807
2808 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2809
2810 * config/aarch64/aarch64-protos.h (aarch64_sve_same_pred_for_ptest_p):
2811 Declare.
2812 * config/aarch64/aarch64.c (aarch64_sve_same_pred_for_ptest_p)
2813 (aarch64_sve_emit_int_cmp): New functions.
2814 (aarch64_convert_sve_data_to_pred): Use aarch64_sve_emit_int_cmp.
2815 (aarch64_sve_cmp_operand_p, aarch64_emit_sve_ptrue_op_cc): Delete.
2816 (aarch64_expand_sve_vec_cmp_int): Use aarch64_sve_emit_int_cmp.
2817 * config/aarch64/aarch64.md (UNSPEC_MERGE_PTRUE): Delete.
2818 (UNSPEC_PRED_Z): New unspec.
2819 (set_clobber_cc_nzc): Delete.
2820 * config/aarch64/aarch64-sve.md: Add a block comment about
2821 UNSPEC_PRED_Z.
2822 (*cmp<SVE_INT_CMP:cmp_op><mode>): Rename to...
2823 (@aarch64_pred_cmp<SVE_INT_CMP:cmp_op><mode>): ...this, replacing
2824 the old pattern with that name. Use UNSPEC_PRED_Z instead of
2825 UNSPEC_MERGE_PTRUE.
2826 (*cmp<SVE_INT_CMP:cmp_op><mode>_cc): Use UNSPEC_PRED_Z instead of
2827 UNSPEC_MERGE_PTRUE. Use aarch64_sve_same_pred_for_ptest_p to
2828 check for compatible predicates.
2829 (*cmp<cmp_op><SVE_INT_CMP:mode>_ptest): Likewise.
2830 (*cmp<cmp_op><mode>_and): Match a known-ptrue UNSPEC_PRED_Z instead
2831 of UNSPEC_MERGE_PTRUE. Split into the new form of predicated
2832 comparisons above.
2833
2834 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2835
2836 * config/aarch64/aarch64.md (UNSPEC_PRED_X): New unspec.
2837 * config/aarch64/aarch64-sve.md: Add a section describing it.
2838 (@aarch64_pred_mov<mode>, @aarch64_pred_mov<mode>)
2839 (<SVE_INT_UNARY:optab><mode>2, *<SVE_INT_UNARY:optab><mode>2)
2840 (aarch64_<su>abd<mode>_3, mul<SVE_I:mode>3, *mul<SVE_I:mode>3)
2841 (<su>mul<mode>3_highpart, *<su>mul<mode>3_highpart)
2842 (<SVE_INT_BINARY:optab><mode>3, *<SVE_INT_BINARY:optab><mode>3)
2843 (*bic<mode>3, v<ASHIFT:optab><mode>3, *v<ASHIFT:optab><mode>3)
2844 (<su><maxmin><mode>3, *<su><maxmin><mode>3, *madd<SVE_I:mode>)
2845 (*msub<SVE_I:mode>3, *aarch64_sve_rev64<mode>)
2846 (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Use
2847 UNSPEC_PRED_X instead of UNSPEC_MERGE_PTRUE.
2848 * config/aarch64/aarch64-sve2.md (<u>avg<mode>3_floor)
2849 (<u>avg<mode>3_ceil, *<sur>h<addsub><mode>): Likewise.
2850 * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move)
2851 (aarch64_evpc_rev_local): Update accordingly.
2852
2853 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2854
2855 * config/aarch64/iterators.md (VNx4SI_ONLY, VNx2DF_ONLY): New mode
2856 iterators.
2857 (SVE_BHSI, SVE_SDI): Tweak comment.
2858 (SVE_HSDI): Likewise. Fix definition.
2859 (SVE_SDF): New mode iterator.
2860 (elem_bits): New mode attribute.
2861 (SVE_COND_FCVT): New int iterator.
2862 * config/aarch64/aarch64-sve.md
2863 (*<SVE_COND_ICVTF:optab>v16hsf<SVE_HSDI:mode>2)
2864 (*<SVE_COND_ICVTF:optab>vnx4sf<SVE_SDI:mode>2)
2865 (*<SVE_COND_ICVTF:optab>vnx2df<SVE_SDI:mode>2): Merge into...
2866 (*aarch64_sve_<SVE_COND_ICVTF:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
2867 (*aarch64_sve_<SVE_COND_ICVTF:optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
2868 ...these new patterns.
2869 (*<SVE_COND_FCVTI:optab><SVE_HSDI:mode>vnx8hf2)
2870 (*<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx4sf2)
2871 (aarch64_sve_<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx2df2):
2872 Merge into...
2873 (*aarch64_sve_<SVE_COND_FCVTI:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>)
2874 (aarch64_sve_<SVE_COND_FCVTI:optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>):
2875 ...these new patterns.
2876 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Update accordingly.
2877 (*trunc<Vwide><SVE_SDF:mode>2): Replace with...
2878 (*aarch64_sve_<SVE_COND_FCVT:optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>):
2879 ...this new pattern.
2880 (aarch64_sve_extend<SVE_HSDF:mode><Vwide>2): Replace with...
2881 (aarch64_sve_<SVE_COND_FCVT:optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>):
2882 ...this new pattern.
2883 (vec_unpacks_<perm_hilo>_<mode>): Update accordingly.
2884
2885 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2886
2887 * config/aarch64/aarch64.md (UNSPEC_FLOAT_CONVERT): Delete.
2888 * config/aarch64/iterators.md (UNSPEC_COND_FCVT, UNSPEC_COND_FCVTZS)
2889 (UNSPEC_COND_FCVTZU, UNSPEC_COND_SCVTF, UNSPEC_COND_UCVTF): New
2890 unspecs.
2891 (optab, su): Handle them.
2892 (SVE_COND_FCVTI, SVE_COND_ICVTF): New int iterators.
2893 * config/aarch64/aarch64-sve.md
2894 (<fix_trunc_optab><SVE_F:mode><v_int_equiv>2): Replace with...
2895 (<SVE_COND_FCVTI:optab><SVE_F:mode><v_int_equiv>2): ...this.
2896 (*<fix_trunc_optab>v16hsf<:SVE_HSDImode>2): Replace with...
2897 (*<SVE_COND_FCVTI:optab>v16hsf<SVE_F:mode>2): ...this.
2898 (*<fix_trunc_optab>vnx4sf<SVE_SDI:mode>2): Replace with...
2899 (*<SVE_COND_FCVTI:optab>vnx4sf<SVE_SDI:mode>2): ...this.
2900 (*<fix_trunc_optab>vnx2df<SVE_SDI:mode>2): Replace with...
2901 (*<SVE_COND_FCVTI:optab>vnx2df<SVE_SDI:mode>2): ...this.
2902 (vec_pack_<su>fix_trunc_vnx2df): Use SVE_COND_FCVTI instead of
2903 FIXUORS.
2904 (<FLOATUORS:optab><v_int_equiv><SVE_F:mode>2): Replace with...
2905 (<SVE_COND_ICVTF:optab><v_int_equiv><SVE_F:mode>2): ...this.
2906 (*<FLOATUORS:optab><SVE_HSDI:mode>vnx8hf2): Replace with...
2907 (*<SVE_COND_ICVTF:optab><SVE_HSDI:mode>vnx8hf2): ...this.
2908 (*<FLOATUORS:optab><SVE_SDI:mode>vnx4sf2): Replace with...
2909 (*<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx4sf2): ...this.
2910 (aarch64_sve_<FLOATUORS:optab><SVE_SDI:mode>vnx2df2): Replace with...
2911 (aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2): ...this.
2912 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Pass a GP strictness
2913 operand to aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2.
2914 (vec_pack_trunc_<SVE_HSF:Vwide>, *trunc<Vwide><SVE_HSF:mode>2)
2915 (aarch64_sve_extend<mode><Vwide>2): Use UNSPEC_COND_FCVT instead
2916 of UNSPEC_FLOAT_CONVERT.
2917 (vec_unpacks_<perm_hilo>_<mode>): Pass a GP strictness operand to
2918 aarch64_sve_extend<mode><Vwide>2.
2919
2920 2019-08-14 Richard Biener <rguenther@suse.de>
2921
2922 PR target/91154
2923 * config/i386/i386-features.c
2924 (dimode_scalar_chain::compute_convert_gain): Compute and dump
2925 individual instruction gain. Fix reg-reg copy GRP cost. Use
2926 ix86_cost->sse_op for vector instruction costs.
2927
2928 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2929
2930 * config/aarch64/iterators.md (UNSPEC_COND_FCMUO): New unspec.
2931 (cmp_op): Handle it.
2932 (SVE_COND_FP_CMP): Rename to...
2933 (SVE_COND_FP_CMP_I0): ...this.
2934 (SVE_FP_CMP): Remove.
2935 * config/aarch64/aarch64-sve.md
2936 (*fcm<SVE_FP_CMP:cmp_op><SVE_F:mode>): Replace with...
2937 (*fcm<SVE_COND_FP_CMP_I0:cmp_op><SVE_F:mode>): ...this new pattern,
2938 using unspecs to represent the comparison.
2939 (*fcmuo<SVE_F:mode>): Use UNSPEC_COND_FCMUO.
2940 (*fcm<cmp_op><mode>_and_combine, *fcmuo<mode>_and_combine): Update
2941 accordingly.
2942 * config/aarch64/aarch64.c (aarch64_emit_sve_ptrue_op): Delete.
2943 (aarch64_unspec_cond_code): Move after integer code. Handle
2944 UNORDERED.
2945 (aarch64_emit_sve_predicated_cond): Replace with...
2946 (aarch64_emit_sve_fp_cond): ...this new function.
2947 (aarch64_emit_sve_or_conds): Replace with...
2948 (aarch64_emit_sve_or_fp_conds): ...this new function.
2949 (aarch64_emit_sve_inverted_cond): Replace with...
2950 (aarch64_emit_sve_invert_fp_cond): ...this new function.
2951 (aarch64_expand_sve_vec_cmp_float): Update accordingly.
2952
2953 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2954
2955 * config/aarch64/iterators.md (SVE_HSD): New mode iterator.
2956 (V_FP_EQUIV, v_fp_equiv): Handle VNx8HI and VNx8HF.
2957 * config/aarch64/aarch64-sve.md (vcond<mode><v_fp_equiv>): Use
2958 SVE_HSD instead of SVE_SD.
2959
2960 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2961 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2962
2963 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_REG): New int
2964 iterator.
2965 (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs1_operand): New int
2966 attributes.
2967 * config/aarch64/aarch64-sve.md (add<SVE_F:mode>3, sub<SVE_F:mode>3)
2968 (mul<SVE_F:mode>3, div<SVE_F:mode>3)
2969 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Merge into...
2970 (<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this new expander.
2971 (*div<SVE_F:mode>3): Generalize to...
2972 (*<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this.
2973
2974 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2975 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2976
2977 * config/aarch64/aarch64.md (SVE_RELAXED_GP, SVE_STRICT_GP): New
2978 constants.
2979 * config/aarch64/predicates.md (aarch64_sve_gp_strictness): New
2980 predicate.
2981 * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p):
2982 Declare.
2983 * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): New
2984 function.
2985 * config/aarch64/aarch64-sve.md: Add a block comment about the
2986 handling of predicated FP operations.
2987 (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2, add<SVE_F:mode>3)
2988 (sub<SVE_F:mode>3, mul<SVE_F:mode>3, div<SVE_F:mode>3)
2989 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
2990 (<SVE_COND_FP_MAXMIN_PUBLIC:maxmin_uns><SVE_F:mode>3)
2991 (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): Add an SVE_RELAXED_GP
2992 operand.
2993 (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>)
2994 (cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>): Add an SVE_STRICT_GP
2995 operand.
2996 (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2)
2997 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_2)
2998 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_3)
2999 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_any)
3000 (*fabd<SVE_F:mode>3, *div<SVE_F:mode>3)
3001 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
3002 (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
3003 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_2)
3004 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_4)
3005 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Match the
3006 strictness operands. Use aarch64_sve_pred_dominates_p to check
3007 whether the predicate on the conditional operation is suitable
3008 for merging. Split patterns into the canonical equal-predicate form.
3009 (*add<SVE_F:mode>3, *sub<SVE_F:mode>3, *mul<SVE_F:mode>3): Likewise.
3010 Restrict the unpredicated alternatives to SVE_RELAXED_GP.
3011
3012 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
3013 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
3014
3015 * config/aarch64/aarch64-sve.md (add<mode>3, *add<mode>3)
3016 (sub<mode>3, *sub<mode>3, *fabd<mode>3, mul<mode>3, *mul<mode>3)
3017 (div<mode>3, *div<mode>3): Use SVE_COND_FP_* unspecs instead of
3018 rtx codes.
3019 (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_3)
3020 (*cond_<optab><mode>_any): Add the predicate to the SVE_COND_FP_*
3021 unspecs.
3022
3023 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
3024 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
3025
3026 * config/aarch64/aarch64-sve.md (bic<mode>3): Rename to...
3027 (*bic<SVE_I:mode>3): ...this. Match the form that an SVE inverse
3028 actually has, rather than relying on REG_EQUAL notes.
3029 Make the insn operand order match the SVE operand order.
3030 (*<nlogical><PRED_ALL:mode>3): Make the insn operand order match
3031 the SVE operand order.
3032
3033 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
3034
3035 * config/aarch64/aarch64.c (aarch64_target_reg): New function.
3036 (aarch64_emit_set_immediate): Likewise.
3037 (aarch64_ptrue_reg): Build a VNx16BI constant and then bitcast it.
3038 (aarch64_pfalse_reg): Likewise.
3039 (aarch64_convert_sve_data_to_pred): New function.
3040 (aarch64_sve_move_pred_via_while): Take an optional target register
3041 and the required register mode.
3042 (aarch64_expand_sve_const_pred_1): New function.
3043 (aarch64_expand_sve_const_pred): Likewise.
3044 (aarch64_expand_mov_immediate): Build an all-true predicate
3045 if the significant bits of the immediate are all true. Use
3046 aarch64_expand_sve_const_pred for all compile-time predicate constants.
3047 (aarch64_mov_operand_p): Force predicate constants to be VNx16BI
3048 before register allocation.
3049 * config/aarch64/aarch64-sve.md (*vec_duplicate<mode>_reg): Use
3050 a VNx16BI PTRUE when splitting the memory alternative.
3051 (vec_duplicate<mode>): Update accordingly.
3052 (*pred_cmp<cmp_op><mode>): Rename to...
3053 (@aarch64_pred_cmp<cmp_op><mode>): ...this.
3054
3055 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
3056
3057 * config/aarch64/aarch64-protos.h (aarch64_ptrue_all): Declare.
3058 * config/aarch64/aarch64.c (aarch64_ptrue_all): New function.
3059 * config/aarch64/aarch64.md (UNSPEC_PTEST_PTRUE): Delete.
3060 (UNSPEC_PTEST): New unspec.
3061 (SVE_MAYBE_NOT_PTRUE, SVE_KNOWN_PTRUE): New constants.
3062 * config/aarch64/iterators.md (data_bytes): New mode attribute.
3063 * config/aarch64/predicates.md (aarch64_sve_ptrue_flag): New predicate.
3064 * config/aarch64/aarch64-sve.md: Add a new section describing the
3065 handling of UNSPEC_PTEST.
3066 (pred_<LOGICAL:optab><PRED_ALL:mode>3): Rename to...
3067 (@aarch64_pred_<LOGICAL:optab><PRED_ALL:mode>_z): ...this.
3068 (ptest_ptrue<mode>): Replace with...
3069 (aarch64_ptest<mode>): ...this new pattern.
3070 (cbranch<mode>4): Update after above changes.
3071 (*<LOGICAL:optab><PRED_ALL:mode>3_cc): Use UNSPEC_PTEST instead of
3072 UNSPEC_PTEST_PTRUE.
3073 (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_cc): Likewise.
3074 (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_ptest): Likewise.
3075 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Likewise.
3076
3077 2019-08-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
3078
3079 PR lto/91287
3080 * builtins.c (builtin_with_linkage_p): New function.
3081 * builtins.h (builtin_with_linkage_p): New function.
3082 * symtab.c (write_symbol): Remove redundant assert.
3083 * lto-streamer-out.c (symtab_node::output_to_lto_symbol_table_p):
3084 Remove FIXME and use builtin_with_linkage_p.
3085
3086 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
3087
3088 PR middle-end/91421
3089 * tree-core.h (function_decl::function_code): Change type to
3090 unsigned int.
3091 * tree.h (DECL_FUNCTION_CODE): Rename old definition to...
3092 (DECL_UNCHECKED_FUNCTION_CODE): ...this.
3093 (DECL_BUILT_IN_CLASS): Make an rvalue macro only.
3094 (DECL_FUNCTION_CODE): New function. Assert that the built-in class
3095 is BUILT_IN_NORMAL.
3096 (DECL_MD_FUNCTION_CODE, DECL_FE_FUNCTION_CODE): New functions.
3097 (set_decl_built_in_function, copy_decl_built_in_function): Likewise.
3098 (fndecl_built_in_p): Change the type of the "name" argument to
3099 unsigned int.
3100 * builtins.c (expand_builtin): Move DECL_FUNCTION_CODE use
3101 after check for DECL_BUILT_IN_CLASS.
3102 * cgraphclones.c (build_function_decl_skip_args): Use
3103 set_decl_built_in_function.
3104 * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise.
3105 * ipa-split.c (split_function): Likewise.
3106 * langhooks.c (add_builtin_function_common): Likewise.
3107 * omp-simd-clone.c (simd_clone_create): Likewise.
3108 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
3109 * config/darwin.c (darwin_init_cfstring_builtins): Likewise.
3110 (darwin_fold_builtin): Use DECL_MD_FUNCTION_CODE instead of
3111 DECL_FUNCTION_CODE.
3112 * fold-const.c (operand_equal_p): Compare DECL_UNCHECKED_FUNCTION_CODE
3113 instead of DECL_FUNCTION_CODE.
3114 * lto-streamer-out.c (hash_tree): Use DECL_UNCHECKED_FUNCTION_CODE
3115 instead of DECL_FUNCTION_CODE.
3116 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
3117 * print-tree.c (print_node): Use DECL_MD_FUNCTION_CODE when
3118 printing DECL_BUILT_IN_MD. Handle DECL_BUILT_IN_FRONTEND.
3119 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin)
3120 (aarch64_fold_builtin, aarch64_gimple_fold_builtin): Use
3121 DECL_MD_FUNCTION_CODE instead of DECL_FUNCTION_CODE.
3122 * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
3123 * config/alpha/alpha.c (alpha_expand_builtin, alpha_fold_builtin):
3124 (alpha_gimple_fold_builtin): Likewise.
3125 * config/arc/arc.c (arc_expand_builtin): Likewise.
3126 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
3127 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
3128 * config/avr/avr.c (avr_expand_builtin, avr_fold_builtin): Likewise.
3129 * config/bfin/bfin.c (bfin_expand_builtin): Likewise.
3130 * config/c6x/c6x.c (c6x_expand_builtin): Likewise.
3131 * config/frv/frv.c (frv_expand_builtin): Likewise.
3132 * config/gcn/gcn.c (gcn_expand_builtin_1): Likewise.
3133 (gcn_expand_builtin): Likewise.
3134 * config/i386/i386-builtins.c (ix86_builtin_reciprocal): Likewise.
3135 (fold_builtin_cpu): Likewise.
3136 * config/i386/i386-expand.c (ix86_expand_builtin): Likewise.
3137 * config/i386/i386.c (ix86_fold_builtin): Likewise.
3138 (ix86_gimple_fold_builtin): Likewise.
3139 * config/ia64/ia64.c (ia64_fold_builtin): Likewise.
3140 (ia64_expand_builtin): Likewise.
3141 * config/iq2000/iq2000.c (iq2000_expand_builtin): Likewise.
3142 * config/mips/mips.c (mips_expand_builtin): Likewise.
3143 * config/msp430/msp430.c (msp430_expand_builtin): Likewise.
3144 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
3145 * config/nios2/nios2.c (nios2_expand_builtin): Likewise.
3146 * config/nvptx/nvptx.c (nvptx_expand_builtin): Likewise.
3147 * config/pa/pa.c (pa_expand_builtin): Likewise.
3148 * config/pru/pru.c (pru_expand_builtin): Likewise.
3149 * config/riscv/riscv-builtins.c (riscv_expand_builtin): Likewise.
3150 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3151 Likewise.
3152 * config/rs6000/rs6000-call.c (htm_expand_builtin): Likewise.
3153 (altivec_expand_dst_builtin, altivec_expand_builtin): Likewise.
3154 (rs6000_gimple_fold_builtin, rs6000_expand_builtin): Likewise.
3155 * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function)
3156 (rs6000_builtin_reciprocal): Likewise.
3157 * config/rx/rx.c (rx_expand_builtin): Likewise.
3158 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
3159 * config/s390/s390.c (s390_expand_builtin): Likewise.
3160 * config/sh/sh.c (sh_expand_builtin): Likewise.
3161 * config/sparc/sparc.c (sparc_expand_builtin): Likewise.
3162 (sparc_fold_builtin): Likewise.
3163 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
3164 * config/spu/spu.c (spu_expand_builtin): Likewise.
3165 * config/stormy16/stormy16.c (xstormy16_expand_builtin): Likewise.
3166 * config/tilegx/tilegx.c (tilegx_expand_builtin): Likewise.
3167 * config/tilepro/tilepro.c (tilepro_expand_builtin): Likewise.
3168 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
3169 (xtensa_expand_builtin): Likewise.
3170
3171 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
3172
3173 PR middle-end/91421
3174 * attribs.c (decl_attributes): Check the DECL_BUILT_IN_CLASS
3175 before the DECL_FUNCTION_CODE.
3176 * calls.c (maybe_warn_alloc_args_overflow): Use fndecl_built_in_p
3177 to check for a BUILT_IN_ALLOCA call.
3178 * ipa-cp.c (ipa_get_indirect_edge_target_1): Likewise for
3179 BUILT_IN_UNREACHABLE. Don't check for a FUNCTION_TYPE.
3180 * ipa-devirt.c (possible_polymorphic_call_target_p): Likewise.
3181 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
3182 * gimple-ssa-isolate-paths.c (is_addr_local): Check specifically
3183 for BUILT_IN_NORMAL functions.
3184 * trans-mem.c (expand_block_edges): Use gimple_call_builtin_p to
3185 test for BUILT_IN_TM_ABORT.
3186 * tree-ssa-ccp.c (optimize_stack_restore): Use fndecl_built_in_p
3187 to check for a BUILT_IN_STACK_RESTORE call.
3188 (optimize_stdarg_builtin): Remove redundant check for GIMPLE_CALL.
3189 * tree-ssa-threadedge.c
3190 (record_temporary_equivalences_from_stmts_at_dest): Check for a
3191 BUILT_IN_NORMAL decl before checking its DECL_FUNCTION_CODE.
3192 * tree-vect-patterns.c (vect_recog_pow_pattern): Use a positive
3193 test for a BUILT_IN_NORMAL call instead of a negative test for
3194 an internal function call.
3195
3196 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
3197
3198 * tree.h (build_vector_a_then_b): Declare.
3199 * tree.c (build_vector_a_then_b): New function.
3200 * fold-const-call.c (fold_while_ult): Likewise.
3201 (fold_const_call): Use it to handle IFN_WHILE_ULT.
3202 * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPATTERN): New macro.
3203 (aarch64_svpattern): New enum.
3204 * config/aarch64/aarch64-sve.md (mov<PRED_ALL:mode>): Pass
3205 constants through aarch64_expand_mov_immediate.
3206 (*aarch64_sve_mov<PRED_ALL:mode>): Use aarch64_mov_operand rather
3207 than general_operand as the predicate for operand 1.
3208 (while_ult<GPI:mode><PRED_ALL:mode>): Add a '@' marker.
3209 * config/aarch64/aarch64.c (simd_immediate_info::PTRUE): New
3210 insn_type.
3211 (simd_immediate_info::simd_immediate_info): New overload that
3212 takes a scalar_int_mode and an svpattern.
3213 (simd_immediate_info::u): Add a "pattern" field.
3214 (svpattern_token): New function.
3215 (aarch64_get_sve_pred_bits, aarch64_widest_sve_pred_elt_size)
3216 (aarch64_partial_ptrue_length, aarch64_svpattern_for_vl)
3217 (aarch64_sve_move_pred_via_while): New functions.
3218 (aarch64_expand_mov_immediate): Try using
3219 aarch64_sve_move_pred_via_while for predicates that contain N ones
3220 followed by M zeros but that do not correspond to a VLnnn pattern.
3221 (aarch64_sve_pred_valid_immediate): New function.
3222 (aarch64_simd_valid_immediate): Use it instead of dealing directly
3223 with PTRUE and PFALSE.
3224 (aarch64_output_sve_mov_immediate): Handle new simd_immediate_info
3225 forms.
3226
3227 2019-08-13 Iain Sandoe <iain@sandoe.co.uk>
3228
3229 * config/darwin.c (machopic_indirect_call_target): Rename symbol stub
3230 flag.
3231 (darwin_override_options): Likewise.
3232 * config/darwin.h: Likewise.
3233 * config/darwin.opt: Likewise.
3234 * config/i386/i386.c (output_pic_addr_const): Likewise.
3235 * config/rs6000/darwin.h: Likewise.
3236 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise.
3237 * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ...
3238 ... this TARGET_MACHO_SYMBOL_STUBS.
3239 (FUNCTION_PROFILER):Likewise.
3240 * config/i386/i386.h: Likewise.
3241
3242 2019-08-13 Uroš Bizjak <ubizjak@gmail.com>
3243
3244 * config/i386/i386-expand.c (ix86_expand_vector_extract)
3245 <case E_V2SImode>: Use vec_extr path for
3246 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
3247 <case E_V8QImode>: Ditto.
3248 * config/i386/mmx.md (*mmx_pextrw_zext): Rename from mmx_pextrw.
3249 Use SWI48 mode iterator. Use %k to output operand 0.
3250 (*mmx_pextrw): New insn pattern.
3251 (*mmx_pextrb): Ditto.
3252 (*mmx_pextrb_zext): Ditto.
3253
3254 2019-08-13 Jonathan Wakely <jwakely@redhat.com>
3255
3256 * target.def (libc_has_function, libc_has_fast_function): Improve
3257 documentation strings.
3258 * doc/tm.texi: Regenerate.
3259
3260 2019-08-13 Caroline Tice <cmtice@google.com>
3261
3262 PR other/91396
3263 * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Only add the
3264 vtv_end.o or vtv_end_preinit.o files if !static.
3265
3266 2019-08-13 Olivier Hainque <hainque@adacore.com>
3267
3268 * rtl.h (tablejump_casesi_pattern): Move declaration to proper spot.
3269
3270 2019-08-13 Olivier Hainque <hainque@adacore.com>
3271
3272 * rtlanal.c (tablejump_casesi_pattern): New function, to
3273 determine if a tablejump insn is a casesi dispatcher. Extracted
3274 from patch_jump_insn.
3275 * rtl.h (tablejump_casesi_pattern): Declare.
3276 * cfgrtl.c (patch_jump_insn): Use it.
3277 * dwarf2cfi.c (create_trace_edges): Use it.
3278
3279 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com>
3280
3281 PR target/81800
3282 * gcc/config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF
3283 operand is larger than a long int.
3284
3285 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
3286
3287 * machmode.h (opt_mode::else_mode): New function.
3288 (opt_mode::else_blk): Use it.
3289 * config/aarch64/aarch64-protos.h (aarch64_vq_mode): Declare.
3290 (aarch64_full_sve_mode, aarch64_sve_ld1rq_operand_p): Likewise.
3291 (aarch64_gen_stepped_int_parallel): Likewise.
3292 (aarch64_stepped_int_parallel_p): Likewise.
3293 (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
3294 argument.
3295 * config/aarch64/aarch64.c
3296 (aarch64_expand_sve_widened_duplicate): Delete.
3297 (aarch64_expand_sve_dupq, aarch64_expand_sve_ld1rq): New functions.
3298 (aarch64_expand_sve_const_vector): Rewrite to handle more cases.
3299 (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
3300 argument. Use early returns in the !CONST_INT_P handling.
3301 Pass all SVE data vectors to aarch64_expand_sve_const_vector rather
3302 than handling some inline.
3303 (aarch64_full_sve_mode, aarch64_vq_mode): New functions, split out
3304 from...
3305 (aarch64_simd_container_mode): ...here.
3306 (aarch64_gen_stepped_int_parallel, aarch64_stepped_int_parallel_p)
3307 (aarch64_sve_ld1rq_operand_p): New functions.
3308 * config/aarch64/predicates.md (descending_int_parallel)
3309 (aarch64_sve_ld1rq_operand): New predicates.
3310 * config/aarch64/constraints.md (UtQ): New constraint.
3311 * config/aarch64/aarch64.md (UNSPEC_REINTERPRET): New unspec.
3312 * config/aarch64/aarch64-sve.md (mov<SVE_ALL:mode>): Remove the
3313 gen_vec_duplicate from call to aarch64_expand_mov_immediate.
3314 (@aarch64_sve_reinterpret<mode>): New expander.
3315 (*aarch64_sve_reinterpret<mode>): New pattern.
3316 (@aarch64_vec_duplicate_vq<mode>_le): New pattern.
3317 (@aarch64_vec_duplicate_vq<mode>_be): Likewise.
3318 (*sve_ld1rq<Vesize>): Replace with...
3319 (@aarch64_sve_ld1rq<mode>): ...this new pattern.
3320
3321 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com>
3322
3323 * config/aarch64/aarch64.c (generic_tunings): Set function alignment to
3324 16:12.
3325
3326 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3327
3328 * config/msp430/driver-msp430.c (msp430_set_driver_var): New.
3329 * config/msp430/msp430-devices.c (canonicalize_path_dirsep): New.
3330 (msp430_check_path_for_devices): New.
3331 (parse_devices_csv_1): New.
3332 (parse_devices_csv): New.
3333 (msp430_extract_mcu_data): Try to find devices.csv and search for the
3334 MCU data in devices.csv before using the hard-coded data.
3335 Warn if devices.csv isn't found and the MCU wasn't found in the
3336 hard-coded data either.
3337 * config/msp430/msp430.h (DRIVER_SELF_SPECS): Call
3338 msp430_set_driver_var for -mno-warn-devices-csv and -mdevices-csv-loc.
3339 Search for devices.csv on -I and -L paths.
3340 (EXTRA_SPEC_FUNCTIONS): Add msp430_check_path_for_devices and
3341 msp430_set_driver_var.
3342 * config/msp430/msp430.opt: Add -mwarn-devices-csv and
3343 -mdevices-csv-loc=.
3344 * doc/invoke.texi (-mmcu): Document that -I and -L paths are
3345 searched for devices.csv.
3346 (mwarn-devices-csv): Document option.
3347
3348 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
3349
3350 * config/aarch64/aarch64-protos.h (aarch64_output_ptrue): Delete.
3351 * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<PRED_ALL:mode>):
3352 Use a single Dn alternative instead of separate Dz and Dm
3353 alternatives. Use aarch64_output_sve_move_immediate.
3354 * config/aarch64/aarch64.c (aarch64_sve_element_int_mode): New
3355 function.
3356 (aarch64_simd_valid_immediate): Fill in the simd_immediate_info
3357 for predicates too.
3358 (aarch64_output_sve_mov_immediate): Handle predicate modes.
3359 (aarch64_output_ptrue): Delete.
3360
3361 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
3362
3363 * config/aarch64/aarch64.c (simd_immediate_info::insn_type): Add
3364 INDEX.
3365 (simd_immediate_info::value, simd_immediate_info::step)
3366 (simd_immediate_info::modifier, simd_immediate_info::shift): Replace
3367 with...
3368 (simd_immediate_info::u): ...this new union.
3369 (simd_immediate_info::simd_immediate_info): Update accordingly.
3370 (aarch64_output_simd_mov_immediate): Likewise.
3371 (aarch64_output_sve_mov_immediate): Likewise.
3372
3373 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3374
3375 * config.gcc (msp430*-*-*): Add msp430-devices.o to extra_objs and
3376 extra_gcc_objs.
3377 * config/msp430/driver-msp430.c: Remove msp430_mcu_data.
3378 (msp430_select_cpu): New spec function.
3379 (msp430_select_hwmult_lib): Use msp430_extract_mcu_data to extract
3380 MCU data.
3381 * config/msp430/msp430-devices.c: New file.
3382 * config/msp430/msp430-devices.h: New file.
3383 * config/msp430/msp430.c: Remove msp430_mcu_data.
3384 (msp430_option_override): Use msp430_extract_mcu_data to extract
3385 MCU data.
3386 (msp430_use_f5_series_hwmult): Likewise.
3387 (use_32bit_hwmult): Likewise.
3388 (msp430_no_hwmult): Likewise.
3389 * config/msp430/msp430.h (ASM_SPEC): Don't pass -mmcu to the
3390 assembler.
3391 (DRIVER_SELF_SPECS): Call msp430_select_cpu if -mmcu is used without
3392 and -mcpu option.
3393 (EXTRA_SPEC_FUNCTIONS): Add msp430_select_cpu.
3394 * config/msp430/t-msp430: Add rule to build msp430-devices.o.
3395 Remove hard-coded MCU multilib data.
3396
3397 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
3398
3399 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Switch
3400 based on the mode instead of testing properties of it.
3401
3402 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
3403
3404 * doc/md.texi: Document the x and y constraints for AArch64.
3405 * config/aarch64/aarch64.h (FP_LO8_REGNUM_P): New macro.
3406 (FP_LO8_REGS): New reg_class.
3407 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add an entry for FP_LO8_REGS.
3408 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs)
3409 (aarch64_regno_regclass, aarch64_class_max_nregs): Handle FP_LO8_REGS.
3410 * config/aarch64/predicates.md (aarch64_simd_register): Use
3411 FP_REGNUM_P instead of checking the classes manually.
3412 * config/aarch64/constraints.md (y): New constraint.
3413
3414 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
3415
3416 * config/aarch64/iterators.md (perm_insn): Include the "1"/"2" suffix.
3417 (perm_hilo): Remove UNSPEC_ZIP*, UNSEPC_TRN* and UNSPEC_UZP*.
3418 * config/aarch64/aarch64-simd.md
3419 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Rename to..
3420 (aarch64_<PERMUTE:perm_insn><mode>): ...this and remove perm_hilo
3421 from the asm template.
3422 * config/aarch64/aarch64-sve.md
3423 (aarch64_<perm_insn><perm_hilo><PRED_ALL:mode>): Rename to..
3424 (aarch64_<perm_insn><PRED_ALL:mode>): ...this and remove perm_hilo
3425 from the asm template.
3426 (aarch64_<perm_insn><perm_hilo><SVE_ALL:mode>): Rename to..
3427 (aarch64_<perm_insn><SVE_ALL:mode>): ...this and remove perm_hilo
3428 from the asm template.
3429 * config/aarch64/aarch64-simd-builtins.def: Update comment.
3430
3431 2019-08-13 Martin Liska <mliska@suse.cz>
3432
3433 * value-prof.c (gimple_ic_transform): Add new line.
3434 Print details with MSG_NOTE.
3435
3436 2019-08-13 Martin Liska <mliska@suse.cz>
3437
3438 * doc/invoke.texi: Document automatic detection of jobserver.
3439 * lto-wrapper.c (run_gcc): Detect jobserver always.
3440
3441 2019-08-13 Uroš Bizjak <ubizjak@gmail.com>
3442
3443 * config/i386/i386-expand.c (ix86_expand_vector_set)
3444 <case E_V2SImode>: Use vec_merge path for
3445 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
3446 <case E_V8QImode>: Ditto.
3447 * config/i386/mmx.md (*mmx_pinsrd): New insn pattern.
3448 (*mmx_pinsrb): Ditto.
3449
3450 2019-08-12 Jakub Jelinek <jakub@redhat.com>
3451
3452 PR target/83250
3453 PR target/91340
3454 * config/i386/avxintrin.h (_mm256_zextpd128_pd256,
3455 _mm256_zextps128_ps256, _mm256_zextsi128_si256): New intrinsics.
3456 * config/i386/avx512fintrin.h (_mm512_zextpd128_pd512,
3457 _mm512_zextps128_ps512, _mm512_zextsi128_si512, _mm512_zextpd256_pd512,
3458 _mm512_zextps256_ps512, _mm512_zextsi256_si512): Likewise.
3459
3460 2019-08-12 Richard Biener <rguenther@suse.de>
3461
3462 PR lto/91375
3463 * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on
3464 flag_devirtualize.
3465
3466 2019-08-12 Richard Biener <rguenther@suse.de>
3467
3468 PR driver/91130
3469 * lto-wrapper.c (get_options_from_collect_gcc_options): Remove
3470 lang_mask option, always use CL_DRIVER.
3471 (get_options_from_collect_gcc_options): Adjust.
3472 (find_and_merge_options): Likewise.
3473 (run_gcc): Likewise.
3474
3475 2019-08-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3476
3477 * ipa-predicate.c (add_condition): Restore inverted test.
3478
3479 2019-08-10 Jakub Jelinek <jakub@redhat.com>
3480
3481 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DEVICE_TYPE.
3482 (enum omp_clause_device_type_kind): New enum.
3483 (struct tree_omp_clause): Add subcode.device_type_kind.
3484 * tree.h (OMP_CLAUSE_DEVICE_TYPE_KIND): Define.
3485 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
3486 for device_type clause.
3487 (walk_tree_1): Handle OMP_CLAUSE_DEVICE_TYPE.
3488 * tree-pretty-print.c (dump_omp_clause): Likewise.
3489
3490 PR target/91408
3491 * config/i386/mmx.md (usadv8qi): Use register_operand instead of
3492 vector_operand.
3493
3494 2019-08-09 Vladimir Makarov <vmakarov@redhat.com>
3495
3496 * reload1.c (finish_spills): Do not check ira_conflicts_p when
3497 handling spilled pseudos.
3498
3499 2019-08-09 Richard Earnshaw <rearnsha@arm.com>
3500
3501 PR target/91386
3502 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Use copy_rtx
3503 to preserve the contents of the original insns.
3504
3505 2019-08-09 Richard Earnshaw <rearnsha@arm.com>
3506
3507 * config/arm/arm.md (addsi3_compare_op1): Add 16-bit thumb-2 variants.
3508 (addsi3_compare_op2): Likewise.
3509
3510 2019-08-09 Martin Liska <mliska@suse.cz>
3511
3512 * alias.c (alias_ptr_types_compatible_p): Strengten
3513 type comparison in LTO mode.
3514
3515 2019-08-09 Richard Sandiford <richard.sandiford@arm.com>
3516
3517 PR middle-end/90313
3518 * tree-tailcall.c (find_tail_calls): Reject calls that might
3519 read from an escaped RESULT_DECL.
3520
3521 2019-08-09 Martin Liska <mliska@suse.cz>
3522
3523 * doc/invoke.texi: Document the option value.
3524 * lto-wrapper.c (run_gcc): Set auto_parallel
3525 only with -flto=auto.
3526
3527 2019-08-09 Martin Liska <mliska@suse.cz>
3528
3529 * opts.c (common_handle_option): Error for an invalid argument
3530 to -flto=.
3531
3532 2019-08-09 Martin Liska <mliska@suse.cz>
3533
3534 * ipa-icf.c (sem_function::merge): Define AUTO_DUMP_SCOPE and
3535 use dump_printf to report optimization.
3536 (sem_variable::merge): Likwise.
3537 (sem_item_optimizer::merge_classes): Use dump_printf to report
3538 ICF hits.
3539
3540 2019-08-09 Martin Liska <mliska@suse.cz>
3541
3542 * value-prof.c (gimple_divmod_fixed_value_transform):
3543 Use dump_printf_loc.
3544 (gimple_mod_pow2_value_transform): Likewise.
3545 (gimple_mod_subtract_transform): Likewise.
3546 (init_node_map): Likewise.
3547 (gimple_ic_transform): Likewise.
3548 (gimple_stringops_transform): Likewise.
3549
3550 2019-08-08 Mihailo Stojanovic <mistojanovic@wavecomp.com>
3551
3552 * doc/extend.texi: Add const qualifier to ld intrinsics.
3553
3554 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org>
3555
3556 * config/rs6000/dfp.md (D64_D128): Rename to ...
3557 (DDTD): ... this, throughout.
3558 (dfp_suffix): Rename to ...
3559 (q): ... this, throughout.
3560
3561 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org>
3562
3563 * config/rs6000/dfp.md (D64_D128): Move earlier in the file.
3564 (dfp_suffix): Ditto.
3565 (adddd3, addtd3): Merge to ...
3566 (add<mode>3 for D64_D128): ... this.
3567 (subdd3, subtd3): Merge to ...
3568 (sub<mode>3 for D64_D128): ... this.
3569 (muldd3, multd3): Merge to ...
3570 (mul<mode>3 for D64_D128): ... this.
3571 (divdd3, divtd3): Merge to ...
3572 (div<mode>3 for D64_D128): ... this.
3573 (*cmpdd_internal1, *cmptd_internal1): Merge to ...
3574 (*cmp<mode>_internal1 for D64_D128): ... this.
3575 (ftruncdd2, ftrunctd2): Merge to ...
3576 (ftrunc<mode>2 for D64_D128): ... this.
3577 (fixdddi2, fixtddi2): Merge to ...
3578 (fix<mode>di2 for D64_D128): ... this.
3579
3580 2019-08-08 Jim Wilson <jimw@sifive.com>
3581
3582 PR target/91229
3583 * config/riscv/riscv.c (riscv_flatten_aggregate_field): New arg
3584 ignore_zero_width_bit_field_p. Skip zero size bitfields when true.
3585 Pass into recursive call.
3586 (riscv_flatten_aggregate_argument): New arg. Pass to
3587 riscv_flatten_aggregate_field.
3588 (riscv_pass_aggregate_in_fpr_pair_p): New local warned. Call
3589 riscv_flatten_aggregate_argument twice, with false and true as last
3590 arg. Process result twice. Compare results and warn if different.
3591 (riscv_pass_aggregate_in_fpr_and_gpr_p): Likewise.
3592
3593 2019-08-08 Martin Liska <mliska@suse.cz>
3594
3595 PR bootstrap/91352
3596 * gcc.c (driver::detect_jobserver): Use is_valid_fd.
3597 * lto-wrapper.c (jobserver_active_p): Likewise.
3598
3599 2019-08-08 Martin Liska <mliska@suse.cz>
3600
3601 * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop
3602 IS_OPERATOR_NEW and IS_OPERATOR_DELETE.
3603 (create_version_clone_with_body): Likewise.
3604
3605 2019-08-08 Jakub Jelinek <jakub@redhat.com>
3606
3607 * gimplify.c (omp_add_variable): Use GOVD_PRIVATE | GOVD_EXPLICIT
3608 for VLA helper variables on target data even if not GOVD_FIRSTPRIVATE.
3609 (gimplify_scan_omp_clauses): For OMP_CLAUSE_USE_DEVICE_* use just
3610 GOVD_EXPLICIT flags.
3611 (gimplify_omp_workshare): For OMP_TARGET_DATA move all
3612 OMP_CLAUSE_USE_DEVICE_* clauses to the end of clauses chain.
3613 * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_USE_DEVICE_*
3614 call install_var_field with mask 11 instead of 3.
3615 (lower_omp_target): For OMP_CLAUSE_USE_DEVICE_* use pass
3616 (splay_tree_key) &DECL_UID (var) to build_sender_ref instead of var.
3617
3618 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3619
3620 * config/aarch64/constraints.md (Z): Handle floating-point zeros too.
3621 * config/aarch64/predicates.md (aarch64_reg_or_zero): Likewise.
3622
3623 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3624
3625 * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): Add
3626 MOVPRFX alternatives. Make the GPR alternatives more expensive
3627 than the FPR ones.
3628
3629 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3630
3631 * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>):
3632 Disparage the GPR alternative relative to the FPR one.
3633 Fix handling of 8-bit and 16-bit FPR values.
3634
3635 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3636
3637 * config/aarch64/iterators.md (BITWISEV): Delete.
3638 (SVE_INT_REDUCTION, SVE_FP_REDUCTION): New int iterators.
3639 (optab): Handle UNSPEC_UMAXV, UNSPEC_UMINV, UNSPEC_SMAXV,
3640 UNSPEC_SMINV, UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
3641 UNSPEC_FMINNMV, UNSPEC_FMINV.
3642 (bit_reduc_op): Delete.
3643 (sve_int_op): New int attribute.
3644 (sve_fp_op): Handle UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
3645 UNSPEC_FMINNMV, UNSPEC_FMINV.
3646 * config/aarch64/aarch64-sve.md
3647 (reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
3648 (*reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
3649 (reduc_<BITWISEV:optab>_scal_<SVE_I:mode>)
3650 (*reduc_<BITWISEV:optab>_scal_<SVE_I:mode>): Merge into...
3651 (reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>)
3652 (*reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>): ...these
3653 new patterns.
3654 (reduc_plus_scal_<SVE_F:mode>, *reduc_plus_scal_<SVE_I:mode>)
3655 (reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>)
3656 (*reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>): Merge into...
3657 (reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>)
3658 (*reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>): ...these
3659 new patterns.
3660
3661 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3662
3663 * config/aarch64/aarch64-sve.md (fma<mode>4, *fma<mode>4)
3664 (fnma<mode>4, *fnma<mode>4, fnms<mode>4, *fnms<mode>4)
3665 (fms<mode>4, *fms<mode>4): Replace with...
3666 (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
3667 (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): ...these new patterns.
3668 Use unspecs instead of rtx codes.
3669 (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_4)
3670 (*cond_<optab><mode>_any): Add the predicate to SVE_COND_FP_TERNARY.
3671
3672 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3673
3674 * config/aarch64/iterators.md (SVE_COND_FP_MAXMIN_PUBLIC): New
3675 int iterator.
3676 (maxmin_uns_op): Handle UNSPEC_COND_FMAXNM and UNSPEC_COND_FMINNM.
3677 * config/aarch64/aarch64-sve.md
3678 (<FMAXMIN:su><FMAXMIN:maxmin><SVE_F:mode>3): Rename to...
3679 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): ...this and
3680 use a single unspec for the rhs.
3681 (*<su><maxmin><mode>3): Delete.
3682 (<maxmin_uns><SVE_F:mode>3): Use a single unspec for the rhs.
3683
3684 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3685
3686 * config/aarch64/iterators.md (UNSPEC_COND_FABS, UNSPEC_COND_FNEG)
3687 (UNSPEC_COND_FRINTA, UNSPEC_COND_FRINTI, UNSPEC_COND_FRINTM)
3688 (UNSPEC_COND_FRINTN, UNSPEC_COND_FRINTP, UNSPEC_COND_FRINTX)
3689 (UNSPEC_COND_FRINTZ, UNSPEC_COND_FSQRT): New unspecs.
3690 (optab, sve_fp_op): Handle them.
3691 (SVE_FP_UNARY): Delete.
3692 (optab): Remove sqrt entry.
3693 (sve_fp_op): Remove neg, abs and sqrt entries.
3694 (SVE_COND_FP_UNARY): New int iterator.
3695 * config/aarch64/aarch64-sve.md (<frint_pattern><mode>2)
3696 (*<frint_pattern><mode>2): Delete.
3697 (<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
3698 (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
3699 (*<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
3700 (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
3701
3702 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3703
3704 * config/aarch64/aarch64-sve.md (*pred_fold_left_plus_<mode>): Delete.
3705
3706 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3707
3708 * config/aarch64/iterators.md (UNSPEC_COND_ADD): Rename to...
3709 (UNSPEC_COND_FADD): ...this.
3710 (UNSPEC_COND_SUB): Rename to...
3711 (UNSPEC_COND_FSUB): ...this.
3712 (UNSPEC_COND_MUL): Rename to...
3713 (UNSPEC_COND_FMUL): ...this.
3714 (UNSPEC_COND_DIV): Rename to...
3715 (UNSPEC_COND_FDIV): ...this.
3716 (UNSPEC_COND_MAX): Rename to...
3717 (UNSPEC_COND_FMAXNM): ...this.
3718 (UNSPEC_COND_MIN): Rename to...
3719 (UNSPEC_COND_FMINNM): ...this.
3720 (UNSPEC_COND_LT): Rename to...
3721 (UNSPEC_COND_FCMLT): ...this.
3722 (UNSPEC_COND_LE): Rename to...
3723 (UNSPEC_COND_FCMLE): ...this.
3724 (UNSPEC_COND_EQ): Rename to...
3725 (UNSPEC_COND_FCMEQ): ...this.
3726 (UNSPEC_COND_NE): Rename to...
3727 (UNSPEC_COND_FCMNE): ...this.
3728 (UNSPEC_COND_GE): Rename to...
3729 (UNSPEC_COND_FCMGE): ...this.
3730 (UNSPEC_COND_GT): Rename to...
3731 (UNSPEC_COND_FCMGT): ...this.
3732 (SVE_COND_FP_BINARY, SVE_COND_FP_CMP, optab, cmp_op, sve_fp_op)
3733 (sve_fp_op_rev): Update accordingly.
3734 * config/aarch64/aarch64.c (aarch64_unspec_cond_code): Likewise.
3735
3736 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3737
3738 * config/aarch64/aarch64-sve.md: Reorganize contents and add
3739 banner comments.
3740 * config/aarch64/check-sve-md.awk: New file.
3741 * config/aarch64/t-aarch64 (s-check-sve-md): New rule.
3742 (insn-conditions.md): Depend on it.
3743
3744 2019-08-07 Uroš Bizjak <ubizjak@gmail.com>
3745
3746 PR target/91385
3747 * config/i386/sse.md (*negsi2_1_zext): Simplify insn pattern.
3748 (*negsi2_cmpz_zext): Ditto.
3749
3750 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3751
3752 * config/aarch64/iterators.md (commutative): Remove.
3753
3754 2019-08-07 Richard Earnshaw <rearnsha@arm.com>
3755
3756 PR driver/91130
3757 * lto-wrapper.c (find_and_merge_options): Use CL_DRIVER when
3758 processing COLLECT_GCC_OPTIONS.
3759 (run_gcc): Likewise.
3760
3761 2019-08-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
3762
3763 PR tree-optimization/91109
3764 * lra-remat.c (update_scratch_ops): Remove assignment of the
3765 hard register.
3766
3767 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3768
3769 * data-streamer.h (streamer_write_poly_uint64): Declare.
3770 (streamer_read_poly_uint64): Likewise.
3771 * data-streamer-in.c (streamer_read_poly_uint64): New function.
3772 * data-streamer-out.c (streamer_write_poly_uint64): Likewise.
3773 * ipa-predicate.h (condition::size): Turn into a poly_int64.
3774 (add_condition): Take a poly_int64 size.
3775 * ipa-predicate.c (add_condition): Likewise.
3776 * ipa-prop.h (ipa_load_from_parm_agg): Take a poly_int64 size pointer.
3777 * ipa-prop.c (ipa_load_from_parm_agg): Likewise.
3778 (ipcp_modif_dom_walker::before_dom_children): Update accordingly.
3779 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Handle
3780 condition::size as a poly_int64.
3781 (unmodified_parm_1): Take a poly_int64 size pointer.
3782 (unmodified_parm): Likewise.
3783 (unmodified_parm_or_parm_agg_item): Likewise.
3784 (set_cond_stmt_execution_predicate): Update accordingly.
3785 (set_switch_stmt_execution_predicate): Likewise.
3786 (will_be_nonconstant_expr_predicate): Likewise.
3787 (will_be_nonconstant_predicate): Likewise.
3788 (inline_read_section): Stream condition::size as a poly_int.
3789 (ipa_fn_summary_write): Likewise.
3790
3791 2019-08-07 Martin Liska <mliska@suse.cz>
3792
3793 * fold-const.c (twoval_comparison_p): Replace int
3794 with bool as a return type.
3795 (simple_operand_p): Likewise.
3796 (operand_equal_p): Replace int with bool as a return type.
3797 * fold-const.h (operand_equal_p): Likewise.
3798
3799 2019-08-07 Jakub Jelinek <jakub@redhat.com>
3800
3801 * tree-core.h (enum omp_clause_code): Adjust OMP_CLAUSE_USE_DEVICE_PTR
3802 OpenMP description. Add OMP_CLAUSE_USE_DEVICE_ADDR clause.
3803 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
3804 for OMP_CLAUSE_USE_DEVICE_ADDR clause.
3805 (walk_tree_1): Handle OMP_CLAUSE_USE_DEVICE_ADDR.
3806 * tree-pretty-print.c (dump_omp_clause): Likewise.
3807 * tree-nested.c (convert_nonlocal_omp_clauses,
3808 convert_local_omp_clauses): Likewise.
3809 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
3810 Likewise.
3811 * omp-low.c (scan_sharing_clauses, lower_omp_target): Likewise.
3812 Treat OMP_CLAUSE_USE_DEVICE_ADDR like OMP_CLAUSE_USE_DEVICE_PTR
3813 clause with array or reference to array types, no matter what type
3814 except for reference it has.
3815
3816 2019-08-07 Kewen Lin <linkw@gcc.gnu.org>
3817
3818 * config/rs6000/vector.md (vrotr<mode>3): New define_expand.
3819
3820 2019-08-07 Kito Cheng <kito.cheng@sifive.com>
3821
3822 * config/riscv/multilib-generator: (canonical_order): Add 'g'.
3823 (arch_canonicalize): Support rv32g and rv64g and fix error
3824 handling.
3825
3826 2019-08-06 Martin Liska <mliska@suse.cz>
3827
3828 * cgraph.c (cgraph_node::dump): Dump DECL_IS_OPERATOR_NEW_P
3829 and DECL_IS_OPERATOR_DELETE_P.
3830
3831 2019-08-06 Jakub Jelinek <jakub@redhat.com>
3832
3833 * tree.h (OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV): Rename to ...
3834 (OMP_CLAUSE_LASTPRIVATE_LOOP_IV): ... this. Adjust comment.
3835 * gimplify.c (gimple_add_tmp_var): In SIMD contexts, turn addressable
3836 new vars into GOVD_PRIVATE rather than GOVD_LOCAL.
3837 (gimplify_omp_for): Don't do C++ random access iterator clause
3838 adjustments on combined constructs from OMP_LOOP. For OMP_LOOP,
3839 don't predetermine the artificial iterator in case of C++ random
3840 access iterators as lastprivate, but private. For OMP_LOOP, force
3841 bind expr around simd body and force for_pre_body before the
3842 construct. Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of
3843 OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV.
3844 (gimplify_omp_loop): Add firstprivate clauses on OMP_PARALLEL for
3845 diff var of C++ random access iterators. Handle
3846 OMP_CLAUSE_FIRSTPRIVATE. For OMP_CLAUSE_LASTPRIVATE_LOOP_IV, if
3847 not outermost also add OMP_CLAUSE_FIRSTPRIVATE, and in both cases
3848 clear OMP_CLAUSE_LASTPRIVATE_LOOP_IV on the lastprivate clause
3849 on the OMP_FOR and OMP_DISTRIBUTE constructs if any.
3850 * omp-low.c (lower_rec_input_clauses): For
3851 OMP_CLAUSE_LASTPRIVATE_LOOP_IV on simd copy construct the private
3852 variables instead of default constructing them.
3853 (lower_lastprivate_clauses): Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV
3854 instead of OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV and move the
3855 is_taskloop_ctx check from the assert to the guarding condition.
3856
3857 2019-08-06 Kito Cheng <kito.cheng@sifive.com>
3858
3859 * config/riscv/multilib-generator: (canonical_order): New.
3860 (arch_canonicalize): Dito.
3861 Apply arch_canonicalize for alts.
3862
3863 2019-08-05 Martin Sebor <msebor@redhat.com>
3864
3865 * doc/extend.texi (Common Variable Attributes): Document alias
3866 attribute.
3867
3868 2019-08-05 Marek Polacek <polacek@redhat.com>
3869
3870 PR c++/91338 - Implement P1161R3: Deprecate a[b,c].
3871 * doc/invoke.texi: Document -Wcomma-subscript.
3872
3873 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
3874
3875 * tree-core.h (tree_function_decl): Make function_code an
3876 independent field. Group the remaining bitfields into bytes
3877 and move decl_type so that it contines to be at a byte boundary.
3878 Leave 12 bits for future expansion.
3879
3880 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
3881
3882 * gimple-fold.c (gimple_fold_mask_load_store_mem_ref)
3883 (gimple_fold_mask_load, gimple_fold_mask_store): New functions.
3884 (gimple_fold_call): Use them to fold IFN_MASK_LOAD and
3885 IFN_MASK_STORE.
3886
3887 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
3888
3889 * gimple.h (gimple_move_vops): Declare.
3890 * gimple.c (gimple_move_vops): New function
3891 * gimple-fold.c (replace_call_with_call_and_fold)
3892 (gimple_fold_builtin_memory_op, gimple_fold_builtin_memset)
3893 (gimple_fold_builtin_stpcpy, fold_builtin_atomic_compare_exchange)
3894 (gimple_fold_call): Use it.
3895 * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise.
3896 * tree-call-cdce.c (use_internal_fn): Likewise.
3897 * tree-if-conv.c (predicate_load_or_store): Likewise.
3898 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
3899 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
3900 * tree-ssa-propagate.c (finish_update_gimple_call): Likewise.
3901 (update_call_from_tree): Likewise.
3902 * tree-vect-stmts.c (vectorizable_load): Likewise.
3903 * tree-vectorizer.c (adjust_simduid_builtins): Likewise.
3904
3905 2019-08-05 Martin Liska <mliska@suse.cz>
3906
3907 PR c++/91334
3908 * tree-ssa-dce.c (propagate_necessity): Handle new operators
3909 with not arguments.
3910 (eliminate_unnecessary_stmts): Likewise.
3911
3912 2019-08-05 Richard Biener <rguenther@suse.de>
3913
3914 PR middle-end/91169
3915 * fold-const.c (get_array_ctor_element_at_index): Create
3916 offset_ints according to the sign of the index type and treat
3917 that as signed if it is obviously so.
3918
3919 2019-08-05 Jakub Jelinek <jakub@redhat.com>
3920
3921 PR target/91341
3922 * config/i386/avxintrin.h (_mm256_loadu2_m128, _mm256_storeu2_m128,
3923 _mm256_loadu2_m128d, _mm256_storeu2_m128d, _mm256_loadu2_m128i,
3924 _mm256_storeu2_m128i): New function.
3925
3926 2019-08-05 Kito Cheng <kito.cheng@sifive.com>
3927
3928 * config/riscv/riscv.c (riscv_promote_function_mode): New.
3929 (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode.
3930
3931 2019-08-05 Alan Modra <amodra@gmail.com>
3932
3933 PR target/91349
3934 * config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC),
3935 (LINK_GCC_C_SEQUENCE_SPEC): Undef.
3936
3937 2019-08-04 Gerald Pfeifer <gerald@pfeifer.com>
3938
3939 * doc/install.texi (Prerequisites): Remove reference to Tcl 8.6
3940 bug that was fixed in Tcl 8.6.1.
3941
3942 2019-08-02 Michael Meissner <meissner@linux.ibm.com>
3943
3944 * config/rs6000/future.md: New file.
3945 * config/rs6000/rs6000.md: Include future.md.
3946 * config/rs6000/t-rs6000 (MD_INCLUDES): Add future.md.
3947
3948 2019-08-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
3949
3950 * function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT
3951 check to use targetm.slow_unaligned_access instead.
3952
3953 * function.c (assign_param_data_one): Remove unused data members.
3954
3955 2019-08-02 Steve Ellcey <sellcey@marvell.com>
3956
3957 * omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to
3958 build_distinct_type_copy.
3959 (simd_clone_adjust_argument_types): Ditto.
3960 (simd_clone_adjust): Call build_distinct_type_copy here.
3961 (expand_simd_clones): Ditto.
3962
3963 2019-08-02 Uroš Bizjak <ubizjak@gmail.com>
3964
3965 PR target/91201
3966 * config/i386/sse.md (*vec_extractv16qi_zext): New insn pattern.
3967
3968 2019-08-02 Alexander Monakov <amonakov@ispras.ru>
3969
3970 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Simplify casts
3971 from 'const void *'.
3972 (sort_locs_in_loop_postorder_cmp): Likewise.
3973
3974 2019-08-02 Eric Botcazou <ebotcazou@adacore.com>
3975
3976 * doc/invoke.texi (hot-bb-count-fraction): Rework description.
3977 (hot-bb-count-ws-permille): Likewise.
3978 (hot-bb-frequency-fraction): Likewise.
3979 (unlikely-bb-count-fraction): Likewise.
3980 * params.def (hot-bb-count-fraction): Rework description.
3981 (hot-bb-count-ws-permille): Likewise.
3982 (hot-bb-frequency-fraction): Likewise.
3983 (unlikely-bb-count-fraction): Likewise. Remove min and max values.
3984 * predict.c (get_hot_bb_threshold): Deal with 0 HOT_BB_COUNT_FRACTION.
3985
3986 2019-08-02 Uroš Bizjak <ubizjak@gmail.com>
3987
3988 PR target/91323
3989 * config/i386/i386-expand.c (ix86_unordered_fp_compare) <case LTGT>:
3990 Return false.
3991
3992 2019-08-02 Richard Biener <rguenther@suse.de>
3993
3994 * vec.h (vec::sort): Add gcc_qsort_r support.
3995 (vec::bsearch): Add an overload with gcc_qsort_r style callbacks.
3996 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Adjust
3997 to gcc_qsort_r style callback.
3998 (sort_locs_in_loop_postorder_cmp): Likewise.
3999 (analyze_memory_references): Use gcc_sort_r interfaces.
4000 (find_ref_loc_in_loop_cmp): Use new bsearch overload.
4001
4002 2019-08-02 Martin Liska <mliska@suse.cz>
4003
4004 PR lto/91313
4005 * gcc.c (driver::maybe_run_linker): Call detect_jobserver
4006 to detect working job server.
4007 (driver::detect_jobserver): Test whether jobserver
4008 is active from GCC driver. That will prevent situation where
4009 GCC is invoked from a LD plugin and the linker already uses
4010 file descriptors suggested by make. That leads to a wrong
4011 detection.
4012 * gcc.h (driver): Add detect_jobserver.
4013 * lto-wrapper.c (jobserver_active_p): Simplify sscanf by
4014 not scanning for --jobserver-auth prefix.
4015
4016 2019-08-02 Jakub Jelinek <jakub@redhat.com>
4017
4018 PR tree-optimization/91201
4019 * config/i386/i386-expand.c (ix86_expand_vector_extract): For elt == 0
4020 V16QImode extraction without sse4.1 try to use V4SImode lowpart
4021 extraction.
4022
4023 2019-08-01 Martin Sebor <msebor@redhat.com>
4024
4025 PR c++/90947
4026 * tree.c (type_initializer_zero_p): Define.
4027 * tree.h (type_initializer_zero_p): New function.
4028
4029 2019-08-01 Eric Botcazou <ebotcazou@adacore.com>
4030
4031 * cfgrtl.c (relink_block_chain): Add line returns in dump file.
4032
4033 2019-08-01 Eric Botcazou <ebotcazou@adacore.com>
4034
4035 * cgraph.h (cgraph_edge::maybe_hot_p): Tweak comment.
4036 * cgraph.c (cgraph_edge::maybe_hot_p): Likewise. Remove useless test.
4037 * predict.c (maybe_hot_count_p): Likewise.
4038 (maybe_hot_bb_p): Tweak comment.
4039 (maybe_hot_edge_p): Likewise.
4040 (probably_never_executed): Likewise. Minor tweak.
4041 (probably_never_executed_bb_p): Likewise.
4042 (unlikely_executed_edge_p): Likewise.
4043 (probably_never_executed_edge_p): Likewise.
4044 (optimize_function_for_size_p): Likewise.
4045 (optimize_function_for_speed_p): Likewise.
4046 (function_optimization_type): Likewise.
4047 (optimize_bb_for_size_p): Likewise.
4048 (optimize_bb_for_speed_p): Likewise.
4049 (bb_optimization_type): Likewise.
4050 (optimize_edge_for_size_p): Likewise.
4051 (optimize_edge_for_speed_p): Likewise.
4052 (optimize_insn_for_size_p): Likewise.
4053 (optimize_insn_for_speed_p): Likewise.
4054 (optimize_loop_for_size_p): Likewise.
4055 (optimize_loop_for_speed_p): Likewise.
4056 (optimize_loop_nest_for_speed_p): Likewise.
4057 (optimize_loop_nest_for_size_p): Likewise.
4058 (predictable_edge_p): Likewise.
4059 (handle_missing_profiles): Minor tweak.
4060
4061 2019-08-01 Michael Meissner <meissner@linux.ibm.com>
4062
4063 * config/rs6000/predicates.md (pcrel_external_address): Update
4064 comment.
4065
4066 2019-08-01 Uroš Bizjak <ubizjak@gmail.com>
4067
4068 PR target/85693
4069 * config/i386/mmx.md (usadv8qi): New expander.
4070
4071 2019-08-01 Matthew Beliveau <mbelivea@redhat.com>
4072
4073 PR c++/90590
4074 * c-warn.c (c_do_switch_warnings): Suppress warning for enumerators
4075 with reserved names that are in a system header.
4076
4077 2019-08-01 Uroš Bizjak <ubizjak@gmail.com>
4078
4079 * config/i386/mmx.md (vec_extractv2si_0): Add (r,x) alternative.
4080 (*vec_extractv2si_0_zext_sse4): New insn pattern.
4081 (*vec_extractv2si_0_zext): Ditto.
4082 (*vec_extractv2si_1): Add (rm,x) alternative.
4083 (*vec_extractv2si_1_zext): New insn pattern.
4084 (*vec_extractv2si_zext_mem): Add "TARGET_MMX || TARGET_MMX_WITH_SSE"
4085 insn constraint.
4086
4087 2019-08-01 Richard Biener <rguenther@suse.de>
4088
4089 * domwalk.c (bb_postorder): Remove static variable.
4090 (cmp_bb_postorder): Adjust.
4091 (sort_bbs_postorder): Adjust and use gcc_sort_r.
4092 (dom_walker::walk): Adjust.
4093
4094 2019-08-01 Alexander Monakov <amonakov@ispras.ru>
4095
4096 * sort.cc (sort_r_ctx): New struct.
4097 (reorder23): Make templated on context type.
4098 (reorder45): Ditto.
4099 (cmp1): Ditto. Adjust signature.
4100 (netsort): Ditto.
4101 (mergesort): Ditto.
4102 [CHECKING_P] (cmp2to3): New static function. Use it...
4103 (gcc_qsort) [CHECKING_P]: ...here.
4104 (gcc_sort_r): New function.
4105 * system.h (sort_r_cmp_fn): New function typedef.
4106 (qsort_chk): Adjust signature.
4107 (gcc_sort_r): Declare.
4108 * vec.c (qsort_chk_error): Adjust.
4109 (qsort_chk): Adjust.
4110
4111 2019-08-01 Richard Biener <rguenther@suse.de>
4112
4113 * tree-ssa-pre.c (has_abnormal_preds): Remove global var.
4114 (compute_antic): Localize it here.
4115
4116 2019-07-31 Maxim Blinov <maxim.blinov@embecosm.com>
4117
4118 * common/config/riscv/riscv-common.c: Check -march string ends
4119 with null.
4120
4121 2019-07-31 Alexander Monakov <amonakov@ispras.ru>
4122
4123 * ipa-devirt.c (type_warning_cmp): Make static.
4124 (decl_warning_cmp): Ditto.
4125
4126 2019-07-31 Peter Bergner <bergner@linux.ibm.com>
4127
4128 PR target/91050
4129 * config/rs6000/rs6000.opt (mdejagnu-cpu=): Delete option.
4130 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
4131 use of deleted rs6000_dejagnu_cpu_index variable.
4132 * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Define.
4133 (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
4134 * config/darwin.h (DRIVER_SELF_SPECS): Rename from this ...
4135 (SUBTARGET_DRIVER_SELF_SPECS): ...to this.
4136 * config/i386/i386.h (DRIVER_SELF_SPECS): Define.
4137 (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
4138
4139 2019-07-31 Richard Biener <rguenther@suse.de>
4140
4141 PR tree-optimization/91280
4142 * tree-ssa-structalias.c (get_constraint_for_component_ref):
4143 Decompose MEM_REF manually for offset handling.
4144
4145 2019-07-31 Richard Biener <rguenther@suse.de>
4146
4147 PR tree-optimization/91293
4148 * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands
4149 of reduction stmts.
4150
4151 2019-07-31 Matt Thomas <matt@3am-software.com>
4152 Nick Hudson <nick@nthcliff.demon.co.uk>
4153 Matthew Green <mrg@eterna.com.au>
4154 Maya Rashish <coypu@sdf.org>
4155
4156 * config.gcc (hppa*-*-netbsd*): New target.
4157 * config/pa/pa-netbsd.h: New file.
4158 * config/pa/pa32-netbsd.h: New file.
4159
4160 2019-07-31 Jakub Jelinek <jakub@redhat.com>
4161
4162 PR tree-optimization/91201
4163 * config/i386/mmx.md (reduc_plus_scal_v8qi): New expander.
4164
4165 2019-07-31 Andrew Stubbs <ams@codesourcery.com>
4166
4167 * config/gcn/gcn-valu.md
4168 (scatter<mode>_insn_1offset<exec_scatter>): Remove s_waitcnt.
4169 (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
4170 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
4171 * config/gcn/gcn.c (gcn_md_reorg): Add delayeduse and reads to
4172 struct ilist. Add nops for delayeduse insns.
4173 * config/gcn/gcn.md (delayeduse): New attribute.
4174 (*movbi): Remove s_waitcnt from stores.
4175 (*mov<mode>_insn): Likewise.
4176 (*movti_insn): Likewise. Add delayeduse attribute.
4177 (sync_compare_and_swap<mode>_insn): Add delayeduse attribute.
4178 (atomic_store<mode>): Remove or adjust s_waitcnt.
4179
4180 2019-07-31 Richard Biener <rguenther@suse.de>
4181
4182 * vr-values.h (vr_values::swap_vr_value): New.
4183 (vr_values::free_value_range): likewise.
4184 * vr-values.c (vr_values::swap_vr_value): Implement.
4185 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::pop_value_range):
4186 Do not return a range or take a var.
4187 (evrp_range_analyzer::stack): Change back to recording a non-const
4188 value_range *.
4189 * gimple-ssa-evrp-analyze.c
4190 (evrp_range_analyzer::record_ranges_from_stmt): Free unused
4191 value-range.
4192 (evrp_range_analyzer::pop_to_marker): Adjust.
4193 (evrp_range_analyzer::push_value_range): Use new swap_vr_value.
4194 (evrp_range_analyzer::pop_value_range): Likewise. Free the
4195 no longer needed value-range.
4196
4197 2019-07-31 Martin Liska <mliska@suse.cz>
4198
4199 * tree-ssa-dce.c (propagate_necessity): Delete operator can
4200 have size and (or) alignment as 2nd and later arguments.
4201 Mark all of them as necessary.
4202
4203 2019-07-31 Richard Biener <rguenther@suse.de>
4204
4205 PR tree-optimization/91178
4206 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
4207 Use tail-recursion.
4208
4209 2019-07-31 Jakub Jelinek <jakub@redhat.com>
4210
4211 PR tree-optimization/91201
4212 * config/i386/sse.md (reduc_plus_scal_v16qi): New expander.
4213 (REDUC_PLUS_MODE): Add V32QImode for TARGET_AVX and V64QImode for
4214 TARGET_AVX512F.
4215 (reduc_plus_scal_<mode>): Improve formatting by introducing
4216 a temporary.
4217
4218 2019-07-31 Sudakshina Das <sudi.das@arm.com>
4219
4220 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add
4221 AARCH64_TME_BUILTIN_TSTART, AARCH64_TME_BUILTIN_TCOMMIT,
4222 AARCH64_TME_BUILTIN_TTEST and AARCH64_TME_BUILTIN_TCANCEL.
4223 (aarch64_init_tme_builtins): New.
4224 (aarch64_init_builtins): Call aarch64_init_tme_builtins.
4225 (aarch64_expand_builtin_tme): New.
4226 (aarch64_expand_builtin): Handle TME builtins.
4227 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
4228 __ARM_FEATURE_TME when enabled.
4229 * config/aarch64/aarch64-option-extensions.def: Add "tme".
4230 * config/aarch64/aarch64.h (AARCH64_FL_TME, AARCH64_ISA_TME): New.
4231 (TARGET_TME): New.
4232 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_TTEST.
4233 (define_c_enum "unspecv"): Add UNSPECV_TSTART, UNSPECV_TCOMMIT and
4234 UNSPECV_TCANCEL.
4235 (tstart, ttest, tcommit, tcancel): New instructions.
4236 * config/aarch64/arm_acle.h (__tstart, __tcommit): New.
4237 (__tcancel, __ttest): New.
4238 (_TMFAILURE_REASON, _TMFAILURE_RTRY, _TMFAILURE_CNCL): New macro.
4239 (_TMFAILURE_MEM, _TMFAILURE_IMP, _TMFAILURE_ERR): Likewise.
4240 (_TMFAILURE_SIZE, _TMFAILURE_NEST, _TMFAILURE_DBG): Likewise.
4241 (_TMFAILURE_INT, _TMFAILURE_TRIVIAL): Likewise.
4242 * config/arm/types.md: Add new tme type attr.
4243 * doc/invoke.texi: Document "tme".
4244
4245 2019-07-31 Joel Hutton <Joel.Hutton@arm.com>
4246
4247 * config/arm/arm_cmse.h (cmse_nonsecure_caller): Add
4248 warn_unused_result attribute.
4249 (cmse_check_address_range): Add warn_unused_result attribute.
4250
4251 2019-07-31 Richard Biener <rguenther@suse.de>
4252
4253 PR tree-optimization/91257
4254 * tree-vrp.c (union_ranges): Unify equality and less tests
4255 by using compare_values. Re-order cheap tests first.
4256
4257 2019-07-31 Jakub Jelinek <jakub@redhat.com>
4258
4259 PR middle-end/91301
4260 * gimplify.c (gimplify_omp_for): If for class iterator on
4261 distribute parallel for there is no data sharing clause
4262 on inner_for_stmt, look for private clause on combined
4263 parallel too and if found, move it to inner_for_stmt.
4264
4265 2019-07-31 Richard Sandiford <richard.sandiford@arm.com>
4266
4267 * lra-int.h (lra_operand_data): Remove early_clobber field.
4268 (lra_insn_reg): Likewise.
4269 * lra.c (debug_operand_data): Update accordingly.
4270 (setup_operand_alternative): Likewise.
4271 (new_insn_reg): Likewise. Remove early_clobber parameter.
4272 (collect_non_operand_hard_regs): Update call accordingly.
4273 Don't assign to lra_insn_reg::early_clobber.
4274 (add_regs_to_insn_regno_info): Remove early_clobber parameter
4275 and update calls to new_insn_reg.
4276 (lra_update_insn_regno_info): Update calls accordingly.
4277 * lra-constraints.c (update_and_check_small_class_inputs): Take the
4278 alternative number as a parameter and test whether the operand
4279 is earlyclobbered in that particular alternative.
4280 (process_alt_operands): Update call accordingly. Use per-alternative
4281 checks for earyclobber here too.
4282 * lra-lives.c (reg_early_clobber_p): Check early_clobber_alts
4283 against zero for IRA_UNKNOWN_ALT.
4284
4285 2019-07-30 Uroš Bizjak <ubizjak@gmail.com>
4286
4287 * config/alpha/alpha.c (alpha_option_override): Quote a C type.
4288
4289 2019-07-30 Wilco Dijkstra <wdijkstr@arm.com>
4290
4291 * config/arm/thumb2.md (thumb2_movsi_insn): Adjust literal offset.
4292 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
4293
4294 2019-07-30 Martin Liska <mliska@suse.cz>
4295
4296 PR ipa/89330
4297 * cgraph.c (cgraph_edge::make_direct): Use
4298 edge->indirect_unknown_callee as edge->resolve_speculation can
4299 deallocate edge which is this pointer.
4300
4301 2019-07-30 Richard Biener <rguenther@suse.de>
4302
4303 PR tree-optimization/91257
4304 * bitmap.c (bitmap_ior_and_compl_into): Open-code.
4305
4306 2019-07-30 Martin Liska <mliska@suse.cz>
4307
4308 * doc/invoke.texi: Document new behavior.
4309 * lto-wrapper.c (cpuset_popcount): New function
4310 is a copy of libgomp/config/linux/proc.c.
4311 (init_num_threads): Likewise.
4312 (run_gcc): Automatically detect core count for -flto.
4313 (jobserver_active_p): New function.
4314
4315 2019-07-30 Richard Biener <rguenther@suse.de>
4316
4317 PR tree-optimization/91257
4318 * bitmap.h (bitmap_ior_into_and_free): Declare.
4319 * bitmap.c (bitmap_list_unlink_element): Add defaulted param
4320 whether to add the unliked element to the freelist.
4321 (bitmap_list_insert_element_after): Add defaulted param for
4322 an already allocated element.
4323 (bitmap_ior_into_and_free): New function.
4324 * tree-ssa-structalias.c (condense_visit): Reduce the
4325 ponts-to and edge bitmaps of the SCC members in a
4326 logarithmic fashion rather than all to one.
4327
4328 2019-07-30 Richard Sandiford <richard.sandiford@arm.com>
4329
4330 * tree-ssa-math-opts.c (convert_mult_to_fma): Add a mul_cond
4331 parameter. When nonnull, make sure that the addition or subtraction
4332 has the same condition.
4333 (math_opts_dom_walker::after_dom_children): Try convert_mult_to_fma
4334 for CFN_COND_MUL too.
4335
4336 2019-07-30 Richard Biener <rguenther@suse.de>
4337
4338 PR tree-optimization/91291
4339 * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Ignore
4340 constant values.
4341
4342 2019-07-30 Jakub Jelinek <jakub@redhat.com>
4343
4344 PR middle-end/91216
4345 * omp-low.c (global_nonaddressable_vars): New variable.
4346 (use_pointer_for_field): For global decls, if they are non-addressable,
4347 remember it in the global_nonaddressable_vars bitmap, if they are
4348 addressable and in the global_nonaddressable_vars bitmap, ignore their
4349 TREE_ADDRESSABLE bit.
4350 (omp_copy_decl_2): Clear TREE_ADDRESSABLE also on private copies of
4351 vars in global_nonaddressable_vars bitmap.
4352 (execute_lower_omp): Free global_nonaddressable_vars bitmap.
4353
4354 PR target/91150
4355 * config/i386/i386-expand.c (expand_vec_perm_blend): Change mask type
4356 from unsigned to unsigned HOST_WIDE_INT. For E_V64QImode cast
4357 comparison to unsigned HOST_WIDE_INT before shifting it left.
4358
4359 2019-07-30 Uroš Bizjak <ubizjak@gmail.com>
4360
4361 * config/i386/i386.md (movstrict<mode>): Use register_operand
4362 predicate for operand 0. Add expander condition. Assert that
4363 operand 0 is a SUBREG RTX.
4364 (*movstrict<mode>_1): Use register_operand predicate for operand 0.
4365 Update operand constraints and insn condition.
4366 (zero_extend<mode>si2_and): Do not call gen_movstrict<mode>.
4367 (zero_extendqihi2_and): Do not call gen_movstrictqi.
4368 (*setcc_qi_slp): Use register_operand predicate for operand 0.
4369 Update operand 0 constraints.
4370 (setcc_qi_slp splitters): Use register_operand predicate for operand 0.
4371
4372 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4373
4374 * config/msp430/msp430.h (DRIVER_SELF_SPECS): Define and emit errors
4375 when -m{code,data}-region are used without -mlarge.
4376 * config/msp430/msp430.c (msp430_option_override): Error when a
4377 non-default code or data region is used without -mlarge.
4378 (msp430_section_attr): Emit a warning and do not add upper/lower/either
4379 attributes when they are used without -mlarge.
4380
4381 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4382
4383 PR target/70320
4384 * config/msp430/msp430.h: Define ADDITIONAL_REGISTER_NAMES.
4385
4386 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
4387
4388 PR middle-end/91242
4389 * wide-int.h (generic_wide_int::sext_elt): New function.
4390 * inchash.h (hash::add_wide_int): Use it instead of elt.
4391
4392 2019-07-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4393
4394 * config/arm/arm-builtins.c (acle_builtin_data): Expand VAR1 to
4395 CODE_FOR_arm_##.
4396 * config/arm/arm.md (<crc_variant>): Rename to...
4397 (arm_<crc_variant>): ... This.
4398 (<cdp>): Rename to...
4399 (arm_<cdp>): ... This.
4400 (<ldc>): Rename to...
4401 (arm_<ldc>): ... This.
4402 (<stc>): Rename to...
4403 (arm_<stc>): ... This.
4404 (<mcr>): Rename to...
4405 (arm_<mcr>): ... This.
4406 (<mrc>): Rename to...
4407 (arm_<mrc>): ... This.
4408 (<mcrr>): Rename to...
4409 (arm_<mcrr>): ... This.
4410 (<mrrc>): Rename to...
4411 (arm_<mrrc>): ... This.
4412
4413 2019-07-29 Richard Biener <rguenther@suse.de>
4414
4415 PR tree-optimization/91257
4416 * tree-ssa-sccvn.h (struct vn_avail): New.
4417 (struct vn_ssa_aux): Add avail member.
4418 * tree-ssa-sccvn.c (class rpo_elim): Remove m_rpo_avail
4419 member, add m_avail_freelist one.
4420 (rpo_elim::~rpo_elim): Remove.
4421 (rpo_elim::eliminate_avail): Adjust to new avail tracking
4422 data structure.
4423 (rpo_elim::eliminate_push_avail): Likewise.
4424 (do_unwind): Likewise.
4425 (do_rpo_vn): Likewise.
4426
4427 2019-07-29 Richard Biener <rguenther@suse.de>
4428
4429 PR tree-optimization/91257
4430 * tree-vrp.c (operand_less_p): Avoid dispatching to fold for
4431 most cases, instead call compare_values which handles the
4432 symbolic ranges we handle specially.
4433 (compare_values_warnv): Do not call operand_less_p but open-code
4434 the effective fold calls. Avoid converting so much.
4435
4436 2019-07-29 Martin Liska <mliska@suse.cz>
4437
4438 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not
4439 remove LHS of operator new call. It's handled latter.
4440
4441 2019-07-29 Richard Biener <rguenther@suse.de>
4442
4443 PR tree-optimization/91267
4444 * vr-values.c (vr_values::update_value_range): Add early return
4445 for effectively VARYING lattice entry.
4446
4447 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
4448
4449 PR debug/86638
4450 * tree-ssa-dce.c (keep_all_vdefs_p): New function.
4451 (mark_stmt_if_obviously_necessary): Mark all stmts with vdefs as
4452 necessary if keep_all_vdefs_p is true.
4453 (mark_aliased_reaching_defs_necessary): Add a gcc_checking_assert
4454 that keep_all_vdefs_p is false.
4455 (mark_all_reaching_defs_necessary): Likewise.
4456 (propagate_necessity): Skip the vuse scan if keep_all_vdefs_p is true.
4457
4458 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
4459
4460 * common.opt (Og): Change the initial value of flag_dse to 0.
4461 * opts.c (default_options_table): Move OPT_ftree_dse from
4462 OPT_LEVELS_1_PLUS to OPT_LEVELS_1_PLUS_NOT_DEBUG. Also add
4463 OPT_fdse to OPT_LEVELS_1_PLUS_NOT_DEBUG. Put the OPT_ftree_pta
4464 entry before the OPT_ftree_sra entry.
4465 * doc/invoke.texi (Og): Add -fdse and -ftree-dse to the list
4466 of flags disabled by Og.
4467
4468 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
4469
4470 * tree-cfg.c (execute_fixup_cfg): Don't delete stores to write-only
4471 variables for -Og.
4472
4473 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
4474
4475 * doc/sourcebuild.texi (check-function-bodies): Document.
4476
4477 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
4478
4479 * simplify-rtx.c (simplify_const_unary_operation): Fold a
4480 VEC_DUPLICATE of a fixed-length vector even if the result
4481 is variable-length. Likewise fold a duplicate of a
4482 variable-length vector if the variable-length vector is
4483 itself a duplicate of a fixed-length sequence.
4484 (test_vector_ops_duplicate): Test more cases.
4485
4486 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
4487
4488 * vector-builder.h (vector_builder): Add a shape template parameter.
4489 (vector_builder::new_unary_operation): New function, generalizing
4490 the old tree_vector_builder function.
4491 (vector_builder::new_binary_operation): Likewise.
4492 (vector_builder::binary_encoded_nelts): Likewise.
4493 * int-vector-builder.h (int_vector_builder): Update template
4494 parameters to vector_builder.
4495 (int_vector_builder::shape_nelts): New function.
4496 * rtx-vector-builder.h (rtx_vector_builder): Update template
4497 parameters to vector_builder.
4498 (rtx_vector_builder::shape_nelts): New function.
4499 (rtx_vector_builder::nelts_of): Likewise.
4500 (rtx_vector_builder::npatterns_of): Likewise.
4501 (rtx_vector_builder::nelts_per_pattern_of): Likewise.
4502 * tree-vector-builder.h (tree_vector_builder): Update template
4503 parameters to vector_builder.
4504 (tree_vector_builder::shape_nelts): New function.
4505 (tree_vector_builder::nelts_of): Likewise.
4506 (tree_vector_builder::npatterns_of): Likewise.
4507 (tree_vector_builder::nelts_per_pattern_of): Likewise.
4508 * tree-vector-builder.c (tree_vector_builder::new_unary_operation)
4509 (tree_vector_builder::new_binary_operation): Delete.
4510 (tree_vector_builder::binary_encoded_nelts): Likewise.
4511 * simplify-rtx.c: Include rtx-vector-builder.h.
4512 (distributes_over_addition_p): New function.
4513 (simplify_const_unary_operation)
4514 (simplify_const_binary_operation): Generalize handling of vector
4515 constants to include variable-length vectors.
4516 (test_vector_ops_series): Add more tests.
4517
4518 2019-07-28 Jan Hubicka <hubicka@ucw.cz>
4519
4520 PR lto/91222
4521 * ipa-devirt.c (warn_types_mismatch): Compare indentifiers
4522 than INDENTIFIER_POINTER.
4523
4524 2019-07-28 Martin Liska <mliska@suse.cz>
4525
4526 PR ipa/89330
4527 * cgraph.c (symbol_table::create_edge): Always allocate
4528 a cgraph_edge.
4529 (symbol_table::free_edge): Store summary_id to
4530 edge_released_summary_ids if != -1;
4531 * cgraph.h (NEXT_FREE_NODE): Remove.
4532 (SET_NEXT_FREE_NODE): Likewise.
4533 (NEXT_FREE_EDGE): Likewise.
4534 (symbol_table::release_symbol): Store summary_id to
4535 cgraph_released_summary_ids if != -1;
4536 (symbol_table::allocate_cgraph_symbol): Always allocate
4537 a cgraph_node.
4538
4539 2019-07-28 Alan Modra <amodra@gmail.com>
4540
4541 * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
4542 gen_sibcall.
4543
4544 2019-07-28 Alan Modra <amodra@gmail.com>
4545
4546 PR target/91135
4547 * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't
4548 define.
4549 * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Invoke
4550 GNU_USER_TARGET_OS_CPP_BUILTINS for aixdesc abi.
4551 (GNU_USER_TARGET_D_OS_VERSIONS): Don't define.
4552
4553 2019-07-28 Alan Modra <amodra@gmail.com>
4554
4555 PR target/91050
4556 * config/rs6000/sysv4.h (ASM_DEFAULT_SPEC): Modify if -m64.
4557 * config/rs6000/default64.h (ASM_DEFAULT_SPEC): Define.
4558 * config/rs6000/freebsd64.h (ASM_DEFAULT_SPEC): Don't define.
4559 * config/rs6000/linux64.h (ASM_DEFAULT_SPEC): Likewise.
4560 * config/rs6000/rtems.h (ASM_DEFAULT_SPEC): Likewise.
4561 * config/rs6000/rs6000.h (ASM_DEFAULT_EXTRA): Define and use
4562 in asm_default spec.
4563 * config/rs6000/eabialtivec.h (ASM_DEFAULT_EXTRA): Redefine.
4564 * config/rs6000/linuxaltivec.h (ASM_DEFAULT_EXTRA): Redefine.
4565
4566 2019-07-28 Gerald Pfeifer <gerald@pfeifer.com>
4567
4568 * doc/include/gpl_v3.texi (Copying): Use https for www.gnu.org.
4569
4570 2019-07-26 Tamar Christina <tamar.christina@arm.com>
4571
4572 PR target/89517
4573 * config.gcc: Relax parsing of AARCH64_OPT_EXTENSION.
4574 * config/aarch64/aarch64-option-extensions.def: Add new comments
4575 and restore easier to read options.
4576
4577 2019-07-26 Tamar Christina <tamar.christina@arm.com>
4578
4579 * convert.c (convert_to_real_1): Move part of conversion code...
4580 * match.pd: ...To here.
4581
4582 2019-07-26 Martin Jambor <mjambor@suse.cz>
4583
4584 PR ipa/89330
4585 * ipa-inline-transform.c (check_speculations_1): New function.
4586 (push_all_edges_in_set_to_vec): Likewise.
4587 (check_speculations): Use check_speculations_1, new parameter
4588 new_edges.
4589 (inline_call): Pass new_edges to check_speculations.
4590 * ipa-inline.c (add_new_edges_to_heap): Assert edge_callee is not
4591 NULL.
4592 (speculation_useful_p): Early return true if edge is inlined, remove
4593 later checks for inline_failed.
4594
4595 2019-07-25 Vladimir Makarov <vmakarov@redhat.com>
4596
4597 PR rtl-optimization/91223
4598 * lra-constraints.c (process_alt_operands): Fail for unsuccessful
4599 matching with INOUT operand.
4600
4601 2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
4602
4603 * stmt.c (expand_case): Try to narrow the index type if it's larger
4604 than a word. Tidy up.
4605
4606 2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
4607
4608 * cif-code.def (NEVER_CALL): New code.
4609 * ipa-inline.c (want_inline_small_function_p): Fix formatting issues.
4610 Set the failure to CIF_NEVER_CALL if the IPA count is zero.
4611
4612 2019-07-25 Wilco Dijkstra <wdijkstr@arm.com>
4613
4614 * config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg.
4615 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
4616
4617 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
4618
4619 * ipa-devirt.c (add_type_duplicate): Fix return value.
4620
4621 2019-07-25 Richard Biener <rguenther@suse.de>
4622
4623 * tree-vrp.c (extract_range_from_multiplicative_op): Add
4624 type parameter and use it instead of guessing expression
4625 type from the first operand.
4626 (extract_range_from_binary_expr): Pass expr_type down.
4627
4628 2019-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4629
4630 * config/arm/arm.md (SATrev): Change to code attribute.
4631 (*satsi_<SAT:code>): Adjust for the above.
4632 (*satsi_<SAT:code>_shift): Likewise.
4633
4634 2019-07-25 Richard Biener <rguenther@suse.de>
4635
4636 * gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions):
4637 Make value_range * temporary const.
4638 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
4639 Likewise.
4640 (evrp_range_analyzer::record_ranges_from_): Likewise.
4641 (evrp_range_analyzer::pop_value_range): Return a const value_range *,
4642 deal with having recorded a const one.
4643 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::get_value_range):
4644 Return a const value_range *.
4645 (evrp_range_analyzer::pop_value_range): Likewise.
4646 (evrp_range_analyzer::stack): Record const value_range *s.
4647 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
4648 Adjust.
4649 * gimple-ssa-sprintf.c (get_int_range): Likewise.
4650 (format_integer): Likewise.
4651 (sprintf_dom_walker::handle_gimple_call): Likewise.
4652 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
4653 * tree-vrp.c (vrp_prop::set_def_to_varying): Add.
4654 (vrp_prop::get_value_range): Adjust.
4655 (vrp_prop::vrp_initialize): Use set_def_to_varying instead of
4656 modifying the lattice in-place.
4657 (vrp_prop::visit_stmt): Likewise.
4658 * vr-values.c (vr_values::get_lattice_entry): New private method.
4659 (vr_values::get_value_range): Wrap it and return a const
4660 value_range *.
4661 (vr_values::set_def_to_varying): New.
4662 (vr_values::set_defs_to_varying): Use it.
4663 (vr_values::update_value_range): Likewise.
4664 (vr_values::vrp_stmt_computes_nonzero): Adjust.
4665 (values::op_with_constant_singleton_va): Likewise.
4666 (vr_values::extract_range_for_var_from_co): Likewise.
4667 (vr_values::extract_range_from_ssa_name): Likewise.
4668 (vr_values::extract_range_from_cond_expr): Likewise.
4669 (vr_values::extract_range_basic): Likewise.
4670 (compare_ranges): Take const value_range *, adjust.
4671 (compare_range_with_value): Likewise.
4672 (vrp_valueize): Adjust.
4673 (vrp_valueize_1): Likewise.
4674 (vr_values::get_vr_for_comparison): Return a const value_range *.
4675 (vr_values::compare_name_with_value): Adjust.
4676 (vr_values::compare_names): Likewise.
4677 (vr_values::vrp_evaluate_conditional_warnv_with_ops_using_ranges):
4678 Likewise.
4679 (vr_values::vrp_evaluate_conditional): Likewise.
4680 (find_case_label_ranges): Take a const value_range *.
4681 (vr_values::vrp_visit_switch_stmt): Adjust.
4682 (vr_values::extract_range_from_phi_node): Likewise.
4683 (vr_values::simplify_div_or_mod_using_ran): Likewise.
4684 (vr_values::simplify_abs_using_ranges): Likewise.
4685 (test_for_singularity): Take a const value_range *.
4686 (range_fits_type_p): Likewise.
4687 (vr_values::simplify_cond_using_ranges_1): Adjust.
4688 (vr_values::simplify_cond_using_ranges_2): Likewise.
4689 (vr_values::simplify_switch_using_ranges): Likewise.
4690 (vr_values::simplify_float_conversion_usi): Likewise.
4691 (vr_values::two_valued_val_range_p): Likewise.
4692 * vr-values.h (vr_values::get_value_range): Return a const
4693 value_range *.
4694 (vr_values::set_def_to_varying): New.
4695 (vr_values::get_lattice_entry): New private method.
4696 (vr_values::get_vr_for_comparison): Return a const value_range *.
4697
4698 2019-07-25 Martin Liska <mliska@suse.cz>
4699 Dominik Infuhr <dominik.infuehr@theobroma-systems.com>
4700
4701 PR c++/23383
4702 * common.opt: Add -fallocation-dce
4703 * gimple.c (gimple_call_operator_delete_p): New.
4704 * gimple.h (gimple_call_operator_delete_p): Likewise.
4705 * tree-core.h (enum function_decl_type): Add OPERATOR_DELETE.
4706 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle
4707 DECL_IS_OPERATOR_DELETE_P.
4708 (mark_all_reaching_defs_necessary_1): Likewise.
4709 (propagate_necessity): Likewise.
4710 (eliminate_unnecessary_stmts): Handle
4711 gimple_call_operator_delete_p.
4712 * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
4713 Add packing of OPERATOR_DELETE.
4714 * tree-streamer-out.c (pack_ts_function_decl_value_fields):
4715 Similarly here.
4716 * tree.h (DECL_IS_OPERATOR_DELETE_P): New.
4717 (DECL_SET_IS_OPERATOR_DELETE): New.
4718 (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): Likewise.
4719
4720 2019-07-25 Martin Liska <mliska@suse.cz>
4721
4722 * calls.c (maybe_warn_alloc_args_overflow): Use new macros
4723 (e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
4724 * coverage.c (coverage_begin_function): Likewise.
4725 * fold-const.c (tree_expr_nonzero_warnv_p): Likewise.
4726 * gimple.c (gimple_call_nonnull_result_p): Likewise.
4727 * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Likewise.
4728 (sem_item::hash_referenced_symbol_properties): Likewise.
4729 * lto-streamer-out.c (hash_tree): Likewise.
4730 * predict.c (expr_expected_value_1): Likewise.
4731 * tree-inline.c (expand_call_inline): Likewise.
4732 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
4733 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
4734 * tree-core.h (enum function_decl_type): New enum.
4735 (struct tree_function_decl): Remove operator_new_flag and lambda_function.
4736 * tree.h (FUNCTION_DECL_DECL_TYPE): New.
4737 (set_function_decl_type): Likewise.
4738 (DECL_IS_OPERATOR_NEW_P): New.
4739 (DECL_SET_IS_OPERATOR_NEW): Likewise.
4740 (DECL_LAMBDA_FUNCTION): Likewise.
4741 (DECL_LAMBDA_FUNCTION_P): Likewise.
4742 (DECL_IS_OPERATOR_NEW): Remove.
4743 (DECL_SET_LAMBDA_FUNCTION): Likewise.
4744
4745 2019-07-25 Xiong Hu Luo <luoxhu@linux.ibm.com>
4746
4747 * ipa-profile.c (get_most_common_single_value): Use
4748 get_nth_most_common_value.
4749 * profile.c (sort_hist_value): New function.
4750 (compute_value_histograms): Call sort_hist_value to sort the
4751 values after loading from disk.
4752 * value-prof.c (get_most_common_single_value): Rename to ...
4753 get_nth_most_common_value. Add input params n, return
4754 the n_th value and count.
4755 (gimple_divmod_fixed_value_transform): Use
4756 get_nth_most_common_value.
4757 (gimple_ic_transform): Likewise.
4758 (gimple_stringops_transform): Likewise.
4759 * value-prof.h (get_most_common_single_value): Add input params
4760 n, default to 0.
4761
4762 2019-07-25 Richard Biener <rguenther@suse.de>
4763
4764 PR tree-optimization/91236
4765 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
4766 size of CONSTRUCTOR write. Fix buffer size we pass to
4767 native_encode_expr.
4768
4769 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4770
4771 * config.gcc (msp430*-*-*): Fix non-GNU style in r273774.
4772 * config/msp430/msp430.h (ENDFILE_SPEC): Fix non-GNU style in
4773 r273773.
4774
4775 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4776
4777 * config.gcc (msp430*-*-*): Enable initfini_array by default unless
4778 explicitly disabled with --disable-initfini-array.
4779
4780 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4781
4782 * config/msp430/msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in
4783 if-exists.
4784
4785 2019-07-24 Martin Sebor <msebor@redhat.com>
4786
4787 PR tree-optimization/91183
4788 PR tree-optimization/86688
4789 * builtins.c (compute_objsize): Handle MEM_REF.
4790 * tree-ssa-strlen.c (class ssa_name_limit_t): New.
4791 (get_min_string_length): Remove.
4792 (count_nonzero_bytes): New function.
4793 (handle_char_store): Rename...
4794 (handle_store): to this. Handle multibyte stores via integer types.
4795 (strlen_check_and_optimize_stmt): Adjust conditional and the called
4796 function name.
4797
4798 2019-07-24 Martin Sebor <msebor@redhat.com>
4799
4800 PR driver/80545
4801 * diagnostic.c (diagnostic_classify_diagnostic): Use lang_mask.
4802 (diagnostic_report_diagnostic): Same.
4803 * diagnostic.h (diagnostic_context::option_enabled): Add an argument.
4804 (diagnostic_context::lang_mask): New data member.
4805 * ipa-pure-const.c (suggest_attribute): Use
4806 lang_hooks.option_lang_mask ().
4807 * opts-common.c (option_enabled): Handle new argument.
4808 (get_option_state): Pass an additional argument.
4809 * opts.c (print_filtered_help): Print supported languages for
4810 unsupported options. Adjust printing of current state.
4811 * opts.h (option_enabled): Add argument.
4812 * toplev.c (print_switch_values): Use lang_mask.
4813 (general_init): Set global_dc->lang_mask.
4814
4815 2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
4816
4817 PR bootstrap/87030
4818 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
4819
4820 2019-07-24 Giuliano Belinassi <giuliano.belinassi@usp.br>
4821
4822 * cgraphunit.c (symbol_table::compile): Start and stop
4823 TV_CGRAPH_IPA_PASSES and TV_CGRAPH_FUNC_EXPANSION timers.
4824 * timevar.def (TV_CGRAPH_IPA_PASSES, TV_CGRAPH_FUNC_EXPANSION): New.
4825
4826 2019-07-24 Oliver Browne <oliverbrowne62@gmail.com>
4827
4828 * gimplify.c (flag_instrument_functions_exclude_p): Include
4829 namespace/class information in the printable name.
4830 * opts.c (add_comma_separated_to_vector): Add NUL terminator
4831 to tokens entered into the vector.
4832
4833 2019-07-24 Eric Botcazou <ebotcazou@adacore.com>
4834
4835 * tree-nested.c (build_simple_mem_ref_notrap): New function.
4836 (get_static_chain): Call it instead of build_simple_mem_ref.
4837 (get_frame_field): Likewise.
4838 (get_nonlocal_debug_decl): Likewise.
4839 (convert_nonlocal_reference_op): Likewise.
4840
4841 2019-07-24 Claudiu Zissulescu <claziss@synopsys.com>
4842
4843 * config/arc/arc-protos.h (arc_output_function_epilogue): Delete
4844 declaration.
4845 (arc_compute_frame_size): Millicode is disabled when compiling
4846 ISR.
4847 (arc_return_address_register): Likewise.
4848 (arc_compute_function_type): Likewise.
4849 (arc_compute_frame_size): Likewise.
4850 (secondary_reload_info): Likewise.
4851 (arc_get_unalign): Likewise.
4852 (arc_can_use_return_insn): Declare.
4853 * config/arc/arc.c (AUX_LP_START): Define
4854 (AUX_LP_END): Likewise.
4855 (arc_frame_info): Update gmask member to 64-bit datum.
4856 (GMASK_LEN): Update.
4857 (arc_compute_function_type): Make it static, move it forward.
4858 (arc_must_save_register): Update, consider the extra regs.
4859 (arc_compute_millicode_save_restore_regs): Update to use the 64
4860 bit gmask.
4861 (arc_compute_frame_size): Likewise.
4862 (arc_enter_leave_p): Likewise.
4863 (arc_save_callee_saves): Likewise.
4864 (arc_restore_callee_saves): Likewise.
4865 (arc_save_callee_enter): Likewise.
4866 (arc_restore_callee_leave): Likewise.
4867 (arc_save_callee_milli): Likewise.
4868 (arc_restore_callee_milli): Likewise.
4869 (arc_expand_prologue): Add new interrupt handling.
4870 (arc_return_address_register): Make it static, move it forward.
4871 (arc_expand_epilogue): Add new interrupt handling.
4872 (arc_get_unalign): Delete.
4873 (arc_epilogue_uses): Make sure we do not remove the extra
4874 saved/restored registers when interrupt.
4875 (arc_can_use_return_insn): New function.
4876 (push_reg): Likewise.
4877 (pop_reg): Likewise.
4878 (arc_save_callee_saves): Add ZOL and FPX aux registers saving
4879 procedures.
4880 (arc_restore_callee_saves): Likewise, but restoring.
4881 * config/arc/arc.md (VUNSPEC_ARC_ARC600_RTIE): Define.
4882 (R33_REG): Likewise.
4883 (R34_REG): Likewise.
4884 (R35_REG): Likewise.
4885 (R36_REG): Likewise.
4886 (R37_REG): Likewise.
4887 (R38_REG): Likewise.
4888 (R39_REG): Likewise.
4889 (R45_REG): Likewise.
4890 (R46_REG): Likewise.
4891 (R47_REG): Likewise.
4892 (R48_REG): Likewise.
4893 (R49_REG): Likewise.
4894 (R50_REG): Likewise.
4895 (R51_REG): Likewise.
4896 (R52_REG): Likewise.
4897 (R53_REG): Likewise.
4898 (R54_REG): Likewise.
4899 (R55_REG): Likewise.
4900 (R56_REG): Likewise.
4901 (R58_REG): Likewise.
4902 (type): Add rtie attribute.
4903 (in_call_delay_slot): Use RETURN_ADDR_REGNUM.
4904 (movsi_insn): Accept moves to lp_count.
4905 (rtie): Update pattern.
4906 (simple_return): Simplify it, don't use this pattern as a return
4907 from an interrupt.
4908 (arc600_rtie): New pattern.
4909 (p_return_i): Clean up.
4910 (return): Likewise.
4911 * config/arc/builtins.def (rtie): Only available for non ARC6xx
4912 family CPUs.
4913 * config/arc/predicates.md (move_src_operand): Consider lp_count
4914 as a register.
4915
4916 2019-07-24 Andreas Krebbel <krebbel@linux.ibm.com>
4917
4918 * config/s390/predicates.md (addv_const_operand): New predicate.
4919 * config/s390/s390-modes.def (CCO): New condition code mode.
4920 * config/s390/s390.c (s390_match_ccmode_set): Handle E_CCOmode.
4921 (s390_branch_condition_mask): Likewise.
4922 * config/s390/s390.md ("addv<mode>4", "subv<mode>4")
4923 ("mulv<mode>4"): New expanders.
4924 ("*addv<mode>3_ccoverflow", "*addv<mode>3_ccoverflow_const")
4925 ("*subv<mode>3_ccoverflow", "*mulv<mode>3_ccoverflow"): New
4926 pattern definitions.
4927
4928 2019-07-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4929
4930 PR middle-end/91166
4931 * match.pd (vec_perm_expr(v, v, mask) -> v): New pattern.
4932 (define_predicates): Add entry for uniform_vector_p.
4933 (vec_same_elem_p): New match pattern.
4934
4935 2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
4936
4937 PR bootstrap/87030
4938 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
4939 * config/i386/darwin32-biarch.h .. to here.
4940 * config/i386/darwin64-biarch.h: Adjust comments.
4941 * config/rs6000/darwin32-biarch.h: Likewise.
4942 * config/rs6000/darwin64-biarch.h: Likewise.
4943 * config.gcc: Missed commit from r273746
4944 (*-*-darwin*): Don't include CPU t-darwin here.
4945 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
4946 an error message if i686-darwin configuration is attempted for
4947 Darwin >= 18.
4948
4949 2019-07-23 Iain Sandoe <iain@sandoe.co.uk>
4950
4951 PR bootstrap/87030
4952 * config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
4953 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
4954 an error message if i686-darwin configuration is attempted for
4955 Darwin >= 18.
4956 (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
4957 (powerpc-*-darwin*): Use biarch files where needed.
4958 (powerpc64-*-darwin*): Likewise.
4959 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
4960 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
4961 arch case.
4962 * config/i386/darwin32-biarch.h: New.
4963 * config/i386/darwin64.h: Rename.
4964 * config/i386/darwin64-biarch.h: To this.
4965 * config/i386/t-darwin: Rename.
4966 * config/i386/t-darwin32-biarch: To this.
4967 * config/i386/t-darwin64: Rename.
4968 * config/i386/t-darwin64-biarch: To this.
4969 * config/rs6000/darwin32-biarch.h: New.
4970 * config/rs6000/darwin64.h: Rename.
4971 * config/rs6000/darwin64-biarch.h: To this.
4972 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
4973 arch case.
4974 * config/rs6000/t-darwin8: Rename.
4975 * config/rs6000/t-darwin32-biarch: To this.
4976 * config/rs6000/t-darwin64 Rename.
4977 * config/rs6000/t-darwin64-biarch: To this.
4978
4979 2019-07-23 Martin Sebor <msebor@redhat.com>
4980
4981 * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Revert r273311.
4982
4983 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru>
4984
4985 * gdbinit.in (reload-gdbhooks): New command with an attached doc string.
4986 (rh): New alias for it.
4987
4988 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru>
4989
4990 * gdbhooks.py: Pass replace=True to
4991 gdb.printing.register_pretty_printer.
4992
4993 2019-07-23 Richard Biener <rguenther@suse.de>
4994
4995 PR debug/91231
4996 * lto-streamer-in.c (input_function): Drop inline-entry markers
4997 that ended up with an unknown location block.
4998
4999 2019-07-23 Richard Biener <rguenther@suse.de>
5000
5001 PR tree-optimization/83518
5002 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle aggregate
5003 init from a constant even when partial defs are already recorded.
5004
5005 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
5006
5007 * i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2.
5008 * config/i386/znver1.md: Enable patterns for znver2 and add store
5009 variants which use extra AGU unit.
5010
5011 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
5012
5013 * config/i386/i386-options.c (ix86_option_override_internal): Default
5014 PARAM_AVOID_FMA_MAX_BITS to 256 for znver2.
5015 * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Set
5016 for ZNVER2.
5017
5018 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
5019
5020 * config/i386/x86-tune-costs.h (znver2_memcpy): Update.
5021 (znver2_costs): Update 256 bit SSE costs and multiplication.
5022
5023 2019-07-23 Jan Beulich <jbeulich@suse.com>
5024
5025 * config/i386/sse.md (<avx512>_cvtmask2<ssemodesuffix><mode>):
5026 Require only AVX512F.
5027 (*<avx512>_cvtmask2<ssemodesuffix><mode>): Likewise. Add
5028 alternative expanding to vpternlog.
5029
5030 2019-07-23 Martin Liska <mliska@suse.cz>
5031
5032 * dwarf2out.c (gen_producer_string): Canonize -flto=N
5033 to -flto in dwarf producer string.
5034
5035 2019-07-23 Richard Biener <rguenther@suse.de>
5036
5037 * tree-cfg.c (label_for_bb): Remove global var.
5038 (main_block_label): Take label_for_bb as argument.
5039 (cleanup_dead_labels_eh): Likewise, adjust.
5040 (cleanup_dead_labels): Adjust.
5041
5042 2019-07-22 Paul A. Clarke <pc@us.ibm.com>
5043
5044 * doc/extend.texi (Basic PowerPC Built-in Functions Available on all
5045 Configurations): Add documentation for __builtin_mtfsf.
5046
5047 2019-07-22 Ilia Diachkov <ilia.diachkov@optimitech.com>
5048
5049 * config/riscv/riscv-opts.h (struct riscv_align_data): New.
5050 * config/riscv/riscv.c (riscv_constant_alignment): Use
5051 riscv_align_data_type.
5052 * config/riscv/riscv.h (RISCV_EXPAND_ALIGNMENT): New.
5053 (DATA_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
5054 (LOCAL_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
5055 * config/riscv/riscv.opt (malign-data): New.
5056 * doc/invoke.texi (RISC-V Options): Document -malign-data=.
5057
5058 2019-07-02 Giuliano Belinassi <giuliano.belinassi@usp.br>
5059
5060 * cgraph.c (dump_graphviz): New function.
5061 * cgraph.h (dump_graphviz): New function.
5062 * symtab.c (dump_graphviz): New function.
5063
5064 2019-07-22 Sylvia Taylor <sylvia.taylor@arm.com>
5065
5066 * config/aarch64/aarch64-simd.md
5067 (*aarch64_simd_sra<mode>): New.
5068 * config/aarch64/iterators.md
5069 (SHIFTRT): New iterator.
5070 (sra_op): New attribute.
5071
5072 2019-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
5073
5074 * config/msp430/msp430.c (msp430_preserve_reg_p): Don't save
5075 callee-saved regs R4->R10 in an interrupt function that calls another
5076 function.
5077
5078 2019-07-22 Paul A. Clarke <pc@us.ibm.com>
5079
5080 * config/rs6000/smmintrin.h (_mm_blend_epi16): New.
5081 (_mm_blendv_epi8): New.
5082
5083 2019-07-22 Richard Biener <rguenther@suse.de>
5084
5085 PR tree-optimization/91221
5086 * tree-ssa-sccvn.c (vn_reference_lookup_3): Appropriately
5087 restrict partial-def handling of empty constructors and
5088 memset to refs with known offset.
5089
5090 2019-07-22 Jan Beulich <jbeulich@suse.com>
5091
5092 * config/i386/sse.md (ternlogsuffix): New.
5093 (one_cmpl<mode>2): Don't force CONSTM1_RTX into a register when
5094 AVX512F is in use.
5095 (<mask_codefor>one_cmpl<mode>2<mask_name>): New.
5096
5097 2019-07-22 Martin Liska <mliska@suse.cz>
5098
5099 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update
5100 comment.
5101 * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol.
5102
5103 2019-07-22 Martin Liska <mliska@suse.cz>
5104
5105 * lto-section-in.c (lto_get_section_data):
5106 Use new function get_compression.
5107 * lto-streamer-out.c (produce_lto_section): Use
5108 set_compression to encode compression algorithm.
5109 * lto-streamer.h (struct lto_section): Do not
5110 use bitfields in the format.
5111
5112 2019-07-22 Martin Liska <mliska@suse.cz>
5113
5114 PR driver/91172
5115 * opts-common.c (decode_cmdline_option): Decode
5116 argument of -Werror and check it for a wrong language.
5117 * opts-global.c (complain_wrong_lang): Remove such case.
5118
5119 2019-07-22 Claudiu Zissulescu <claziss@synopsys.com>
5120
5121 * config/arc/arc.c (prepare_move_operands): Always use an
5122 intermediate register when storing a TLS symbols.
5123
5124 2019-07-22 Stafford Horne <shorne@gmail.com>
5125
5126 * config/or1k/or1k.c (or1k_expand_compare): Check for int before
5127 force_reg.
5128
5129 2019-07-22 Stafford Horne <shorne@gmail.com>
5130
5131 * config.gcc (or1k*-*-*): Add mhard-float, mdouble-float, msoft-float
5132 and munordered-float validations.
5133 * config/or1k/constraints.md (d): New register constraint.
5134 * config/or1k/predicates.md (fp_comparison_operator): New.
5135 * config/or1k/or1k.c (or1k_print_operand): Add support for printing 'd'
5136 operands.
5137 (or1k_expand_compare): Normalize unordered comparisons.
5138 * config/or1k/or1k.h (reg_class): Define DOUBLE_REGS.
5139 (REG_CLASS_NAMES): Add "DOUBLE_REGS".
5140 (REG_CLASS_CONTENTS): Add contents for DOUBLE_REGS.
5141 * config/or1k/or1k.md (type): Add fpu.
5142 (fpu): New instruction reservation.
5143 (F, f, fr, fi, FI, FOP, fop): New.
5144 (<fop><F:mode>3): New ALU instruction definition.
5145 (float<fi><F:mode>2): New conversion instruction definition.
5146 (fix_trunc<F:mode><fi>2): New conversion instruction definition.
5147 (fpcmpcc): New code iterator.
5148 (*sf_fp_insn): New instruction definition.
5149 (cstore<F:mode>4): New expand definition.
5150 (cbranch<F:mode>4): New expand definition.
5151 * config/or1k/or1k.opt (msoft-float, mhard-float, mdouble-float,
5152 munordered-float): New options.
5153 * doc/invoke.texi: Document msoft-float, mhard-float, mdouble-float and
5154 munordered-float.
5155
5156 2019-07-22 Stafford Horne <shorne@gmail.com>
5157
5158 * config.gcc (or1k*-*-*): Add mrori and mror to validation.
5159 * doc/invoke.texi (OpenRISC Options): Add mrori option, rewrite all
5160 documenation to be more clear.
5161 * config/or1k/elf.opt (mboard=, mnewlib): Rewrite documentation to be
5162 more clear.
5163 * config/or1k/or1k.opt (mrori): New option.
5164 (mhard-div, msoft-div, mhard-mul, msoft-mul, mcmov, mror, msext,
5165 msfimm, mshftimm): Rewrite documentation to be more clear.
5166 * config/or1k/or1k.md (insn_support): Add ror and rori.
5167 (enabled): Add conditions for ror and rori.
5168 (rotrsi3): Replace condition for shftimm with ror and rori.
5169
5170 2019-07-22 Stafford Horne <shorne@gmail.com>
5171
5172 PR target/90363
5173 * config/or1k/or1k.md (zero_extend<mode>si2): Update predicate.
5174 (extend<mode>si2): Update predicate.
5175 * config/or1k/predicates.md (volatile_mem_operand): New.
5176 (reg_or_mem_operand): New.
5177
5178 2019-07-21 Iain Sandoe <iain@sandoe.co.uk>
5179
5180 * config/rs6000/rs6000.c (TARGET_NO_PROTOTYPE): Move from here...
5181 * config/rs6000/rs6000-call.c: ... to here.
5182
5183 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
5184
5185 * config/rs6000/predicates.md (offsettable_mem_operand): Allow volatile
5186 memory.
5187
5188 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
5189
5190 * config/rs6000/predicates.md (input_operand): Allow volatile memory.
5191
5192 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
5193
5194 * config/rs6000/predicates.md (lwa_operand): Allow volatile memory.
5195
5196 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
5197
5198 * config/rs6000/predicates.md (volatile_mem_operand): Modernize syntax.
5199 (any_memory_operand): New predicate.
5200 (reg_or_mem_operand): Use it.
5201
5202 2019-07-20 Jakub Jelinek <jakub@redhat.com>
5203
5204 PR target/91204
5205 * optabs.c (expand_unop): As fallback, expand ~op0 as op0 ^ -1.
5206
5207 2019-07-20 John David Anglin <danglin@gcc.gnu.org>
5208
5209 * config/pa/pa.h (hppa_profile_hook): Delete declaration.
5210 * config/pa/pa-protos.h (hppa_profile_hook): Add declaration.
5211
5212 2019-07-20 Jakub Jelinek <jakub@redhat.com>
5213
5214 * tree.def (OMP_LOOP): New tree code.
5215 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_BIND.
5216 (enum omp_clause_bind_kind): New enum.
5217 (struct tree_omp_clause): Add subcode.bind_kind.
5218 * tree.h (OMP_LOOP_CHECK): Rename to ...
5219 (OMP_LOOPING_CHECK): ... this.
5220 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
5221 OMP_FOR_INCR, OMP_FOR_PRE_BODY, OMP_FOR_ORIG_DECLS): Use
5222 OMP_LOOPING_CHECK instead of OMP_LOOP_CHECK.
5223 (OMP_CLAUSE_BIND_KIND): Define.
5224 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
5225 bind clause entries.
5226 (walk_tree_1): Handle OMP_CLAUSE_BIND.
5227 * tree-pretty-print.c (dump_omp_clause): Likewise.
5228 (dump_generic_node): Handle OMP_LOOP.
5229 * gimplify.c (enum omp_region_type): Add ORT_IMPLICIT_TARGET.
5230 (in_omp_construct): New variable.
5231 (is_gimple_stmt): Handle OMP_LOOP.
5232 (gimplify_scan_omp_clauses): For lastprivate don't set
5233 check_non_private if code == OMP_LOOP. For reduction clause
5234 on OMP_LOOP combined with parallel or teams propagate as shared
5235 on the combined construct. Handle OMP_CLAUSE_BIND.
5236 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_BIND.
5237 (gimplify_omp_for): Pass OMP_LOOP instead of OMP_{FOR,DISTRIBUTE}
5238 for constructs from a loop construct to gimplify_scan_omp_clauses.
5239 Don't predetermine iterator linear on OMP_SIMD from loop construct.
5240 (replace_reduction_placeholders, gimplify_omp_loop): New functions.
5241 (gimplify_omp_workshare): Use ORT_IMPLICIT_TARGET instead of trying
5242 to match the implicit ORT_TARGET construct around whole body.
5243 Temporarily clear in_omp_construct when processing body.
5244 (gimplify_expr): Handle OMP_LOOP. For OMP_MASTER, OMP_TASKGROUP
5245 etc. temporarily set in_omp_construct when processing body.
5246 (gimplify_body): Create ORT_IMPLICIT_TARGET instead of ORT_TARGET.
5247 * omp-low.c (struct omp_context): Add loop_p.
5248 (build_outer_var_ref): Treat ctx->loop_p similarly to simd construct
5249 in that the original var might be private.
5250 (scan_sharing_clauses): Handle OMP_CLAUSE_BIND.
5251 (check_omp_nesting_restrictions): Adjust nesting restrictions for
5252 addition of loop construct.
5253 (scan_omp_1_stmt): Allow setjmp inside of loop construct.
5254
5255 * omp-low.c (lower_rec_input_clauses): Don't force simd arrays for
5256 lastprivate non-addressable iterator of a collapse(1) simd.
5257
5258 2019-07-17 Bill Seurer <seurer@linux.vnet.ibm.com>
5259
5260 * config/rs6000/rs6000-call.c (HAVE_AS_GNU_ATTRIBUTE): define value
5261 as in rs6000.c.
5262
5263 2019-07-19 Iain Sandoe <iain@sandoe.co.uk>
5264
5265 * config/darwin.h (DRIVER_SELF_SPECS): Ignore X and Mach specs which
5266 refer to default conditions. Warn for the 'y' spec which is ignored
5267 by current linkers.
5268
5269 2019-07-19 Bill Seurer <seurer@linux.vnet.ibm.com>
5270
5271 * config/rs6000/rs6000.c (builtin_description, cpu_is_info,
5272 cpu_supports_info, builtin_hash_struct, builtin_hasher,
5273 builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
5274 rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
5275 rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
5276 init_cumulative_args, rs6000_promote_function_mode,
5277 rs6000_must_pass_in_stack, is_complex_IBM_long_double,
5278 abi_v4_pass_in_fpr, rs6000_function_arg_padding,
5279 rs6000_function_arg_boundary, rs6000_parm_offset,
5280 rs6000_parm_start, rs6000_arg_size,
5281 rs6000_darwin64_record_arg_advance_flush,
5282 rs6000_darwin64_record_arg_advance_recurse,
5283 rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
5284 rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
5285 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
5286 rs6000_mixed_function_arg, rs6000_psave_function_arg,
5287 rs6000_finish_function_arg, rs6000_function_arg,
5288 rs6000_arg_partial_bytes, rs6000_pass_by_reference,
5289 rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
5290 rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
5291 setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
5292 rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
5293 bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
5294 bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
5295 rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
5296 rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
5297 rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
5298 altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
5299 altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
5300 altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
5301 altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
5302 htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
5303 altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
5304 get_element_number, altivec_expand_vec_set_builtin,
5305 altivec_expand_vec_ext_builtin, altivec_expand_builtin,
5306 rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
5307 rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
5308 fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
5309 fold_mergeeo_helper, rs6000_gimple_fold_builtin,
5310 rs6000_expand_builtin, rs6000_vector_type,
5311 rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
5312 htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
5313 rs6000_internal_arg_pointer, rs6000_output_mi_thunk): Move
5314 to rs6000-call.c.
5315 * config/rs6000/rs6000-call.c (builtin_description, cpu_is_info,
5316 cpu_supports_info, builtin_hash_struct, builtin_hasher,
5317 builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
5318 rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
5319 rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
5320 init_cumulative_args, rs6000_promote_function_mode,
5321 rs6000_must_pass_in_stack, is_complex_IBM_long_double,
5322 abi_v4_pass_in_fpr, rs6000_function_arg_padding,
5323 rs6000_function_arg_boundary, rs6000_parm_offset,
5324 rs6000_parm_start, rs6000_arg_size,
5325 rs6000_darwin64_record_arg_advance_flush,
5326 rs6000_darwin64_record_arg_advance_recurse,
5327 rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
5328 rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
5329 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
5330 rs6000_mixed_function_arg, rs6000_psave_function_arg,
5331 rs6000_finish_function_arg, rs6000_function_arg,
5332 rs6000_arg_partial_bytes, rs6000_pass_by_reference,
5333 rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
5334 rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
5335 setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
5336 rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
5337 bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
5338 bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
5339 rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
5340 rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
5341 rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
5342 altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
5343 altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
5344 altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
5345 altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
5346 htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
5347 altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
5348 get_element_number, altivec_expand_vec_set_builtin,
5349 altivec_expand_vec_ext_builtin, altivec_expand_builtin,
5350 rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
5351 rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
5352 fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
5353 fold_mergeeo_helper, rs6000_gimple_fold_builtin,
5354 rs6000_expand_builtin, rs6000_vector_type,
5355 rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
5356 htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
5357 rs6000_internal_arg_pointer, rs6000_output_mi_thunk: Move
5358 to here from rs6000.c.
5359 * config/rs6000/rs6000-internal.h: (rs6000_darwin64_struct_check_p,
5360 rs6000_discover_homogeneous_aggregate, rs6000_output_mi_thunk,
5361 rs6000_output_addr_const_extra, rs6000_gimple_fold_builtin,
5362 rs6000_invalid_builtin, rs6000_build_builtin_va_list, rs6000_va_start,
5363 rs6000_gimplify_va_arg, rs6000_promote_function_mode,
5364 rs6000_return_in_memory, rs6000_return_in_msb,
5365 rs6000_pass_by_reference, setup_incoming_varargs,
5366 rs6000_function_arg_boundary, rs6000_must_pass_in_stack,
5367 rs6000_arg_partial_bytes, rs6000_function_arg_advance,
5368 rs6000_function_arg_padding, rs6000_function_arg,
5369 rs6000_darwin64_record_arg, rs6000_internal_arg_pointer,
5370 rs6000_init_builtins, rs6000_builtin_decl, rs6000_expand_builtin,
5371 rs6000_fold_builtin, rs6000_passes_ieee128, rs6000_passes_float,
5372 rs6000_passes_long_double, rs6000_passes_vector,
5373 rs6000_returns_struct, cpu_builtin_p, tree builtin_mode_to_type,
5374 altivec_builtin_mask_for_load) Add declarations.
5375 * config/rs6000/t-rs6000: Add new source file rs6000-call.c.
5376 * config/config.gcc: Add new source file rs6000-call.c to garbage
5377 collector and extra_objs.
5378
5379 2019-07-19 Jeff Law <law@redhat.com>
5380
5381 PR tree-optimization/86061
5382 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
5383 strncpy. Drop some trivial dead code.
5384 (maybe_trim_memstar_call): Handle strncpy.
5385
5386 2019-07-19 Richard Biener <rguenther@suse.de>
5387
5388 PR tree-optimization/91211
5389 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
5390 memset encoding size.
5391
5392 2019-07-19 Uroš Bizjak <ubizjak@gmail.com>
5393
5394 PR target/91204
5395 * config/i386/mmx.md (one_cmpl<mode>2): New expander.
5396
5397 2019-07-19 Jan Hubicka <hubicka@ucw.cz>
5398
5399 PR ipa/91194
5400 * ipa-inline.c (recursive_inlining): Fix limits check.
5401
5402 2019-07-19 Richard Biener <rguenther@suse.de>
5403
5404 PR tree-optimization/91200
5405 * tree-ssa-phiopt.c (cond_store_replacement): Check we have
5406 no PHI nodes in middle-bb.
5407
5408 2019-07-19 Richard Sandiford <richard.sandiford@arm.com>
5409
5410 * doc/invoke.texi: Rename the AArch64 +bitperm extension flag
5411 to +sve-bitperm.
5412 * config/aarch64/aarch64-option-extensions.def: Likewise.
5413
5414 2019-07-19 Jakub Jelinek <jakub@redhat.com>
5415
5416 PR middle-end/91190
5417 * function.c (insert_temp_slot_address): Store into the hash table
5418 a copy of address to avoid RTL sharing issues.
5419
5420 2019-07-19 Richard Biener <rguenther@suse.de>
5421
5422 PR tree-optimization/91207
5423 Revert
5424 2019-07-17 Richard Biener <rguenther@suse.de>
5425
5426 PR tree-optimization/91178
5427 * tree-vect-stmts.c (get_group_load_store_type): For SLP
5428 loads with a gap larger than the vector size always use
5429 VMAT_STRIDED_SLP.
5430 (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
5431 avoid loading vectors that are only contained in the gap
5432 and thus are not needed.
5433
5434 2019-07-18 Uroš Bizjak <ubizjak@gmail.com>
5435
5436 * config/i386/i386.md (*addqi_2_slp): Remove.
5437 (*<code>qi_2_slp): Ditto.
5438
5439 2019-07-18 Michael Meissner <meissner@linux.ibm.com>
5440
5441 * config/rs6000/predicates.md (prefixed_mem_operand): Call
5442 rs6000_prefixed_address_mode_p instead of rs6000_prefixed_address.
5443 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address_mode_p):
5444 Rename function from rs6000_prefixed_address.
5445 * config/rs6000/aix.h (TARGET_HAS_TOC): Rename TARGET_TOC to
5446 TARGET_HAS_TOC.
5447 (TARGET_TOC): Likewise.
5448 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
5449 rs6000.h.
5450 * config/rs6000/darwin.h (TARGET_HAS_TOC): Rename TARGET_TOC to
5451 TARGET_HAS_TOC.
5452 (TARGET_TOC): Likewise.
5453 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
5454 rs6000.h.
5455 * config/rs6000/linux64.h (TARGET_HAS_TOC): Rename TARGET_TOC to
5456 TARGET_HAS_TOC.
5457 (TARGET_TOC): Likewise.
5458 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
5459 check to require -mcmodel=medium for pc-relative addressing.
5460 (create_TOC_reference): Add assertion for TARGET_TOC.
5461 (rs6000_legitimize_address): Use TARGET_NO_TOC_OR_PCREL instead of
5462 TARGET_NO_TOC.
5463 (rs6000_emit_move): Likewise.
5464 (TOC_alias_set): Rename TOC alias set static variable from 'set'
5465 to 'TOC_alias_set'.
5466 (get_TOC_alias_set): Likewise.
5467 (output_toc): Use TARGET_NO_TOC_OR_PCREL instead of
5468 TARGET_NO_TOC.
5469 (rs6000_can_eliminate): Likewise.
5470 (rs6000_prefixed_address_mode_p): Rename function from
5471 rs6000_prefixed_address.
5472 * config/rs6000/rs6000.h (TARGET_TOC): Define in terms of
5473 TARGET_HAS_TOC and not pc-relative.
5474 (TARGET_NO_TOC_OR_PCREL): New macro to replace TARGET_NO_TOC.
5475 * config/rs6000/sysv4.h (TARGET_HAS_TOC): Rename TARGET_TOC to
5476 TARGET_HAS_TOC.
5477 (TARGET_TOC): Likewise.
5478 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
5479 rs6000.h.
5480
5481 2019-07-18 Uroš Bizjak <ubizjak@gmail.com>
5482
5483 PR target/91188
5484 * config/i386/i386.md (*addqi_1_slp): Use register_operand predicate
5485 for operand 0. Do not use (match_dup) to match operand 1 with
5486 operand 0. Add check in insn constraint that either input operand
5487 matches operand 0. Use SWI12 mode iterator to also handle
5488 HImode operands.
5489 (*and<mode>_1_slp): Ditto.
5490 (*<code>qi_1_slp): Ditto.
5491 (*sub<mode>_1_slp): Use register_operand predicate for operand 0.
5492 Do not use (match_dup) to match operand 1 with operand 0. Add
5493 check in insn constraint that operand 1 matches operand 0.
5494 Use SWI12 mode iterator to also handle HImode operands.
5495 (*ashl<mode>3_1_slp): Ditto.
5496 (*<shift_insn><mode>3_1_slp): Ditto.
5497 (*<rotate_insn><mode>3_1_slp): Ditto.
5498
5499 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com>
5500
5501 * config/arm/arm-builtins.c
5502 (arm_expand_ternop_builtin): Remove explicit sha1 builtin handling.
5503 (arm_expand_unop_builtin): Likewise.
5504 * config/arm/crypto.md
5505 (crypto_sha1h): Convert from define_insn to define_expand.
5506 (crypto_<crypto_pattern>): Likewise.
5507 (crypto_sha1h_lb): New define_insn.
5508 (crypto_<crypto_pattern>_lb): Likewise.
5509
5510 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com>
5511
5512 PR target/90317
5513 * config/arm/arm_neon.h (vsha1h_u32): Refactor.
5514 (vsha1cq_u32): Likewise.
5515 (vsha1pq_u32): Likewise.
5516 (vsha1mq_u32): Likewise.
5517 * config/arm/crypto.md (crypto_sha1h): Remove zero extend, correct
5518 vec select.
5519 (crypto_sha1c): Correct vec select.
5520 (crypto_sha1m): Likewise.
5521 (crypto_sha1p): Likewise.
5522
5523 2019-07-18 Richard Earnshaw <rearnsha@arm.com>
5524
5525 * config/arm/predicates.md (arm_borrow_operation): New predicate.
5526 * config/arm/arm.c (subdi3_compare1): Use CCmode for the split.
5527 (arm_subdi3, subdi_di_zesidi, subdi_di_sesidi): Likewise.
5528 (subdi_zesidi_zesidi): Likewise.
5529 (negdi2_compare, negdi2_insn): Likewise.
5530 (negdi_extensidi): Likewise.
5531 (negdi_zero_extendsidi): Likewise.
5532 (arm_cmpdi_insn): Likewise.
5533 (subsi3_carryin): Use arm_borrow_operation.
5534 (subsi3_carryin_const): Likewise.
5535 (subsi3_carryin_const0): Likewise.
5536 (subsi3_carryin_compare): Likewise.
5537 (subsi3_carryin_compare_const): Likewise.
5538 (subsi3_carryin_compare_const0): Likewise.
5539 (subsi3_carryin_shift): Likewise.
5540 (rsbsi3_carryin_shift): Likewise.
5541 (negsi2_carryin_compare): Likewise.
5542
5543 2019-07-18 Bin Cheng <bin.cheng@linux.alibaba.com>
5544
5545 PR tree-optimization/91137
5546 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field.
5547 (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize):
5548 Init, use and fini the above new field.
5549 (determine_base_object_1): New function.
5550 (determine_base_object): Reimplement using walk_tree.
5551
5552 2019-07-18 Richard Sandiford <richard.sandiford@arm.com>
5553
5554 * basic-block.h (CLEANUP_FORCE_FAST_DCE): New macro.
5555 * cfgcleanup.c (cleanup_cfg): Call run_fast_dce if
5556 CLEANUP_FORCE_FAST_DCE is set.
5557 * ifcvt.c (rest_of_handle_if_conversion): Pass
5558 CLEANUP_FORCE_FAST_DCE to the final cleanup_cfg call if
5559 if-conversion succeeded.
5560
5561 2019-07-18 Richard Biener <rguenther@suse.de>
5562
5563 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Refactor
5564 branches to make code less indented.
5565
5566 2019-07-17 Alexandre Oliva <oliva@adacore.com>
5567
5568 PR middle-end/81824
5569 * attribs.c (decls_mismatched_attributes): Simplify the logic
5570 that avoids duplicates and false positives.
5571
5572 2019-07-17 John David Anglin <danglin@gcc.gnu.org>
5573
5574 * config/pa/pa.c (pa_som_asm_init_sections): Don't force all constant
5575 data into data section when generating PIC code.
5576 (pa_select_section): Use pa_reloc_rw_mask() to qualify relocs.
5577 (pa_reloc_rw_mask): Return 3 when generating PIC code and when
5578 generating code for SOM targets earlier than HP-UX 11. Otherwise,
5579 return 2 for SOM and 0 for other targets.
5580
5581 2019-07-17 Jeff Law <law@redhat.com>
5582
5583 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Fix formatting.
5584 (dse_walker::dse_optimize_stmt): Likewise. Add missing return to
5585 avoid unexpected switch statement fallthru.
5586
5587 2019-07-17 Uroš Bizjak <ubizjak@gmail.com>
5588
5589 * config/i386/i386.md (*add<dwi>3_doubleword):
5590 Remove redundant constraints.
5591 (*add<mode>_1): Ditto.
5592 (*addhi_1): Ditto.
5593 (*addqi_1): Ditto.
5594 (*addqi_1_slp): Ditto.
5595 (*add<mode>_2): Ditto.
5596 (*addv<mode>4): Ditto.
5597 (*sub<dwi>3_doubleword): Ditto.
5598 (*sub<mode>_1): Ditto.
5599 (*subqi_1_slp): Ditto.
5600 (*sub<mode>_2): Ditto.
5601 (*subv<mode>4): Ditto.
5602 (*sub<mode>_3): Ditto.
5603 (@add<mode>3_carry): Ditto.
5604 (@sub<mode>3_carry): Ditto.
5605 (*add<mode>3_cc_overflow_1): Ditto.
5606 (*add<mode>3_zext_cc_overflow_2): Ditto.
5607 (*anddi_1): Ditto.
5608 (*and<mode>_1): Ditto.
5609 (*andqi_1): Ditto.
5610 (*andqi_1_slp): Ditto.
5611 (*anddi_2): Ditto.
5612 (*andqi_2_maybe_si): Ditto.
5613 (*and<mode>_2): Ditto.
5614 (*andqi_2_slp): Ditto.
5615 (*<code><mode>_1): Ditto.
5616 (*<code>qi_1): Ditto.
5617 (*<code>qi_1_slp): Ditto.
5618 (*<code><mode>_2): Ditto.
5619 (*<code>qi_2_slp): Ditto.
5620
5621 2019-07-17 Jan Hubicka <hubicka@ucw.cz>
5622
5623 * alias.c (record_component_aliases): Do not simplify pointed-to
5624 types of ODR types.
5625
5626 2019-07-17 Uroš Bizjak <ubizjak@gmail.com>
5627
5628 * config/i386/i386.md (*andqi_2_maybe_si): Handle potential
5629 partial reg stall on alternative 2.
5630
5631 2019-07-17 Richard Biener <rguenther@suse.de>
5632
5633 PR tree-optimization/91178
5634 * tree-ssa.c (release_defs_bitset): Iterate from higher to
5635 lower SSA names to avoid quadratic behavior in the common case.
5636 * tree-data-ref.c (split_constant_offset): Add limit argument
5637 and pass it down. Initialize it from PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
5638 (split_constant_offset_1): Add limit argument and use it to
5639 limit SSA def walking. Optimize the common plus/minus case.
5640
5641 2019-07-17 Richard Biener <rguenther@suse.de>
5642
5643 PR tree-optimization/91178
5644 * tree-vect-stmts.c (get_group_load_store_type): For SLP
5645 loads with a gap larger than the vector size always use
5646 VMAT_STRIDED_SLP.
5647 (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
5648 avoid loading vectors that are only contained in the gap
5649 and thus are not needed.
5650
5651 2019-07-17 Richard Biener <rguenther@suse.de>
5652
5653 PR tree-optimization/91180
5654 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix offset
5655 computation for memset partial defs.
5656
5657 2019-07-17 Jakub Jelinek <jakub@redhat.com>
5658
5659 * gimple.h (enum gf_mask): Remove GF_OMP_FOR_SIMD, change
5660 GF_OMP_FOR_KIND_SIMD to a value serially after other kinds,
5661 divide GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_COMBINED,
5662 GF_OMP_FOR_COMBINED_INTO, GF_OMP_FOR_GRID_PHONY,
5663 GF_OMP_FOR_GRID_INTRA_GROUP and GF_OMP_FOR_GRID_GROUP_ITER by two.
5664 * omp-grid.c (grid_process_grid_body,
5665 grid_eliminate_combined_simd_part): Use GF_OMP_FOR_KIND_SIMD instead
5666 of GF_OMP_FOR_SIMD, don't test & GF_OMP_FOR_SIMD but
5667 == GF_OMP_FOR_KIND_SIMD.
5668 * omp-low.c (build_outer_var_ref, scan_sharing_clauses,
5669 check_omp_nesting_restrictions, scan_omp_1_stmt,
5670 lower_rec_input_clauses, lower_lastprivate_conditional_clauses,
5671 lower_lastprivate_clauses, lower_reduction_clauses, lower_omp_scan,
5672 omp_find_scan): Likewise.
5673 * omp-expand.c (expand_omp_for): Likewise.
5674 * omp-general.c (omp_extract_for_data): Likewise.
5675
5676 PR tree-optimization/91157
5677 * tree-vect-generic.c (expand_vector_comparison): Handle lhs being
5678 a vector boolean with scalar mode.
5679 (expand_vector_condition): Handle first operand being a vector boolean
5680 with scalar mode.
5681 (expand_vector_operations_1): For comparisons, don't bail out early
5682 if the return type is vector boolean with scalar mode, but comparison
5683 operand type is not.
5684
5685 2019-07-17 Richard Biener <rguenther@suse.de>
5686
5687 PR tree-optimization/91181
5688 * tree-vect-slp.c (vect_build_slp_tree_1): Do not compare
5689 IFN_LOADs as calls.
5690
5691 2019-07-16 Uroš Bizjak <ubizjak@gmail.com>
5692
5693 * config/i386/i386.md (*testdi_1): Match CCZmode for
5694 constants that might have the SImode sign bit set.
5695 (*testqi_1_maybe_si): Remove "!" constraint modifier.
5696 Use correct constraints for pentium pairing.
5697 (*test<mode>_1): Ditto.
5698
5699 2019-07-16 Jeff Law <law@redhat.com>
5700
5701 PR rtl-optimization/91173
5702 * tree-ssa-address.c (addr_for_mem_ref): If the base is an
5703 SSA_NAME with a constant value, fold its value into the offset
5704 and clear the base before calling gen_addr_rtx.
5705
5706 2019-07-16 Jakub Jelinek <jakub@redhat.com>
5707
5708 PR rtl-optimization/91164
5709 * dse.c (rest_of_handle_dse): If dead edges have been purged,
5710 invalidate dominance info.
5711
5712 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
5713
5714 * read-md.h (md_reader::record_potential_iterator_use): Add a
5715 file_location parameter.
5716 * read-rtl.c (attribute_use::loc): New field.
5717 (map_attr_string): Take a file_location parameter. Report cases
5718 in which attributes map to multiple distinct values.
5719 (apply_attribute_uses): Update call accordingly.
5720 (md_reader::handle_overloaded_name): Likewise.
5721 (md_reader::apply_iterator_to_string): Likewise. Skip empty
5722 nonnull strings.
5723 (record_attribute_use): Take a file_location parameter.
5724 Initialize attribute_use::loc.
5725 (md_reader::record_potential_iterator_use): Take a file_location
5726 parameter. Update call to record_attribute_use.
5727 (rtx_reader::rtx_alloc_for_name): Update call accordingly.
5728 (rtx_reader::read_rtx_code): Likewise.
5729 (rtx_reader::read_rtx_operand): Likewise. Record a location
5730 for implicitly-expanded empty strings.
5731
5732 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
5733
5734 * read-md.h (md_reader::ptr_loc): Moved from read-md.c.
5735 Use file_location instead of separate fields.
5736 (md_reader::set_md_ptr_loc): Take a file_location instead of a
5737 separate filename and line number.
5738 * read-md.c (ptr_loc): As above.
5739 (md_reader::copy_md_ptr_loc): Update for new ptr_loc layout.
5740 (md_reader::fprint_md_ptr_loc): Likewise.
5741 (md_reader::set_md_ptr_loc): Likewise. Take a file_location
5742 instead of a separate filename and line number.
5743 (md_reader::read_string): Update call accordingly.
5744
5745 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
5746
5747 * config/rs6000/rs6000.md (*mov<mode>_update1): Explicitly
5748 use <SFDF:mode>, <SFDF:MODE>, <SFDF:Ff> and <SFDF:bits> rather than
5749 leaving the choice between SFDF and P implicit.
5750 (*mov<mode>_update2): Likewise.
5751 (*cmp<IBM128:mode>_internal2): Explicitly use <IBM128:MODE>
5752 rather than leaving the choice betweem IBM128 and GPR implicit.
5753 (*fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Explicitly use
5754 <IEEE128:MODE> rather than leaving the choice between IEEE128 and
5755 QHSI implicit.
5756 (AltiVec define_peephole2s): Explicitly use <ALTIVEC_DFORM:MODE>
5757 rather than leaving the choice between ALTIVEC_DFORM and P implicit.
5758 * config/rs6000/vsx.md
5759 (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>)
5760 (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Explicitly
5761 use <FL_CONV:VSisa> rather than leaving the choice between FL_CONV
5762 and VSX_EXTRACT_I implicit.
5763
5764 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
5765
5766 * config/mips/micromips.md (*movep<MOVEP1:mode><MOVEP2:mode>):
5767 Explicitly use <MOVEP1:MODE> for the mode attribute.
5768
5769 2019-07-16 Jan Hubicka <hubicka@ucw.cz>
5770
5771 PR bootstrap/91176
5772 * ipa-fnsummary.c (analyze_function_body): Skip debug stmts
5773
5774 2019-07-15 Segher Boessenkool <segher@kernel.crashing.org>
5775
5776 PR target/91050
5777 * config/rs6000/rs6000.c (rs6000_file_start): Never skip emitting a
5778 .machine directive.
5779
5780 2019-07-15 Uroš Bizjak <ubizjak@gmail.com>
5781
5782 * config/i386/i386.md (@test<mode>_ccno_1):
5783 Rename from test<mode>_ccno_1.
5784 (*testdi_1): Remove redundant alternatives. Remove modrm attribute.
5785 (*testqi_1_maybe_si): Remove modrm attribute.
5786 (*test<mode>_1): Ditto.
5787 * config/i386/i386-expand.c (ix86_split_idivmod): Use
5788 gen_test_ccno_1 and gen_extend_insn.
5789
5790 2019-07-15 Jan Hubicka <hubicka@ucw.cz>
5791
5792 * tree-ssa-alias.c (aliasing_component_refs_walk): Initialize same_p
5793 to 0.
5794
5795 2019-07-15 Richard Biener <rguenther@suse.de>
5796
5797 PR middle-end/91162
5798 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
5799 node make sure to replace all uses with something valid.
5800
5801 2019-07-15 Kewen Lin <linkw@gcc.gnu.org>
5802
5803 PR tree-optimization/88497
5804 * tree-ssa-reassoc.c (reassociate_bb): Swap the positions of
5805 GIMPLE_BINARY_RHS check and gimple_visited_p check, call new
5806 function undistribute_bitref_for_vector.
5807 (undistribute_bitref_for_vector): New function.
5808 (cleanup_vinfo_map): Likewise.
5809 (sort_by_mach_mode): Likewise.
5810
5811 2019-07-14 Uroš Bizjak <ubizjak@gmail.com>
5812
5813 * config/i386/i386.md (nonmemory_szext_operand): New mode attribute.
5814 (test<mode>_ccno_1): Macroize insn pattern from testsi_ccno_1
5815 and testdi_ccno_1 using SWI48 mode attribute.
5816 (*testdi_1): Use x86_64_szext_nonmemory_operand instead of
5817 x86_64_szext_general_operand.
5818 (*testqi_1_maybe_si): Use nonmemory_operand instead of general_operand.
5819 (*test<mode>_1): Use nonmemory_szext_operand mode attribute
5820 instead of genera_operand mode attribute.
5821
5822 2019-07-14 Vladislav Ivanishin <vlad@ispras.ru>
5823
5824 * gdbhooks.py (DumpFn.invoke): Add explicit casts of return values of
5825 fopen and fclose to their respective types.
5826 (DotFn.invoke): Ditto.
5827
5828 2019-07-14 Jan Hubicka <hubicka@ucw.cz>
5829
5830 * ipa-fnsummary.c (ipa_dump_hints): Do not dump array_index.
5831 (ipa_fn_summary::~ipa_fn_summary): Do not destroy array_index.
5832 (ipa_fn_summary_t::duplicate): Do not duplicate array_index.
5833 (array_index_predicate): Remove.
5834 (analyze_function_body): Account cost for variable ofsetted array
5835 indexing.
5836 (estimate_node_size_and_time): Do not compute array index hint.
5837 (ipa_merge_fn_summary_after_inlining): Do not merge array index hint.
5838 (inline_read_section): Do not read array index hint.
5839 (ipa_fn_summary_write): Do not write array index hint.
5840 * doc/invoke.texi (ipa-cp-array-index-hint-bonus): Remove.
5841 * ipa-cp.c (hint_time_bonus): Remove.
5842 * ipa-fnsummary.h (ipa_hints_vals): Remove array_index.
5843 (ipa_fnsummary): Remove array_index.
5844 * ipa-inline.c (want_inline_small_function_p): Do not use
5845 array_index.
5846 (edge_badness): Likewise.
5847 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Remove.
5848
5849 2019-07-14 Segher Boessenkool <segher@kernel.crashing.org>
5850
5851 PR target/91148
5852 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Remove
5853 superfluous "builtin function" phrasing.
5854
5855 2019-07-13 Jan Hubicka <hubicka@ucw.cz>
5856
5857 * tree-ssa-alias.c (component_ref_to_zero_sized_trailing_array_p):
5858 Break out from ...
5859 (aliasing_component_refs_walk): Break out from ...
5860 (aliasing_component_refs_p): ... here.
5861
5862 2019-07-13 Segher Boessenkool <segher@kernel.crashing.org>
5863
5864 PR target/91148
5865 * config/rs6000/rs6000.c (rs6000_invalid_builtin): Remove superfluous
5866 "builtin function" phrasing.
5867
5868 2019-07-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5869
5870 PR target/90723
5871 * recog.h (temporary_volatile_ok): New class.
5872 * config/aarch64/aarch64.c (aarch64_emit_sve_pred_move): Set
5873 volatile_ok temporarily to true using temporary_volatile_ok.
5874 * expr.c (emit_block_move_via_cpymem): Likewise.
5875 * optabs.c (maybe_legitimize_operand): Likewise.
5876
5877 2019-07-13 Jakub Jelinek <jakub@redhat.com>
5878
5879 * gimplify.c (struct gimplify_omp_ctx): Add order_concurrent member.
5880 (omp_notice_threadprivate_variable): Diagnose threadprivate variable
5881 uses inside of order(concurrent) constructs.
5882 (gimplify_scan_omp_clauses): Set ctx->order_concurrent if
5883 OMP_CLAUSE_ORDER is seen.
5884 * omp-low.c (struct omp_context): Add order_concurrent member.
5885 (scan_sharing_clauses): Set ctx->order_concurrent if
5886 OMP_CLAUSE_ORDER is seen.
5887 (check_omp_nesting_restrictions): Diagnose ordered or atomic inside
5888 of simd order(concurrent). Diagnose constructs not allowed inside of
5889 for order(concurrent).
5890 (setjmp_or_longjmp_p): Add a context and TREE_PUBLIC check to avoid
5891 complaining about static double setjmp (double); or class static
5892 methods or non-global namespace setjmps.
5893 (omp_runtime_api_call): New function.
5894 (scan_omp_1_stmt): Diagnose OpenMP runtime API calls inside of
5895 order(concurrent) loops.
5896
5897 2019-07-12 Martin Sebor <msebor@redhat.com>
5898
5899 * doc/invoke.texi (ssa-name-def-chain-limit): Document new --param.
5900 * params.def (PARAM_SSA_NAME_DEF_CHAIN_LIMIT): Add new --param.
5901 * tree-vrp.c (vrp_prop::check_mem_ref): Use
5902 PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
5903
5904 2019-07-12 Jan Hubicka <jh@suse.cz>
5905
5906 * tree-ssa-alias.c (same_tmr_indexing_p): Break out from ...
5907 (indirect_refs_may_alias_p): ... here.
5908 (nonoverlapping_component_refs_since_match_p): Support also non-trivial
5909 mem refs in the access paths.
5910
5911 2019-07-12 Jiangning Liu <jiangning.liu@amperecomputing.com>
5912
5913 PR tree-optimization/89430
5914 * tree-ssa-phiopt.c (cond_store_replacement): Support conditional
5915 store elimination for local variable without address escape.
5916
5917 2019-07-12 Jeff Law <law@redhat.com>
5918
5919 * config/c6x/c6x.c (c6x_section_type): Clear SECTION_NOTYPE
5920 for the ".far" section.
5921
5922 2019-07-12 Richard Biener <rguenther@suse.de>
5923
5924 PR tree-optimization/91145
5925 * tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction
5926 chain check.
5927
5928 2019-07-12 Alexandre Oliva <oliva@adacore.com>
5929
5930 * tree-eh.c (honor_protect_cleanup_actions): Use outer_
5931 rather than this_state as the lowering context for the ELSE
5932 seq in a GIMPLE_EH_ELSE.
5933
5934 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
5935
5936 * vector-builder.h (vector_builder::elt): Allow already-supplied
5937 elements to be read back before building is complete.
5938
5939 2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
5940
5941 PR rtl-optimization/91136
5942 * df-core.c (ACCESSING REFS): Fix typos in comment.
5943 * resource.c (mark_target_live_reg): Add artificial defs that occur at
5944 the beginning of the block to the initial set of live registers.
5945
5946 2019-07-12 Richard Biener <rguenther@suse.de>
5947
5948 * fold-const.h (get_array_ctor_element_at_index): Adjust.
5949 * fold-const.c (get_array_ctor_element_at_index): Add
5950 ctor_idx output parameter informing the caller where in
5951 the constructor the element was (not) found. Add early exit
5952 for when the ctor is sorted.
5953 * gimple-fold.c (fold_array_ctor_reference): Support constant
5954 folding across multiple array elements.
5955
5956 2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
5957
5958 * cfgexpand.c (expand_gimple_stmt_1) <GIMPLE_RETURN>: If the statement
5959 doesn't have location, set the current location to the function's end.
5960
5961 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
5962
5963 * config/aarch64/aarch64.md (*compare_condjump<mode>)
5964 (loadwb_pair<GPI:mode>_<P:mode>, loadwb_pair<GPF:mode>_<P:mode>)
5965 (storewb_pair<GPI:mode>_<P:mode>, storewb_pair<GPF:mode>_<P:mode>)
5966 (*ands<mode>_compare0): Fix ambiguous uses of .md attributes.
5967 * config/aarch64/aarch64-simd.md
5968 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
5969 (*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): Likewise.
5970 * config/aarch64/aarch64-sve.md
5971 (while_ult<GPI:mode><PRED_ALL:mode>): Likewise.
5972 (*cond_<optab><mode>_any): Fix SVE_I/SVE_SDI typo.
5973
5974 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
5975
5976 * doc/md.texi: Document that @ patterns can have different
5977 numbers of operands.
5978 * genemit.c (handle_overloaded_gen): Handle this case.
5979 * genopinit.c (handle_overloaded_gen): Likewise.
5980 * gensupport.c (replace_operands_with_dups): Iterate over
5981 the new rtx's format rather than the old one's.
5982
5983 2019-07-12 Jakub Jelinek <jakub@redhat.com>
5984
5985 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ORDER.
5986 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
5987 order clause entries.
5988 (walk_tree_1): Handle OMP_CLAUSE_ORDER.
5989 * tree-pretty-print.c (dump_omp_clause): Likewise.
5990 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
5991 Likewise.
5992 * omp-low.c (scan_sharing_clauses): Likewise.
5993 * tree-nested.c (convert_nonlocal_omp_clauses,
5994 convert_local_omp_clauses): Likewise.
5995
5996 2019-07-12 Kewen Lin <linkw@gcc.gnu.org>
5997
5998 * cfgrtl.c (print_rtl_with_bb): Emit a hint if the
5999 fallthrough target of current basic block isn't the placed
6000 right next.
6001
6002 2019-07-11 Sunil K Pandey <sunil.k.pandey@intel.com>
6003
6004 PR target/90980
6005 * config/i386/avx512fintrin.h (_mm512_loadu_epi64): New.
6006 (_mm512_storeu_epi64): Likewise.
6007 (_mm512_loadu_epi32): Likewise.
6008 (_mm512_storeu_epi32): Likewise.
6009 * config/i386/avx512vlintrin.h (_mm256_storeu_epi64): New.
6010 (_mm_storeu_epi64): Likewise.
6011 (_mm256_storeu_epi32): Likewise.
6012 (_mm_storeu_epi32): Likewise.
6013
6014 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org>
6015
6016 * config/rs6000/rs6000-logue.c: Add Modula-2 to comment.
6017
6018 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org>
6019
6020 * config/rs6000/rs6000-logue.c (rs6000_output_function_epilogue):
6021 Handle Modula-2.
6022
6023 2019-07-11 Jakub Jelinek <jakub@redhat.com>
6024
6025 PR target/91124
6026 * config/i386/sse.md (sse2_cvtpd2dq<mask_name>): Change into ...
6027 (sse2_cvtpd2dq): ... this. Remove mask substitution macros.
6028 (sse2_cvtpd2dq_mask, sse2_cvtpd2dq_mask_1): New define_insns.
6029 (ufix_notruncv2dfv2si2<mask_name>): Change into ...
6030 (ufix_notruncv2dfv2si2): ... this. Remove mask substitution macros.
6031 (ufix_notruncv2dfv2si2_mask, ufix_notruncv2dfv2si2_mask_1): New
6032 define_insns.
6033 (ufix_truncv2dfv2si2<mask_name>): Change into ...
6034 (ufix_truncv2dfv2si2): ... this. Remove mask substitution macros.
6035 (ufix_truncv2dfv2si2_mask, ufix_truncv2dfv2si2_mask_1): New
6036 define_insns.
6037 (sse2_cvttpd2dq<mask_name>): Change into ...
6038 (sse2_cvttpd2dq): ... this. Remove mask substitution macros.
6039 (sse2_cvttpd2dq_mask, sse2_cvttpd2dq_mask_1): New define_insns.
6040 (*sse2_cvtpd2dq<mask_name>): Change into ...
6041 (*sse2_cvtpd2dq): ... this. Remove mask substitution macros.
6042 Add "C" constraint to const0_operand.
6043 (*sse2_cvtpd2dq_mask, *sse2_cvtpd2dq_mask_1): New define_insns.
6044 (sse2_cvtpd2ps_mask): Adjust expand to match *sse2_cvtpd2ps_mask
6045 changes.
6046
6047 PR target/91124
6048 * config/i386/i386-builtin-types.def
6049 (V32HI_FTYPE_V32HI_V32HI_V32HI_INT,
6050 V16HI_FTYPE_V16HI_V16HI_V16HI_INT, V8HI_FTYPE_V8HI_V8HI_V8HI_INT,
6051 V8SI_FTYPE_V8SI_V8SI_V8SI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
6052 V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
6053 V2DI_FTYPE_V2DI_V2DI_V2DI_INT, V4SI_FTYPE_V4SI_V4SI_V4SI_INT): Remove.
6054 * config/i386/i386-builtin.def (__builtin_ia32_vpshrdv_v32hi_mask,
6055 __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshrdv_v16hi_mask,
6056 __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi_mask,
6057 __builtin_ia32_vpshrdv_v8hi_maskz, __builtin_ia32_vpshrdv_v16si_mask,
6058 __builtin_ia32_vpshrdv_v16si_maskz, __builtin_ia32_vpshrdv_v8si_mask,
6059 __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si_mask,
6060 __builtin_ia32_vpshrdv_v4si_maskz, __builtin_ia32_vpshrdv_v8di_mask,
6061 __builtin_ia32_vpshrdv_v8di_maskz, __builtin_ia32_vpshrdv_v4di_mask,
6062 __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di_mask,
6063 __builtin_ia32_vpshrdv_v2di_maskz, __builtin_ia32_vpshldv_v32hi_mask,
6064 __builtin_ia32_vpshldv_v32hi_maskz, __builtin_ia32_vpshldv_v16hi_mask,
6065 __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi_mask,
6066 __builtin_ia32_vpshldv_v8hi_maskz, __builtin_ia32_vpshldv_v16si_mask,
6067 __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si_mask,
6068 __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si_mask,
6069 __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di_mask,
6070 __builtin_ia32_vpshldv_v8di_maskz, __builtin_ia32_vpshldv_v4di_mask,
6071 __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di_mask,
6072 __builtin_ia32_vpshldv_v2di_maskz, __builtin_ia32_vpdpbusd_v16si_mask,
6073 __builtin_ia32_vpdpbusd_v16si_maskz, __builtin_ia32_vpdpbusd_v8si_mask,
6074 __builtin_ia32_vpdpbusd_v8si_maskz, __builtin_ia32_vpdpbusd_v4si_mask,
6075 __builtin_ia32_vpdpbusd_v4si_maskz,
6076 __builtin_ia32_vpdpbusds_v16si_mask,
6077 __builtin_ia32_vpdpbusds_v16si_maskz,
6078 __builtin_ia32_vpdpbusds_v8si_mask,
6079 __builtin_ia32_vpdpbusds_v8si_maskz,
6080 __builtin_ia32_vpdpbusds_v4si_mask,
6081 __builtin_ia32_vpdpbusds_v4si_maskz,
6082 __builtin_ia32_vpdpwssd_v16si_mask,
6083 __builtin_ia32_vpdpwssd_v16si_maskz, __builtin_ia32_vpdpwssd_v8si_mask,
6084 __builtin_ia32_vpdpwssd_v8si_maskz, __builtin_ia32_vpdpwssd_v4si_mask,
6085 __builtin_ia32_vpdpwssd_v4si_maskz,
6086 __builtin_ia32_vpdpwssds_v16si_mask,
6087 __builtin_ia32_vpdpwssds_v16si_maskz,
6088 __builtin_ia32_vpdpwssds_v8si_mask,
6089 __builtin_ia32_vpdpwssds_v8si_maskz,
6090 __builtin_ia32_vpdpwssds_v4si_mask,
6091 __builtin_ia32_vpdpwssds_v4si_maskz): Use *_USI, *_UHI or *_UQI
6092 suffixed types rather than *_INT.
6093 * config/i386/i386-expand.c (ix86_expand_args_builtin): Don't handle
6094 V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
6095 V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
6096 V4DI_FTYPE_V4DI_V4DI_V4DI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI_INT,
6097 V16SI_FTYPE_V16SI_V16SI_V16SI_INT, V2DI_FTYPE_V2DI_V2DI_V2DI_INT
6098 and V4SI_FTYPE_V4SI_V4SI_V4SI_INT.
6099
6100 2019-07-11 Aldy Hernandez <aldyh@redhat.com>
6101
6102 * tree-vrp.c (intersect_ranges): If we know the intersection is
6103 empty, there is no need to conservatively add anything else to
6104 the set.
6105
6106 2019-07-11 Richard Biener <rguenther@suse.de>
6107
6108 PR middle-end/91131
6109 * gimplify.c (gimplify_compound_literal_expr): Force a temporary
6110 when the object is volatile and we have not cleared it even though
6111 there are no nonzero elements.
6112
6113 2019-07-10 Michael Meissner <meissner@linux.ibm.com>
6114
6115 * config/rs6000/predicates.md (cint34_operand): Update
6116 SIGNED_34BIT_OFFSET_P call.
6117 (pcrel_address): Update SIGNED_34BIT_OFFSET_P call.
6118 (pcrel_external_address): Update SIGNED_34BIT_OFFSET_P call.
6119 * config/rs6000/rs6000.c (rs6000_prefixed_address): Update
6120 SIGNED_16BIT_OFFSET_P and SIGNED_34BIT_OFFSET_P calls.
6121 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): Remove EXTRA
6122 argument.
6123 (SIGNED_34BIT_OFFSET_P): Remove EXTRA argument.
6124 (SIGNED_16BIT_OFFSET_EXTRA_P): New macro, like
6125 SIGNED_16BIT_OFFSET_P with an EXTRA argument.
6126 (SIGNED_34BIT_OFFSET_EXTRA_P): New macro, like
6127 SIGNED_34BIT_OFFSET_P with an EXTRA argument.
6128
6129 2019-07-10 Iain Sandoe <iain@sandoe.co.uk>
6130
6131 * config/rs6000/darwin.h (LIB_SPEC): Collate this spec here.
6132 * config/rs6000/darwin7.h (LIB_SPEC): Remove.
6133 * config/rs6000/darwin8.h (LIB_SPEC): Remove.
6134 (DEF_MIN_OSX_VERSION): New.
6135
6136 2019-07-10 Richard Sandiford <richard.sandiford@arm.com>
6137
6138 * fold-const.c (fold_relational_const): Fix folding of
6139 vector-to-scalar NE_EXPRs.
6140 (test_vector_folding): Add more tests.
6141
6142 2019-07-10 Richard Sandiford <richard.sandiford@arm.com>
6143
6144 PR target/91060
6145 * config/arm/iterators.md (V2DI_ONLY): New mode iterator.
6146 * config/arm/neon.md (vec_set<mode>_internal): Add a '@' prefix.
6147 (vec_setv2di_internal): Reexpress as...
6148 (@vec_set<V2DI_ONLY:mode>_internal): ...this.
6149 * config/arm/arm.c (neon_expand_vector_init): Use gen_vec_set_internal
6150 rather than gen_neon_vset_lane<mode>.
6151
6152 2019-07-10 Vladimir Makarov <vmakarov@redhat.com>
6153
6154 PR target/91102
6155 * lra-constraints.c (process_alt_operands): Don't match user
6156 defined regs only if they are early clobbers.
6157
6158 2019-07-10 Marc Glisse <marc.glisse@inria.fr>
6159
6160 * wide-int.h (wi::lshift): Reject negative values for the fast path.
6161
6162 2019-07-10 Richard Biener <rguenther@suse.de>
6163
6164 PR tree-optimization/91126
6165 * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
6166 native encoding offset for BYTES_BIG_ENDIAN.
6167 (vn_reference_lookup_3): Likewise.
6168
6169 2019-07-10 Richard Biener <rguenther@suse.de>
6170
6171 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look at valueized
6172 LHS whenever possible.
6173
6174 2019-07-09 Jan Hubicka <hubicka@ucw.cz>
6175
6176 * tree-ssa-alias.c (nonoverlapping_component_refs_p_1): Break out
6177 from ...; work also on duplicated types.
6178 (nonoverlapping_component_refs_since_match): ... here
6179 (ncr_type_uid): Break out from ...
6180 (ncr_compar): ... here; look for TYPE_UID of canonical type if
6181 available.
6182 (nonoverlapping_component_refs_p): Use same_type_for_tbaa to match
6183 the types and nonoverlapping_component_refs_p_1 to disambiguate.
6184
6185 2019-07-09 Martin Sebor <msebor@redhat.com>
6186
6187 PR tree-optimization/90989
6188 * tree-ssa-strlen.c (handle_char_store): Constrain a single character
6189 optimization to just single character stores.
6190
6191 2019-07-09 Joern Rennecke <joern.rennecke@riscy-ip.com>
6192
6193 * tree-vect-stmts.c (vectorizable_comparison) <!slp_node>:
6194 Swap operands only once.
6195
6196 2019-07-09 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
6197
6198 * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal
6199 for both call instructions.
6200
6201 2019-07-09 John Darrington <john@darrington.wattle.id.au>
6202
6203 * simplify-rtx.c (simplify_unary_operation_1): Use GET_MODE_PRECISION
6204 rather than GET_MODE_BITSIZE to better handle partial integer modes.
6205
6206 2019-07-09 Michael Meissner <meissner@linux.ibm.com>
6207
6208 * config/rs6000/rs6000-internal.h (create_TOC_reference): Delete.
6209 * config/rs6000/rs6000-logue.c (create_TOC_reference): Move
6210 function from rs6000-logue.c back to rs6000.c.
6211 * config/rs6000/rs6000.c (create_TOC_reference): Likewise.
6212
6213 2019-07-09 Martin Sebor <msebor@redhat.com>
6214
6215 PR c++/61339
6216 * auto-profile.c: Change class-key of PODs to struct and others
6217 to class.
6218 * basic-block.h: Same.
6219 * bitmap.c (bitmap_alloc): Same.
6220 * bitmap.h: Same.
6221 * builtins.c (expand_builtin_prefetch): Same.
6222 (expand_builtin_interclass_mathfn): Same.
6223 (expand_builtin_strlen): Same.
6224 (expand_builtin_mempcpy_args): Same.
6225 (expand_cmpstr): Same.
6226 (expand_builtin___clear_cache): Same.
6227 (expand_ifn_atomic_bit_test_and): Same.
6228 (expand_builtin_thread_pointer): Same.
6229 (expand_builtin_set_thread_pointer): Same.
6230 * caller-save.c (setup_save_areas): Same.
6231 (replace_reg_with_saved_mem): Same.
6232 (insert_restore): Same.
6233 (insert_save): Same.
6234 (add_used_regs): Same.
6235 * cfg.c (get_bb_copy): Same.
6236 (set_loop_copy): Same.
6237 * cfg.h: Same.
6238 * cfganal.h: Same.
6239 * cfgexpand.c (alloc_stack_frame_space): Same.
6240 (add_stack_var): Same.
6241 (add_stack_var_conflict): Same.
6242 (add_scope_conflicts_1): Same.
6243 (update_alias_info_with_stack_vars): Same.
6244 (expand_used_vars): Same.
6245 * cfghooks.c (redirect_edge_and_branch_force): Same.
6246 (delete_basic_block): Same.
6247 (split_edge): Same.
6248 (make_forwarder_block): Same.
6249 (force_nonfallthru): Same.
6250 (duplicate_block): Same.
6251 (lv_flush_pending_stmts): Same.
6252 * cfghooks.h: Same.
6253 * cfgloop.c (flow_loops_cfg_dump): Same.
6254 (flow_loop_nested_p): Same.
6255 (superloop_at_depth): Same.
6256 (get_loop_latch_edges): Same.
6257 (flow_loop_dump): Same.
6258 (flow_loops_dump): Same.
6259 (flow_loops_free): Same.
6260 (flow_loop_nodes_find): Same.
6261 (establish_preds): Same.
6262 (flow_loop_tree_node_add): Same.
6263 (flow_loop_tree_node_remove): Same.
6264 (flow_loops_find): Same.
6265 (find_subloop_latch_edge_by_profile): Same.
6266 (find_subloop_latch_edge_by_ivs): Same.
6267 (mfb_redirect_edges_in_set): Same.
6268 (form_subloop): Same.
6269 (merge_latch_edges): Same.
6270 (disambiguate_multiple_latches): Same.
6271 (disambiguate_loops_with_multiple_latches): Same.
6272 (flow_bb_inside_loop_p): Same.
6273 (glb_enum_p): Same.
6274 (get_loop_body_with_size): Same.
6275 (get_loop_body): Same.
6276 (fill_sons_in_loop): Same.
6277 (get_loop_body_in_dom_order): Same.
6278 (get_loop_body_in_custom_order): Same.
6279 (release_recorded_exits): Same.
6280 (get_loop_exit_edges): Same.
6281 (num_loop_branches): Same.
6282 (remove_bb_from_loops): Same.
6283 (find_common_loop): Same.
6284 (delete_loop): Same.
6285 (cancel_loop): Same.
6286 (verify_loop_structure): Same.
6287 (loop_preheader_edge): Same.
6288 (loop_exit_edge_p): Same.
6289 (single_exit): Same.
6290 (loop_exits_to_bb_p): Same.
6291 (loop_exits_from_bb_p): Same.
6292 (get_loop_location): Same.
6293 (record_niter_bound): Same.
6294 (get_estimated_loop_iterations_int): Same.
6295 (max_stmt_executions_int): Same.
6296 (likely_max_stmt_executions_int): Same.
6297 (get_estimated_loop_iterations): Same.
6298 (get_max_loop_iterations): Same.
6299 (get_max_loop_iterations_int): Same.
6300 (get_likely_max_loop_iterations): Same.
6301 * cfgloop.h (simple_loop_desc): Same.
6302 (get_loop): Same.
6303 (loop_depth): Same.
6304 (loop_outer): Same.
6305 (loop_iterator::next): Same.
6306 (loop_outermost): Same.
6307 * cfgloopanal.c (mark_irreducible_loops): Same.
6308 (num_loop_insns): Same.
6309 (average_num_loop_insns): Same.
6310 (expected_loop_iterations_unbounded): Same.
6311 (expected_loop_iterations): Same.
6312 (mark_loop_exit_edges): Same.
6313 (single_likely_exit): Same.
6314 * cfgloopmanip.c (fix_bb_placement): Same.
6315 (fix_bb_placements): Same.
6316 (remove_path): Same.
6317 (place_new_loop): Same.
6318 (add_loop): Same.
6319 (scale_loop_frequencies): Same.
6320 (scale_loop_profile): Same.
6321 (create_empty_if_region_on_edge): Same.
6322 (create_empty_loop_on_edge): Same.
6323 (loopify): Same.
6324 (unloop): Same.
6325 (fix_loop_placements): Same.
6326 (copy_loop_info): Same.
6327 (duplicate_loop): Same.
6328 (duplicate_subloops): Same.
6329 (loop_redirect_edge): Same.
6330 (can_duplicate_loop_p): Same.
6331 (duplicate_loop_to_header_edge): Same.
6332 (mfb_keep_just): Same.
6333 (has_preds_from_loop): Same.
6334 (create_preheader): Same.
6335 (create_preheaders): Same.
6336 (lv_adjust_loop_entry_edge): Same.
6337 (loop_version): Same.
6338 * cfgloopmanip.h: Same.
6339 * cgraph.h: Same.
6340 * cgraphbuild.c: Same.
6341 * combine.c (make_extraction): Same.
6342 * config/i386/i386-features.c: Same.
6343 * config/i386/i386-features.h: Same.
6344 * config/i386/i386.c (ix86_emit_outlined_ms2sysv_save): Same.
6345 (ix86_emit_outlined_ms2sysv_restore): Same.
6346 (ix86_noce_conversion_profitable_p): Same.
6347 (ix86_init_cost): Same.
6348 (ix86_simd_clone_usable): Same.
6349 * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Add -Wclass-is-pod and
6350 Wstruct-not-pod.
6351 * coretypes.h: Same.
6352 * data-streamer-in.c (string_for_index): Change class-key of PODs
6353 to struct and others to class.
6354 (streamer_read_indexed_string): Same.
6355 (streamer_read_string): Same.
6356 (bp_unpack_indexed_string): Same.
6357 (bp_unpack_string): Same.
6358 (streamer_read_uhwi): Same.
6359 (streamer_read_hwi): Same.
6360 (streamer_read_gcov_count): Same.
6361 (streamer_read_wide_int): Same.
6362 * data-streamer.h (streamer_write_bitpack): Same.
6363 (bp_unpack_value): Same.
6364 (streamer_write_char_stream): Same.
6365 (streamer_write_hwi_in_range): Same.
6366 (streamer_write_record_start): Same.
6367 * ddg.c (create_ddg_dep_from_intra_loop_link): Same.
6368 (add_cross_iteration_register_deps): Same.
6369 (build_intra_loop_deps): Same.
6370 * df-core.c (df_analyze): Same.
6371 (loop_post_order_compute): Same.
6372 (loop_inverted_post_order_compute): Same.
6373 * df-problems.c (df_rd_alloc): Same.
6374 (df_rd_simulate_one_insn): Same.
6375 (df_rd_local_compute): Same.
6376 (df_rd_init_solution): Same.
6377 (df_rd_confluence_n): Same.
6378 (df_rd_transfer_function): Same.
6379 (df_rd_free): Same.
6380 (df_rd_dump_defs_set): Same.
6381 (df_rd_top_dump): Same.
6382 (df_lr_alloc): Same.
6383 (df_lr_reset): Same.
6384 (df_lr_local_compute): Same.
6385 (df_lr_init): Same.
6386 (df_lr_confluence_n): Same.
6387 (df_lr_free): Same.
6388 (df_lr_top_dump): Same.
6389 (df_lr_verify_transfer_functions): Same.
6390 (df_live_alloc): Same.
6391 (df_live_reset): Same.
6392 (df_live_init): Same.
6393 (df_live_confluence_n): Same.
6394 (df_live_finalize): Same.
6395 (df_live_free): Same.
6396 (df_live_top_dump): Same.
6397 (df_live_verify_transfer_functions): Same.
6398 (df_mir_alloc): Same.
6399 (df_mir_reset): Same.
6400 (df_mir_init): Same.
6401 (df_mir_confluence_n): Same.
6402 (df_mir_free): Same.
6403 (df_mir_top_dump): Same.
6404 (df_word_lr_alloc): Same.
6405 (df_word_lr_reset): Same.
6406 (df_word_lr_init): Same.
6407 (df_word_lr_confluence_n): Same.
6408 (df_word_lr_free): Same.
6409 (df_word_lr_top_dump): Same.
6410 (df_md_alloc): Same.
6411 (df_md_simulate_one_insn): Same.
6412 (df_md_reset): Same.
6413 (df_md_init): Same.
6414 (df_md_free): Same.
6415 (df_md_top_dump): Same.
6416 * df-scan.c (df_insn_delete): Same.
6417 (df_insn_rescan): Same.
6418 (df_notes_rescan): Same.
6419 (df_sort_and_compress_mws): Same.
6420 (df_install_mws): Same.
6421 (df_refs_add_to_chains): Same.
6422 (df_ref_create_structure): Same.
6423 (df_ref_record): Same.
6424 (df_def_record_1): Same.
6425 (df_find_hard_reg_defs): Same.
6426 (df_uses_record): Same.
6427 (df_get_conditional_uses): Same.
6428 (df_get_call_refs): Same.
6429 (df_recompute_luids): Same.
6430 (df_get_entry_block_def_set): Same.
6431 (df_entry_block_defs_collect): Same.
6432 (df_get_exit_block_use_set): Same.
6433 (df_exit_block_uses_collect): Same.
6434 (df_mws_verify): Same.
6435 (df_bb_verify): Same.
6436 * df.h (df_scan_get_bb_info): Same.
6437 * doc/tm.texi: Same.
6438 * dse.c (record_store): Same.
6439 * dumpfile.h: Same.
6440 * emit-rtl.c (const_fixed_hasher::equal): Same.
6441 (set_mem_attributes_minus_bitpos): Same.
6442 (change_address): Same.
6443 (adjust_address_1): Same.
6444 (offset_address): Same.
6445 * emit-rtl.h: Same.
6446 * except.c (dw2_build_landing_pads): Same.
6447 (sjlj_emit_dispatch_table): Same.
6448 * explow.c (allocate_dynamic_stack_space): Same.
6449 (emit_stack_probe): Same.
6450 (probe_stack_range): Same.
6451 * expmed.c (store_bit_field_using_insv): Same.
6452 (store_bit_field_1): Same.
6453 (store_integral_bit_field): Same.
6454 (extract_bit_field_using_extv): Same.
6455 (extract_bit_field_1): Same.
6456 (emit_cstore): Same.
6457 * expr.c (emit_block_move_via_cpymem): Same.
6458 (expand_cmpstrn_or_cmpmem): Same.
6459 (set_storage_via_setmem): Same.
6460 (emit_single_push_insn_1): Same.
6461 (expand_assignment): Same.
6462 (store_constructor): Same.
6463 (expand_expr_real_2): Same.
6464 (expand_expr_real_1): Same.
6465 (try_casesi): Same.
6466 * flags.h: Same.
6467 * function.c (try_fit_stack_local): Same.
6468 (assign_stack_local_1): Same.
6469 (assign_stack_local): Same.
6470 (cut_slot_from_list): Same.
6471 (insert_slot_to_list): Same.
6472 (max_slot_level): Same.
6473 (move_slot_to_level): Same.
6474 (temp_address_hasher::equal): Same.
6475 (remove_unused_temp_slot_addresses): Same.
6476 (assign_temp): Same.
6477 (combine_temp_slots): Same.
6478 (update_temp_slot_address): Same.
6479 (preserve_temp_slots): Same.
6480 * function.h: Same.
6481 * fwprop.c: Same.
6482 * gcc-rich-location.h: Same.
6483 * gcov.c: Same.
6484 * genattrtab.c (check_attr_test): Same.
6485 (check_attr_value): Same.
6486 (convert_set_attr_alternative): Same.
6487 (convert_set_attr): Same.
6488 (check_defs): Same.
6489 (copy_boolean): Same.
6490 (get_attr_value): Same.
6491 (expand_delays): Same.
6492 (make_length_attrs): Same.
6493 (min_fn): Same.
6494 (make_alternative_compare): Same.
6495 (simplify_test_exp): Same.
6496 (tests_attr_p): Same.
6497 (get_attr_order): Same.
6498 (clear_struct_flag): Same.
6499 (gen_attr): Same.
6500 (compares_alternatives_p): Same.
6501 (gen_insn): Same.
6502 (gen_delay): Same.
6503 (find_attrs_to_cache): Same.
6504 (write_test_expr): Same.
6505 (walk_attr_value): Same.
6506 (write_attr_get): Same.
6507 (eliminate_known_true): Same.
6508 (write_insn_cases): Same.
6509 (write_attr_case): Same.
6510 (write_attr_valueq): Same.
6511 (write_attr_value): Same.
6512 (write_dummy_eligible_delay): Same.
6513 (next_comma_elt): Same.
6514 (find_attr): Same.
6515 (make_internal_attr): Same.
6516 (copy_rtx_unchanging): Same.
6517 (gen_insn_reserv): Same.
6518 (check_tune_attr): Same.
6519 (make_automaton_attrs): Same.
6520 (handle_arg): Same.
6521 * genextract.c (gen_insn): Same.
6522 (VEC_char_to_string): Same.
6523 * genmatch.c (print_operand): Same.
6524 (lower): Same.
6525 (parser::parse_operation): Same.
6526 (parser::parse_capture): Same.
6527 (parser::parse_c_expr): Same.
6528 (parser::parse_simplify): Same.
6529 (main): Same.
6530 * genoutput.c (output_operand_data): Same.
6531 (output_get_insn_name): Same.
6532 (compare_operands): Same.
6533 (place_operands): Same.
6534 (process_template): Same.
6535 (validate_insn_alternatives): Same.
6536 (validate_insn_operands): Same.
6537 (gen_expand): Same.
6538 (note_constraint): Same.
6539 * genpreds.c (write_one_predicate_function): Same.
6540 (add_constraint): Same.
6541 (process_define_register_constraint): Same.
6542 (write_lookup_constraint_1): Same.
6543 (write_lookup_constraint_array): Same.
6544 (write_insn_constraint_len): Same.
6545 (write_reg_class_for_constraint_1): Same.
6546 (write_constraint_satisfied_p_array): Same.
6547 * genrecog.c (optimize_subroutine_group): Same.
6548 * gensupport.c (process_define_predicate): Same.
6549 (queue_pattern): Same.
6550 (remove_from_queue): Same.
6551 (process_rtx): Same.
6552 (is_predicable): Same.
6553 (change_subst_attribute): Same.
6554 (subst_pattern_match): Same.
6555 (alter_constraints): Same.
6556 (alter_attrs_for_insn): Same.
6557 (shift_output_template): Same.
6558 (alter_output_for_subst_insn): Same.
6559 (process_one_cond_exec): Same.
6560 (subst_dup): Same.
6561 (process_define_cond_exec): Same.
6562 (mnemonic_htab_callback): Same.
6563 (gen_mnemonic_attr): Same.
6564 (read_md_rtx): Same.
6565 * ggc-page.c: Same.
6566 * gimple-loop-interchange.cc (dump_reduction): Same.
6567 (dump_induction): Same.
6568 (loop_cand::~loop_cand): Same.
6569 (free_data_refs_with_aux): Same.
6570 (tree_loop_interchange::interchange_loops): Same.
6571 (tree_loop_interchange::map_inductions_to_loop): Same.
6572 (tree_loop_interchange::move_code_to_inner_loop): Same.
6573 (compute_access_stride): Same.
6574 (compute_access_strides): Same.
6575 (proper_loop_form_for_interchange): Same.
6576 (tree_loop_interchange_compute_ddrs): Same.
6577 (prune_datarefs_not_in_loop): Same.
6578 (prepare_data_references): Same.
6579 (pass_linterchange::execute): Same.
6580 * gimple-loop-jam.c (bb_prevents_fusion_p): Same.
6581 (unroll_jam_possible_p): Same.
6582 (fuse_loops): Same.
6583 (adjust_unroll_factor): Same.
6584 (tree_loop_unroll_and_jam): Same.
6585 * gimple-loop-versioning.cc (loop_versioning::~loop_versioning): Same.
6586 (loop_versioning::expensive_stmt_p): Same.
6587 (loop_versioning::version_for_unity): Same.
6588 (loop_versioning::dump_inner_likelihood): Same.
6589 (loop_versioning::find_per_loop_multiplication): Same.
6590 (loop_versioning::analyze_term_using_scevs): Same.
6591 (loop_versioning::record_address_fragment): Same.
6592 (loop_versioning::analyze_expr): Same.
6593 (loop_versioning::analyze_blocks): Same.
6594 (loop_versioning::prune_conditions): Same.
6595 (loop_versioning::merge_loop_info): Same.
6596 (loop_versioning::add_loop_to_queue): Same.
6597 (loop_versioning::decide_whether_loop_is_versionable): Same.
6598 (loop_versioning::make_versioning_decisions): Same.
6599 (loop_versioning::implement_versioning_decisions): Same.
6600 * gimple-ssa-evrp-analyze.c
6601 (evrp_range_analyzer::record_ranges_from_phis): Same.
6602 * gimple-ssa-store-merging.c (split_store::split_store): Same.
6603 (count_multiple_uses): Same.
6604 (split_group): Same.
6605 (imm_store_chain_info::output_merged_store): Same.
6606 (pass_store_merging::process_store): Same.
6607 * gimple-ssa-strength-reduction.c (slsr_process_phi): Same.
6608 * gimple-ssa-warn-alloca.c (adjusted_warn_limit): Same.
6609 (is_max): Same.
6610 (alloca_call_type): Same.
6611 (pass_walloca::execute): Same.
6612 * gimple-streamer-in.c (input_phi): Same.
6613 (input_gimple_stmt): Same.
6614 * gimple-streamer.h: Same.
6615 * godump.c (go_force_record_alignment): Same.
6616 (go_format_type): Same.
6617 (go_output_type): Same.
6618 (go_output_fndecl): Same.
6619 (go_output_typedef): Same.
6620 (keyword_hash_init): Same.
6621 (find_dummy_types): Same.
6622 * graph.c (draw_cfg_nodes_no_loops): Same.
6623 (draw_cfg_nodes_for_loop): Same.
6624 * hard-reg-set.h (hard_reg_set_iter_next): Same.
6625 * hsa-brig.c: Same.
6626 * hsa-common.h (hsa_internal_fn_hasher::equal): Same.
6627 * hsa-dump.c (dump_hsa_cfun): Same.
6628 * hsa-gen.c (gen_function_def_parameters): Same.
6629 * hsa-regalloc.c (dump_hsa_cfun_regalloc): Same.
6630 * input.c (dump_line_table_statistics): Same.
6631 (test_lexer): Same.
6632 * input.h: Same.
6633 * internal-fn.c (get_multi_vector_move): Same.
6634 (expand_load_lanes_optab_fn): Same.
6635 (expand_GOMP_SIMT_ENTER_ALLOC): Same.
6636 (expand_GOMP_SIMT_EXIT): Same.
6637 (expand_GOMP_SIMT_LAST_LANE): Same.
6638 (expand_GOMP_SIMT_ORDERED_PRED): Same.
6639 (expand_GOMP_SIMT_VOTE_ANY): Same.
6640 (expand_GOMP_SIMT_XCHG_BFLY): Same.
6641 (expand_GOMP_SIMT_XCHG_IDX): Same.
6642 (expand_addsub_overflow): Same.
6643 (expand_neg_overflow): Same.
6644 (expand_mul_overflow): Same.
6645 (expand_call_mem_ref): Same.
6646 (expand_mask_load_optab_fn): Same.
6647 (expand_scatter_store_optab_fn): Same.
6648 (expand_gather_load_optab_fn): Same.
6649 * ipa-cp.c (ipa_get_parm_lattices): Same.
6650 (print_all_lattices): Same.
6651 (ignore_edge_p): Same.
6652 (build_toporder_info): Same.
6653 (free_toporder_info): Same.
6654 (push_node_to_stack): Same.
6655 (ipcp_lattice<valtype>::set_contains_variable): Same.
6656 (set_agg_lats_to_bottom): Same.
6657 (ipcp_bits_lattice::meet_with): Same.
6658 (set_single_call_flag): Same.
6659 (initialize_node_lattices): Same.
6660 (ipa_get_jf_ancestor_result): Same.
6661 (ipcp_verify_propagated_values): Same.
6662 (propagate_scalar_across_jump_function): Same.
6663 (propagate_context_across_jump_function): Same.
6664 (propagate_bits_across_jump_function): Same.
6665 (ipa_vr_operation_and_type_effects): Same.
6666 (propagate_vr_across_jump_function): Same.
6667 (set_check_aggs_by_ref): Same.
6668 (set_chain_of_aglats_contains_variable): Same.
6669 (merge_aggregate_lattices): Same.
6670 (agg_pass_through_permissible_p): Same.
6671 (propagate_aggs_across_jump_function): Same.
6672 (call_passes_through_thunk_p): Same.
6673 (propagate_constants_across_call): Same.
6674 (devirtualization_time_bonus): Same.
6675 (good_cloning_opportunity_p): Same.
6676 (context_independent_aggregate_values): Same.
6677 (gather_context_independent_values): Same.
6678 (perform_estimation_of_a_value): Same.
6679 (estimate_local_effects): Same.
6680 (value_topo_info<valtype>::add_val): Same.
6681 (add_all_node_vals_to_toposort): Same.
6682 (value_topo_info<valtype>::propagate_effects): Same.
6683 (ipcp_propagate_stage): Same.
6684 (ipcp_discover_new_direct_edges): Same.
6685 (same_node_or_its_all_contexts_clone_p): Same.
6686 (cgraph_edge_brings_value_p): Same.
6687 (gather_edges_for_value): Same.
6688 (create_specialized_node): Same.
6689 (find_more_scalar_values_for_callers_subset): Same.
6690 (find_more_contexts_for_caller_subset): Same.
6691 (copy_plats_to_inter): Same.
6692 (intersect_aggregates_with_edge): Same.
6693 (find_aggregate_values_for_callers_subset): Same.
6694 (cgraph_edge_brings_all_agg_vals_for_node): Same.
6695 (decide_about_value): Same.
6696 (decide_whether_version_node): Same.
6697 (spread_undeadness): Same.
6698 (identify_dead_nodes): Same.
6699 (ipcp_store_vr_results): Same.
6700 * ipa-devirt.c (final_warning_record::grow_type_warnings): Same.
6701 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Same.
6702 (redirect_to_unreachable): Same.
6703 (edge_set_predicate): Same.
6704 (evaluate_conditions_for_known_args): Same.
6705 (evaluate_properties_for_edge): Same.
6706 (ipa_fn_summary_t::duplicate): Same.
6707 (ipa_call_summary_t::duplicate): Same.
6708 (dump_ipa_call_summary): Same.
6709 (ipa_dump_fn_summary): Same.
6710 (eliminated_by_inlining_prob): Same.
6711 (set_cond_stmt_execution_predicate): Same.
6712 (set_switch_stmt_execution_predicate): Same.
6713 (compute_bb_predicates): Same.
6714 (will_be_nonconstant_expr_predicate): Same.
6715 (phi_result_unknown_predicate): Same.
6716 (analyze_function_body): Same.
6717 (compute_fn_summary): Same.
6718 (estimate_edge_devirt_benefit): Same.
6719 (estimate_edge_size_and_time): Same.
6720 (estimate_calls_size_and_time): Same.
6721 (estimate_node_size_and_time): Same.
6722 (remap_edge_change_prob): Same.
6723 (remap_edge_summaries): Same.
6724 (ipa_merge_fn_summary_after_inlining): Same.
6725 (ipa_fn_summary_generate): Same.
6726 (inline_read_section): Same.
6727 (ipa_fn_summary_read): Same.
6728 (ipa_fn_summary_write): Same.
6729 * ipa-fnsummary.h: Same.
6730 * ipa-hsa.c (ipa_hsa_read_section): Same.
6731 * ipa-icf-gimple.c (func_checker::compare_loops): Same.
6732 * ipa-icf.c (sem_function::param_used_p): Same.
6733 * ipa-inline-analysis.c (do_estimate_edge_time): Same.
6734 * ipa-inline.c (edge_badness): Same.
6735 (inline_small_functions): Same.
6736 * ipa-polymorphic-call.c
6737 (ipa_polymorphic_call_context::stream_out): Same.
6738 * ipa-predicate.c (predicate::remap_after_duplication): Same.
6739 (predicate::remap_after_inlining): Same.
6740 (predicate::stream_out): Same.
6741 * ipa-predicate.h: Same.
6742 * ipa-profile.c (ipa_profile_read_summary): Same.
6743 * ipa-prop.c (ipa_get_param_decl_index_1): Same.
6744 (count_formal_params): Same.
6745 (ipa_dump_param): Same.
6746 (ipa_alloc_node_params): Same.
6747 (ipa_print_node_jump_functions_for_edge): Same.
6748 (ipa_print_node_jump_functions): Same.
6749 (ipa_load_from_parm_agg): Same.
6750 (get_ancestor_addr_info): Same.
6751 (ipa_compute_jump_functions_for_edge): Same.
6752 (ipa_analyze_virtual_call_uses): Same.
6753 (ipa_analyze_stmt_uses): Same.
6754 (ipa_analyze_params_uses_in_bb): Same.
6755 (update_jump_functions_after_inlining): Same.
6756 (try_decrement_rdesc_refcount): Same.
6757 (ipa_impossible_devirt_target): Same.
6758 (update_indirect_edges_after_inlining): Same.
6759 (combine_controlled_uses_counters): Same.
6760 (ipa_edge_args_sum_t::duplicate): Same.
6761 (ipa_write_jump_function): Same.
6762 (ipa_write_indirect_edge_info): Same.
6763 (ipa_write_node_info): Same.
6764 (ipa_read_edge_info): Same.
6765 (ipa_prop_read_section): Same.
6766 (read_replacements_section): Same.
6767 * ipa-prop.h (ipa_get_param_count): Same.
6768 (ipa_get_param): Same.
6769 (ipa_get_type): Same.
6770 (ipa_get_param_move_cost): Same.
6771 (ipa_set_param_used): Same.
6772 (ipa_get_controlled_uses): Same.
6773 (ipa_set_controlled_uses): Same.
6774 (ipa_get_cs_argument_count): Same.
6775 * ipa-pure-const.c (analyze_function): Same.
6776 (pure_const_read_summary): Same.
6777 * ipa-ref.h: Same.
6778 * ipa-reference.c (ipa_reference_read_optimization_summary): Same.
6779 * ipa-split.c (test_nonssa_use): Same.
6780 (dump_split_point): Same.
6781 (dominated_by_forbidden): Same.
6782 (split_part_set_ssa_name_p): Same.
6783 (find_split_points): Same.
6784 * ira-build.c (finish_loop_tree_nodes): Same.
6785 (low_pressure_loop_node_p): Same.
6786 * ira-color.c (ira_reuse_stack_slot): Same.
6787 * ira-int.h: Same.
6788 * ira.c (setup_reg_equiv): Same.
6789 (print_insn_chain): Same.
6790 (ira): Same.
6791 * loop-doloop.c (doloop_condition_get): Same.
6792 (add_test): Same.
6793 (record_reg_sets): Same.
6794 (doloop_optimize): Same.
6795 * loop-init.c (loop_optimizer_init): Same.
6796 (fix_loop_structure): Same.
6797 * loop-invariant.c (merge_identical_invariants): Same.
6798 (compute_always_reached): Same.
6799 (find_exits): Same.
6800 (may_assign_reg_p): Same.
6801 (find_invariants_bb): Same.
6802 (find_invariants_body): Same.
6803 (replace_uses): Same.
6804 (can_move_invariant_reg): Same.
6805 (free_inv_motion_data): Same.
6806 (move_single_loop_invariants): Same.
6807 (change_pressure): Same.
6808 (mark_ref_regs): Same.
6809 (calculate_loop_reg_pressure): Same.
6810 * loop-iv.c (biv_entry_hasher::equal): Same.
6811 (iv_extend_to_rtx_code): Same.
6812 (check_iv_ref_table_size): Same.
6813 (clear_iv_info): Same.
6814 (latch_dominating_def): Same.
6815 (iv_get_reaching_def): Same.
6816 (iv_constant): Same.
6817 (iv_subreg): Same.
6818 (iv_extend): Same.
6819 (iv_neg): Same.
6820 (iv_add): Same.
6821 (iv_mult): Same.
6822 (get_biv_step): Same.
6823 (record_iv): Same.
6824 (analyzed_for_bivness_p): Same.
6825 (record_biv): Same.
6826 (iv_analyze_biv): Same.
6827 (iv_analyze_expr): Same.
6828 (iv_analyze_def): Same.
6829 (iv_analyze_op): Same.
6830 (iv_analyze): Same.
6831 (iv_analyze_result): Same.
6832 (biv_p): Same.
6833 (eliminate_implied_conditions): Same.
6834 (simplify_using_initial_values): Same.
6835 (shorten_into_mode): Same.
6836 (canonicalize_iv_subregs): Same.
6837 (determine_max_iter): Same.
6838 (check_simple_exit): Same.
6839 (find_simple_exit): Same.
6840 (get_simple_loop_desc): Same.
6841 * loop-unroll.c (report_unroll): Same.
6842 (decide_unrolling): Same.
6843 (unroll_loops): Same.
6844 (loop_exit_at_end_p): Same.
6845 (decide_unroll_constant_iterations): Same.
6846 (unroll_loop_constant_iterations): Same.
6847 (compare_and_jump_seq): Same.
6848 (unroll_loop_runtime_iterations): Same.
6849 (decide_unroll_stupid): Same.
6850 (unroll_loop_stupid): Same.
6851 (referenced_in_one_insn_in_loop_p): Same.
6852 (reset_debug_uses_in_loop): Same.
6853 (analyze_iv_to_split_insn): Same.
6854 * lra-eliminations.c (lra_debug_elim_table): Same.
6855 (setup_can_eliminate): Same.
6856 (form_sum): Same.
6857 (lra_get_elimination_hard_regno): Same.
6858 (lra_eliminate_regs_1): Same.
6859 (eliminate_regs_in_insn): Same.
6860 (update_reg_eliminate): Same.
6861 (init_elimination): Same.
6862 (lra_eliminate): Same.
6863 * lra-int.h: Same.
6864 * lra-lives.c (initiate_live_solver): Same.
6865 * lra-remat.c (create_remat_bb_data): Same.
6866 * lra-spills.c (lra_spill): Same.
6867 * lra.c (lra_set_insn_recog_data): Same.
6868 (lra_set_used_insn_alternative_by_uid): Same.
6869 (init_reg_info): Same.
6870 (expand_reg_info): Same.
6871 * lto-cgraph.c (output_symtab): Same.
6872 (read_identifier): Same.
6873 (get_alias_symbol): Same.
6874 (input_node): Same.
6875 (input_varpool_node): Same.
6876 (input_ref): Same.
6877 (input_edge): Same.
6878 (input_cgraph_1): Same.
6879 (input_refs): Same.
6880 (input_symtab): Same.
6881 (input_offload_tables): Same.
6882 (output_cgraph_opt_summary): Same.
6883 (input_edge_opt_summary): Same.
6884 (input_cgraph_opt_section): Same.
6885 * lto-section-in.c (lto_free_raw_section_data): Same.
6886 (lto_create_simple_input_block): Same.
6887 (lto_free_function_in_decl_state_for_node): Same.
6888 * lto-streamer-in.c (lto_tag_check_set): Same.
6889 (lto_location_cache::revert_location_cache): Same.
6890 (lto_location_cache::input_location): Same.
6891 (lto_input_location): Same.
6892 (stream_input_location_now): Same.
6893 (lto_input_tree_ref): Same.
6894 (lto_input_eh_catch_list): Same.
6895 (input_eh_region): Same.
6896 (lto_init_eh): Same.
6897 (make_new_block): Same.
6898 (input_cfg): Same.
6899 (fixup_call_stmt_edges): Same.
6900 (input_struct_function_base): Same.
6901 (input_function): Same.
6902 (lto_read_body_or_constructor): Same.
6903 (lto_read_tree_1): Same.
6904 (lto_read_tree): Same.
6905 (lto_input_scc): Same.
6906 (lto_input_tree_1): Same.
6907 (lto_input_toplevel_asms): Same.
6908 (lto_input_mode_table): Same.
6909 (lto_reader_init): Same.
6910 (lto_data_in_create): Same.
6911 * lto-streamer-out.c (output_cfg): Same.
6912 * lto-streamer.h: Same.
6913 * modulo-sched.c (duplicate_insns_of_cycles): Same.
6914 (generate_prolog_epilog): Same.
6915 (mark_loop_unsched): Same.
6916 (dump_insn_location): Same.
6917 (loop_canon_p): Same.
6918 (sms_schedule): Same.
6919 * omp-expand.c (expand_omp_for_ordered_loops): Same.
6920 (expand_omp_for_generic): Same.
6921 (expand_omp_for_static_nochunk): Same.
6922 (expand_omp_for_static_chunk): Same.
6923 (expand_omp_simd): Same.
6924 (expand_omp_taskloop_for_inner): Same.
6925 (expand_oacc_for): Same.
6926 (expand_omp_atomic_pipeline): Same.
6927 (mark_loops_in_oacc_kernels_region): Same.
6928 * omp-offload.c (oacc_xform_loop): Same.
6929 * omp-simd-clone.c (simd_clone_adjust): Same.
6930 * optabs-query.c (get_traditional_extraction_insn): Same.
6931 * optabs.c (expand_vector_broadcast): Same.
6932 (expand_binop_directly): Same.
6933 (expand_twoval_unop): Same.
6934 (expand_twoval_binop): Same.
6935 (expand_unop_direct): Same.
6936 (emit_indirect_jump): Same.
6937 (emit_conditional_move): Same.
6938 (emit_conditional_neg_or_complement): Same.
6939 (emit_conditional_add): Same.
6940 (vector_compare_rtx): Same.
6941 (expand_vec_perm_1): Same.
6942 (expand_vec_perm_const): Same.
6943 (expand_vec_cond_expr): Same.
6944 (expand_vec_series_expr): Same.
6945 (maybe_emit_atomic_exchange): Same.
6946 (maybe_emit_sync_lock_test_and_set): Same.
6947 (expand_atomic_compare_and_swap): Same.
6948 (expand_atomic_load): Same.
6949 (expand_atomic_store): Same.
6950 (maybe_emit_op): Same.
6951 (valid_multiword_target_p): Same.
6952 (create_integer_operand): Same.
6953 (maybe_legitimize_operand_same_code): Same.
6954 (maybe_legitimize_operand): Same.
6955 (create_convert_operand_from_type): Same.
6956 (can_reuse_operands_p): Same.
6957 (maybe_legitimize_operands): Same.
6958 (maybe_gen_insn): Same.
6959 (maybe_expand_insn): Same.
6960 (maybe_expand_jump_insn): Same.
6961 (expand_insn): Same.
6962 * optabs.h (create_expand_operand): Same.
6963 (create_fixed_operand): Same.
6964 (create_output_operand): Same.
6965 (create_input_operand): Same.
6966 (create_convert_operand_to): Same.
6967 (create_convert_operand_from): Same.
6968 * optinfo.h: Same.
6969 * poly-int.h: Same.
6970 * predict.c (optimize_insn_for_speed_p): Same.
6971 (optimize_loop_for_size_p): Same.
6972 (optimize_loop_for_speed_p): Same.
6973 (optimize_loop_nest_for_speed_p): Same.
6974 (get_base_value): Same.
6975 (predicted_by_loop_heuristics_p): Same.
6976 (predict_extra_loop_exits): Same.
6977 (predict_loops): Same.
6978 (predict_paths_for_bb): Same.
6979 (predict_paths_leading_to): Same.
6980 (propagate_freq): Same.
6981 (pass_profile::execute): Same.
6982 * predict.h: Same.
6983 * profile-count.c (profile_count::differs_from_p): Same.
6984 (profile_probability::differs_lot_from_p): Same.
6985 * profile-count.h: Same.
6986 * profile.c (branch_prob): Same.
6987 * regrename.c (free_chain_data): Same.
6988 (mark_conflict): Same.
6989 (create_new_chain): Same.
6990 (merge_overlapping_regs): Same.
6991 (init_rename_info): Same.
6992 (merge_chains): Same.
6993 (regrename_analyze): Same.
6994 (regrename_do_replace): Same.
6995 (scan_rtx_reg): Same.
6996 (record_out_operands): Same.
6997 (build_def_use): Same.
6998 * regrename.h: Same.
6999 * reload.h: Same.
7000 * reload1.c (init_reload): Same.
7001 (maybe_fix_stack_asms): Same.
7002 (copy_reloads): Same.
7003 (count_pseudo): Same.
7004 (count_spilled_pseudo): Same.
7005 (find_reg): Same.
7006 (find_reload_regs): Same.
7007 (select_reload_regs): Same.
7008 (spill_hard_reg): Same.
7009 (fixup_eh_region_note): Same.
7010 (set_reload_reg): Same.
7011 (allocate_reload_reg): Same.
7012 (compute_reload_subreg_offset): Same.
7013 (reload_adjust_reg_for_icode): Same.
7014 (emit_input_reload_insns): Same.
7015 (emit_output_reload_insns): Same.
7016 (do_input_reload): Same.
7017 (inherit_piecemeal_p): Same.
7018 * rtl.h: Same.
7019 * sanopt.c (maybe_get_dominating_check): Same.
7020 (maybe_optimize_ubsan_ptr_ifn): Same.
7021 (can_remove_asan_check): Same.
7022 (maybe_optimize_asan_check_ifn): Same.
7023 (sanopt_optimize_walker): Same.
7024 * sched-deps.c (add_dependence_list): Same.
7025 (chain_to_prev_insn): Same.
7026 (add_insn_mem_dependence): Same.
7027 (create_insn_reg_set): Same.
7028 (maybe_extend_reg_info_p): Same.
7029 (sched_analyze_reg): Same.
7030 (sched_analyze_1): Same.
7031 (get_implicit_reg_pending_clobbers): Same.
7032 (chain_to_prev_insn_p): Same.
7033 (deps_analyze_insn): Same.
7034 (deps_start_bb): Same.
7035 (sched_free_deps): Same.
7036 (init_deps): Same.
7037 (init_deps_reg_last): Same.
7038 (free_deps): Same.
7039 * sched-ebb.c: Same.
7040 * sched-int.h: Same.
7041 * sched-rgn.c (add_branch_dependences): Same.
7042 (concat_insn_mem_list): Same.
7043 (deps_join): Same.
7044 (sched_rgn_compute_dependencies): Same.
7045 * sel-sched-ir.c (reset_target_context): Same.
7046 (copy_deps_context): Same.
7047 (init_id_from_df): Same.
7048 (has_dependence_p): Same.
7049 (change_loops_latches): Same.
7050 (bb_top_order_comparator): Same.
7051 (make_region_from_loop_preheader): Same.
7052 (sel_init_pipelining): Same.
7053 (get_loop_nest_for_rgn): Same.
7054 (make_regions_from_the_rest): Same.
7055 (sel_is_loop_preheader_p): Same.
7056 * sel-sched-ir.h (inner_loop_header_p): Same.
7057 (get_all_loop_exits): Same.
7058 * selftest.h: Same.
7059 * sese.c (sese_build_liveouts): Same.
7060 (sese_insert_phis_for_liveouts): Same.
7061 * sese.h (defined_in_sese_p): Same.
7062 * sreal.c (sreal::stream_out): Same.
7063 * sreal.h: Same.
7064 * streamer-hooks.h: Same.
7065 * target-globals.c (save_target_globals): Same.
7066 * target-globals.h: Same.
7067 * target.def: Same.
7068 * target.h: Same.
7069 * targhooks.c (default_has_ifunc_p): Same.
7070 (default_empty_mask_is_expensive): Same.
7071 (default_init_cost): Same.
7072 * targhooks.h: Same.
7073 * toplev.c: Same.
7074 * tree-affine.c (aff_combination_mult): Same.
7075 (aff_combination_expand): Same.
7076 (aff_combination_constant_multiple_p): Same.
7077 * tree-affine.h: Same.
7078 * tree-cfg.c (build_gimple_cfg): Same.
7079 (replace_loop_annotate_in_block): Same.
7080 (replace_uses_by): Same.
7081 (remove_bb): Same.
7082 (dump_cfg_stats): Same.
7083 (gimple_duplicate_sese_region): Same.
7084 (gimple_duplicate_sese_tail): Same.
7085 (move_block_to_fn): Same.
7086 (replace_block_vars_by_duplicates): Same.
7087 (move_sese_region_to_fn): Same.
7088 (print_loops_bb): Same.
7089 (print_loop): Same.
7090 (print_loops): Same.
7091 (debug): Same.
7092 (debug_loops): Same.
7093 * tree-cfg.h: Same.
7094 * tree-chrec.c (chrec_fold_plus_poly_poly): Same.
7095 (chrec_fold_multiply_poly_poly): Same.
7096 (chrec_evaluate): Same.
7097 (chrec_component_in_loop_num): Same.
7098 (reset_evolution_in_loop): Same.
7099 (is_multivariate_chrec): Same.
7100 (chrec_contains_symbols): Same.
7101 (nb_vars_in_chrec): Same.
7102 (chrec_convert_1): Same.
7103 (chrec_convert_aggressive): Same.
7104 * tree-chrec.h: Same.
7105 * tree-core.h: Same.
7106 * tree-data-ref.c (dump_data_dependence_relation): Same.
7107 (canonicalize_base_object_address): Same.
7108 (data_ref_compare_tree): Same.
7109 (prune_runtime_alias_test_list): Same.
7110 (get_segment_min_max): Same.
7111 (create_intersect_range_checks): Same.
7112 (conflict_fn_no_dependence): Same.
7113 (object_address_invariant_in_loop_p): Same.
7114 (analyze_ziv_subscript): Same.
7115 (analyze_siv_subscript_cst_affine): Same.
7116 (analyze_miv_subscript): Same.
7117 (analyze_overlapping_iterations): Same.
7118 (build_classic_dist_vector_1): Same.
7119 (add_other_self_distances): Same.
7120 (same_access_functions): Same.
7121 (build_classic_dir_vector): Same.
7122 (subscript_dependence_tester_1): Same.
7123 (subscript_dependence_tester): Same.
7124 (access_functions_are_affine_or_constant_p): Same.
7125 (get_references_in_stmt): Same.
7126 (loop_nest_has_data_refs): Same.
7127 (graphite_find_data_references_in_stmt): Same.
7128 (find_data_references_in_bb): Same.
7129 (get_base_for_alignment): Same.
7130 (find_loop_nest_1): Same.
7131 (find_loop_nest): Same.
7132 * tree-data-ref.h (dr_alignment): Same.
7133 (ddr_dependence_level): Same.
7134 * tree-if-conv.c (fold_build_cond_expr): Same.
7135 (add_to_predicate_list): Same.
7136 (add_to_dst_predicate_list): Same.
7137 (phi_convertible_by_degenerating_args): Same.
7138 (idx_within_array_bound): Same.
7139 (all_preds_critical_p): Same.
7140 (pred_blocks_visited_p): Same.
7141 (predicate_bbs): Same.
7142 (build_region): Same.
7143 (if_convertible_loop_p_1): Same.
7144 (is_cond_scalar_reduction): Same.
7145 (predicate_scalar_phi): Same.
7146 (remove_conditions_and_labels): Same.
7147 (combine_blocks): Same.
7148 (version_loop_for_if_conversion): Same.
7149 (versionable_outer_loop_p): Same.
7150 (ifcvt_local_dce): Same.
7151 (tree_if_conversion): Same.
7152 (pass_if_conversion::gate): Same.
7153 * tree-if-conv.h: Same.
7154 * tree-inline.c (maybe_move_debug_stmts_to_successors): Same.
7155 * tree-loop-distribution.c (bb_top_order_cmp): Same.
7156 (free_rdg): Same.
7157 (stmt_has_scalar_dependences_outside_loop): Same.
7158 (copy_loop_before): Same.
7159 (create_bb_after_loop): Same.
7160 (const_with_all_bytes_same): Same.
7161 (generate_memset_builtin): Same.
7162 (generate_memcpy_builtin): Same.
7163 (destroy_loop): Same.
7164 (build_rdg_partition_for_vertex): Same.
7165 (compute_access_range): Same.
7166 (data_ref_segment_size): Same.
7167 (latch_dominated_by_data_ref): Same.
7168 (compute_alias_check_pairs): Same.
7169 (fuse_memset_builtins): Same.
7170 (finalize_partitions): Same.
7171 (find_seed_stmts_for_distribution): Same.
7172 (prepare_perfect_loop_nest): Same.
7173 * tree-parloops.c (lambda_transform_legal_p): Same.
7174 (loop_parallel_p): Same.
7175 (reduc_stmt_res): Same.
7176 (add_field_for_name): Same.
7177 (create_call_for_reduction_1): Same.
7178 (replace_uses_in_bb_by): Same.
7179 (transform_to_exit_first_loop_alt): Same.
7180 (try_transform_to_exit_first_loop_alt): Same.
7181 (transform_to_exit_first_loop): Same.
7182 (num_phis): Same.
7183 (gen_parallel_loop): Same.
7184 (gather_scalar_reductions): Same.
7185 (get_omp_data_i_param): Same.
7186 (try_create_reduction_list): Same.
7187 (oacc_entry_exit_single_gang): Same.
7188 (parallelize_loops): Same.
7189 * tree-pass.h: Same.
7190 * tree-predcom.c (determine_offset): Same.
7191 (last_always_executed_block): Same.
7192 (split_data_refs_to_components): Same.
7193 (suitable_component_p): Same.
7194 (valid_initializer_p): Same.
7195 (find_looparound_phi): Same.
7196 (insert_looparound_copy): Same.
7197 (add_looparound_copies): Same.
7198 (determine_roots_comp): Same.
7199 (predcom_tmp_var): Same.
7200 (initialize_root_vars): Same.
7201 (initialize_root_vars_store_elim_1): Same.
7202 (initialize_root_vars_store_elim_2): Same.
7203 (finalize_eliminated_stores): Same.
7204 (initialize_root_vars_lm): Same.
7205 (remove_stmt): Same.
7206 (determine_unroll_factor): Same.
7207 (execute_pred_commoning_cbck): Same.
7208 (base_names_in_chain_on): Same.
7209 (combine_chains): Same.
7210 (pcom_stmt_dominates_stmt_p): Same.
7211 (try_combine_chains): Same.
7212 (prepare_initializers_chain_store_elim): Same.
7213 (prepare_initializers_chain): Same.
7214 (prepare_initializers): Same.
7215 (prepare_finalizers_chain): Same.
7216 (prepare_finalizers): Same.
7217 (insert_init_seqs): Same.
7218 * tree-scalar-evolution.c (loop_phi_node_p): Same.
7219 (compute_overall_effect_of_inner_loop): Same.
7220 (add_to_evolution_1): Same.
7221 (add_to_evolution): Same.
7222 (follow_ssa_edge_binary): Same.
7223 (follow_ssa_edge_expr): Same.
7224 (backedge_phi_arg_p): Same.
7225 (follow_ssa_edge_in_condition_phi_branch): Same.
7226 (follow_ssa_edge_in_condition_phi): Same.
7227 (follow_ssa_edge_inner_loop_phi): Same.
7228 (follow_ssa_edge): Same.
7229 (analyze_evolution_in_loop): Same.
7230 (analyze_initial_condition): Same.
7231 (interpret_loop_phi): Same.
7232 (interpret_condition_phi): Same.
7233 (interpret_rhs_expr): Same.
7234 (interpret_expr): Same.
7235 (interpret_gimple_assign): Same.
7236 (analyze_scalar_evolution_1): Same.
7237 (analyze_scalar_evolution): Same.
7238 (analyze_scalar_evolution_for_address_of): Same.
7239 (get_instantiated_value_entry): Same.
7240 (loop_closed_phi_def): Same.
7241 (instantiate_scev_name): Same.
7242 (instantiate_scev_poly): Same.
7243 (instantiate_scev_binary): Same.
7244 (instantiate_scev_convert): Same.
7245 (instantiate_scev_not): Same.
7246 (instantiate_scev_r): Same.
7247 (instantiate_scev): Same.
7248 (resolve_mixers): Same.
7249 (initialize_scalar_evolutions_analyzer): Same.
7250 (scev_reset_htab): Same.
7251 (scev_reset): Same.
7252 (derive_simple_iv_with_niters): Same.
7253 (simple_iv_with_niters): Same.
7254 (expression_expensive_p): Same.
7255 (final_value_replacement_loop): Same.
7256 * tree-scalar-evolution.h (block_before_loop): Same.
7257 * tree-ssa-address.h: Same.
7258 * tree-ssa-dce.c (find_obviously_necessary_stmts): Same.
7259 * tree-ssa-dom.c (edge_info::record_simple_equiv): Same.
7260 (record_edge_info): Same.
7261 * tree-ssa-live.c (var_map_base_fini): Same.
7262 (remove_unused_locals): Same.
7263 * tree-ssa-live.h: Same.
7264 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Same.
7265 (pass_ch_vect::execute): Same.
7266 (pass_ch::process_loop_p): Same.
7267 * tree-ssa-loop-im.c (mem_ref_hasher::hash): Same.
7268 (movement_possibility): Same.
7269 (outermost_invariant_loop): Same.
7270 (stmt_cost): Same.
7271 (determine_max_movement): Same.
7272 (invariantness_dom_walker::before_dom_children): Same.
7273 (move_computations): Same.
7274 (may_move_till): Same.
7275 (force_move_till_op): Same.
7276 (force_move_till): Same.
7277 (memref_free): Same.
7278 (record_mem_ref_loc): Same.
7279 (set_ref_stored_in_loop): Same.
7280 (mark_ref_stored): Same.
7281 (sort_bbs_in_loop_postorder_cmp): Same.
7282 (sort_locs_in_loop_postorder_cmp): Same.
7283 (analyze_memory_references): Same.
7284 (mem_refs_may_alias_p): Same.
7285 (find_ref_loc_in_loop_cmp): Same.
7286 (rewrite_mem_ref_loc::operator): Same.
7287 (first_mem_ref_loc_1::operator): Same.
7288 (sm_set_flag_if_changed::operator): Same.
7289 (execute_sm_if_changed_flag_set): Same.
7290 (execute_sm): Same.
7291 (hoist_memory_references): Same.
7292 (ref_always_accessed::operator): Same.
7293 (refs_independent_p): Same.
7294 (record_dep_loop): Same.
7295 (ref_indep_loop_p_1): Same.
7296 (ref_indep_loop_p): Same.
7297 (can_sm_ref_p): Same.
7298 (find_refs_for_sm): Same.
7299 (loop_suitable_for_sm): Same.
7300 (store_motion_loop): Same.
7301 (store_motion): Same.
7302 (fill_always_executed_in): Same.
7303 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Same.
7304 (estimated_unrolled_size): Same.
7305 (loop_edge_to_cancel): Same.
7306 (remove_exits_and_undefined_stmts): Same.
7307 (remove_redundant_iv_tests): Same.
7308 (unloop_loops): Same.
7309 (estimated_peeled_sequence_size): Same.
7310 (try_peel_loop): Same.
7311 (canonicalize_loop_induction_variables): Same.
7312 (canonicalize_induction_variables): Same.
7313 * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher::equal): Same.
7314 (name_info): Same.
7315 (stmt_after_inc_pos): Same.
7316 (contains_abnormal_ssa_name_p): Same.
7317 (niter_for_exit): Same.
7318 (find_bivs): Same.
7319 (mark_bivs): Same.
7320 (find_givs_in_bb): Same.
7321 (find_induction_variables): Same.
7322 (find_interesting_uses_cond): Same.
7323 (outermost_invariant_loop_for_expr): Same.
7324 (idx_find_step): Same.
7325 (add_candidate_1): Same.
7326 (add_iv_candidate_derived_from_uses): Same.
7327 (alloc_use_cost_map): Same.
7328 (prepare_decl_rtl): Same.
7329 (generic_predict_doloop_p): Same.
7330 (computation_cost): Same.
7331 (determine_common_wider_type): Same.
7332 (get_computation_aff_1): Same.
7333 (get_use_type): Same.
7334 (determine_group_iv_cost_address): Same.
7335 (iv_period): Same.
7336 (difference_cannot_overflow_p): Same.
7337 (may_eliminate_iv): Same.
7338 (determine_set_costs): Same.
7339 (cheaper_cost_pair): Same.
7340 (compare_cost_pair): Same.
7341 (iv_ca_cand_for_group): Same.
7342 (iv_ca_recount_cost): Same.
7343 (iv_ca_set_remove_invs): Same.
7344 (iv_ca_set_no_cp): Same.
7345 (iv_ca_set_add_invs): Same.
7346 (iv_ca_set_cp): Same.
7347 (iv_ca_add_group): Same.
7348 (iv_ca_cost): Same.
7349 (iv_ca_compare_deps): Same.
7350 (iv_ca_delta_reverse): Same.
7351 (iv_ca_delta_commit): Same.
7352 (iv_ca_cand_used_p): Same.
7353 (iv_ca_delta_free): Same.
7354 (iv_ca_new): Same.
7355 (iv_ca_free): Same.
7356 (iv_ca_dump): Same.
7357 (iv_ca_extend): Same.
7358 (iv_ca_narrow): Same.
7359 (iv_ca_prune): Same.
7360 (cheaper_cost_with_cand): Same.
7361 (iv_ca_replace): Same.
7362 (try_add_cand_for): Same.
7363 (get_initial_solution): Same.
7364 (try_improve_iv_set): Same.
7365 (find_optimal_iv_set_1): Same.
7366 (create_new_iv): Same.
7367 (rewrite_use_compare): Same.
7368 (remove_unused_ivs): Same.
7369 (determine_scaling_factor): Same.
7370 * tree-ssa-loop-ivopts.h: Same.
7371 * tree-ssa-loop-manip.c (create_iv): Same.
7372 (compute_live_loop_exits): Same.
7373 (add_exit_phi): Same.
7374 (add_exit_phis): Same.
7375 (find_uses_to_rename_use): Same.
7376 (find_uses_to_rename_def): Same.
7377 (find_uses_to_rename_in_loop): Same.
7378 (rewrite_into_loop_closed_ssa): Same.
7379 (check_loop_closed_ssa_bb): Same.
7380 (split_loop_exit_edge): Same.
7381 (ip_end_pos): Same.
7382 (ip_normal_pos): Same.
7383 (copy_phi_node_args): Same.
7384 (gimple_duplicate_loop_to_header_edge): Same.
7385 (can_unroll_loop_p): Same.
7386 (determine_exit_conditions): Same.
7387 (scale_dominated_blocks_in_loop): Same.
7388 (niter_for_unrolled_loop): Same.
7389 (tree_transform_and_unroll_loop): Same.
7390 (rewrite_all_phi_nodes_with_iv): Same.
7391 * tree-ssa-loop-manip.h: Same.
7392 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Same.
7393 (number_of_iterations_ne): Same.
7394 (assert_no_overflow_lt): Same.
7395 (assert_loop_rolls_lt): Same.
7396 (number_of_iterations_lt): Same.
7397 (adjust_cond_for_loop_until_wrap): Same.
7398 (tree_simplify_using_condition): Same.
7399 (simplify_using_initial_conditions): Same.
7400 (simplify_using_outer_evolutions): Same.
7401 (loop_only_exit_p): Same.
7402 (ssa_defined_by_minus_one_stmt_p): Same.
7403 (number_of_iterations_popcount): Same.
7404 (number_of_iterations_exit): Same.
7405 (find_loop_niter): Same.
7406 (finite_loop_p): Same.
7407 (chain_of_csts_start): Same.
7408 (get_val_for): Same.
7409 (loop_niter_by_eval): Same.
7410 (derive_constant_upper_bound_ops): Same.
7411 (do_warn_aggressive_loop_optimizations): Same.
7412 (record_estimate): Same.
7413 (get_cst_init_from_scev): Same.
7414 (record_nonwrapping_iv): Same.
7415 (idx_infer_loop_bounds): Same.
7416 (infer_loop_bounds_from_ref): Same.
7417 (infer_loop_bounds_from_array): Same.
7418 (infer_loop_bounds_from_pointer_arith): Same.
7419 (infer_loop_bounds_from_signedness): Same.
7420 (bound_index): Same.
7421 (discover_iteration_bound_by_body_walk): Same.
7422 (maybe_lower_iteration_bound): Same.
7423 (estimate_numbers_of_iterations): Same.
7424 (estimated_loop_iterations): Same.
7425 (estimated_loop_iterations_int): Same.
7426 (max_loop_iterations): Same.
7427 (max_loop_iterations_int): Same.
7428 (likely_max_loop_iterations): Same.
7429 (likely_max_loop_iterations_int): Same.
7430 (estimated_stmt_executions_int): Same.
7431 (max_stmt_executions): Same.
7432 (likely_max_stmt_executions): Same.
7433 (estimated_stmt_executions): Same.
7434 (stmt_dominates_stmt_p): Same.
7435 (nowrap_type_p): Same.
7436 (loop_exits_before_overflow): Same.
7437 (scev_var_range_cant_overflow): Same.
7438 (scev_probably_wraps_p): Same.
7439 (free_numbers_of_iterations_estimates): Same.
7440 * tree-ssa-loop-niter.h: Same.
7441 * tree-ssa-loop-prefetch.c (release_mem_refs): Same.
7442 (idx_analyze_ref): Same.
7443 (analyze_ref): Same.
7444 (gather_memory_references_ref): Same.
7445 (mark_nontemporal_store): Same.
7446 (emit_mfence_after_loop): Same.
7447 (may_use_storent_in_loop_p): Same.
7448 (mark_nontemporal_stores): Same.
7449 (should_unroll_loop_p): Same.
7450 (volume_of_dist_vector): Same.
7451 (add_subscript_strides): Same.
7452 (self_reuse_distance): Same.
7453 (insn_to_prefetch_ratio_too_small_p): Same.
7454 * tree-ssa-loop-split.c (split_at_bb_p): Same.
7455 (patch_loop_exit): Same.
7456 (find_or_create_guard_phi): Same.
7457 (easy_exit_values): Same.
7458 (connect_loop_phis): Same.
7459 (connect_loops): Same.
7460 (compute_new_first_bound): Same.
7461 (split_loop): Same.
7462 (tree_ssa_split_loops): Same.
7463 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Same.
7464 (is_maybe_undefined): Same.
7465 (tree_may_unswitch_on): Same.
7466 (simplify_using_entry_checks): Same.
7467 (tree_unswitch_single_loop): Same.
7468 (tree_unswitch_loop): Same.
7469 (tree_unswitch_outer_loop): Same.
7470 (empty_bb_without_guard_p): Same.
7471 (used_outside_loop_p): Same.
7472 (get_vop_from_header): Same.
7473 (hoist_guard): Same.
7474 * tree-ssa-loop.c (gate_oacc_kernels): Same.
7475 (get_lsm_tmp_name): Same.
7476 * tree-ssa-loop.h: Same.
7477 * tree-ssa-reassoc.c (add_repeat_to_ops_vec): Same.
7478 (build_and_add_sum): Same.
7479 (no_side_effect_bb): Same.
7480 (get_ops): Same.
7481 (linearize_expr): Same.
7482 (should_break_up_subtract): Same.
7483 (linearize_expr_tree): Same.
7484 * tree-ssa-scopedtables.c: Same.
7485 * tree-ssa-scopedtables.h: Same.
7486 * tree-ssa-structalias.c (condense_visit): Same.
7487 (label_visit): Same.
7488 (dump_pred_graph): Same.
7489 (perform_var_substitution): Same.
7490 (move_complex_constraints): Same.
7491 (remove_preds_and_fake_succs): Same.
7492 * tree-ssa-threadupdate.c (dbds_continue_enumeration_p): Same.
7493 (determine_bb_domination_status): Same.
7494 (duplicate_thread_path): Same.
7495 (thread_through_all_blocks): Same.
7496 * tree-ssa-threadupdate.h: Same.
7497 * tree-streamer-in.c (streamer_read_string_cst): Same.
7498 (input_identifier): Same.
7499 (unpack_ts_type_common_value_fields): Same.
7500 (unpack_ts_block_value_fields): Same.
7501 (unpack_ts_translation_unit_decl_value_fields): Same.
7502 (unpack_ts_omp_clause_value_fields): Same.
7503 (streamer_read_tree_bitfields): Same.
7504 (streamer_alloc_tree): Same.
7505 (lto_input_ts_common_tree_pointers): Same.
7506 (lto_input_ts_vector_tree_pointers): Same.
7507 (lto_input_ts_poly_tree_pointers): Same.
7508 (lto_input_ts_complex_tree_pointers): Same.
7509 (lto_input_ts_decl_minimal_tree_pointers): Same.
7510 (lto_input_ts_decl_common_tree_pointers): Same.
7511 (lto_input_ts_decl_non_common_tree_pointers): Same.
7512 (lto_input_ts_decl_with_vis_tree_pointers): Same.
7513 (lto_input_ts_field_decl_tree_pointers): Same.
7514 (lto_input_ts_function_decl_tree_pointers): Same.
7515 (lto_input_ts_type_common_tree_pointers): Same.
7516 (lto_input_ts_type_non_common_tree_pointers): Same.
7517 (lto_input_ts_list_tree_pointers): Same.
7518 (lto_input_ts_vec_tree_pointers): Same.
7519 (lto_input_ts_exp_tree_pointers): Same.
7520 (lto_input_ts_block_tree_pointers): Same.
7521 (lto_input_ts_binfo_tree_pointers): Same.
7522 (lto_input_ts_constructor_tree_pointers): Same.
7523 (lto_input_ts_omp_clause_tree_pointers): Same.
7524 (streamer_read_tree_body): Same.
7525 * tree-streamer.h: Same.
7526 * tree-switch-conversion.c (bit_test_cluster::is_beneficial): Same.
7527 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Same.
7528 (vect_analyze_possibly_independent_ddr): Same.
7529 (vect_analyze_data_ref_dependence): Same.
7530 (vect_compute_data_ref_alignment): Same.
7531 (vect_enhance_data_refs_alignment): Same.
7532 (vect_analyze_data_ref_access): Same.
7533 (vect_check_gather_scatter): Same.
7534 (vect_find_stmt_data_reference): Same.
7535 (vect_create_addr_base_for_vector_ref): Same.
7536 (vect_setup_realignment): Same.
7537 (vect_supportable_dr_alignment): Same.
7538 * tree-vect-loop-manip.c (rename_variables_in_bb): Same.
7539 (adjust_phi_and_debug_stmts): Same.
7540 (vect_set_loop_mask): Same.
7541 (add_preheader_seq): Same.
7542 (vect_maybe_permute_loop_masks): Same.
7543 (vect_set_loop_masks_directly): Same.
7544 (vect_set_loop_condition_masked): Same.
7545 (vect_set_loop_condition_unmasked): Same.
7546 (slpeel_duplicate_current_defs_from_edges): Same.
7547 (slpeel_add_loop_guard): Same.
7548 (slpeel_can_duplicate_loop_p): Same.
7549 (create_lcssa_for_virtual_phi): Same.
7550 (iv_phi_p): Same.
7551 (vect_update_ivs_after_vectorizer): Same.
7552 (vect_gen_vector_loop_niters_mult_vf): Same.
7553 (slpeel_update_phi_nodes_for_loops): Same.
7554 (slpeel_update_phi_nodes_for_guard1): Same.
7555 (find_guard_arg): Same.
7556 (slpeel_update_phi_nodes_for_guard2): Same.
7557 (slpeel_update_phi_nodes_for_lcssa): Same.
7558 (vect_do_peeling): Same.
7559 (vect_create_cond_for_alias_checks): Same.
7560 (vect_loop_versioning): Same.
7561 * tree-vect-loop.c (vect_determine_vf_for_stmt): Same.
7562 (vect_inner_phi_in_double_reduction_p): Same.
7563 (vect_analyze_scalar_cycles_1): Same.
7564 (vect_fixup_scalar_cycles_with_patterns): Same.
7565 (vect_get_loop_niters): Same.
7566 (bb_in_loop_p): Same.
7567 (vect_get_max_nscalars_per_iter): Same.
7568 (vect_verify_full_masking): Same.
7569 (vect_compute_single_scalar_iteration_cost): Same.
7570 (vect_analyze_loop_form_1): Same.
7571 (vect_analyze_loop_form): Same.
7572 (vect_active_double_reduction_p): Same.
7573 (vect_analyze_loop_operations): Same.
7574 (neutral_op_for_slp_reduction): Same.
7575 (vect_is_simple_reduction): Same.
7576 (vect_model_reduction_cost): Same.
7577 (get_initial_def_for_reduction): Same.
7578 (get_initial_defs_for_reduction): Same.
7579 (vect_create_epilog_for_reduction): Same.
7580 (vectorize_fold_left_reduction): Same.
7581 (vectorizable_reduction): Same.
7582 (vectorizable_induction): Same.
7583 (vectorizable_live_operation): Same.
7584 (loop_niters_no_overflow): Same.
7585 (vect_get_loop_mask): Same.
7586 (vect_transform_loop_stmt): Same.
7587 (vect_transform_loop): Same.
7588 * tree-vect-patterns.c (vect_reassociating_reduction_p): Same.
7589 (vect_determine_precisions): Same.
7590 (vect_pattern_recog_1): Same.
7591 * tree-vect-slp.c (vect_analyze_slp_instance): Same.
7592 * tree-vect-stmts.c (stmt_vectype): Same.
7593 (process_use): Same.
7594 (vect_init_vector_1): Same.
7595 (vect_truncate_gather_scatter_offset): Same.
7596 (get_group_load_store_type): Same.
7597 (vect_build_gather_load_calls): Same.
7598 (vect_get_strided_load_store_ops): Same.
7599 (vectorizable_simd_clone_call): Same.
7600 (vectorizable_store): Same.
7601 (permute_vec_elements): Same.
7602 (vectorizable_load): Same.
7603 (vect_transform_stmt): Same.
7604 (supportable_widening_operation): Same.
7605 * tree-vectorizer.c (vec_info::replace_stmt): Same.
7606 (vec_info::free_stmt_vec_info): Same.
7607 (vect_free_loop_info_assumptions): Same.
7608 (vect_loop_vectorized_call): Same.
7609 (set_uid_loop_bbs): Same.
7610 (vectorize_loops): Same.
7611 * tree-vectorizer.h (STMT_VINFO_BB_VINFO): Same.
7612 * tree.c (add_tree_to_fld_list): Same.
7613 (fld_type_variant_equal_p): Same.
7614 (fld_decl_context): Same.
7615 (fld_incomplete_type_of): Same.
7616 (free_lang_data_in_binfo): Same.
7617 (need_assembler_name_p): Same.
7618 (find_decls_types_r): Same.
7619 (get_eh_types_for_runtime): Same.
7620 (find_decls_types_in_eh_region): Same.
7621 (find_decls_types_in_node): Same.
7622 (assign_assembler_name_if_needed): Same.
7623 * value-prof.c (stream_out_histogram_value): Same.
7624 * value-prof.h: Same.
7625 * var-tracking.c (use_narrower_mode): Same.
7626 (prepare_call_arguments): Same.
7627 (vt_expand_loc_callback): Same.
7628 (resolve_expansions_pending_recursion): Same.
7629 (vt_expand_loc): Same.
7630 * varasm.c (const_hash_1): Same.
7631 (compare_constant): Same.
7632 (tree_output_constant_def): Same.
7633 (simplify_subtraction): Same.
7634 (get_pool_constant): Same.
7635 (output_constant_pool_2): Same.
7636 (output_constant_pool_1): Same.
7637 (mark_constants_in_pattern): Same.
7638 (mark_constant_pool): Same.
7639 (get_section_anchor): Same.
7640 * vr-values.c (compare_range_with_value): Same.
7641 (vr_values::extract_range_from_phi_node): Same.
7642 * vr-values.h: Same.
7643 * web.c (unionfind_union): Same.
7644 * wide-int.h: Same.
7645
7646 2019-07-09 Martin Sebor <msebor@redhat.com>
7647
7648 PR c++/61339
7649 * align.h: Change class-key from class to struct and vice versa
7650 to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
7651 * alloc-pool.h: Same.
7652 * asan.c (shadow_mem_size): Same.
7653 * auto-profile.c: Same.
7654 * basic-block.h: Same.
7655 * bitmap.h: Same.
7656 * cfgexpand.c (set_rtl): Same.
7657 (expand_one_stack_var_at): Same.
7658 * cfghooks.h: Same.
7659 * cfgloop.h: Same.
7660 * cgraph.h: Same.
7661 * config/i386/i386.h: Same.
7662 * df-problems.c (df_print_bb_index): Same.
7663 * df-scan.c: Same.
7664 * df.h (df_single_use): Same.
7665 * diagnostic-show-locus.c (layout::print_annotation_line): Same.
7666 (layout::annotation_line_showed_range_p): Same.
7667 (get_printed_columns): Same.
7668 (correction::ensure_terminated): Same.
7669 (line_corrections::~line_corrections): Same.
7670 * dojump.h: Same.
7671 * dse.c: Same.
7672 * dump-context.h: Same.
7673 * dumpfile.h: Same.
7674 * dwarf2out.c: Same.
7675 * edit-context.c: Same.
7676 * fibonacci_heap.c (test_union_of_equal_heaps): Same.
7677 * flags.h: Same.
7678 * function.c (assign_stack_local): Same.
7679 * function.h: Same.
7680 * gcc.c: Same.
7681 * gcov.c (block_info::block_info): Same.
7682 * genattrtab.c: Same.
7683 * genextract.c: Same.
7684 * genmatch.c (comparison_code_p): Same.
7685 (id_base::id_base): Same.
7686 (decision_tree::print): Same.
7687 * genoutput.c: Same.
7688 * genpreds.c (write_one_predicate_function): Same.
7689 * genrecog.c (validate_pattern): Same.
7690 (find_operand_positions): Same.
7691 (optimize_subroutine_group): Same.
7692 (merge_pattern_transition::merge_pattern_transition): Same.
7693 (merge_pattern_info::merge_pattern_info): Same.
7694 (merge_state_result::merge_state_result): Same.
7695 (merge_into_state): Same.
7696 * gensupport.c: Same.
7697 * gensupport.h: Same.
7698 * ggc-common.c (init_ggc_heuristics): Same.
7699 * ggc-tests.c (test_union): Same.
7700 * gimple-loop-interchange.cc (dump_induction): Same.
7701 * gimple-loop-versioning.cc: Same.
7702 * gimple-match.h (gimple_match_cond::any_else): Same.
7703 * gimple-ssa-backprop.c: Same.
7704 * gimple-ssa-sprintf.c: Same.
7705 * gimple-ssa-store-merging.c (store_operand_info::store_operand_info):
7706 Same.
7707 (store_immediate_info::store_immediate_info): Same.
7708 (merged_store_group::apply_stores): Same.
7709 (get_location_for_stmts): Same.
7710 * gimple-ssa-strength-reduction.c: Same.
7711 * gimple-ssa-warn-alloca.c: Same.
7712 * gimple-ssa-warn-restrict.c (pass_wrestrict::execute): Same.
7713 * godump.c (go_type_decl): Same.
7714 * hash-map-tests.c (test_map_of_strings_to_int): Same.
7715 * hash-map.h: Same.
7716 * hash-set-tests.c (test_set_of_strings): Same.
7717 * hsa-brig.c: Same.
7718 * hsa-common.h: Same.
7719 * hsa-gen.c (transformable_switch_to_sbr_p): Same.
7720 * input.c (assert_loceq): Same.
7721 * input.h: Same.
7722 * ipa-cp.c: Same.
7723 * ipa-devirt.c (possible_polymorphic_call_targets_1): Same.
7724 * ipa-fnsummary.h: Same.
7725 * ipa-inline.h: Same.
7726 * ipa-prop.h: Same.
7727 * ipa-split.c (visit_bb): Same.
7728 * ira-int.h (minmax_set_iter_next): Same.
7729 * loop-invariant.c: Same.
7730 * loop-iv.c: Same.
7731 * lra-eliminations.c: Same.
7732 * lra-int.h: Same.
7733 * lra-lives.c (mark_regno_dead): Same.
7734 * lra-remat.c: Same.
7735 * lra-spills.c: Same.
7736 * lto-streamer.h: Same.
7737 * mem-stats.h: Same.
7738 * omp-grid.c (omp_grid_lastprivate_predicate): Same.
7739 * omp-low.c (omp_clause_aligned_alignment): Same.
7740 * optabs-query.h (get_vcond_eq_icode): Same.
7741 * optabs.h: Same.
7742 * opts.c (wrap_help): Same.
7743 * poly-int.h: Same.
7744 * predict.c (predict_paths_leading_to_edge): Same.
7745 * pretty-print.h: Same.
7746 * profile-count.h: Same.
7747 * read-md.h: Same.
7748 * read-rtl-function.c: Same.
7749 * ree.c: Same.
7750 * reginfo.c: Same.
7751 * regrename.c: Same.
7752 * regrename.h: Same.
7753 * reload.h: Same.
7754 * rtl-iter.h: Same.
7755 * rtl.h (costs_add_n_insns): Same.
7756 * sanopt.c: Same.
7757 * sched-int.h: Same.
7758 * sel-sched-ir.h: Same.
7759 * selftest.h: Same.
7760 * sese.h (vec_find): Same.
7761 * stmt.c: Same.
7762 * target-globals.h: Same.
7763 * tree-affine.c (aff_combination_find_elt): Same.
7764 * tree-affine.h: Same.
7765 * tree-data-ref.h: Same.
7766 * tree-outof-ssa.c (ssa_is_replaceable_p): Same.
7767 * tree-predcom.c: Same.
7768 * tree-scalar-evolution.c (find_var_scev_info): Same.
7769 * tree-ssa-alias.h: Same.
7770 * tree-ssa-ccp.c: Same.
7771 * tree-ssa-coalesce.c (ssa_conflicts_dump): Same.
7772 * tree-ssa-loop-im.c (for_all_locs_in_loop): Same.
7773 (rewrite_mem_refs): Same.
7774 (execute_sm_if_changed): Same.
7775 (hoist_memory_references): Same.
7776 * tree-ssa-loop-ivopts.c (operator<=): Same.
7777 * tree-ssa-loop.h: Same.
7778 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Same.
7779 * tree-ssa-structalias.c: Same.
7780 * tree-switch-conversion.h (cluster::cluster): Same.
7781 (simple_cluster::simple_cluster): Same.
7782 * tree-vect-patterns.c (type_conversion_p): Same.
7783 * tree-vectorizer.c (dump_stmt_cost): Same.
7784 * tree-vectorizer.h (loop_vec_info_for_loop): Same.
7785 * tree.c (protected_set_expr_location): Same.
7786 * tree.h (desired_pro_or_demotion_p): Same.
7787 (fndecl_built_in_p): Same.
7788 * unique-ptr-tests.cc: Same.
7789 * var-tracking.c (delete_variable_part): Same.
7790 * varasm.c (assemble_real): Same.
7791 (tree_output_constant_def): Same.
7792 * vec.c: Same.
7793 * wide-int-bitmask.h: Same.
7794 * wide-int.h (decompose): Same.
7795
7796 2019-07-09 Richard Biener <rguenther@suse.de>
7797
7798 PR tree-optimization/91114
7799 * tree-vect-data-refs.c (vect_analyze_data_refs): Failure to
7800 find a vector type isn't fatal.
7801
7802 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com>
7803
7804 * config/aarch64/aarch64-simd.md
7805 (aarch64_crypto_aes<aes_op>v16qi): Redefine pattern with xor.
7806 (aarch64_crypto_aes<aesmc_op>v16qi): Remove attribute enabled.
7807 (*aarch64_crypto_aes<aes_op>v16qi_xor_combine): Remove both.
7808 (*aarch64_crypto_aese_fused,
7809 *aarch64_crypto_aesd_fused): Update to new definition.
7810 * config/aarch64/aarch64.c
7811 (aarch_macro_fusion_pair_p): Remove aese/aesmc fusion check.
7812
7813 2019-07-09 Richard Biener <rguenther@suse.de>
7814
7815 * gimple-match.h (gimple_match_op::resimplify): New.
7816 (gimple_resimplify1, gimple_resimplify2, gimple_resimplify3,
7817 gimple_resimplify4, gimple_resimplify5): Remove.
7818 * gimple-match-head.c (gimple_resimplify1, gimple_resimplify2,
7819 gimple_resimplify3, gimple_resimplify4, gimple_resimplify5):
7820 Make static.
7821 (gimple_match_op::resimplify): New.
7822 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize
7823 according to availability. Use gimple_match_op::resimplify.
7824
7825 2019-07-09 Eric Botcazou <ebotcazou@adacore.com>
7826
7827 * ira-emit.c (emit_moves): Skip DEBUG_INSNs when setting the location.
7828
7829 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com>
7830
7831 * config/arm/crypto.md:
7832 (crypto_<crypto_pattern>): Redefine aese/aesd pattern with xor.
7833 (crypto_<crypto_pattern>): Remove attribute enabled for aesmc.
7834 (crypto_<crypto_pattern>): Split CRYPTO_BINARY into 2 patterns.
7835 (*aarch32_crypto_aese_fused, *aarch32_crypto_aesd_fused): New.
7836 * config/arm/arm.c
7837 (aarch_macro_fusion_pair_p): Remove aes/aesmc fusion check.
7838 * config/arm/aarch-common-protos.h
7839 (aarch_crypto_can_dual_issue): Remove.
7840 * config/arm/aarch-common.c
7841 (aarch_crypto_can_dual_issue): Likewise.
7842 * config/arm/exynos-m1.md: Remove aese/aesmc fusion.
7843 * config/arm/cortex-a53.md: Likewise.
7844 * config/arm/cortex-a57.md: Likewise.
7845 * config/arm/iterators.md:
7846 (CRYPTO_BINARY): Redefine.
7847 (CRYPTO_UNARY): Removed.
7848 (CRYPTO_AES, CRYPTO_AESMC): New.
7849
7850 2019-07-09 Richard Biener <rguenther@suse.de>
7851
7852 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add orig_ref member.
7853 (vn_reference_lookup_3): If the main ref has no access path recorded
7854 but orig_ref has use it to do access-path based disambiguation.
7855 (vn_reference_lookup_pieces): Adjust.
7856 (vn_reference_lookup): Pass down original ref if we valueized.
7857
7858 2019-07-09 Martin Liska <mliska@suse.cz>
7859
7860 * doc/extend.texi: Document influence on loop
7861 optimizers.
7862
7863 2019-07-09 Martin Liska <mliska@suse.cz>
7864
7865 * lto-compress.c (lto_normalized_zstd_level): Do not use
7866 ZSTD_CLEVEL_DEFAULT as it is not default in old releases
7867 of libzstd. One can use 0 as a default compression level.
7868
7869 2019-07-09 Martin Liska <mliska@suse.cz>
7870
7871 * doc/invoke.texi: Add link from -fprofile-dir option.
7872 Use better wording for 'gcno filename'.
7873
7874 2019-07-08 Martin Sebor <msebor@redhat.com>
7875
7876 PR middle-end/71924
7877 PR middle-end/90549
7878 * gimple-ssa-isolate-paths.c (isolate_path): Add attribute. Update
7879 comment.
7880 (args_loc_t): New type.
7881 (args_loc_t, locmap_t): same.
7882 (diag_returned_locals): New function.
7883 (is_addr_local): Same.
7884 (handle_return_addr_local_phi_arg, warn_return_addr_local): Same.
7885 (find_implicit_erroneous_behavior): Call warn_return_addr_local_phi_arg.
7886 (find_explicit_erroneous_behavior): Call warn_return_addr_local.
7887
7888 2019-07-08 Jakub Jelinek <jakub@redhat.com>
7889
7890 * tree-vect-stmts.c (scan_operand_equal_p): Look through MEM_REF
7891 with SSA_NAME address of POINTER_PLUS_EXPR. Handle MULT_EXPR
7892 and casts in offset when different, both through gimple stmts
7893 and through trees. Rewritten using loops to minimize code duplication
7894 for each operand.
7895
7896 2019-07-08 Eric Botcazou <ebotcazou@adacore.com>
7897
7898 * emit-rtl.c (set_insn_locations): New function moved from...
7899 * function.c (set_insn_locations): ...here.
7900 * ira-emit.c (emit_moves): Propagate location of the first instruction
7901 to the inserted move instructions.
7902 * reg-stack.c (compensate_edge): Set the location if the sequence is
7903 inserted on the edge.
7904 * rtl.h (set_insn_locations): Declare.
7905
7906 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
7907
7908 * config/rs6000/rs6000.c (rs6000_machine_from_flags): Ignore
7909 OPTION_MASK_PPC_GFXOPT and OPTION_MASK_PPC_GPOPT for selecting the
7910 .machine string.
7911
7912 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
7913
7914 PR rtl-optimization/88233
7915 * common.opt (fsplit-wide-types-early): New option.
7916 * common/config/rs6000/rs6000-common.c
7917 (rs6000_option_optimization_table): Add OPT_fsplit_wide_types_early for
7918 OPT_LEVELS_ALL.
7919 * doc/invoke.texi (Optimization Options): Add -fsplit-wide-types-early.
7920 * lower-subreg.c (pass_lower_subreg2::gate): Add test for
7921 flag_split_wide_types_early.
7922 (pass_data_lower_subreg3): New.
7923 (pass_lower_subreg3): New.
7924 (make_pass_lower_subreg3): New.
7925 * passes.def (pass_lower_subreg2): Move after the loop passes.
7926 (pass_lower_subreg3): New, inserted where pass_lower_subreg2 was.
7927 * tree-pass.h (make_pass_lower_subreg2): Move up, to its new place in
7928 the pass pipeline; its previous place is taken by ...
7929 (make_pass_lower_subreg3): ... this.
7930
7931 2019-07-08 Robin Dapp <rdapp@linux.ibm.com>
7932
7933 * config/s390/s390.c (s390_shift_truncation_mask): Define.
7934 (TARGET_SHIFT_TRUNCATION_MASK): Define.
7935
7936 2019-07-08 Robin Dapp <rdapp@linux.ibm.com>
7937
7938 * config/s390/constraints.md: Add new jsc constraint.
7939 * config/s390/predicates.md: New predicates.
7940 * config/s390/s390-protos.h (s390_valid_shift_count): New function.
7941 * config/s390/s390.c (s390_valid_shift_count): New function.
7942 (print_shift_count_operand): Use s390_valid_shift_count.
7943 (print_operand): Likewise.
7944 * config/s390/s390.md: Use new predicate.
7945 * config/s390/subst.md: Remove addr_style_op and masked_op substs.
7946 * config/s390/vector.md: Use new predicate.
7947
7948 2019-07-08 Andrew Waterman <andrew@sifive.com>
7949 Jim Wilson <jimw@sifive.com>
7950
7951 * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): Use operands[1]
7952 bitsize instead of BITS_PER_WORD.
7953
7954 2019-07-08 Martin Liska <mliska@suse.cz>
7955
7956 * collect2.c (defined): Revert to before r254460.
7957 (scan_prog_file): Revert to before r254460.
7958
7959 2019-07-08 Richard Biener <rguenther@suse.de>
7960
7961 PR tree-optimization/83518
7962 * tree-ssa-sccvn.c: Include splay-tree.h.
7963 (struct pd_range, struct pd_data): New.
7964 (struct vn_walk_cb_data): Add data to track partial definitions.
7965 (vn_walk_cb_data::~vn_walk_cb_data): New.
7966 (vn_walk_cb_data::push_partial_def): New.
7967 (pd_tree_alloc, pd_tree_dealloc, pd_range_compare): New.
7968 (vn_reference_lookup_2): When partial defs are registered give up.
7969 (vn_reference_lookup_3): Track partial defs for memset and
7970 constructor zeroing and for defs from constants.
7971
7972 2019-07-08 Richard Sandiford <richard.sandiford@arm.com>
7973
7974 * doc/install.texi (bootstrap-Og): Document.
7975
7976 2019-07-08 Richard Sandiford <richard.sandiford@arm.com>
7977
7978 * config/riscv/pic.md (*local_pic_load_s<mode>)
7979 (*local_pic_load_u<mode>): Explicitly specify the mode iterator
7980 referenced by <mode>, giving...
7981 (*local_pic_load_s<SUBX:mode>, *local_pic_load_u<SUBX:mode>): ...these.
7982 * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>)
7983 (*slt<u>_<X:mode><GPR:mode>, *sle<u>_<X:mode><GPR:mode>): Explicitly
7984 use <X:MODE> for the mode attribute.
7985
7986 2019-07-07 Jeff Law <law@redhat.com>
7987
7988 PR tree-optimization/91090
7989 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Fix logic error
7990 in handling of ranges to simplify switch statements.
7991
7992 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
7993
7994 * config/darwin.c (darwin_override_options): Make a final check on PIC
7995 options.
7996
7997 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
7998
7999 * config/darwin.c (darwin_override_options): Don't jam symbol stubs
8000 on for kernel code.
8001
8002 2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
8003
8004 PR target/91068
8005 * config/mips/mips.md (*mul_acc_si, *mul_acc_si_r3900, *macc)
8006 (*msac, *msac_using_macc, *mul_sub_si): Use "l" for input operands
8007 instead of matching them to "l" output operands.
8008
8009 2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
8010
8011 * config/mips/mips.c (mips_split_move): Zero-initialize addr
8012 and check whether addr.reg is nonnull before using it.
8013
8014 2019-07-06 Jakub Jelinek <jakub@redhat.com>
8015
8016 * omp-low.c (lower_rec_input_clauses): For lastprivate clauses in
8017 ctx->for_simd_scan_phase simd copy the outer var to the privatized
8018 variable(s). For conditional lastprivate look through outer
8019 GIMPLE_OMP_SCAN context.
8020 (lower_omp_1): For conditional lastprivate look through outer
8021 GIMPLE_OMP_SCAN context.
8022
8023 * omp-low.c (struct omp_context): Rename combined_into_simd_safelen0
8024 member to combined_into_simd_safelen1.
8025 (lower_rec_input_clauses, lower_omp_1): Adjust uses.
8026 (lower_lastprivate_clauses): Likewise. For conditional lastprivate
8027 clauses if ctx->combined_into_simd_safelen1 put statements after the
8028 predicate conditionalized block rather than into it.
8029
8030 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
8031
8032 * config/s390/s390.md (*negabs<FP:mode>2_nocc): Use FP for
8033 operand 1.
8034 * config/s390/vx-builtins.md (*vec_cmp<insn_cmp><mode>_cconly):
8035 Make the choice of <mode> explicit, giving...
8036 (*vec_cmp<insn_cmp><VF_HW:mode>_cconly): ...this.
8037
8038 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
8039
8040 * config/i386/i386.md (*fop_<X87MODEF:mode>_3_i387)
8041 (l<rounding_insn><MODEF:mode><SWI48:mode>2): Fix ambiguous uses
8042 of .md attributes.
8043 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask)
8044 (*avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask)
8045 (*avx512pf_scatterpf<mode>df_mask, *avx2_gathersi<mode>)
8046 (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>)
8047 (*avx2_gatherdi<mode>_2, *avx2_gatherdi<mode>_3): Likewise.
8048 (*avx2_gatherdi<mode>_4, *avx512f_gathersi<mode>): Likewise.
8049 (*avx512f_gathersi<mode>_2, *avx512f_gatherdi<mode>): Likewise.
8050 (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>): Likewise.
8051 (*avx512f_scatterdi<mode>): Likewise.
8052 (*andnot<mode>3_bcst): Fix VI/VI48_AVX512VL typo.
8053
8054 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
8055
8056 * config/h8300/h8300.md (*push1_h8300hs_<mode>): Explicitly
8057 specify the mode iterator referenced by <mode>, giving...
8058 (*push1_h8300hs_<QHI:mode>): ...this.
8059
8060 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
8061
8062 * config/gcn/gcn-valu.md
8063 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Use
8064 gen_vec_cmp<VEC_1REG_ALT:mode>di rather than (implicitly)
8065 gen_vec_cmp<VEC_1REG_MODE:mode>di. Explicitly use
8066 gen_vcond_mask_<VEC_1REG_MODE:mode>di.
8067 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise,
8068 but using the _exec comparison patterns.
8069 (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>): Use
8070 gen_vec_cmp<VEC_1REG_INT_ALT:mode>di rather than (implicitly)
8071 gen_vec_cmp<VEC_1REG_INT_MODE:mode>di. Explicitly use
8072 gen_vcond_mask_<VEC_1REG_INT_MODE:mode>di.
8073 (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise,
8074 but using the _exec comparison patterns.
8075
8076 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
8077
8078 * config/arm/sync.md
8079 (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Use
8080 <NARROW:sync_predtab> instead of (implicitly) <CCSI:sync_predtab>.
8081 (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise use
8082 <SIDI:sync_predtab>. Use <SIDI:cas_cmp_operand> and
8083 <SIDI:cas_cmp_str>.
8084
8085 2019-07-06 Jakub Jelinek <jakub@redhat.com>
8086
8087 * omp-low.c (struct omp_context): Add for_simd_scan_phase member.
8088 (maybe_lookup_ctx): Add forward declaration.
8089 (omp_find_scan): Likewise. Walk into body of simd if composited
8090 with worksharing loop.
8091 (scan_omp_simd_scan): New function.
8092 (scan_omp_1_stmt): Call it.
8093 (lower_rec_simd_input_clauses): Don't create rvar nor rvar2 if
8094 ctx->for_simd_scan_phase.
8095 (lower_rec_input_clauses): Do much less work for inscan reductions
8096 in ctx->for_simd_scan_phase is_simd regions.
8097 (lower_omp_scan): Set is_simd also on simd constructs composited
8098 with worksharing loop, unless ctx->for_simd_scan_phase. Never emit
8099 a sorry message. Don't change GIMPLE_OMP_SCAN stmts into nops and
8100 emit their body after in simd constructs composited with worksharing
8101 loop.
8102 (lower_omp_for_scan): Handle worksharing loop composited with simd.
8103
8104 * omp-low.c (omp_find_scan): Make static.
8105 (lower_omp_for_scan): Fix order of merge arguments in input phase of
8106 the second loop, var2 represents the first partial sum and so needs
8107 to go before rprivb[ivar].
8108
8109 2019-07-05 Iain Sandoe <iain@sandoe.co.uk>
8110
8111 * config/rs6000/rs6000-logue.c: Remove unused code.
8112
8113 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
8114
8115 * tree-ssa-loop-manip.c (create_iv): Add missing guard for gsi_end_p.
8116
8117 2019-07-05 Sam Tebbs <sam.tebbs@arm.com>
8118
8119 PR target/90712
8120 * config/aarch64/aarch64.c (aarch64_post_cfi_startproc): Replace thunk
8121 check with a frame laid out check.
8122
8123 2019-07-05 Richard Biener <rguenther@suse.de>
8124
8125 * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize RHS
8126 when comparing against a store with possibly the same value.
8127
8128 2019-07-05 Richard Biener <rguenther@suse.de>
8129
8130 PR tree-optimization/91091
8131 * tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter.
8132 (walk_non_aliased_vuses): Likewise.
8133 * tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p.
8134 (get_continuation_for_phi): New tbaa_p parameter and pass
8135 it down.
8136 (walk_non_aliased_vuses): Likewise.
8137 * ipa-prop.c (determine_known_aggregate_parts): Adjust.
8138 * tree-ssa-pre.c (translate_vuse_through_block): Likewise.
8139 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
8140 Likewise.
8141 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag.
8142 (adjust_offsets_for_equal_base_address): New function.
8143 (vn_reference_lookup_3): Use it to catch more base equivalences.
8144 Handle and pass down tbaa_p flag.
8145 (vn_reference_lookup_pieces): Adjust.
8146 (vn_reference_lookup): Remove alias-set altering, instead pass
8147 down false as tbaa_p.
8148
8149 2019-07-05 Richard Biener <rguenther@suse.de>
8150
8151 PR tree-optimization/91091
8152 * tree-ssa-sccvn.c (vn_reference_lookup_3): Overlap of
8153 accesses can happen with -fno-strict-aliasing.
8154
8155 2019-07-05 Jan Hubicka <hubicka@ucw.cz>
8156
8157 * tree-ssa-alias.c (alias_stats): Add
8158 nonoverlapping_component_refs_since_match_p_must_overlap.
8159 (dump_alias_stats): Print it.
8160 (nonoverlapping_component_refs_since_match_p): Add early exit.
8161 (nonoverlapping_component_refs_p): Do not account early exit.
8162
8163 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
8164
8165 * except.c (emit_to_new_bb_before): Make sure to put a location on SEQ.
8166 * tree-eh.c (replace_goto_queue_1) <GIMPLE_GOTO>: Propagate location.
8167 (emit_eh_dispatch): Delete.
8168 (lower_catch): Emit the eh_dispatch manually and set the location of
8169 the first catch statement onto it.
8170 (lower_eh_filter): Emit the eh_dispatch manually and set location.
8171 (lower_eh_dispatch): Propagate location.
8172 * tree-outof-ssa.c (set_location_for_edge): Handle EH edges specially.
8173 (eliminate_build): Likewise.
8174
8175 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
8176
8177 * tree-cfg.c (gimple_make_forwarder_block): Propagate location info on
8178 phi nodes if possible.
8179 * tree-scalar-evolution.c (final_value_replacement_loop): Propagate
8180 location info on the newly created statement.
8181 * tree-ssa-loop-manip.c (create_iv): Propagate location info on the
8182 newly created increment if needed.
8183
8184 2019-07-04 Jakub Jelinek <jakub@redhat.com>
8185
8186 PR middle-end/78884
8187 * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member.
8188 (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd
8189 loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE.
8190 (gimplify_adjust_omp_clauses): Add safelen (1) clause if
8191 ctx->add_safelen1 is set.
8192
8193 * omp-expand.c (expand_omp_for_static_nochunk): Don't emit
8194 GOMP_loop_start at the start of second worksharing loop in a scan.
8195 For nowait, don't emit GOMP_loop_end_nowait at the end of first
8196 worksharing loop in a scan even if there are conditional lastprivates,
8197 and do emit GOMP_loop_end_nowait at the end of second worksharing loop.
8198
8199 2019-07-04 Jan Hubicka <jh@suse.cz>
8200
8201 * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
8202 Fix check for match in the ref walk.
8203
8204 2019-07-04 Martin Liska <mliska@suse.cz>
8205
8206 * tree-ssa-loop-niter.c
8207 (get_upper_bound_based_on_builtin_expr_with_prob): New function.
8208 (estimate_numbers_of_iterations):
8209 Support __builtin_expect_with_probability for analysis
8210 of # of loop iterations.
8211
8212 2019-07-04 Alexandre Oliva <oliva@adacore.com>
8213
8214 * doc/generic.texi (Cleanups): Document EH_ELSE_EXPR.
8215 * except.c: Likewise.
8216 * expr.c (expand_expr_real_1): Reject it.
8217 * gimplify.c (gimplify_expr): Gimplify it, within
8218 TRY_FINALLY_EXPR.
8219 * tree-dump.c (dequeue_and_dump): Dump it.
8220 * tree-pretty-print.c (dump_generic_node): Likewise.
8221 * tree.c (block_may_fallthru): Handle it.
8222 * tree.def (EH_ELSE_EXPR): Introduce it.
8223 * gimple-pretty-print.c (dump_gimple_try): Dump TRY_FINALLY
8224 with GIMPLE_EH_ELSE as try/finally/else.
8225
8226 2019-07-04 Richard Biener <rguenther@suse.de>
8227
8228 PR ipa/91062
8229 * tree-pass.h (execute_all_ipa_transforms): Add a flag
8230 parameter whether to disable GC collection.
8231 * passes.c (execute_one_ipa_transform_pass): Likewise, and
8232 honor it.
8233 (execute_all_ipa_transforms): Likewise and pass it down.
8234 * cgraph.c (cgraph_node::get_body): Do not invoke garbage
8235 collection from applying IPA transforms.
8236 * cgraphunit.c (cgraph_node::expand): Allow garbage collection
8237 from applying IPA transforms.
8238
8239 2019-07-04 Richard Biener <rguenther@suse.de>
8240
8241 PR tree-optimization/90911
8242 * tree-vectorizer.h (_loop_vec_info::scalar_loop_scaling): New field.
8243 (LOOP_VINFO_SCALAR_LOOP_SCALING): new.
8244 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
8245 scalar_loop_scaling.
8246 (vect_transform_loop): Scale scalar loop profile if needed.
8247 * tree-vect-loop-manip.c (vect_loop_versioning): When re-using
8248 the loop copy from if-conversion adjust edge probabilities
8249 and scale the vectorized loop body profile, queue the scalar
8250 profile for updating after peeling.
8251
8252 2019-07-04 Jan Hubicka <jh@suse.cz>
8253
8254 * tree-ssa-alias.c (decl_refs_may_alias_p): Add size1 and size2
8255 parameters; return early for must-alias.
8256 (indirect_ref_may_alias_decl_p): Likewise; when establishing
8257 outer types match, try nonoverlapping_component_refs
8258 if must-alias is not obvious.
8259 (indirect_refs_may_alias_p): Likewise.
8260 (refs_may_alias_p_2): Likewise.
8261
8262 2019-07-04 Richard Biener <rguenther@suse.de>
8263
8264 * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr
8265 argument.
8266 * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move
8267 globals into...
8268 (struct vn_walk_cb_data): New callback data struct.
8269 (vn_reference_lookup_2): Adjust.
8270 (vn_reference_lookup_3): Likewise.
8271 (vn_reference_lookup_pieces): Likewise.
8272 (vn_reference_lookup): Likewise, get last_vuse_ptr argument.
8273 (visit_reference_op_load): Adjust.
8274
8275 2019-07-04 Jakub Jelinek <jakub@redhat.com>
8276
8277 PR tree-optimization/91063
8278 * tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove
8279 stmt from stmts sequence before calling vect_init_vector_1.
8280 Formatting fix.
8281
8282 2019-07-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8283
8284 PR target/88833
8285 * fwprop.c (reg_single_def_p): New function.
8286 (propagate_rtx_1): Add unconditional else inside RTX_EXTRA case.
8287 (forward_propagate_into): New parameter reg_prop_only
8288 with default value false.
8289 Propagate def's src into loop only if SET_SRC and SET_DEST
8290 of def_set have single definitions.
8291 Likewise if reg_prop_only is set to true.
8292 (fwprop): New param fwprop_addr_p.
8293 Integrate fwprop_addr into fwprop.
8294 (fwprop_addr): Remove.
8295 (pass_rtl_fwprop_addr::execute): Call fwprop with arg set
8296 to true.
8297 (pass_rtl_fwprop::execute): Call fwprop with arg set to false.
8298 * simplify-rtx.c (simplify_subreg): Add case for vector comparison.
8299 * config/i386/sse.md (UNSPEC_BLENDV): Adjust pattern.
8300
8301 2019-07-04 Jakub Jelinek <jakub@redhat.com>
8302
8303 * omp-low.c (lower_omp_scan): Call lower_omp on stmt's body
8304 in worksharing loop scans.
8305
8306 PR tree-optimization/91074
8307 * omp-low.c (lower_omp_for_scan): Set DECL_GIMPLE_REG_P on cplx
8308 temporary.
8309
8310 PR rtl-optimization/90756
8311 * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
8312 for VECTOR_TYPE_P.
8313
8314 2019-07-03 Dennis Zhang <dennis.zhang@arm.com>
8315
8316 * config/aarch64/aarch64.md: Remove redundant constraints from
8317 define_expand but keep some patterns untouched if they are
8318 specially selected by TARGET_SECONDARY_RELOAD hook.
8319 * config/aarch64/aarch64-sve.md: Likewise.
8320 * config/aarch64/atomics.md: Remove redundant constraints from
8321 define_expand.
8322 * config/aarch64/aarch64-simd.md: Likewise.
8323
8324 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
8325
8326 * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
8327 (RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
8328 (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
8329 clauses.
8330 (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
8331 DARWIN_NOPIE_SPEC.
8332
8333 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
8334
8335 * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
8336 (STARTFILE_SPEC): Split crt3 into a separate spec.
8337 (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
8338 (DARWIN_CRT2_SPEC): New.
8339 (DARWIN_CRT3_SPEC): New.
8340 (MIN_LD64_OMIT_STUBS): Revise to 62.1.
8341 * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
8342 (DARWIN_CRT3_SPEC): New.
8343
8344 2019-07-03 Michael Meissner <meissner@linux.ibm.com>
8345
8346 * config/rs6000/altivec.md (altivec_mov<mode>, VM2 iterator):
8347 Change the RTL attribute "length" from "4" to "*" to allow the
8348 length attribute to be adjusted automatically for prefixed load,
8349 store, and add immediate instructions.
8350 * config/rs6000/rs6000.md (extendhi<mode>2, EXTHI iterator):
8351 Likewise.
8352 (extendsi<mode>2, EXTSI iterator): Likewise.
8353 (movsi_internal1): Likewise.
8354 (movsi_from_sf): Likewise.
8355 (movdi_from_sf_zero_ext): Likewise.
8356 (mov<mode>_internal): Likewise.
8357 (movcc_internal1, QHI iterator): Likewise.
8358 (mov<mode>_softfloat, FMOVE32 iterator): Likewise.
8359 (movsf_from_si): Likewise.
8360 (mov<mode>_hardfloat32, FMOVE64 iterator): Likewise.
8361 (mov<mode>_softfloat64, FMOVE64 iterator): Likewise.
8362 (mov<mode>, FMOVE128 iterator): Likewise.
8363 (movdi_internal64): Likewise.
8364 * config/rs6000/vsx.md (vsx_le_permute_<mode>, VSX_TI iterator):
8365 Likewise.
8366 (vsx_le_undo_permute_<mode>, VSX_TI iterator): Likewise.
8367 (vsx_mov<mode>_64bit, VSX_M iterator): Likewise.
8368 (vsx_mov<mode>_32bit, VSX_M iterator): Likewise.
8369 (vsx_splat_v4sf): Likewise.
8370
8371 2019-07-03 Mark Wielaard <mark@klomp.org>
8372
8373 PR debug/90981
8374 * dwarf2out.c (add_top_level_skeleton_die_attrs): Only add
8375 DW_AT_addr_base if there is actually a .debug_addr section with
8376 addresses.
8377 (output_addr_table): Add DWARF5 table header generation here after
8378 checking there are actually any addresses from...
8379 (dwarf2out_finish): ...here.
8380
8381 2019-07-03 Richard Biener <rguenther@suse.de>
8382
8383 PR middle-end/91069
8384 * match.pd (vec_perm -> bit_insert): Fix element read from
8385 first vector.
8386
8387 2019-07-03 Martin Liska <mliska@suse.cz>
8388
8389 * dbgcnt.def (DEBUG_COUNTER): Add match debug counter.
8390 * genmatch.c (dt_simplify::gen_1): Generate dbgcnt
8391 condition.
8392 * generic-match-head.c: Include dbgcnt.h.
8393 * gimple-match-head.c: Likewise.
8394
8395 2019-07-03 Martin Liska <mliska@suse.cz>
8396
8397 * gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove.
8398 (GCOV_COUNTER_V_TOPN): New.
8399 (GCOV_COUNTER_V_INDIR): Use _topn.
8400 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove.
8401 (GCOV_TOPN_VALUES): New.
8402 (GCOV_SINGLE_VALUE_COUNTERS): Remove.
8403 (GCOV_TOPN_VALUES_COUNTERS): New.
8404 * profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES.
8405 * tree-profile.c:
8406 (gimple_init_gcov_profiler): Rename variables from one_value
8407 to topn_values.
8408 (gimple_gen_one_value_profiler): Remove.
8409 (gimple_gen_topn_values_profiler): New function.
8410 * value-prof.c (dump_histogram_value): Use TOPN_VALUES
8411 names instead of SINGLE_VALUE.
8412 (stream_out_histogram_value): Likewise.
8413 (stream_in_histogram_value): Likewise.
8414 (get_most_common_single_value): Likewise.
8415 (gimple_divmod_fixed_value_transform): Likewise.
8416 (gimple_stringops_transform): Likewise.
8417 (gimple_divmod_values_to_profile): Likewise.
8418 (gimple_stringops_values_to_profile): Likewise.
8419 (gimple_find_values_to_profile): Likewise.
8420 * value-prof.h (enum hist_type): Rename to TOPN.
8421 (gimple_gen_one_value_profiler): Remove.
8422 (gimple_gen_topn_values_profiler): New.
8423
8424 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
8425
8426 * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE
8427 if it has the DW_AT_data_member_location attribute.
8428
8429 2019-07-03 Richard Biener <rguenther@suse.de>
8430
8431 * gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR
8432 dumping.
8433
8434 2019-07-03 Sylvia Taylor <sylvia.taylor@arm.com>
8435
8436 * config/aarch64/aarch64.md (FP_REGNUM): New constant.
8437 (tlsdesc_small_advsimd_<mode>): Add use of FP_REGNUM.
8438 (tlsdesc_small_sve_<mode>): Likewise.
8439
8440 2019-07-03 Martin Liska <mliska@suse.cz>
8441
8442 * Makefile.in: Define ZSTD_LIB.
8443 * common.opt: Adjust compression level
8444 to support also zstd levels.
8445 * config.in: Regenerate.
8446 * configure: Likewise.
8447 * configure.ac: Add --with-zstd and --with-zstd-include options
8448 and detect ZSTD.
8449 * doc/install.texi: Mention zstd dependency.
8450 * gcc.c: Print supported LTO compression algorithms.
8451 * lto-compress.c (lto_normalized_zstd_level): Likewise.
8452 (lto_compression_zstd): Likewise.
8453 (lto_uncompression_zstd): Likewise.
8454 (lto_end_compression): Dispatch in between zlib and zstd.
8455 (lto_compression_zlib): Mark with ATTRIBUTE_UNUSED.
8456 (lto_uncompression_zlib): Make it static.
8457 * lto-compress.h (lto_end_uncompression): Fix GNU coding style.
8458 * lto-section-in.c (lto_get_section_data): Pass info
8459 about used compression.
8460 * lto-streamer-out.c: By default use zstd when possible.
8461 * timevar.def (TV_IPA_LTO_DECOMPRESS): Rename to decompression
8462 (TV_IPA_LTO_COMPRESS): Likewise for compression.
8463
8464 2019-07-03 Martin Liska <mliska@suse.cz>
8465
8466 * lto-section-in.c (lto_get_section_data): Add "lto" section.
8467 * lto-section-out.c (lto_destroy_simple_output_block): Never
8468 compress LTO_section_lto section.
8469 * lto-streamer-out.c (produce_asm): Do not set major_version
8470 and minor_version.
8471 (lto_output_toplevel_asms): Likewise.
8472 (produce_lto_section): New function.
8473 (lto_output): Call produce_lto_section.
8474 (lto_write_mode_table): Do not set major_version and
8475 minor_version.
8476 (produce_asm_for_decls): Likewise.
8477 * lto-streamer.h (enum lto_section_type): Add LTO_section_lto
8478 type.
8479 (struct lto_header): Remove.
8480 (struct lto_section): New struct.
8481 (struct lto_simple_header): Do not inherit from lto_header.
8482 (struct lto_file_decl_data): Add lto_section_header field.
8483
8484 2019-07-03 Martin Liska <mliska@suse.cz>
8485
8486 * lra-eliminations.c (eliminate_regs_in_insn): Remove
8487 dead assignemts.
8488 * reg-stack.c (check_asm_stack_operands): Likewise.
8489 * tree-ssa-structalias.c (create_function_info_for): Likewise.
8490 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
8491 * config/i386/i386-expand.c (ix86_expand_sse2_mulvxdi3): Use
8492 force_expand_binop.
8493
8494 2019-07-03 Martin Liska <mliska@suse.cz>
8495
8496 PR tree-optimization/90892
8497 * builtins.c (inline_expand_builtin_string_cmp): Handle '\0'
8498 in string constants.
8499
8500 2019-07-03 Martin Liska <mliska@suse.cz>
8501
8502 PR middle-end/90899
8503 * multiple_target.c (create_dispatcher_calls): Add to comdat
8504 group only if set for ifunc.
8505
8506 2019-07-03 Martin Liska <mliska@suse.cz>
8507
8508 PR target/88056
8509 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
8510 Define local_object_name in outer scope in order to handle
8511 use-after-scope issue.
8512
8513 2019-07-03 Martin Liska <mliska@suse.cz>
8514
8515 * common.opt: Add fprofile-note.
8516 * coverage.c (coverage_init): Append the option
8517 to bbg_file_name.
8518 * doc/invoke.texi: Document -fprofile-note.
8519
8520 2019-07-03 Jakub Jelinek <jakub@redhat.com>
8521
8522 PR tree-optimization/91033
8523 * tree-vectorizer.h (vect_mark_stmts_to_be_vectorized,
8524 vect_analyze_data_refs): Add bool * arguments.
8525 * tree-vect-data-refs.c (vect_analyze_data_refs): Add fatal argument,
8526 if failure is due to scatter/gather, set *fatal to false if non-NULL.
8527 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
8528 * tree-vect-loop.c (vect_analyze_loop_2): Adjust
8529 vect_mark_stmts_to_be_vectorized and vect_analyze_data_refs callers.
8530 * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust
8531 vect_analyze_data_refs caller.
8532
8533 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SCANTEMP_
8534 clause.
8535 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__SCANTEMP_ instead of
8536 OMP_CLAUSE__CONDTEMP_ as range's upper bound.
8537 (OMP_CLAUSE__SCANTEMP__ALLOC, OMP_CLAUSE__SCANTEMP__CONTROL): Define.
8538 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
8539 OMP_CLAUSE__SCANTEMP_ entry.
8540 (walk_tree_1): Handle OMP_CLAUSE__SCANTEMP_.
8541 * tree-pretty-print.c (dump_omp_clause): Likewise.
8542 * tree-nested.c (convert_nonlocal_omp_clauses,
8543 convert_local_omp_clauses): Likewise.
8544 * omp-general.h (struct omp_for_data): Add have_scantemp and
8545 have_nonctrl_scantemp members.
8546 * omp-general.c (omp_extract_for_data): Initialize them.
8547 * omp-low.c (struct omp_context): Add scan_exclusive member.
8548 (scan_omp_1_stmt): Don't unnecessarily mask gimple_omp_for_kind
8549 result again with GF_OMP_FOR_KIND_MASK. Initialize also
8550 ctx->scan_exclusive.
8551 (lower_rec_simd_input_clauses): Use ctx->scan_exclusive instead
8552 of !ctx->scan_inclusive.
8553 (lower_rec_input_clauses): Simplify gimplification of dtors using
8554 gimplify_and_add. For non-is_simd test OMP_CLAUSE_REDUCTION_INSCAN
8555 rather than rvarp. Handle OMP_CLAUSE_REDUCTION_INSCAN in worksharing
8556 loops. Don't add barrier for reduction_omp_orig_ref if
8557 ctx->scan_??xclusive.
8558 (lower_reduction_clauses): Don't do anything for ctx->scan_??xclusive.
8559 (lower_omp_scan): Use ctx->scan_exclusive instead
8560 of !ctx->scan_inclusive. Handle worksharing loops with inscan
8561 reductions. Use new_vard != new_var instead of repeated
8562 omp_is_reference calls.
8563 (omp_find_scan, lower_omp_for_scan): New functions.
8564 (lower_omp_for): Call lower_omp_for_scan for worksharing loops with
8565 inscan reductions.
8566 * omp-expand.c (expand_omp_scantemp_alloc): New function.
8567 (expand_omp_for_static_nochunk): Handle fd->have_nonctrl_scantemp
8568 and fd->have_scantemp.
8569
8570 * gimplify.c (gimplify_scan_omp_clauses): For inscan reductions
8571 on worksharing loop propagate it as shared clause to containing
8572 combined parallel.
8573
8574 * omp-expand.c (expand_omp_for_static_nochunk,
8575 expand_omp_for_static_chunk): For nowait worksharing loop with
8576 conditional lastprivate clause(s), emit GOMP_loop_end_nowait call
8577 at the end.
8578
8579 2019-07-02 qing zhao <qing.zhao@oracle.com>
8580
8581 PR preprocessor/90581
8582 * doc/cppopts.texi: Add document for -fmax-include-depth.
8583 * doc/invoke.texi (Preprocessor Options): List -fmax-include-depth.
8584
8585 2019-07-02 Uroš Bizjak <ubizjak@gmail.com>
8586
8587 * config/i386/mmx.md (mmx_pack<s_trunsuffix>swb):
8588 Use TARGET_SSE2 && SSE_REGNO_P in split condition.
8589 (mmx_packssdw): Ditto.
8590 (mmx_punpckhbw): Ditto.
8591 (mmx_punpcklbw): Ditto.
8592 (mmx_punpckhwd): Ditto.
8593 (mmx_punpcklwd): Ditto.
8594 (mmx_punpckhdq): Ditto.
8595 (mmx_punpckldq): Ditto.
8596 (*vec_dupv4hi): Ditto.
8597 (*vec_dupv2si): Ditto.
8598 (mmx_pmovmskb): Ditto.
8599 * config/i386/sse.md (sse_cvtpi2ps): Use
8600 TARGET_SSE2 && SSE_REG_P in split condition.
8601 (ssse3_ph<plusminus_mnemonic>wv4hi3): Use
8602 TARGET_SSSE3 && SSE_REGNO_P in split condition.
8603 (ssse3_ph<plusminus_mnemonic>dv2si3): Ditto.
8604 (ssse3_pshufbv8qi3): Ditto.
8605 (ssse3_palignrdi): Ditto.
8606
8607 2019-07-02 Andrew Stubbs <ams@codesourcery.com>
8608
8609 * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn
8610 with inlined save and restore.
8611
8612 2019-07-02 Eric Botcazou <ebotcazou@adacore.com>
8613
8614 * cfgexpand.c (pass_expand::execute): Deal specially with instructions
8615 to be inserted on single successor edge of the entry block. Then call
8616 commit_edge_insertions instead of inserting the instructions manually.
8617 * cfgrtl.c (commit_edge_insertions): Do not verify flow info during
8618 RTL expansion and rebuild jump labels chain.
8619
8620 2019-07-02 Richard Biener <rguenther@suse.de>
8621
8622 * tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and
8623 TI_CHREC_KNOWN.
8624 * tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
8625 Define here.
8626 * tree.c (build_common_tree_nodes): Initialize them.
8627 * tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
8628 Make declarations comments.
8629 * tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know,
8630 chrec_known): Remove definitions.
8631 (initialize_scalar_evolutions_analyzer): Remove.
8632 (scev_initialize): Do not call initialize_scalar_evolutions_analyzer.
8633 * tree-streamer.c (preload_common_nodes): Do not preload
8634 TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN.
8635
8636 2019-07-02 Jan Hubicka <jh@suse.cz>
8637
8638 * tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten
8639 sanity check.
8640
8641 2019-07-02 Jan Hubicka <jh@suse.cz>
8642
8643 * tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename
8644 to ..
8645 (nonoverlapping_component_refs_since_match_p): ... this one;
8646 handle also non-decl bases; return -1 if search gave up.
8647 (alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias,
8648 nonoverlapping_component_refs_of_decl_p_no_alias to
8649 nonoverlapping_component_refs_since_match_p_may_alias,
8650 nonoverlapping_component_refs_since_match_p_no_alias.
8651 (dump_alias_stats): Update dumping.
8652 (aliasing_matching_component_refs_p): Break out from ...;
8653 dispatch to nonoverlapping_component_refs_for_decl_p
8654 and nonoverlapping_component_refs_since_match_p.
8655 (aliasing_component_refs_p): ... here; call
8656 nonoverlapping_component_refs_p in scenarios where we can not
8657 precisely determine base match.
8658 (decl_refs_may_alias_p): Use
8659 nonoverlapping_component_refs_since_match_p.
8660 (indirect_ref_may_alias_decl_p): Do not call
8661 nonoverlapping_component_refs_p.
8662 (indirect_refs_may_alias_p): Likewise.
8663
8664 2019-07-02 Jan Hubicka <jh@suse.cz>
8665
8666 * tree-inline.c (remap_gimple_stmt): Do not subtitute handled components
8667 to clobber of return value.
8668
8669 2019-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8670
8671 * config/arm/cortex-a57.md (cortex_a57_neon_type): Use neon_arith_basic
8672 for is_neon_type instructions that have not already been categorized.
8673
8674 2019-07-02 Richard Biener <rguenther@suse.de>
8675
8676 PR tree-optimization/58483
8677 * tree-ssa-scopedtables.c (avail_expr_hash): Use OEP_ADDRESS_OF
8678 for MEM_REF base hashing.
8679 (equal_mem_array_ref_p): Likewise for base comparison.
8680
8681 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8682
8683 * config/rs6000/rs6000.md (signbit<mode>2_dm): Make this a
8684 parameterized name.
8685 (signbit<mode>2): Use that name. Simplify.
8686
8687 2019-07-01 Joern Rennecke <joern.rennecke@riscy-ip.com>
8688
8689 PR middle-end/66726
8690 * tree-ssa-phiopt.c (factor_out_conditional_conversion):
8691 Tune heuristic from PR71016 to allow MIN / MAX.
8692
8693 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8694
8695 * config/rs6000/rs6000.md (ieee_128bit_vsx_abs<mode>2): Make this a
8696 parameterized name.
8697 (abs<mode>2): Use that name. Simplify.
8698
8699 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8700
8701 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2): Make this a
8702 parameterized name.
8703 (neg<mode>2): Use that name. Simplify.
8704
8705 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8706
8707 * config/rs6000/rs6000.md (abs<mode>2_hw): Make this a parameterized
8708 name.
8709 (abs<mode>2): Use that name. Simplify.
8710
8711 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8712
8713 * config/rs6000/rs6000.md (neg<mode>2_hw): Make this a parameterized
8714 name.
8715 (neg<mode>2): Use that name. Simplify.
8716
8717 2019-07-01 Uroš Bizjak <ubizjak@gmail.com>
8718
8719 * config/i386/i386.md ("isa" attribute): Add sse_noavx.
8720 ("enabled" attribute): Handle sse_noavx isa attribute.
8721 * config/i386/mmx.md (*vec_dupv2sf): Add "isa" attribute.
8722 Use TARGET_SSE && SSE_REGNO_P in split condition.
8723 (*vec_dupv2sf): Ditto.
8724
8725 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8726
8727 * config/rs6000/rs6000.md (extenddf<mode>2): Make this a parameterized
8728 name.
8729 (floatsi<mode>2): Use that name. Simplify.
8730
8731 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8732
8733 * config/rs6000/rs6000.md (extenddf<mode>2_fprs): Make this a
8734 parameterized name.
8735 (extenddf<mode>2_vsx): Make this a parameterized name.
8736 (extenddf<mode>2): Use those names. Simplify.
8737
8738 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8739
8740 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Make this a parameterized
8741 name.
8742 (eh_return): Use that name. Simplify.
8743
8744 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8745
8746 * config/rs6000/rs6000.md (ctr<mode>): Make this a parameterized name.
8747 (doloop_end): Use that name. Simplify.
8748
8749 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8750
8751 * config/rs6000/rs6000.md (indirect_jump<mode>_nospec): Make this a
8752 parameterized name.
8753 (indirect_jump): Use that name. Simplify.
8754
8755 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8756
8757 * config/rs6000/rs6000.md (abs<mode>2_internal): Make this a
8758 parameterized name.
8759 (abs<mode>2): Use that name. Simplify.
8760
8761 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8762
8763 * config/rs6000/rs6000.md (fix_trunc<mode>si2_fprs): Make this a
8764 parameterized name.
8765 (fix_trunc<mode>si2): Use that name. Simplify.
8766
8767 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8768
8769 * config/rs6000/rs6000.md (neg<mode>2): Make this a parameterized name.
8770 (allocate_stack): Use that name. Simplify.
8771
8772 2019-07-01 Martin Sebor <msebor@redhat.com>
8773
8774 PR middle-end/90923
8775 * hash-map.h (hash_map::put): On insertion invoke element ctor.
8776 (hash_map::get_or_insert): Same. Reformat comment.
8777 * hash-set.h (hash_set::add): On insertion invoke element ctor.
8778 * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): New.
8779 * hash-set-tests.c (test_map_of_type_with_ctor_and_dtor): New.
8780 * hash-table.h (hash_table::operator=): Prevent copy assignment.
8781 (hash_table::hash_table (const hash_table&)): Use copy ctor
8782 instead of assignment to copy elements.
8783
8784 2019-07-01 Wilco Dijkstra <wdijkstr@arm.com>
8785 John David Anglin <danglin@gcc.gnu.org>
8786
8787 PR target/90963
8788 * config/pa/pa.md (builtin_longjmp): Restore hard_frame_pointer_rtx
8789 using saved frame pointer.
8790
8791 2019-07-01 Eric Botcazou <ebotcazou@adacore.com>
8792
8793 PR middle-end/64242
8794 * config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last.
8795 Add frame clobber and schedule blockage.
8796
8797 2019-07-01 Sandra Loosemore <sandra@codesourcery.com>
8798
8799 * doc/invoke.texi (Link Options): Further editorial changes to
8800 -flinker-output docs.
8801
8802 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8803
8804 * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem):
8805 Load both operands of a PLUS into registers separately.
8806
8807 2019-07-01 Andreas Krebbel <krebbel@linux.ibm.com>
8808
8809 * config/s390/vector.md: Fix shift count operand printing.
8810
8811 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
8812
8813 * ira-lives.c (process_bb_node_lives): Use ira_setup_alts.
8814
8815 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
8816
8817 * ira.c (ira_get_dup_out_num): Don't punt for earlyclobbers.
8818 Use recog_data to test for an output operand.
8819
8820 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
8821
8822 * ira.c (ira_setup_alts): If any valid alternatives have zero cost,
8823 exclude any others that are disparaged or that are bound to need
8824 a reload or spill.
8825 (ira_get_dup_out_num): Expand comment.
8826
8827 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
8828
8829 * ira.c (ira_setup_alts): Use preprocess_constraints to get the
8830 constraint string for each operand/alternative combo. Only handle
8831 '%' at the start of constraint strings, and look for it outside
8832 the main loop.
8833
8834 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
8835
8836 * ira-int.h (ira_setup_alts, ira_get_dup_out_num): Use
8837 alternative_mask instead of HARD_REG_SET to represent a
8838 bitmask of alternatives.
8839 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
8840 * ira-conflicts.c (add_insn_allocno_copies): Likewise.
8841
8842 2019-07-01 Martin Liska <mliska@suse.cz>
8843
8844 * edit-context.c (test_applying_fixits_unreadable_file): Do not
8845 use () for a constructor call.
8846 (test_applying_fixits_line_out_of_range): Likewise.
8847 * ggc-page.c (alloc_page): Use (void *) for %p printf format
8848 argument.
8849 (free_page): Likewise.
8850
8851 2019-07-01 Vladislav Ivanishin <vlad@ispras.ru>
8852
8853 * gdbhooks.py (GdbPrettyPrinters.add_printer_for_types): Reorder
8854 parameter names to match usage (no functional change).
8855 (GdbPrettyPrinters.add_printer_for_regex): Ditto.
8856
8857 2019-07-01 Richard Biener <rguenther@suse.de>
8858
8859 * tree-ssa-sccvn.c (class pass_fre): Add may_iterate
8860 pass parameter.
8861 (pass_fre::execute): Honor it.
8862 * passes.def: Adjust pass_fre invocations to allow iterating,
8863 add non-iterating pass_fre before late threading/dom.
8864
8865 2019-07-01 Richard Biener <rguenther@suse.de>
8866
8867 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Adjust
8868 TARGET_MEM_REF handling to also handle address-taken ones.
8869
8870 2019-07-01 Hongtao Liu <hongtao.liu@intel.com>
8871
8872 * doc/sourcebuild.texi (Effective-Target Keywords, Other
8873 hardware attributes): Document avx512vp2intersect.
8874
8875 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
8876
8877 * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
8878 (abs<mode>2): New expander.
8879 * config/i386/i386-builtin.def (__builtin_ia32_pabsb):
8880 Use CODE_FOR_ssse3_absv8qi2.
8881 (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
8882 (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
8883
8884 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
8885
8886 * config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx
8887 to sse, sse_noavx and avx. Update all uses.
8888
8889 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
8890
8891 * config/i386/mmx.md (sse_movntq): Add "isa" attribute.
8892 (*mmx_<plusminus_insn><mode>3): Ditto.
8893 (*mmx_mulv4hi3"): Ditto.
8894 (*mmx_smulv4hi3_highpart): Ditto.
8895 (*mmx_umulv4hi3_highpart): Ditto.
8896 (*mmx_pmaddwd): Ditto.
8897 (*sse2_umulv1siv1di3): Ditto.
8898 (*mmx_<code>v4hi3): Ditto.
8899 (*mmx_<code>v8qi3): Ditto.
8900 (mmx_ashr<mode>3): Ditto.
8901 ("mmx_<shift_insn><mode>3): Ditto.
8902 (*mmx_eq<mode>3): Ditto.
8903 (mmx_gt<mode>3): Ditto.
8904 (mmx_andnot<mode>3): Ditto.
8905 (*mmx_<code><mode>3): Ditto.
8906 (*mmx_pinsrw): Ditto.
8907 (*mmx_pextrw): Ditto.
8908 (mmx_pshufw_1): Ditto.
8909 (*mmx_uavgv8qi3): Ditto.
8910 (*mmx_uavgv4hi3): Ditto.
8911 ("mmx_psadbw): Ditto.
8912 * config/i386/sse.md (sse_cvtps2pi): Ditto.
8913 (sse_cvttps2pi): Ditto.
8914 (ssse3_pmaddubsw): Ditto.
8915 (*ssse3_pmulhrswv4hi3): Ditto.
8916 (ssse3_psign<mode>3): Ditto.
8917
8918 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
8919
8920 * expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian
8921 adjustment for bit-fields to all aggregate types.
8922
8923 2019-06-28 Michael Meissner <meissner@linux.ibm.com>
8924
8925 * config/rs6000/predicates.md (pcrel_address): Use
8926 SYMBOL_REF_LOCAL_P to determine if a label is local.
8927 (pcrel_external_address): New predicate.
8928 (non_prefixed_mem_operand): Delete, predicate not used.
8929 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use
8930 SYMBOL_REF_LOCAL_P to determine if we can use pc-relative
8931 addressing.
8932 (SYMBOL_REF_PCREL_P): Likewise.
8933
8934 PR target/91009
8935 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX
8936 alternative.
8937 (floatsi<mode>2_lfiwax_mem): Add non-VSX alternative.
8938 (floatunssi<mode>2_lfiwzx): Add non-VSX alternative.
8939 (floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative.
8940
8941 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
8942
8943 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
8944 override on extra_headers.
8945
8946 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
8947
8948 * config/darwin-c.c (pop_field_alignment): Quote #pragma options.
8949 * config/darwin-driver.c (darwin_default_min_version): Remove newline
8950 from warning.
8951 (darwin_driver_init): Likewise.
8952
8953 2019-06-28 Jan Beulich <jbeulich@suse.com>
8954
8955 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
8956 vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>):
8957 Eliminate redundant alternative.
8958
8959 2019-06-28 Jan Beulich <jbeulich@suse.com>
8960
8961 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
8962 vgf2p8affineqb_<mode><mask_name>): Drop % constraint modifier.
8963 Use vector_operand.
8964
8965 2019-06-28 Claudiu Zissulescu <claziss@synopsys.com>
8966
8967 * config/arc/arc.c (arc_rtx_costs): All short instructions are
8968 having a lower cost regardless of the speed option.
8969
8970 2019-06-28 Jan Beulich <jbeulich@suse.com>
8971
8972 * config/i386/sse.md (sse2_cvtpd2pi, sse2_cvttpd2pi): Use
8973 vector_operand plus, on both alternatives, "Bm" constraint.
8974
8975 2019-06-28 Dennis Zhang <dennis.zhang@arm.com>
8976
8977 * config/arm/arm.md: Remove redundant constraints from
8978 define_expand but leave reload_inm and reload_outm patterns
8979 untouched since they need special constraints to work.
8980 * config/arm/arm-fixed.md: Remove redundant constraints from
8981 define_expand.
8982 * config/arm/iwmmxt.md: Likewise.
8983 * config/arm/neon.md: Likewise.
8984 * config/arm/sync.md: Likewise.
8985 * config/arm/thumb1.md: Likewise.
8986 * config/arm/vec-common.md: Likewise.
8987
8988 2019-06-27 Ilia Diachkov <ilia.diachkov@optimitech.com>
8989
8990 * doc/install.texi: Document --disable-tm-clone-registry.
8991
8992 2019-06-27 Jakub Jelinek <jakub@redhat.com>
8993
8994 PR c++/91024
8995 * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT
8996 statements.
8997
8998 PR tree-optimization/91010
8999 * tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2,
9000 return true. Otherwise, don't call operand_equal_p if offset1 or
9001 offset2 is NULL and just return false.
9002
9003 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
9004
9005 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
9006 user-specified float mode choice for kernel mode code.
9007
9008 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
9009
9010 * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
9011 spec.
9012
9013 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
9014
9015 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
9016 use longcall for 64b code.
9017
9018 2019-06-27 Aaron Sawdey <acsawdey@linux.ibm.com>
9019
9020 * builtins.c (get_memory_rtx): Fix comment.
9021 * optabs.def (movmem_optab): Change to cpymem_optab.
9022 * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem.
9023 (emit_block_move_hints): Change movmem to cpymem.
9024 * defaults.h: Change movmem to cpymem.
9025 * targhooks.c (get_move_ratio): Change movmem to cpymem.
9026 (default_use_by_pieces_infrastructure_p): Ditto.
9027 * config/aarch64/aarch64-protos.h: Change movmem to cpymem.
9028 * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem
9029 to cpymem.
9030 * config/aarch64/aarch64.h: Change movmem to cpymem.
9031 * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi.
9032 * config/alpha/alpha.h: Change movmem to cpymem in comment.
9033 * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change
9034 movmem to cpymem.
9035 * config/arc/arc-protos.h: Change movmem to cpymem.
9036 * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem.
9037 * config/arc/arc.h: Change movmem to cpymem in comment.
9038 * config/arc/arc.md (movmemsi): Change movmem to cpymem.
9039 * config/arm/arm-protos.h: Change movmem to cpymem in names.
9040 * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi,
9041 gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem.
9042 * config/arm/arm.md (movmemqi): Change movmem to cpymem.
9043 * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem.
9044 * config/avr/avr-protos.h: Change movmem to cpymem.
9045 * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi,
9046 avr_out_movmem): Change movmem to cpymem.
9047 * config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>):
9048 Change movmem to cpymem.
9049 * config/bfin/bfin-protos.h: Change movmem to cpymem.
9050 * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem):
9051 Change movmem to cpymem.
9052 * config/bfin/bfin.h: Change movmem to cpymem in comment.
9053 * config/bfin/bfin.md (movmemsi): Change name to cpymemsi.
9054 * config/c6x/c6x-protos.h: Change movmem to cpymem.
9055 * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem.
9056 * config/c6x/c6x.md (movmemsi): Change name to cpymemsi.
9057 * config/frv/frv.md (movmemsi): Change name to cpymemsi.
9058 * config/ft32/ft32.md (movmemsi): Change name to cpymemsi.
9059 * config/h8300/h8300.md (movmemsi): Change name to cpymemsi.
9060 * config/i386/i386-expand.c (expand_set_or_movmem_via_loop,
9061 expand_set_or_movmem_via_rep, expand_movmem_epilogue,
9062 expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue,
9063 expand_small_cpymem_or_setmem,
9064 expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves,
9065 expand_set_or_cpymem_constant_prologue,
9066 ix86_expand_set_or_cpymem): Change movmem to cpymem.
9067 * config/i386/i386-protos.h: Change movmem to cpymem.
9068 * config/i386/i386.h: Change movmem to cpymem in comment.
9069 * config/i386/i386.md (movmem<mode>): Change name to cpymem.
9070 (setmem<mode>): Change expansion function name.
9071 * config/lm32/lm32.md (movmemsi): Change name to cpymemsi.
9072 * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op,
9073 movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem.
9074 * config/m32c/m32c-protos.h: Change movmem to cpymem.
9075 * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem.
9076 * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem.
9077 * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem
9078 to cpymem.
9079 * config/mcore/mcore.md (movmemsi): Change name to cpymemsi.
9080 * config/microblaze/microblaze.c: Change movmem to cpymem in comment.
9081 * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi.
9082 * config/mips/mips.c (mips_use_by_pieces_infrastructure_p):
9083 Change movmem to cpymem.
9084 * config/mips/mips.h: Change movmem to cpymem.
9085 * config/mips/mips.md (movmemsi): Change name to cpymemsi.
9086 * config/nds32/nds32-memory-manipulation.c
9087 (nds32_expand_movmemsi_loop_unknown_size,
9088 nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop,
9089 nds32_expand_movmemsi_unroll,
9090 nds32_expand_movmemsi): Change movmem to cpymem.
9091 * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi.
9092 * config/nds32/nds32-protos.h: Change movmem to cpymem.
9093 * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem.
9094 (pa_adjust_insn_length): Change call to compute_movmem_length.
9095 * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload,
9096 movmemdi, movmemdi_prereload,
9097 movmemdi_postreload): Change movmem to cpymem.
9098 * config/pdp11/pdp11.md (movmemhi, movmemhi1,
9099 movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem.
9100 * config/riscv/riscv.c: Change movmem to cpymem in comment.
9101 * config/riscv/riscv.h: Change movmem to cpymem.
9102 * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi.
9103 * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi.
9104 * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change
9105 movmem to cpymem.
9106 * config/s390/s390-protos.h: Change movmem to cpymem.
9107 * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem,
9108 s390_expand_insv): Change movmem to cpymem.
9109 * config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short,
9110 movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem.
9111 * config/sh/sh.md (movmemsi): Change name to cpymemsi.
9112 * config/sparc/sparc.h: Change movmem to cpymem in comment.
9113 * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype
9114 for nonexistent function.
9115 * config/vax/vax.h: Change movmem to cpymem in comment.
9116 * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem.
9117 * config/visium/visium.h: Change movmem to cpymem in comment.
9118 * config/visium/visium.md (movmemsi): Change name to cpymemsi.
9119 * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi.
9120 * doc/md.texi: Change movmem to cpymem and update description to match.
9121 * doc/rtl.texi: Change movmem to cpymem.
9122 * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem.
9123 * doc/tm.texi: Regenerate.
9124
9125 2019-06-27 Bill Schmidt <wschmidt@linux.ibm.com>
9126
9127 * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
9128 -fvariable-expansion-in-unroller by default.
9129 * doc/invoke.texi (-fvariable-expansion-in-unroller): Document new
9130 default for Power.
9131
9132 2019-06-27 David Edelsohn <dje.gcc@gmail.com>
9133
9134 Revert
9135 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
9136 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
9137
9138 * config.gcc(rs6000-*-*): Define target_gtfiles.
9139
9140 2019-06-27 Jan Hubicka <jh@suse.cz>
9141
9142 * ipa-devirt.c (odr_type_d): Add tbaa_enabled flag.
9143 (add_type_duplicate): When odr hash is not allocated, to nothing.
9144 (odr_based_tbaa_p): New function.
9145 (set_type_canonical_for_odr_type): New function.
9146 * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p,
9147 set_type_canonical_for_odr_type): New.
9148 * tree.c (gimple_canonical_types_compatible_p): ODR types with
9149 ODR based TBAA are not equivalent to non-ODR types.
9150
9151 2019-06-27 Martin Liska <mliska@suse.cz>
9152
9153 PR tree-optimization/90974
9154 PR rtl-optimization/90975
9155 PR rtl-optimization/90976
9156 PR target/91016
9157 PR tree-optimization/91017
9158 * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove
9159 unused tmp.
9160 * lra.c (lra_set_insn_recog_data): Remove a leftover from
9161 initial commit of IRA.
9162 * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead
9163 of op0 and op1.
9164 * tree-vect-loop.c (vect_create_epilog_for_reduction):
9165 Remove unused mode1.
9166 * tree-vect-stmts.c (vectorizable_call): Remove dead assignment
9167 to new_stmt_info.
9168
9169 2019-06-27 Jakub Jelinek <jakub@redhat.com>
9170
9171 PR target/90991
9172 * config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand
9173 instead of register_operand for operands[1], add m to its constraints
9174 if operands[2] uses "C" constraint. Ensure in condition that if
9175 operands[2] is not 0, then operands[1] is not a MEM. For last two
9176 alternatives, use unaligned loads instead of aligned if operands[1] is
9177 misaligned_operand.
9178
9179 2019-06-27 Martin Liska <mliska@suse.cz>
9180
9181 * asan.c (asan_emit_allocas_unpoison): Remove obviously
9182 dead assignments.
9183 * bt-load.c (move_btr_def): Likewise.
9184 * builtins.c (expand_builtin_apply_args_1): Likewise.
9185 (expand_builtin_apply): Likewise.
9186 * cfgexpand.c (expand_asm_stmt): Likewise.
9187 (construct_init_block): Likewise.
9188 * cfghooks.c (verify_flow_info): Likewise.
9189 * cfgloopmanip.c (remove_path): Likewise.
9190 * cfgrtl.c (rtl_verify_bb_layout): Likewise.
9191 * cgraph.c (cgraph_node::set_pure_flag): Likewise.
9192 * combine.c (simplify_if_then_else): Likewise.
9193 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
9194 (choose_basereg): Likewise.
9195 (ix86_expand_prologue): Likewise.
9196 (ix86_preferred_output_reload_class): Likewise.
9197 * cselib.c (cselib_record_sets): Likewise.
9198 * df-scan.c (df_scan_alloc): Likewise.
9199 * dojump.c (do_jump_by_parts_greater_rtx): Likewise.
9200 * early-remat.c (early_remat::record_equiv_candidates): Likewise.
9201 * emit-rtl.c (try_split): Likewise.
9202 * graphite-scop-detection.c (assign_parameter_index_in_region):
9203 Likewise.
9204 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
9205 * ira-color.c (setup_profitable_hard_regs): Likewise.
9206 * ira.c (rtx_moveable_p): Likewise.
9207 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
9208 * read-rtl.c (read_subst_mapping): Likewise.
9209 * regrename.c (scan_rtx): Likewise.
9210 * reorg.c (fill_slots_from_thread): Likewise.
9211 * tree-inline.c (tree_function_versioning): Likewise.
9212 * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
9213 * tree-ssa-sink.c (statement_sink_location): Likewise.
9214 * tree-ssa-threadedge.c (thread_across_edge): Likewise.
9215 * tree-vect-loop.c (vect_get_loop_niters): Likewise.
9216 (vect_create_epilog_for_reduction): Likewise.
9217 * tree.c (build_nonstandard_integer_type): Likewise.
9218
9219 2019-06-27 Richard Biener <rguenther@suse.de>
9220
9221 * tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS.
9222
9223 2019-06-27 Jun Ma <JunMa@linux.alibaba.com>
9224
9225 PR tree-optimization/89772
9226 * gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in
9227 out-of-bound accesses checking.
9228
9229 2019-06-27 Martin Liska <mliska@suse.cz>
9230
9231 PR tree-optimization/91014
9232 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out
9233 when LHS is NULL_TREE.
9234
9235 2019-06-27 Martin Liska <mliska@suse.cz>
9236
9237 * symbol-summary.h (traverse): Pass
9238 argument a to the call of callback.
9239 (gt_ggc_mx): Mark arguments as unused.
9240 (gt_pch_nx): Likewise.
9241
9242 2019-06-27 Kewen Lin <linkw@gcc.gnu.org>
9243
9244 PR target/62147
9245 * loop-iv.c (find_simple_exit): Call finite_loop_p to update
9246 finiteness.
9247
9248 2019-06-26 Jeff Law <law@redhat.com>
9249
9250 PR tree-optimization/90883
9251 * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature.
9252 (delete_dead_or_redundant_assignment): Likewise.
9253
9254 PR tree-optimization/90883
9255 * tree-ssa-alias.c (stmt_kills_ref_p): Handle BUILT_IN_CALLOC.
9256 * tree-ssa-dse.c: Update various comments to distinguish between
9257 dead and redundant stores.
9258 (initialize_ao_ref_for_dse): Handle BUILT_IN_CALLOC.
9259 (dse_optimize_redundant_stores): New function.
9260 (delete_dead_or_redundant_call): Renamed from delete_dead_call.
9261 Distinguish between dead and redundant calls in dump output. All
9262 callers updated.
9263 (delete_dead_or_redundant_assignment): Similarly for assignments.
9264 (dse_optimize_stmt): Handle _CHK variants. For statements which
9265 store 0 into multiple memory locations, try to prove a subsequent
9266 store is redundant.
9267
9268 2019-06-26 Uroš Bizjak <ubizjak@gmail.com>
9269
9270 PR target/89021
9271 * config/i386/i386.c (ix86_autovectorize_vector_sizes):
9272 Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE.
9273
9274 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
9275
9276 * config/rs6000/rs6000-internal.h (branch_island): New typedef.
9277 (branch_islands): New extern.
9278 * config/rs6000/rs6000-logue.c (macho_branch_islands): Moved from
9279 * config/rs6000/rs6000.c: .. here.
9280
9281 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
9282
9283 * config.gcc (powerpc*-*-linux*): Move target_gtfiles from here..
9284 (powerpc*-*-*) ... to here.
9285
9286 2019-06-26 Jeff Law <law@redhat.com>
9287
9288 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of
9289 memcpy, memmove and memset builtins.
9290 (maybe_trim_memstar_call): Likewise.
9291
9292 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
9293
9294 * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL.
9295
9296 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
9297
9298 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
9299
9300 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
9301
9302 * config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New
9303 declaration.
9304 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove
9305 "static".
9306 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Delete
9307 declaration.
9308
9309 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
9310
9311 * config/rs6000/rs6000.c: Fix previous commit, it missed some changes.
9312
9313 2019-06-26 Richard Biener <rguenther@suse.de>
9314
9315 PR ipa/90982
9316 * tree-inline.c (remap_ssa_name): Copy SSA range info.
9317
9318 2019-06-26 Richard Biener <rguenther@suse.de>
9319
9320 * lto-streamer.h (lto_bitmap_alloc): Remove.
9321 (lto_bitmap_free): Likewise.
9322 * lto-streamer.c (lto_bitmap_alloc): Remove.
9323 (lto_bitmap_free): Likewise.
9324 (lto_obstack): Likewise.
9325 (lto_obstack_initialized): Likewise.
9326 * lto-streamer-out.c (lto_output): Use own obstack for local
9327 bitmap, free it consistently.
9328
9329 2019-06-26 Jakub Jelinek <jakub@redhat.com>
9330
9331 PR target/90991
9332 * config/i386/sse.md
9333 (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd,
9334 vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned
9335 insns if operands[2] is misaligned_operand.
9336
9337 2019-06-26 Li Jia He <helijia@linux.ibm.com>
9338
9339 * config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of
9340 TARGET_POWERPC64.
9341 * config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI
9342 to GPR.
9343
9344 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
9345
9346 * doc/invoke.texi (Warning Options): Fix some @opindex syntax.
9347
9348 2019-06-26 Martin Liska <mliska@suse.cz>
9349
9350 PR tree-optimization/90973
9351 * tree-vect-loop.c (vect_get_known_peeling_cost): Use
9352 epilogue_cost_vec instead of prologue_cost_vec for
9353 a epilogue cost.
9354
9355 2019-06-26 Martin Liska <mliska@suse.cz>
9356
9357 * bb-reorder.c (connect_better_edge_p): Add missing else
9358 statement in the middle of if-else statements.
9359
9360 2019-06-25 Hongtao Liu <hongtao.liu@intel.com>
9361 H.J. Lu <hongjiu.lu@intel.com>
9362 Olga Makhotina <olga.makhotina@intel.com>
9363
9364 * common/config/i386/i386-common.c
9365 (OPTION_MASK_ISA_AVX512VP2INTERSECT_SET,
9366 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET): New macros.
9367 (OPTION_MASK_ISA2_AVX512F_UNSET): Add
9368 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET.
9369 (ix86_handle_option): Handle -mavx512vp2intersect.
9370 * config/i386/avx512vp2intersectintrin.h: New.
9371 * config/i386/avx512vp2intersectvlintrin.h: New.
9372 * config/i386/cpuid.h (bit_AVX512VP2INTERSECT): New.
9373 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
9374 AVX512VP2INTERSECT.
9375 * config/i386/i386-builtin-types.def: Add new types.
9376 * config/i386/i386-builtin.def: Add new builtins.
9377 * config/i386/i386-builtins.c: (enum processor_features): Add
9378 F_AVX512VP2INTERSECT.
9379 (static const _isa_names_table isa_names_table): Ditto.
9380 * config/i386/i386-c.c (ix86_target_macros_internal): Define
9381 __AVX512VP2INTERSECT__.
9382 * config/i386/i386-expand.c (ix86_expand_builtin): Expand
9383 IX86_BUILTIN_2INTERSECTD512, IX86_BUILTIN_2INTERSECTQ512,
9384 IX86_BUILTIN_2INTERSECTD256, IX86_BUILTIN_2INTERSECTQ256,
9385 IX86_BUILTIN_2INTERSECTD128, IX86_BUILTIN_2INTERSECTQ128.
9386 * config/i386/i386-modes.def (P2QI, P2HI): New modes.
9387 * config/i386/i386-options.c (ix86_target_string): Add
9388 -mavx512vp2intersect.
9389 (ix86_option_override_internal): Handle AVX512VP2INTERSECT.
9390 * config/i386/i386.c (ix86_hard_regno_nregs): Allocate two regs for
9391 P2HImode and P2QImode.
9392 (ix86_hard_regno_mode_ok): Register pair only starts at even hardreg
9393 number for P2QImode and P2HImode.
9394 (ix86_regmode_natural_size): New function.
9395 * config/i386/i386.h (TARGET_AVX512VP2INTERSECT,
9396 TARGET_AVX512VP2INTERSECT_P, PTA_AVX512VP2INTERSECT
9397 REGMODE_NATURAL_SIZE, MASK_PAIR_REGNO_P): New.
9398 * config/i386/i386-protos.h (ix86_regmode_natural_size): Declare
9399 * config/i386/i386.opt: Add -mavx512vp2intersect.
9400 * config/i386/immintrin.h: Include avx512vp2intersectintrin.h and
9401 avx512vp2intersectvlintrin.h.
9402 * config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_VP2INTERSECT.
9403 (define_mode_iterator VI48_AVX512VP2VL): New.
9404 (avx512vp2intersect_2intersect<mode>,
9405 avx512vp2intersect_2intersectv16si): New define_insn patterns.
9406 * config.gcc: Add avx512vp2intersectvlintrin.h and
9407 avx512vp2intersectintrin.h to extra_headers.
9408 * doc/invoke.texi: Document -mavx512vp2intersect.
9409
9410 2019-06-25 Iain Sandoe <iain@sandoe.co.uk>
9411
9412 * config/rs6000/darwin.h (ENDFILE_SPEC): New.
9413
9414 2019-06-25 Bill Seurer <seurer@linux.vnet.ibm.com>
9415
9416 * config/rs6000/rs6000.c (stack_info, rs6000_pic_labelno,
9417 savres_routine_syms, savres_routine_name, morestack_ref,
9418 rs6000_init_machine_status, save_reg_p, first_reg_to_save,
9419 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
9420 compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
9421 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
9422 rs6000_return_addr, rs6000_decl_ok_for_sibcall,
9423 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
9424 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
9425 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
9426 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
9427 get_stack_clash_protection_probe_interval,
9428 get_stack_clash_protection_guard_size,
9429 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
9430 rs6000_emit_probe_stack_range, output_probe_stack_range_1,
9431 interesting_frame_related_regno, output_probe_stack_range_stack_clash,
9432 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
9433 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
9434 gen_frame_mem_offset, rs6000_savres_routine_name,
9435 rs6000_savres_routine_sym, rs6000_emit_stack_reset,
9436 ptr_regno_for_savres, rs6000_emit_savres_rtx,
9437 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
9438 rs6000_global_entry_point_prologue_needed_p,
9439 rs6000_get_separate_components, rs6000_components_for_bb,
9440 rs6000_disqualify_components, rs6000_emit_prologue_components,
9441 rs6000_emit_epilogue_components, rs6000_set_handled_components,
9442 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
9443 rs6000_output_savres_externs, rs6000_output_function_prologue,
9444 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
9445 load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
9446 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
9447 rs6000_output_function_epilogue, gen_add3_const,
9448 rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
9449 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
9450 to rs6000-logue.c.
9451 (machine_function): Moved to rs6000.h.
9452 (rs6000_stack_t, ALTIVEC_REG_BIT, quad_address_offset_p) Moved to
9453 rs6000-internal.h.
9454 * config/rs6000/rs6000-logue.c(stack_info, rs6000_pic_labelno,
9455 savres_routine_syms, savres_routine_name, morestack_ref,
9456 rs6000_init_machine_status, save_reg_p, first_reg_to_save,
9457 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
9458 compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
9459 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
9460 rs6000_return_addr, rs6000_decl_ok_for_sibcall,
9461 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
9462 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
9463 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
9464 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
9465 get_stack_clash_protection_probe_interval,
9466 get_stack_clash_protection_guard_size,
9467 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
9468 rs6000_emit_probe_stack_range, output_probe_stack_range_1,
9469 interesting_frame_related_regno, output_probe_stack_range_stack_clash,
9470 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
9471 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
9472 gen_frame_mem_offset, rs6000_savres_routine_name,
9473 rs6000_savres_routine_sym, rs6000_emit_stack_reset,
9474 ptr_regno_for_savres, rs6000_emit_savres_rtx,
9475 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
9476 rs6000_global_entry_point_prologue_needed_p,
9477 rs6000_get_separate_components, rs6000_components_for_bb,
9478 rs6000_disqualify_components, rs6000_emit_prologue_components,
9479 rs6000_emit_epilogue_components, rs6000_set_handled_components,
9480 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
9481 rs6000_output_savres_externs, rs6000_output_function_prologue,
9482 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
9483 load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
9484 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
9485 rs6000_output_function_epilogue, gen_add3_const,
9486 rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
9487 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
9488 to here from rs6000.c.
9489 * config/rs6000/rs6000.h (machine_function): Moved to here from rs6000.c.
9490 * config/rs6000/rs6000-internal.h: (rs6000_stack_t, ALTIVEC_REG_BIT,
9491 quad_address_offset_p) Moved to here from rs6000.c.
9492 * config/rs6000/t-rs6000: Add new source file rs6000-logue.c.
9493 * config/config.gcc: Add new source file rs6000-logue.c to garbage
9494 collector.
9495
9496 2019-06-25 Martin Liska <mliska@suse.cz>
9497
9498 * hash-table.c (hashtab_chk_error): Move here from ...
9499 * hash-table.h (hashtab_chk_error): ... here.
9500
9501 2019-06-25 Martin Liska <mliska@suse.cz>
9502
9503 PR tree-optimization/90978
9504 * df-scan.c (df_update_entry_block_defs): Remove dead else
9505 branch.
9506 (df_update_exit_block_uses): Likewise.
9507
9508 2019-06-25 Kwok Cheung Yeung <kcy@codesourcery.com>
9509 Andrew Stubbs <ams@codesourcery.com>
9510
9511 * config.gcc (thread_file): Set to gcn for AMD GCN.
9512 * config/gcn/gcn.c (gcn_emutls_var_init): New function.
9513 (TARGET_EMUTLS_VAR_INIT): New hook.
9514
9515 2019-06-25 Martin Jambor <mjambor@suse.cz>
9516
9517 PR ipa/90939
9518 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
9519
9520 2019-06-25 Richard Biener <rguenther@suse.de>
9521
9522 PR tree-optimization/90930
9523 * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression
9524 into parallel form in the last pass instance.
9525
9526 2019-06-25 Claudiu Zissulescu <claziss@synopsys.com>
9527
9528 * config/arc/arc.c (arc_symbol_binds_local_p): New function.
9529 (arc_legitimize_pic_address): Simplify and cleanup the function.
9530 (SYMBOLIC_CONST): Remove.
9531 (prepare_pic_move): Likewise.
9532 (prepare_move_operands): Handle complex mov cases here.
9533 (arc_legitimize_address_0): Remove call to
9534 arc_legitimize_pic_address.
9535 (arc_legitimize_address): Remove call to
9536 arc_legitimize_tls_address.
9537 * config/arc/arc.md (movqi_insn): Allow Cm3 match.
9538 (movhi_insn): Likewise.
9539
9540 2019-06-25 Jozef Lawrynowicz <jozef.l@mittosystems.com>
9541
9542 * config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and
9543 PTRDIFF_TYPE.
9544 * gimple-ssa-sprintf.c (build_intmax_type_nodes): Accept "__intN__"
9545 format of "__intN" types for UINTMAX_TYPE.
9546 * stor-layout.c (initialize_sizetypes): Accept "__intN__"
9547 format of "__intN" types for SIZETYPE.
9548 * tree.c (build_common_tree_nodes): Accept "__intN__"
9549 format of "__intN" types for SIZE_TYPE and PTRDIFF_TYPE.
9550 * doc/invoke.texi: Document that __intN__ disables pedantic
9551 warnings.
9552
9553 2019-06-25 Jan Hubicka <jh@suse.cz>
9554
9555 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that
9556 base2_alias_set is non-zero before doing TBAA based disambiguation.
9557
9558 2019-06-25 Martin Liska <mliska@suse.cz>
9559
9560 PR tree-optimization/90973
9561 * tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval
9562 of prologue and epilogue.
9563
9564 2019-06-24 Jan Hubicka <jh@suse.cz>
9565
9566 * ipa-utils.h (type_with_linkage_p): Verify that type is
9567 CXX_ODR_P.
9568 (odr_type_p): Remove extra return.
9569 * lto-streamer-out.c (hash_tree): Hash TYPE_CXX_ODR_P;
9570 hash STRING_FLAG only for arrays and integers.
9571 * tree-stremaer-in.c (unpack_ts_type_common_value_fields):
9572 Update analogously.
9573 * tree-streamer-out.c (pack_ts_type_common_value_fields):
9574 Likewise.
9575 * print-tree.c (print_node): Print cxx-odr-p
9576 and string-flag.
9577 * tree.c (need_assembler_name_p): Also check that type
9578 is CXX_ODR_TYPE_P
9579 (verify_type_variant): Update verification of SRING_FLAG;
9580 also check CXX_ODR_P.
9581 * tree.h (ARRAY_OR_INTEGER_TYPE_CHECK): New macro.
9582 (TYPE_STRING_FLAG): Use it.
9583 (TYPE_CXX_ODR_P): New macro.
9584 * dwarf2out.c (gen_array_type_die): First check that type
9585 is an array and then test string flag.
9586
9587 2019-06-24 Richard Biener <rguenther@suse.de>
9588
9589 PR tree-optimization/90972
9590 * tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P
9591 in common code, dealing with STRING_CST properly.
9592
9593 2019-06-24 Richard Biener <rguenther@suse.de>
9594
9595 PR tree-optimization/90930
9596 PR tree-optimization/90316
9597 * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing
9598 decrement of limit.
9599
9600 2019-06-24 Martin Sebor <msebor@redhat.com>
9601
9602 * tree-pretty-print.h: Remove unnecessary punctuation characters
9603 from a diagnostic.
9604 * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional.
9605
9606 2019-06-24 Jonathan Wakely <jwakely@redhat.com>
9607
9608 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG)
9609 (FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN)
9610 (DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17.
9611
9612 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
9613
9614 * config/rs6000/darwin.h: Handle GCC target pragma.
9615
9616 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
9617
9618 * config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
9619
9620 2019-06-22 Jeff Law <law@redhat.com>
9621
9622 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
9623
9624 2019-06-22 Jan Hubicka <jh@suse.cz>
9625
9626 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not
9627 give up on bitfields; continue searching for different refs
9628 appearing later.
9629
9630 2019-06-21 Jakub Jelinek <jakub@redhat.com>
9631
9632 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
9633 even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR
9634 containing the offset as possible simd lane access. Look through
9635 widening conversion. Move the
9636 TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent.
9637
9638 2019-06-21 Richard Biener <rguenther@suse.de>
9639
9640 PR tree-optimization/90930
9641 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
9642 flag on new stmts to avoid re-processing them.
9643
9644 2019-06-21 Matthew Beliveau <mbelivea@redhat.com>
9645
9646 PR c++/90875 - added -Wswitch-outside-range option
9647 * doc/invoke.texi (Wswitch-outside-range): Document.
9648
9649 2019-06-21 Jeff Law <law@redhat.com>
9650
9651 PR tree-optimization/90949
9652 * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
9653 * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
9654
9655 2019-06-21 Richard Biener <rguenther@suse.de>
9656
9657 PR debug/90914
9658 * dwarf2out.c (prune_unused_types_walk): Always consider
9659 function-local extern declarations as used.
9660
9661 2019-06-21 Richard Biener <rguenther@suse.de>
9662
9663 PR tree-optimization/90913
9664 * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use
9665 the scalar variant of if-conversion versioning.
9666
9667 2019-06-21 Jakub Jelinek <jakub@redhat.com>
9668
9669 * omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument,
9670 create another "omp scan inscan exclusive" array if
9671 !ctx->scan_inclusive.
9672 (lower_rec_input_clauses): Handle exclusive scan inscan reductions.
9673 (lower_omp_scan): Likewise.
9674 * tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of
9675 2-bit bitfield for simd_lane_access_p member.
9676 * tree-vect-data-refs.c (vect_analyze_data_refs): Also handle
9677 aux == (void *)-4 as simd lane access.
9678 * tree-vect-stmts.c (check_scan_store): Handle exclusive scan. Update
9679 comment with permutations to show the canonical permutation order.
9680 (vectorizable_scan_store): Handle exclusive scan.
9681 (vectorizable_store): Call vectorizable_scan_store even for
9682 STMT_VINFO_SIMD_LANE_ACCESS_P > 3.
9683
9684 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
9685 "omp simd array" arrays with one byte elements.
9686
9687 2019-06-20 Uroš Bizjak <ubizjak@gmail.com>
9688
9689 * config/alpha/alpha.md (@unaligned_store<mode>):
9690 Rename from unaligned_store<mode>.
9691 (@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned.
9692 * config/alpha/sync.md (@load_locked_<mode>): Rename
9693 from load_locked_<mode>.
9694 (@store_conditional_<mode>): Rename from store_conditional_<mode>.
9695 (@atomic_compare_and_swap<mode>_1): Rename
9696 from atomic_compare_and_swap<mode>_1.
9697 (@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1.
9698 * config/alpha/alpha.c (alpha_expand_mov_nobwx):
9699 Use gen_reload_in_aligned and gen_unaligned_store.
9700 (emit_load_locked): Remove.
9701 (emit_store_conditional): Ditto.
9702 (alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional.
9703 (alpha_split_compare_and_swap): Ditto.
9704 (alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1.
9705 (alpha_split_compare_and_swap_12): Use gen_load_locked
9706 and gen_store_conditional.
9707 (alpha_split_atomic_exchange): Ditto.
9708 (alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1.
9709 (alpha_split_atomic_exchange_12): Use gen_load_locked
9710 and gen_store_conditional.
9711
9712 2019-06-20 Richard Earnshaw <rearnsha@arm.com>
9713
9714 * config/aarch64/aarch64-errata.h: New file.
9715 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete.
9716 (CA53_ERR_843419_SPEC): Delete.
9717 (LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above.
9718 * config/aarch64/aarch64-linux.h: Likewise.
9719 * config/aarch64/aarch64-netbsd.h: Likewise.
9720 * config/aarch64/aarch64-freebsd.h: Likewise.
9721
9722 2019-06-20 Marek Polacek <polacek@redhat.com>
9723
9724 * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name.
9725
9726 2019-06-20 Michael Meissner <meissner@linux.ibm.com>
9727
9728 * config/rs6000/rs6000.md (isa attribute): Add support for
9729 for a future processor.
9730
9731 2019-06-20 H.J. Lu <hongjiu.lu@intel.com>
9732
9733 PR target/54855
9734 * config/i386/i386-expand.c (ix86_expand_vector_set): Generate
9735 standard scalar operation pattern for V2DF.
9736 * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New.
9737 (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise.
9738 (*ieee_<ieee_maxmin><mode>3): Likewise.
9739 (vec_setv2df_0): Likewise.
9740
9741 2019-06-20 Jan Hubicka <jh@suse.cz>
9742
9743 * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl
9744 parameter; it has no use in gimple memory model.
9745 (indirect_ref_may_alias_decl_p): Update.
9746
9747 2019-06-20 Martin Liska <mliska@suse.cz>
9748
9749 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease
9750 to 10.
9751
9752 2019-06-20 Jakub Jelinek <jakub@redhat.com>
9753
9754 * tree-vect-stmts.c (enum scan_store_kind): New type.
9755 (scan_store_can_perm_p): Change last argument from int * to
9756 vec<enum scan_store_kind> *, record precisely which permutations
9757 need whole vector left shift or that plus VEC_COND_EXPR.
9758 (vectorizable_scan_store): Adjust caller, use whole vector left shift
9759 and additional VEC_COND_EXPR only for those iterations that need it.
9760
9761 2019-06-20 Alexandre Oliva <oliva@adacore.com>
9762
9763 * config.gcc: Fix ARM --with-fpu checking and error message.
9764
9765 2019-06-19 Marek Polacek <polacek@redhat.com>
9766
9767 PR c++/60364 - noreturn after first decl not diagnosed.
9768 * attribs.c (get_attribute_namespace): No longer static.
9769 (decl_attributes): Avoid shadowing. Preserve the C++11 form for C++11
9770 attributes.
9771 (attr_noreturn_exclusions): Make it extern.
9772 * attribs.h (get_attribute_namespace): Declare.
9773 * tree-inline.c (function_attribute_inlinable_p): Use
9774 get_attribute_name.
9775
9776 2019-06-19 Martin Sebor <msebor@redhat.com>
9777
9778 PR tree-optimization/90626
9779 * tree-ssa-strlen.c (strxcmp_unequal): Fix typos.
9780
9781 PR tree-optimization/90626
9782 * tree-ssa-strlen.c (strxcmp_unequal): New function.
9783 (handle_builtin_string_cmp): Call it.
9784
9785 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
9786
9787 * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
9788 and DARWIN_NOPIE_SPEC.
9789 (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
9790 (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
9791 (DARWIN_NOPIE_SPEC): Collate from darwin10.h.
9792 (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
9793 (DARWIN_EXPORT_DYNAMIC): Delete.
9794 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
9795 and pie options processing to darwin.h.
9796 * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
9797
9798 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
9799
9800 * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
9801 in computing the number of options to be moved.
9802
9803 2019-06-19 Maya Rashish <coypu@sdf.org>
9804
9805 * config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition.
9806 (CLEAR_INSN_CACHE) Use it.
9807
9808 2019-06-19 Uroš Bizjak <ubizjak@gmail.com>
9809
9810 * config/i386/i386.md (cmpstrnsi): Remove dead code.
9811
9812 2019-06-19 Wilco Dijkstra <wdijkstr@arm.com>
9813
9814 PR middle-end/84521
9815 * builtins.c (expand_builtin_setjmp_setup): Save
9816 hard_frame_pointer_rtx.
9817 (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we
9818 restore fp.
9819 * function.c (expand_function_start): Save hard_frame_pointer_rtx for
9820 non-local goto.
9821 * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp
9822 elimination code.
9823 (remove_reg_equal_offset_note): Remove unused function.
9824 * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination
9825 code.
9826 * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
9827 (arc_builtin_setjmp_frame_value): Remove function.
9828 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
9829 (avr_builtin_setjmp_frame_value): Remove function.
9830 * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
9831 (ix86_builtin_setjmp_frame_value): Remove function.
9832 * config/pa/pa.md (nonlocal_goto): Remove FP adjustment.
9833 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
9834 (sparc_builtin_setjmp_frame_value): Remove function.
9835 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
9836 (vax_builtin_setjmp_frame_value): Remove function.
9837 * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame
9838 pointer if has_nonlocal_label.
9839
9840 2019-06-19 Jakub Jelinek <jakub@redhat.com>
9841
9842 * doc/md.texi: Document vec_shl_<mode> pattern.
9843 * optabs.def (vec_shl_optab): New optab.
9844 * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab
9845 argument, if == vec_shl_optab, check for left whole vector shift
9846 pattern rather than right shift.
9847 (expand_vec_perm_const): Add vec_shl_optab support.
9848 * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab
9849 in the comment.
9850 * tree-vect-generic.c (lower_vec_perm): Support permutations which
9851 can be handled by vec_shl_optab.
9852 * tree-vect-stmts.c (scan_store_can_perm_p): New function.
9853 (check_scan_store): Use it.
9854 (vectorizable_scan_store): If target can't do normal permutations,
9855 try to use whole vector left shifts and if needed a VEC_COND_EXPR
9856 after it.
9857 * config/i386/sse.md (vec_shl_<mode>): New expander.
9858
9859 * omp-low.c (lower_rec_input_clauses): Handle references properly
9860 in inscan clauses.
9861 (lower_omp_scan): Likewise.
9862
9863 2019-06-19 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
9864
9865 * tree-ssa-address.c (preferred_mem_scale_factor): Handle when
9866 mem_mode is BLKmode.
9867
9868 2019-06-18 Max Filippov <jcmvbkbc@gmail.com>
9869
9870 PR target/90922
9871 * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
9872 pointer adjustment for the case of no callee-saved registers and
9873 stack frame bigger than 128 bytes.
9874
9875 2019-06-18 Thomas Schwinge <thomas@codesourcery.com>
9876
9877 PR middle-end/90862
9878 * omp-low.c (check_omp_nesting_restrictions): Handle
9879 GF_OMP_TARGET_KIND_OACC_DECLARE.
9880
9881 2019-06-18 Uroš Bizjak <ubizjak@gmail.com>
9882
9883 * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1.
9884 (@add<mode>3_carry): Rename from add<mode>3_carry.
9885 (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc.
9886 (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz.
9887 (@copysign<mode>3_const): Rename from copysign<mode>3_const.
9888 (@copysign<mode>3_var): Rename from copysign<mode>3_var.
9889 (@xorsign<mode>3_1): Rename from xorsign<mode>3_1.
9890 (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1.
9891 (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2.
9892 (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3.
9893 (cmpstrnsi): Use gen_cmp_1.
9894 (lwp_slwpcb): Use gen_lwp_slwpcb_1.
9895 (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1.
9896 (@umonitor_<mode>): Rename from umonitor_<mode>.
9897 * config/i386/i386-expand.c (ix86_expand_copysign):
9898 Use gen_copysign3_const and gen_copysign3_var.
9899 (ix86_expand_xorsign): Use gen_xorsign3_1.
9900 (ix86_expand_branch): Use gen_sub3_carry_ccc,
9901 gen_sub3_carry_ccgz and gen_cmp1.
9902 (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry.
9903 (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2.
9904 (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3.
9905 (ix86_split_lshr): Ditto.
9906 (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor.
9907
9908 2019-06-18 Jason Merrill <jason@redhat.com>
9909
9910 * tree.c (build_constructor): Add MEM_STAT_DECL.
9911
9912 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
9913
9914 * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE.
9915 * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc)
9916 (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>)
9917 (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>)
9918 (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc)
9919 (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>)
9920 (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4):
9921 Use CC_NZC instead of CC.
9922 * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions.
9923 * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable.
9924 (aarch64_print_operand): Handle E_CC_NZCmode.
9925 (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead
9926 of gen_set_clobber_cc.
9927
9928 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
9929
9930 * config/aarch64/aarch64-sve.md: Tabify file.
9931
9932 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
9933
9934 * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare.
9935 * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function.
9936 * config/aarch64/aarch64-sve.md: Use it.
9937
9938 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
9939
9940 * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare.
9941 * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions.
9942 (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move)
9943 (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local)
9944 (aarch64_expand_sve_vec_cmp_int): Use it.
9945 (aarch64_expand_sve_vec_cmp_float): Likewise.
9946 * config/aarch64/aarch64-sve.md: Likewise throughout.
9947
9948 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
9949 Kugan Vivekanandarajah <kuganv@linaro.org>
9950
9951 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete.
9952 (*cond_<optab><mode>_z): Fold into...
9953 (*cond_<optab><mode>_any): ...here. Also handle cases in which
9954 operand 4 can be tied to operand 0 (either inherently or via RA).
9955
9956 2019-06-18 Richard Biener <rguenther@suse.de>
9957
9958 PR debug/90900
9959 * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
9960 as if optimized away.
9961
9962 2019-06-18 Tom de Vries <tdevries@suse.de>
9963
9964 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove.
9965 * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove.
9966 * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"):
9967 Rename to ...
9968 (define_insn "@set_softstack_<mode>"): ... this.
9969 (define_insn "omp_simt_enter_<mode>"): Rename to ...
9970 (define_insn "@omp_simt_enter_<mode>"): ... this.
9971 (define_insn "omp_simt_exit_<mode>"): Rename to ...
9972 (define_insn "@omp_simt_exit_<mode>"): ... this.
9973
9974 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
9975
9976 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove
9977 vf parameter. Restore the previous iv step of nscalars_step,
9978 but give it iv_type rather than compare_type. Tweak code order
9979 to match the comments.
9980 (vect_set_loop_condition_masked): Update accordingly.
9981 * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int"
9982 for iv_precision. Tweak comment formatting.
9983
9984 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
9985
9986 * config/darwin.c: Strip trailing whitespace.
9987
9988 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
9989
9990 * config/darwin.c (darwin_emit_unwind_label): New default to false.
9991 (darwin_override_options): Set darwin_emit_unwind_label as needed.
9992
9993 2019-06-18 Martin Jambor <mjambor@suse.cz>
9994
9995 PR ipa/90889
9996 * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the
9997 caller does not have flag_ipa_cp set.
9998
9999 2019-06-18 Alejandro Martinez <alejandro.martinezvicente@arm.com>
10000
10001 * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed
10002 from "*fold_left_plus_<mode>", updated operands order.
10003 * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab.
10004 * internal-fn.c (mask_fold_left_direct): New define.
10005 (expand_mask_fold_left_optab_fn): Likewise.
10006 (direct_mask_fold_left_optab_supported_p): Likewise.
10007 * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function.
10008 * optabs.def (mask_fold_left_plus_optab): New optab.
10009 * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a
10010 masked internal_fn for a reduction ifn.
10011 (vectorize_fold_left_reduction): Add support for masking reductions.
10012
10013 2019-06-18 Kewen Lin <linkw@gcc.gnu.org>
10014
10015 PR middle-end/80791
10016 * target.def (predict_doloop_p): New hook.
10017 * targhooks.h (default_predict_doloop_p): New declaration.
10018 * targhooks.c (default_predict_doloop_p): New function.
10019 * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook.
10020 * doc/tm.texi: Regenerate.
10021 * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function.
10022 (TARGET_PREDICT_DOLOOP_P): New macro.
10023 * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function.
10024
10025 2019-06-17 Jakub Jelinek <jakub@redhat.com>
10026
10027 * omp-low.c (struct omp_context): Add scan_inclusive field.
10028 (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive
10029 if inclusive scan.
10030 (struct omplow_simd_context): Add lastlane member.
10031 (lower_rec_simd_input_clauses): Add rvar argument, handle inscan
10032 reductions. Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than
10033 1 or 2 argument.
10034 (lower_rec_input_clauses): Handle inscan reductions in simd contexts.
10035 (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF.
10036 (lower_omp_scan): New function.
10037 (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan.
10038 * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE
10039 check 3rd argument if present rather than 2nd.
10040 * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member.
10041 (struct _stmt_vec_info): Change simd_lane_access_p from bool into
10042 2-bit bitfield.
10043 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
10044 scan_map. For IFN_GOMP_SIMD_LANE check 3rd argument if present rather
10045 than 2nd.
10046 (_loop_vec_info::~_loop_vec_info): Delete scan_map.
10047 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two
10048 different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same
10049 init.
10050 (vect_find_stmt_data_reference): Encode in ->aux the 2nd
10051 IFN_GOMP_SIMD_LANE argument.
10052 (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the
10053 encoded ->aux value.
10054 * tree-vect-stmts.c: Include attribs.h.
10055 (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE.
10056 (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New
10057 functions.
10058 (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0.
10059 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1.
10060
10061 2019-06-17 Uroš Bizjak <ubizjak@gmail.com>
10062
10063 PR target/62055
10064 * config/i386/i386.md (*nabstf2_1): New insn pattern.
10065 (*nabs<mode>2_1): Ditto.
10066 (nabs sse-reg splitter): New splitter.
10067 * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern.
10068
10069 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
10070
10071 PR bootstrap/90873.
10072 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
10073 TMR index check.
10074
10075 2019-06-17 Tom de Vries <tdevries@suse.de>
10076
10077 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare.
10078 * config/nvptx/nvptx.c (gen_set_softstack_insn): New function.
10079 * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to
10080 ...
10081 (define_insn "set_softstack_<mode>"): ... this. Use P iterator on
10082 match_operand 0.
10083 (define_insn "omp_simt_enter_insn"): Rename to ...
10084 (define_insn "omp_simt_enter_<mode>"): ... this. Use P iterator on
10085 match_operand 0, 1 and 2, as well as the unspec_volatile result.
10086 (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and
10087 gen_omp_simt_enter_si.
10088 (define_expand "omp_simt_exit"): New.
10089 (define_insn "omp_simt_exit"): Rename to ...
10090 (define_insn "omp_simt_exit_<mode>"): ... this. Use P iterator on
10091 match_operand 0.
10092
10093 2019-06-17 Matthew Green <mrg@eterna.com.au>
10094 Maya Rashish <coypu@sdf.org>
10095
10096 * config.gcc (aarch64*-*-netbsd*): New target.
10097 * config/aarch64/aarch64-netbsd.h: New file.
10098 * config/aarch64/t-aarch64-netbsd: Likewise.
10099
10100 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
10101
10102 * tree-ssa-alias.c (aliasing_component_refs_p): Consider only
10103 the access path from base to first VIEW_CONVERT_EXPR or
10104 BIT_FIELD_REF.
10105
10106 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
10107
10108 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate
10109 access path on BIT_FIELD_REFs.
10110
10111 2019-06-17 Martin Liska <mliska@suse.cz>
10112
10113 PR ipa/90874
10114 * ipa-utils.h (odr_type_p): Remove dead code.
10115
10116 2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10117
10118 * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
10119 alternative Solaris 11.4 format.
10120 * configure: Regenerate.
10121
10122 2019-06-17 Tom de Vries <tdevries@suse.de>
10123
10124 * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ...
10125 (define_insn "call_insn_<mode>"): ... this. Use P iterator on
10126 match_operand 0.
10127 (define_insn "call_value_insn"): Rename to ...
10128 (define_insn "call_value_insn_<mode>"): this. Use P iterator on
10129 match_operand 0.
10130 (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to
10131 DI.
10132
10133 2019-06-16 John David Anglin <danglin@gcc.gnu.org>
10134
10135 PR middle-end/64242
10136 * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add
10137 frame clobbers and schedule block.
10138 (builtin_longjmp): Likewise.
10139
10140 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
10141
10142 * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which
10143 describe how to perform MSPABI compliant 64-bit shift.
10144 * config/msp430/msp430.md (ashldi3): New define_expand.
10145 (ashrdi3): New define_expand.
10146 (lshrdi3): New define_expand.
10147
10148 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
10149
10150 * doc/sourcebuild.texi: Document new effective target keyword
10151 longlong64.
10152
10153 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
10154
10155 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p,
10156 indirect_refs_may_alias_p): Revert accidental commits.
10157
10158 * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays
10159 at the end of structures.
10160
10161 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
10162
10163 * config/darwin.c (machopic_indirect_call_target): Use renamed
10164 darwin_picsymbol_stubs to decide on output.
10165 (darwin_override_options): Handle darwin_picsymbol_stubs.
10166 * config/darwin.h (MIN_LD64_OMIT_STUBS): New.
10167 (LD64_VERSION): Revise default.
10168 * config/darwin.opt: (mpic-symbol-stubs): New option.
10169 (darwin_picsymbol_stubs): New variable.
10170 * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
10171 rename to TARGET_MACHO_PICSYM_STUBS.
10172 * config/i386/i386.c (output_pic_addr_const): Likewise.
10173 * config/i386/i386.h Likewise.
10174 * config/rs6000/darwin.h: Likewise.
10175 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
10176 darwin_picsymbol_stubs.
10177
10178 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
10179
10180 * config/darwin.opt (prebind, noprebind, seglinkedit,
10181 noseglinkedit): Add RejectNegative.
10182
10183 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
10184
10185 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto
10186 in my previous patch.
10187
10188 2019-06-16 Tom de Vries <tdevries@suse.de>
10189
10190 PR tree-optimization/89376
10191 * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.
10192
10193 2019-06-15 Maya Rashish <coypu@sdf.org>
10194
10195 * doc/invoke.texi (Spec Files): Update location of the
10196 Fortran spec file.
10197
10198 2019-06-15 Gerald Pfeifer <gerald@pfeifer.com>
10199
10200 * doc/extend.texi (Common Function Attributes): Clarify
10201 no_sanitize. Fix grammar.
10202
10203 2019-06-15 Jan Hubicka <hubicka@ucw.cz>
10204
10205 * tree-ssa-alias.c (alias_stats): Add
10206 nonoverlapping_component_refs_p_may_alias,
10207 nonoverlapping_component_refs_p_no_alias,
10208 nonoverlapping_component_refs_of_decl_p_may_alias,
10209 nonoverlapping_component_refs_of_decl_p_no_alias.
10210 (dump_alias_stats): Dump them.
10211 (nonoverlapping_component_refs_of_decl_p): Add stats.
10212 (nonoverlapping_component_refs_p): Add stats; do not stop on first
10213 ARRAY_REF.
10214
10215 2019-06-15 Uroš Bizjak <ubizjak@gmail.com>
10216
10217 * config/i386/i386.md (and<mode>3): Generate zero-extends for
10218 TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))
10219 only.
10220 (*anddi3_doubleword): Split before reload. Merge with
10221 anddi->zext pre-reload splitter.
10222 (*andndi3_doubleword): Split before reload.
10223 (*<code>di3_doubleword): Ditto.
10224 (*one_cmpldi2_doubleword): Ditto.
10225
10226 2019-06-15 Jakub Jelinek <jakub@redhat.com>
10227
10228 PR middle-end/90779
10229 * gimplify.c: Include omp-offload.h and context.h.
10230 (gimplify_bind_expr): Add "omp declare target" attributes
10231 to static block scope variables inside of target region or target
10232 functions.
10233
10234 2019-06-15 Tom de Vries <tdevries@suse.de>
10235
10236 PR tree-optimization/90009
10237 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
10238 Return NULL if bb contains IFN_UNIQUE.
10239
10240 2019-06-14 Segher Boessenkool <segher@kernel.crashing.org>
10241
10242 * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator.
10243 (un): New define_mode_attr.
10244 (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ...
10245 (isel_<un>signed_<GPR:mode>): ... this. New define_insn.
10246 (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete,
10247 merge into ...
10248 (isel_reversed_<un>signed_<GPR:mode>): ... this. New define_insn.
10249
10250 2019-06-14 Iain Sandoe <iain@sandoe.co.uk>
10251
10252 * config/darwin.opt: Add RejectNegative where needed, reorder
10253 and add minimal functional descriptions.
10254
10255 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
10256
10257 PR rtl-optimization/90765
10258 * calls.c (update_stack_alignment_for_call): New function.
10259 (expand_call): Call update_stack_alignment_for_call when
10260 outgoing parameter is passed in the stack.
10261 (emit_library_call_value_1): Likewise.
10262 * function.c (locate_and_pad_parm): Don't update
10263 stack_alignment_needed and preferred_stack_boundary.
10264
10265 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
10266
10267 PR target/90877
10268 * config/i386/i386-features.c
10269 (dimode_scalar_chain::compute_convert_gain): Replace
10270 mmxsse_to_integer with sse_to_integer.
10271 * config/i386/i386.c (ix86_register_move_cost): Verify that
10272 moves between MMX and non-MMX units require secondary memory.
10273 Correct costs of moves between SSE and integer units.
10274 * config/i386/i386.h (processor_costs): Rename cost of moving
10275 SSE register to integer to sse_to_integer. Rename cost of
10276
10277 2019-06-14 Matt Thomas <matt@3am-software.com>
10278 Matthew Green <mrg@eterna.com.au>
10279 Nick Hudson <skrll@netbsd.org>
10280 Maya Rashish <coypu@sdf.org>
10281 Richard Earnshaw <rearnsha@arm.com>
10282
10283 * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration.
10284 * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD.
10285 * config/arm/netbsd-eabi.h: New file.
10286 * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before
10287 redefining.
10288 (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler.
10289 * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define.
10290 (NETBSD_SUBTARGET_EXTRA_SPECS): New define.
10291 (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS.
10292
10293 2019-06-14 Richard Biener <rguenther@suse.de>
10294
10295 * tree-loop-distribution.c (classify_partition): Return
10296 whether a reduction appeared in all partitions and do not
10297 stop builtin detection because of this.
10298 (distribute_loop): Sort a non-builtin partition last if
10299 there's a reduction in all partitions and make sure the
10300 partition prevailing as last is not a builtin.
10301
10302 2019-06-14 Feng Xue <fxue@os.amperecomputing.com>
10303
10304 PR ipa/90401
10305 * ipa-prop.c (add_to_agg_contents_list): New function.
10306 (clobber_by_agg_contents_list_p): Likewise.
10307 (extract_mem_content): Likewise.
10308 (get_place_in_agg_contents_list): Delete.
10309 (determine_known_aggregate_parts): Renamed from
10310 determine_locally_known_aggregate_parts. New parameter
10311 aa_walk_budget_p.
10312
10313 2019-06-13 Martin Sebor <msebor@redhat.com>
10314
10315 PR tree-optimization/90662
10316 * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
10317 to the same type.
10318
10319 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
10320
10321 PR bootstrap/90873
10322 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
10323 dbase is not TARGET_MEM_REF.
10324
10325 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
10326
10327 * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
10328 Update all uses.
10329 (and<mode>3): Use gen_extend_insn instead of indirect functions.
10330 Do not generate DImode extends for 32bit targets.
10331 (and->zext post-reload splitter): Use gen_extend_insn
10332 instead of indirect functions.
10333 (anddi->zext pre-reload splitter): New.
10334 (*zext<mode>_doubleword_and): Remove.
10335 (*zext<mode>_doubleword): Ditto.
10336 (*zextsi_doubleword): Dittto.
10337
10338 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
10339
10340 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
10341 Use gen_sub3_insn instead of indirect function.
10342 (ix86_expand_ashl_const): Use gen_add2_insn instead of
10343 indirect function.
10344 (ix86_adjust_counter): Ditto.
10345
10346 2019-06-13 Jiufu Guo <guojiufu@linux.ibm.com>
10347 Lijia He <helijia@linux.ibm.com>
10348
10349 PR tree-optimization/77820
10350 * tree-ssa-threadedge.c
10351 (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
10352 function.
10353 (thread_across_edge): Add call to
10354 edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.
10355
10356 2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
10357
10358 * config/darwin-driver.c (validate_macosx_version_min): New.
10359 (darwin_default_min_version): Cleanup and validate supplied version.
10360 (darwin_driver_init): Likewise and push cleaned version into opts.
10361
10362 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
10363
10364 PR tree-optimization/90869
10365 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view
10366 converts in MEM_REF referencing decl rather than view converts
10367 from decl type to MEM_REF type.
10368
10369 2019-06-13 Richard Biener <rguenther@suse.de>
10370
10371 PR tree-optimization/90856
10372 * tree-sra.c (build_ref_for_model): Only use
10373 build_reconstructed_reference when address-spaces are the same.
10374
10375 2019-06-13 Jakub Jelinek <jakub@redhat.com>
10376
10377 * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't
10378 wrap ei variable name in the declaration in ()s.
10379 (nvptx_single): Actually use mode_label variable. Formatting fix.
10380
10381 2019-06-13 Richard Biener <rguenther@suse.de>
10382
10383 * tree-vectorizer.h (vect_loop_vectorized_call): Declare.
10384 * tree-vectorizer.c (vect_loop_vectorized_call): Export and
10385 also return the condition stmt.
10386 * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost
10387 loop we can version and version that, reusing the loop version
10388 created by if-conversion instead of versioning again.
10389
10390 2019-06-13 Aldy Hernandez <aldyh@redhat.com>
10391
10392 * gimple-loop-versioning.cc (prune_loop_conditions): Use
10393 may_contain_p.
10394 * tree-vrp (value_range_base::may_contain_p): Call into
10395 value_inside_range.
10396 (value_inside_range): Make private inside value_range_base class.
10397 Take min/max from *this.
10398 (range_includes_p): Remove.
10399 * tree-vrp.h (value_range_base): Add value_inside_range.
10400 (range_includes_p): Remove.
10401 (range_includes_zero_p): Call may_contain_p.
10402 * vr-values.c (compare_range_with_value): Same.
10403
10404 2019-06-13 Claudiu Zissulescu <claziss@synopsys.com>
10405
10406 * doc/extend.texi (ARC Function Attributes): Update info.
10407
10408 2019-06-13 Feng Xue <fxue@os.amperecomputing.com>
10409
10410 PR tree-optimization/89713
10411 * doc/invoke.texi (-ffinite-loops): Document new option.
10412 * common.opt (-ffinite-loops): New option.
10413 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark
10414 IFN_GOACC_LOOP calls as necessary.
10415 * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit
10416 is finite.
10417 * omp-offload.c (oacc_xform_loop): Skip lowering if return value of
10418 IFN_GOACC_LOOP call is not used.
10419 * opts.c (default_options_table): Enable -ffinite-loops at -O2+.
10420
10421 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
10422
10423 PR target/88838
10424 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the
10425 compare_type is not with Pmode size, we will create an IV with
10426 Pmode size with truncated use (i.e. converted to the correct type).
10427 * tree-vect-loop.c (vect_verify_full_masking): Find IV type.
10428 (vect_iv_limit_for_full_masking): New. Factored out of
10429 vect_set_loop_condition_masked.
10430 * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New.
10431 (vect_iv_limit_for_full_masking): Declare.
10432
10433 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
10434
10435 PR target/88834
10436 * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
10437 IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES.
10438 (get_alias_ptr_type_for_ptr_address): Likewise.
10439 (add_iv_candidate_for_use): Add scaled index candidate if useful.
10440 * tree-ssa-address.c (preferred_mem_scale_factor): New.
10441 * config/aarch64/aarch64.c (aarch64_classify_address): Relax
10442 allow_reg_index_p.
10443
10444 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
10445
10446 * config/aarch64/iterators.md (ADDSUB): Fix typo in comment.
10447
10448 2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu>
10449
10450 * common/config/pru/pru-common.c: New file.
10451 * config.gcc: Add PRU target.
10452 * config/pru/alu-zext.md: New file.
10453 * config/pru/constraints.md: New file.
10454 * config/pru/predicates.md: New file.
10455 * config/pru/pru-opts.h: New file.
10456 * config/pru/pru-passes.c: New file.
10457 * config/pru/pru-pragma.c: New file.
10458 * config/pru/pru-protos.h: New file.
10459 * config/pru/pru.c: New file.
10460 * config/pru/pru.h: New file.
10461 * config/pru/pru.md: New file.
10462 * config/pru/pru.opt: New file.
10463 * config/pru/t-pru: New file.
10464 * doc/extend.texi: Document PRU pragmas.
10465 * doc/invoke.texi: Document PRU-specific options.
10466 * doc/md.texi: Document PRU asm constraints.
10467
10468 2019-06-12 Martin Sebor <msebor@redhat.com>
10469
10470 PR middle-end/90676
10471 * tree-pretty-print.c (dump_mem_ref): New function. Include
10472 MEM_REF type in output when different size than operand.
10473 (dump_generic_node): Move code to dump_mem_ref and call it.
10474
10475 2019-06-12 Martin Sebor <msebor@redhat.com>
10476
10477 PR tree-optimization/90662
10478 * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
10479 to arrays.
10480
10481 2019-06-12 Tom de Vries <tdevries@suse.de>
10482
10483 PR tree-optimization/90009
10484 * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
10485
10486 2019-06-12 Martin Liska <mliska@suse.cz>
10487
10488 * ggc-common.c (ggc_prune_overhead_list): Do not sanitize
10489 the created map.
10490 * hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
10491 * mem-stats.h (mem_alloc_description::mem_alloc_description):
10492 Do not sanitize created maps.
10493
10494 2019-06-12 Aldy Hernandez <aldyh@redhat.com>
10495
10496 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use
10497 value_range::singleton_p.
10498 * tree-vrp.c (value_range_constant_singleton): Remove.
10499 * tree-vrp.h (value_range_constant_singleton): Remove.
10500 * vr-values.c (vr_values::singleton): Use
10501 value_range::singleton_p.
10502
10503 2019-06-12 Jakub Jelinek <jakub@redhat.com>
10504
10505 PR target/90811
10506 * cfgexpand.c (align_local_variable): Add really_expand argument,
10507 don't SET_DECL_ALIGN if it is false.
10508 (add_stack_var): Add really_expand argument, pass it through to
10509 align_local_variable.
10510 (expand_one_stack_var_1): Pass true as really_expand to
10511 align_local_variable.
10512 (expand_one_ssa_partition): Pass true as really_expand to
10513 add_stack_var.
10514 (expand_one_var): Pass really_expand through to add_stack_var.
10515
10516 2019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
10517
10518 * config/arm/iterators.md (VABAL): New int iterator.
10519 * config/arm/neon.md (<sup>sadv16qi): New define_expand.
10520 * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S,
10521 UNSPEC_VABAL_U values.
10522
10523 2019-06-12 Martin Liska <mliska@suse.cz>
10524
10525 * value-prof.c (stream_out_histogram_value): Only first value
10526 can't be negative.
10527
10528 2019-06-12 Jakub Jelinek <jakub@redhat.com>
10529
10530 PR c/90760
10531 * symtab.c (symtab_node::set_section): Allow being called on aliases
10532 as long as they aren't analyzed yet.
10533
10534 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com>
10535
10536 * config/mips/mips.c (mips_final_postscan_insn): Modify call
10537 to `mips_set_text_contents_type' to indicate whether a
10538 non-debug insn follows.
10539
10540 2019-06-11 Michael Meissner <meissner@linux.ibm.com>
10541
10542 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete
10543 enabling -mpcrel by default.
10544 * config/rs6000/rs6000.c (rs6000_option_override_internal): Update
10545 test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so
10546 that the test against -mcpu=future is done first. Then test if
10547 -mprefixed-addr is on for -mpcrel.
10548 (rs6000_disable_incompatible_switches): Add -mcpu=future support.
10549
10550 2019-06-11 Jakub Jelinek <jakub@redhat.com>
10551
10552 PR target/90811
10553 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
10554 instead of and.u%d.
10555
10556 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
10557
10558 * match.pd (X/[ex]4<Y/[ex]4): Handle conversions.
10559
10560 2019-06-11 Matthew Beliveau <mbelivea@redhat.com>
10561
10562 PR c++/90449 - add -Winaccessible-base option.
10563 * doc/invoke.texi (Winaccessible-base): Document.
10564
10565 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
10566
10567 PR tree-optimization/62041
10568 * fold-const.c (fold_real_zero_addition_p): Handle vectors.
10569
10570 2019-06-11 Jason Merrill <jason@redhat.com>
10571
10572 * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
10573 * tree.c (get_tree_code_name): Likewise.
10574 * print-tree.c (print_node): Only briefly print a node with an
10575 invalid code.
10576
10577 2019-06-11 Jakub Jelinek <jakub@redhat.com>
10578
10579 PR bootstrap/90819
10580 * trans-mem.c (tm_memopt_compute_available): Add assertion
10581 that blocks is not empty. Formatting fix.
10582
10583 2019-06-11 Martin Liska <mliska@suse.cz>
10584
10585 PR c++/87847
10586 * hash-table.h: Extend create_gcc, add one parameter
10587 that is passed into hash_table::hash_table.
10588
10589 2019-06-10 Uroš Bizjak <ubizjak@gmail.com>
10590
10591 * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
10592 New prototype.
10593 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
10594 Emit clobber also for non-sse operations.
10595 (ix86_split_fp_absneg_operator): New function.
10596 * config/i386/i386.md (SSEMODEF): New mode iterator.
10597 (ssevecmodef): New mode attribute.
10598 (<code>tf2): Use absneg code iterator.
10599 (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
10600 Add three-operand AVX alternatives.
10601 (*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
10602 Use absneg code iterator and X87MODEF mode iterator.
10603 (absneg fp_reg non-sse splitter): Call absneg code iterator
10604 and X87MODEF mode iterator.
10605 (absneg general_reg non-sse splitter): Use absneg code iterator
10606 and X87MODEF mode iterator. Use ix86_split_fp_absneg_operator.
10607 (*<code><mode>2_1): Rename from *absneg<mode>2. Use absneg
10608 code iterator. Add three-operand AVX alternative.
10609 (absneg sse_reg splitter): Use absneg code iterator
10610 and SSEMODEF mode iterator. Handle AVX operands.
10611 (absneg fp_reg splitter): Use absneg code iterator
10612 and MODEF mode iterator.
10613 (absneg general_reg splitter): Merge splitters using MODEF mode
10614 iterator. Use absneg code iterator. Call
10615 ix86_split_fp_absneg_operator.
10616 (*<code><mode>2_i387): Rename from *<code><mode>2_1.
10617 Do not enable for non-sse modes before reload.
10618 (CSGNMODE): Remove.
10619 (CSGNVMODE): Ditto.
10620 (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
10621 ssevecmodef mode attribute instaed of CSGNVMODE.
10622 (copysign<mode>3_const): Ditto.
10623 (copysign<mode>3_var): Ditto.
10624 * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
10625 Use absneg code iterator. Simplify code using std::swap.
10626 * config/i386/predicates.md (absneg_operator): Remove.
10627
10628 2019-06-10 Martin Sebor <msebor@redhat.com>
10629
10630 * gimple-fold.c (get_range_strlen): Update comment that didn't
10631 make it into r267503 or related commits.
10632
10633 2019-06-10 Vladislav Ivanishin <vlad@ispras.ru>
10634
10635 * gcov-tool.c (merge_usage, rewrite_usage): Mark with
10636 ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
10637
10638 2019-06-10 Jakub Jelinek <jakub@redhat.com>
10639
10640 * tree.def (OMP_SCAN): New tree code.
10641 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
10642 OMP_CLAUSE_EXCLUSIVE.
10643 * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
10644 (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
10645 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
10646 OMP_CLAUSE_{IN,EX}CLUSIVE.
10647 (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
10648 * tree-nested.c (convert_nonlocal_reference_stmt,
10649 convert_local_reference_stmt, convert_gimple_call): Handle
10650 GIMPLE_OMP_SCAN.
10651 * tree-pretty-print.c (dump_omp_clause): Handle
10652 OMP_CLAUSE_{IN,EX}CLUSIVE.
10653 (dump_generic_node): Handle OMP_SCAN.
10654 * gimple.def (GIMPLE_OMP_SCAN): New gimple code.
10655 * gimple.h (gomp_scan): New type.
10656 (is_a_helper <gomp_scan *>::test,
10657 is_a_helper <const gomp_scan *>::test): New templates.
10658 (gimple_build_omp_scan): Declare.
10659 (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
10660 gimple_omp_scan_set_clauses): New inline functions.
10661 (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
10662 * gimple.c (gimple_build_omp_scan): New function.
10663 (gimple_copy): Handle GIMPLE_OMP_SCAN.
10664 * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
10665 * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
10666 GIMPLE_OMP_TASKGROUP.
10667 (dump_gimple_omp_scan): New function.
10668 (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
10669 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
10670 * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
10671 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
10672 (is_gimple_stmt): Handle OMP_SCAN.
10673 (gimplify_scan_omp_clauses): Reject inscan reductions on constructs
10674 other than OMP_FOR or OMP_SIMD. Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
10675 (gimplify_adjust_omp_clauses): Diagnose inscan reductions not
10676 mentioned in nested #pragma omp scan. Handle
10677 OMP_CLAUSE_{IN,EX}CLUSIVE.
10678 (gimplify_expr): Handle OMP_SCAN.
10679 * omp-low.c (check_omp_nesting_restrictions): For parent context,
10680 look through GIMPLE_OMP_SCAN context. Allow #pragma omp scan in
10681 simd constructs.
10682 (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
10683 GIMPLE_OMP_SCAN.
10684
10685 2019-06-10 Martin Liska <mliska@suse.cz>
10686
10687 * ipa-cp.c (ignore_edge_p): New function.
10688 (build_toporder_info): Use it.
10689 * ipa-inline.c (ignore_edge_p): New function.
10690 (inline_small_functions): Use it.
10691 * ipa-pure-const.c (ignore_edge_for_nothrow):
10692 Verify opt_for_fn for caller and callee.
10693 (ignore_edge_for_pure_const): Likewise.
10694 * ipa-reference.c (ignore_edge_p): Extend to check
10695 for opt_for_fn.
10696 * ipa-utils.c (searchc): Refactor.
10697 * ipa-utils.h: Fix coding style.
10698
10699 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
10700
10701 * config/arc/arc.c (arc_rtx_costs): Update costs.
10702
10703 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
10704
10705 * config/arc/arc-protos.h (arc_check_ior_const): Declare.
10706 (arc_split_ior): Likewise.
10707 (arc_check_mov_const): Likewise.
10708 (arc_split_mov_const): Likewise.
10709 * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
10710 (arc_rtx_costs): Replace check Crr with Cax constraint.
10711 (prepare_move_operands): Cleanup, remove unused code.
10712 (arc_split_ior): New function.
10713 (arc_check_ior_const): Likewise.
10714 (arc_split_mov_const): Likewise.
10715 (arc_check_mov_const): Likewise.
10716 * config/arc/arc.md (movsi_insn): Restructure it, and convert it
10717 in define_insn_and_split pattern.
10718 (iorsi3): Likewise.
10719 (mulsi3_v2): Add new matching variant.
10720 (andsi3_i): Cleanup pattern.
10721 (rotrsi3_cnt1): Update pattern.
10722 (rotrsi3_cnt8): New pattern.
10723 (ashlsi2_cnt8): Likewise.
10724 (ashlsi2_cnt16): Likewise.
10725 * config/arc/constraints.md (C0p): Update constraint.
10726 (Crr): Remove it.
10727 (C0x): New pattern.
10728 (Cax): New pattern.
10729
10730 2019-06-10 Martin Liska <mliska@suse.cz>
10731
10732 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
10733 Update coding style.
10734 (sem_item_optimizer::dump_cong_classes):
10735 Print how many items are in a non-singular class. Improve
10736 coding style.
10737
10738 2019-06-10 Martin Liska <mliska@suse.cz>
10739
10740 * value-prof.c (dump_histogram_value): Change dump format.
10741 (gimple_mod_subtract_transform): Remove legacy comment.
10742
10743 2019-06-10 Martin Liska <mliska@suse.cz>
10744
10745 * value-prof.c (dump_histogram_value): Print histogram values
10746 only if present.
10747
10748 2019-06-10 Martin Liska <mliska@suse.cz>
10749
10750 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
10751 (GCOV_SINGLE_VALUE_COUNTERS): Likewise.
10752 * ipa-profile.c (ipa_profile_generate_summary):
10753 Use get_most_common_single_value.
10754 * tree-profile.c (gimple_init_gcov_profiler):
10755 Instrument with __gcov_one_value_profiler_v2
10756 and __gcov_indirect_call_profiler_v4.
10757 * value-prof.c (dump_histogram_value):
10758 Print all values for HIST_TYPE_SINGLE_VALUE.
10759 (stream_out_histogram_value): Update assert for
10760 N values.
10761 (stream_in_histogram_value): Set number of
10762 counters for HIST_TYPE_SINGLE_VALUE.
10763 (get_most_common_single_value): New.
10764 (gimple_divmod_fixed_value_transform):
10765 Use get_most_common_single_value.
10766 (gimple_ic_transform): Likewise.
10767 (gimple_stringops_transform): Likewise.
10768 (gimple_find_values_to_profile): Set number
10769 of counters for HIST_TYPE_SINGLE_VALUE.
10770 * value-prof.h (get_most_common_single_value): New.
10771
10772 2019-06-10 Martin Liska <mliska@suse.cz>
10773
10774 * hash-map.h: Pass default value to hash_table ctor.
10775 * hash-table.h: Add default value to call of a ctor.
10776
10777 2019-06-08 Jonathan Wakely <jwakely@redhat.com>
10778
10779 * doc/invoke.texi (C Dialect Options): Minor grammatical change.
10780 (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
10781
10782 2019-06-07 John David Anglin <danglin@gcc.gnu.orig>
10783
10784 PR target/90751
10785 * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
10786 Call pa_output_function_label.
10787 (TARGET_ASM_FUNCTION_PROLOGUE): define.
10788 * config/pa/pa-protos.h (pa_output_function_label): Declare.
10789 * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
10790 to declaration.
10791 (pa_linux_output_function_prologue): Declare.
10792 (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
10793 (pa_output_function_label): New.
10794 (pa_output_function_prologue): Revise to use pa_output_function_label.
10795 (pa_linux_output_function_prologue): New.
10796 * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
10797
10798 2019-06-07 Aldy Hernandez <aldyh@redhat.com>
10799
10800 * tree-vrp.h (value_range_base::intersect): New.
10801 (value_range::intersect_helper): Move from here...
10802 (value_range_base::intersect_helper): ...to here.
10803 * tree-vrp.c (value_range::intersect_helper): Rename to...
10804 (value_range_base::intersect_helper): ...this, and rewrite to
10805 return a value instead of modifying THIS in place.
10806 Also, move equivalence handling...
10807 (value_range::intersect): ...here, while calling intersect_helper.
10808 * gimple-fold.c (size_must_be_zero_p): Use value_range_base when
10809 calling intersect.
10810 * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
10811 Same.
10812 * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
10813
10814 2019-06-07 Jakub Jelinek <jakub@redhat.com>
10815
10816 * Makefile.in (genprogerr): Add condmd.
10817 (genprog): Remove it here.
10818
10819 2019-06-07 Andrew Stubbs <ams@codesourcery.com>
10820
10821 * doc/invoke.texi (AMD GCN Options): Add gfx906.
10822
10823 2019-06-07 Richard Biener <rguenther@suse.de>
10824
10825 PR debug/90574
10826 * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
10827 that appear after user labels.
10828
10829 2019-06-07 Martin Liska <mliska@suse.cz>
10830
10831 * cselib.c (cselib_init): Disable hash table
10832 sanitization.
10833 * hash-set.h: Pass new default argument to m_table.
10834 * hash-table.c: Add global variable with hash table
10835 sanitization limit.
10836 * hash-table.h (Allocator>::hash_table): Add new argument
10837 to ctor.
10838 (hashtab_chk_error): New.
10839 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
10840 * toplev.c (process_options): Set hash_table_sanitize_eq_limit
10841 from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
10842
10843 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
10844
10845 * common.opt (flto-odr-type-merging): Ignore.
10846 * invoke.texi (-flto-odr-type-merging): Remove.
10847 * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
10848 (can_be_vtable_hashed_p): Remove.
10849 (hash_odr_vtable): Remove.
10850 (odr_vtable_hasher::hash): Remove.
10851 (types_same_for_odr): Remove.
10852 (types_odr_comparable): Remove.
10853 (odr_vtable_hasher::equal): Remove.
10854 (odr_vtable_hash_type, odr_vtable_hash): Remove.
10855 (add_type_duplicate): Do not synchronize vtable and name hashtables.
10856 (get_odr_type): Do not use vtable hash.
10857 (dump_odr_type): Remove commented out code.
10858 (build_type_inheritance_graph): Do not allocate vtable hash.
10859 (rebuild_type_inheritance_graph): Do not delete vtable hash.
10860 * ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
10861 (odr_type_p): Likewise.
10862 * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
10863 test.
10864
10865 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
10866
10867 * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
10868 immediately after same_types_for_tbaa_p returns -1 and continue
10869 looking for possible exact match; if matching types are arrays
10870 watch for partial overlaps.
10871 (indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
10872 (indirect_refs_may_alias_p): Do type based disambiguation first;
10873 update comment.
10874
10875 2019-06-07 Richard Sandiford <richard.sandiford@arm.com>
10876
10877 * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
10878
10879 2019-06-07 Martin Liska <mliska@suse.cz>
10880
10881 * doc/invoke.texi: Remove param.
10882 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
10883 Remove.
10884 * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
10885 (GCOV_ICALL_TOPN_NCOUNTS): Likewise.
10886 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
10887 * profile.c (instrument_values): Remove
10888 HIST_TYPE_INDIR_CALL_TOPN.
10889 * tree-profile.c (init_ic_make_global_vars):
10890 Always build __gcov_indirect_call only.
10891 (gimple_init_gcov_profiler): Remove usage
10892 of PARAM_INDIR_CALL_TOPN_PROFILE.
10893 (gimple_gen_ic_profiler): Likewise.
10894 * value-prof.c (dump_histogram_value): Likewise.
10895 (stream_in_histogram_value): Likewise.
10896 (gimple_indirect_call_to_profile): Likewise.
10897 (gimple_find_values_to_profile): Likewise.
10898 * value-prof.h (enum hist_type): Likewise.
10899
10900 2019-06-07 Martin Liska <mliska@suse.cz>
10901
10902 * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
10903 function.
10904
10905 2019-06-07 Martin Liska <mliska@suse.cz>
10906
10907 PR tree-optimization/78902
10908 * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
10909 (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
10910 (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
10911 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
10912 (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
10913 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
10914 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
10915 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
10916 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
10917 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
10918 (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
10919 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove.
10920 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
10921 New.
10922 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
10923 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
10924 (ATTR_MALLOC_NOTHROW_NONNULL): Remove.
10925 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
10926 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
10927 (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
10928 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
10929 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
10930 * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
10931 warn_unused_result attribute.
10932 (BUILT_IN_STRDUP): Likewise.
10933 (BUILT_IN_STRNDUP): Likewise.
10934 (BUILT_IN_ALLOCA): Likewise.
10935 (BUILT_IN_CALLOC): Likewise.
10936 (BUILT_IN_MALLOC): Likewise.
10937 (BUILT_IN_REALLOC): Likewise.
10938
10939 2019-06-06 Jim Wilson <jimw@sifive.com>
10940
10941 PR target/89955
10942 * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
10943 * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
10944 * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.
10945
10946 2019-06-06 Martin Sebor <msebor@redhat.com>
10947
10948 * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
10949 (handle_builtin_malloc): Remove trailing spaces.
10950 (handle_builtin_memset): Same.
10951 (handle_builtin_memcmp): Same.
10952 (compute_string_length): Same.
10953 (determine_min_objsize): Same.
10954 (handle_builtin_string_cmp): Same.
10955 (handle_char_store): Same. Break up excessively long line.
10956
10957 2019-06-06 Martin Jambor <mjambor@suse.cz>
10958
10959 * tree-sra.c (build_reconstructed_reference): Drop the alignment
10960 check.
10961
10962 2019-06-06 Martin Jambor <mjambor@suse.cz>
10963
10964 * tree-sra.c (struct access): New field grp_same_access_path.
10965 (dump_access): Dump it.
10966 (build_reconstructed_reference): New function.
10967 (build_ref_for_model): Use it if possible.
10968 (path_comparable_for_same_access): New function.
10969 (same_access_path_p): Likewise.
10970 (sort_and_splice_var_accesses): Set the new flag.
10971 (analyze_access_subtree): Likewise.
10972 (propagate_subaccesses_across_link): Propagate zero value of the new
10973 flag down the access tree.
10974
10975 2019-06-06 Andrew Stubbs <ams@codesourcery.com>
10976
10977 * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
10978 * config/gcn/gcn.opt (gpu_type): Add gfx906.
10979 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
10980 (MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
10981 Add gfx906.
10982
10983 2019-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10984
10985 PR tree-optimization/90332
10986 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
10987 Handle VALS containing two vectors.
10988 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
10989 to...
10990 (@aarch64_combinez<mode>): ... This.
10991 (*aarch64_combinez_be<mode>): Rename to...
10992 (@aarch64_combinez_be<mode>): ... This.
10993 (vec_init<mode><Vhalf>): New define_expand.
10994 * config/aarch64/iterators.md (Vhalf): Handle V8HF.
10995
10996 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
10997
10998 * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
10999 library functions only when not optimizing for size.
11000 (ashlsi3): Likewise.
11001 (ashrhi3): Likewise.
11002 (ashrsi3): Likewise.
11003 (lshrhi3): Likewise.
11004 (lshrsi3): Likewise.
11005
11006 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com>
11007
11008 PR rtl-optimization/88751
11009 * ira.c (ira): Use the number of the actually referenced registers
11010 when calculating the threshold.
11011
11012 2019-06-06 Jakub Jelinek <jakub@redhat.com>
11013
11014 * configure: Regenerate.
11015
11016 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
11017
11018 * config/msp430/msp430.md (ashlhi3): Force shift src operand into a
11019 register if it is in memory, so the shift can be emulated with a rotate
11020 instruction.
11021 (ashrhi3): Likewise.
11022 (lshrhi3): Likewise.
11023
11024 2019-06-06 Martin Liska <mliska@suse.cz>
11025
11026 PR tree-optimization/87954
11027 * match.pd: Simplify mult where both arguments are 0 or 1.
11028
11029 2019-06-06 Richard Biener <rguenther@suse.de>
11030
11031 * vr-values.c (vr_values::extract_range_from_ssa_name): Do not
11032 put equivalences on UNDEFINED ranges.
11033 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
11034 Make sure to drop defs of stmts added during simplification
11035 to VARYING.
11036
11037 2019-06-06 Richard Biener <rguenther@suse.de>
11038
11039 * tree-ssa-structalias.c: Include tree-cfg.h.
11040 (make_heapvar): Do not make heap vars artificial.
11041 (find_func_aliases_for_builtin_call): Handle stack allocation
11042 functions.
11043 (find_func_aliases): Delay processing of simple enough returns
11044 in non-IPA mode.
11045 (set_uids_in_ptset): Adjust.
11046 (find_what_var_points_to): Likewise.
11047 (solve_constraints): Do not dump points-to sets here.
11048 (compute_points_to_sets): Post-process return statements,
11049 amending the escaped solution. Dump points-to sets afterwards.
11050 (ipa_pta_execute): Dump points-to sets.
11051
11052 2019-06-06 Martin Liska <mliska@suse.cz>
11053
11054 PR web/87933
11055 * doc/install.texi: Fix HTML headers and
11056 titles for 'Installing GCC' pages.
11057
11058 2019-06-06 Martin Liska <mliska@suse.cz>
11059
11060 * ipa-icf-gimple.h (dump_message_1): Remove.
11061 (dump_message): Likewise.
11062 (return_false_with_message_1): Print also file.
11063 (return_false_with_msg): Likewise.
11064 (return_with_result): Likewise.
11065 (return_with_debug): Likewise.
11066 * ipa-icf.c (sem_function::equals_private): Remove call
11067 to dump_message.
11068
11069 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
11070
11071 * config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
11072 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
11073 memory operand for it.
11074 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.
11075
11076 2019-06-05 Martin Sebor <msebor@redhat.com>
11077
11078 * config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
11079 Adjust quoting and hyphenation.
11080 * convert.c (convert_to_real_1): Same.
11081 * gcc.c (driver_wrong_lang_callback): Same.
11082 (driver::handle_unrecognized_options): Same.
11083 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
11084 * opts-common.c (cmdline_handle_error): Same.
11085 (read_cmdline_option): Same.
11086 * opts-global.c (complain_wrong_lang): Same.
11087 (print_ignored_options): Same.
11088 (handle_common_deferred_options): Same.
11089 * pretty-print.h: Same.
11090 * print-rtl.c (debug_bb_n_slim): Same.
11091 * sched-rgn.c (make_pass_sched_fusion): Same.
11092 * tree-cfg.c (verify_gimple_assign_unary): Same.
11093 (verify_gimple_label): Same.
11094 * tree-ssa-operands.c (verify_ssa_operands): Same.
11095 * varasm.c (do_assemble_alias): Same.
11096 (assemble_alias): Same.
11097
11098 2019-06-05 Richard Henderson <rth@twiddle.net>
11099
11100 * config/alpha/alpha.c (direct_return): Move down after
11101 struct machine_function definition; use saved frame_size;
11102 return bool.
11103 (struct machine_function): Add sa_mask, sa_size, frame_size.
11104 (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
11105 (alpha_compute_frame_layout): ... new function.
11106 (TARGET_COMPUTE_FRAME_LAYOUT): New.
11107 (alpha_initial_elimination_offset): Use saved sa_size.
11108 (alpha_vms_initial_elimination_offset): Likewise.
11109 (alpha_vms_can_eliminate): Remove alpha_sa_size call.
11110 (alpha_expand_prologue): Use saved frame data. Merge integer
11111 and fp register save loops.
11112 (alpha_expand_epilogue): Likewise.
11113 (alpha_start_function): Use saved frame data.
11114 * config/alpha/alpha-protos.h (direct_return): Update.
11115 (alpha_sa_size): Remove.
11116
11117 2019-06-05 Eric Botcazou <ebotcazou@adacore.com>
11118
11119 * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
11120 multiplication by a power-of-two value.
11121 (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
11122 and turn the modulo operation into a masking operation.
11123
11124 2019-06-05 Jakub Jelinek <jakub@redhat.com>
11125
11126 PR debug/90733
11127 * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
11128 with VOIDmode inner operands.
11129
11130 2019-06-05 Richard Biener <rguenther@suse.de>
11131
11132 PR middle-end/90726
11133 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
11134 turn an expression graph into a tree.
11135
11136 2019-06-05 Jakub Jelinek <jakub@redhat.com>
11137
11138 * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
11139 member.
11140 (expand_parallel_call): If region->inner->has_lastprivate_conditional,
11141 treat it like explicit monotonic schedule modifier.
11142 (expand_omp_for): Initialize has_lastprivate_conditional.
11143 If fd.lastprivate_conditional != 0, treat it like explicit monotonic
11144 schedule modifier.
11145
11146 * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
11147 references, lookup in in hash map MEM_REF operand instead of the
11148 MEM_REF itself.
11149 (lower_omp_1): When looking for lastprivate conditional assignments,
11150 handle MEM_REFs with REFERENCE_TYPE operands.
11151
11152 * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
11153 on privatization clauses OMP_CLAUSE_DECL is privatized by reference
11154 and references a VLA. Handle references to non-VLAs if is_simd
11155 all privatization clauses like reductions.
11156 (lower_rec_input_clauses) <case do_private, case do_firstprivate>:
11157 If omp_is_reference, use always omp simd arrays and set
11158 DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
11159 fails, emit reference initialization.
11160
11161 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
11162
11163 PR target/89803
11164 * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
11165 _mm_mask_fpclass_sd_mask): New intrinsics.
11166 (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
11167 * config/i386/i386-builtin.def
11168 (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
11169 New builtins.
11170 (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
11171 * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
11172 DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
11173 * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
11174 case QI_FTYPE_V2SF_INT): Ditto.
11175 * config/i386/sse.md
11176 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
11177 Extended to insnstructions with mask operands.
11178
11179 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11180
11181 * config/rs6000/constraints.md (define_register_constraint "wp"):
11182 Delete.
11183 (define_register_constraint "wq"): Delete.
11184 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
11185 (rs6000_init_hard_regno_mode_ok): Adjust.
11186 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
11187 RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
11188 * config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
11189 (define_mode_attr VSa): Delete.
11190 (define_mode_attr VSisa): New.
11191 (rest of file): Adjust.
11192 * doc/md.texi (Machine Constraints): Adjust.
11193
11194 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11195
11196 * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
11197 (define_attr "enabled"): Handle those new isa values.
11198
11199 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11200
11201 * config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
11202 (define_mode_attr VSr5): Delete.
11203 (define_mode_attr VStype_sqrt): Delete.
11204 (define_mode_iterator VSX_SPDP): Delete.
11205 (define_mode_attr VS_spdp_res): Delete.
11206 (define_mode_attr VS_spdp_insn): Delete.
11207 (define_mode_attr VS_spdp_type): Delete.
11208 (*vsx_sqrt<mode>2): Adjust.
11209 (vsx_<VS_spdp_insn>): Delete, split to...
11210 (vsx_xscvdpsp): ... this. New. And...
11211 (vsx_xvcvspdp): ... this. New. And...
11212 (vsx_xvcvdpsp): ... this. New.
11213
11214 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11215
11216 * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
11217 and V2DF.
11218 * config/rs6000/vsx.md (define_mode_attr VSs): Delete.
11219 (rest of file): Adjust.
11220
11221 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11222
11223 * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
11224 (vsx_extract_<mode>_var): Ditto.
11225
11226 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11227
11228 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
11229 with just "wa".
11230
11231 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11232
11233 * config/rs6000/constraints.md (define_register_constraint "ww"):
11234 Delete.
11235 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
11236 (rs6000_init_hard_regno_mode_ok): Adjust.
11237 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
11238 RS6000_CONSTRAINT_ww.
11239 * config/rs6000/rs6000.md: Adjust.
11240 * config/rs6000/vsx.md: Adjust.
11241 * doc/md.texi (Machine Constraints): Adjust.
11242
11243 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11244
11245 * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
11246 (define_mode_attr sd): New.
11247 (define_mode_attr s): New.
11248 (define_mode_attr Ftrad): Delete.
11249 (define_mode_attr Fvsx): Delete.
11250 (define_mode_attr Fs): Delete.
11251 (rest of file): Use the new mode attributes.
11252 * config.rs6000/vsx.md: Use the new mode attributes.
11253
11254 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11255
11256 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
11257 with just "wa".
11258
11259 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11260
11261 * config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
11262 (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
11263 used with VSX_B, VSX_D, or VSX_F, with just "wa".
11264
11265 2019-06-04 Bill Schmidt <wschmidt@linux.ibm.com>
11266
11267 PR target/78263
11268 * config/rs6000/altivec.h: Don't #define vector, pixel, bool for
11269 C++ with strict ANSI requirements.
11270
11271 2019-06-04 Marc Glisse <marc.glisse@inria.fr>
11272
11273 * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
11274 computations when step is 1.
11275
11276 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11277
11278 * config/rs6000/constraints.md (define_register_constraint "wf"):
11279 Delete.
11280 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
11281 (rs6000_init_hard_regno_mode_ok): Adjust.
11282 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
11283 RS6000_CONSTRAINT_wf.
11284 * config/rs6000/rs6000.md: Adjust.
11285 * config/rs6000/vsx.md: Adjust.
11286 * doc/md.texi (Machine Constraints): Adjust.
11287
11288 2019-06-04 Andrew Pinski <apinski@marvell.com>
11289
11290 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
11291 Fix ILP32 value.
11292
11293 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11294
11295 * config/rs6000/constraints.md (define_register_constraint "wd"):
11296 Delete.
11297 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
11298 (rs6000_init_hard_regno_mode_ok): Adjust.
11299 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
11300 RS6000_CONSTRAINT_wd.
11301 * config/rs6000/rs6000.md: Adjust.
11302 * config/rs6000/vsx.md: Adjust.
11303 * doc/md.texi (Machine Constraints): Adjust.
11304
11305 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11306
11307 * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
11308 (rest of file): Adjust.
11309
11310 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11311
11312 * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete.
11313 (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust.
11314 (vsx_splat_<mode>_reg): Adjust.
11315
11316 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11317
11318 * config/rs6000/constraints.md (define_register_constraint "ws"):
11319 Delete.
11320 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
11321 (rs6000_init_hard_regno_mode_ok): Adjust.
11322 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
11323 RS6000_CONSTRAINT_ws.
11324 * config/rs6000/rs6000.md: Adjust.
11325 * config/rs6000/vsx.md: Adjust.
11326 * doc/md.texi (Machine Constraints): Adjust.
11327
11328 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11329
11330 * config/rs6000/constraints.md (define_register_constraint "wv"):
11331 Delete.
11332 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
11333 (rs6000_init_hard_regno_mode_ok): Adjust.
11334 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
11335 RS6000_CONSTRAINT_wv.
11336 * config/rs6000/rs6000.md: Adjust.
11337 * config/rs6000/vsx.md: Adjust.
11338 * doc/md.texi (Machine Constraints): Adjust.
11339
11340 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11341
11342 * config/rs6000/constraints.md (define_register_constraint "wi"):
11343 Delete.
11344 (define_register_constraint "wt"): Delete.
11345 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
11346 (rs6000_init_hard_regno_mode_ok): Adjust.
11347 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
11348 RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt.
11349 * config/rs6000/rs6000.md: Adjust.
11350 * config/rs6000/vsx.md: Adjust.
11351 * doc/md.texi (Machine Constraints): Adjust.
11352
11353 2019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
11354
11355 * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
11356 const.
11357 * config/aarch64/aarch64.c (aarch64_asm_output_external): Call
11358 default_elf_asm_output_external.
11359
11360 2019-06-04 Martin Liska <mliska@suse.cz>
11361
11362 * ipa-icf.c (INCLUDE_LIST): Remove.
11363 (sem_item_optimizer::execute): Remove call to init_wpa.
11364 * ipa-icf.h (init_wpa): Remove.
11365
11366 2019-06-04 Jakub Jelinek <jakub@redhat.com>
11367
11368 * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
11369 conditional on combined for simd.
11370 * omp-low.c (struct omp_context): Add combined_into_simd_safelen0
11371 member.
11372 (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
11373 constructs, don't remove lastprivate_conditional_map, but instead set
11374 ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
11375 to parent construct temporaries.
11376 (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
11377 like !ctx->lastprivate_conditional_map.
11378 (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
11379 use up->outer context instead of up.
11380 * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
11381 gimple_omp_for_combined_p.
11382 (expand_omp_for_static_nochunk): Likewise.
11383 (expand_omp_for_static_chunk): Add forgotten cond_var bump that was
11384 probably moved over into expand_omp_for_generic rather than being copied
11385 there.
11386
11387 2019-06-04 Martin Liska <mliska@suse.cz>
11388
11389 * value-prof.c (dump_histogram_value): Fix typo.
11390 (gimple_mod_subtract_transform): Likewise.
11391
11392 2019-06-04 Richard Biener <rguenther@suse.de>
11393
11394 PR middle-end/90726
11395 * tree-chrec.c (chrec_contains_symbols): Add to visited.
11396 (tree_contains_chrecs): Likewise.
11397 (chrec_contains_symbols_defined_in_loop): Move here and avoid
11398 exponential behaivor from ...
11399 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
11400 ... here.
11401 (expression_expensive_p): Avoid exponential behavior and compute
11402 expanded size, rejecting any expansion.
11403 * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove.
11404 (idx_contains_abnormal_ssa_name_p): Likewise.
11405 (contains_abnormal_ssa_name_p_1): New helper for walk_tree.
11406 (contains_abnormal_ssa_name_p): Simplify and use
11407 walk_tree_without_duplicates.
11408
11409 2019-06-04 Richard Biener <rguenther@suse.de>
11410
11411 PR tree-optimization/90738
11412 Revert
11413 2019-06-03 Richard Biener <rguenther@suse.de>
11414
11415 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
11416 full reference tree and record in ref->ref.
11417 (vn_reference_lookup_3): Pass in original ref to
11418 ao_ref_init_from_vn_reference.
11419 (vn_reference_lookup): Likewise.
11420 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
11421 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
11422 Handle non-decl bases in the original reference.
11423
11424 2019-06-04 Martin Liska <mliska@suse.cz>
11425
11426 * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count
11427 number of references.
11428 (sem_item_optimizer::do_congruence_step):
11429 (sem_item_optimizer::worklist_push): Dump how references
11430 a class has.
11431 (sem_item_optimizer::worklist_pop): Use heap.
11432 (sem_item_optimizer::process_cong_reduction): Likewise.
11433 * ipa-icf.h: Use fibonacci_heap insteam of std::list.
11434
11435 2019-06-04 Martin Liska <mliska@suse.cz>
11436
11437 * ipa-icf.h (struct sem_usage_pair_hash): New.
11438 (sem_usage_pair_hash::hash): Likewise.
11439 (sem_usage_pair_hash::equal): Likewise.
11440 (struct sem_usage_hash): Likewise.
11441 * ipa-icf.c (sem_item::sem_item): Initialize
11442 referenced_by_count.
11443 (sem_item::add_reference): Register a reference
11444 in ref_map and not in target->usages.
11445 (sem_item::setup): Remove initialization of
11446 dead vectors.
11447 (sem_item::~sem_item): Remove usage of dead vectors.
11448 (sem_item::dump): Remove dump of references.
11449 (sem_item_optimizer::sem_item_optimizer): Initialize
11450 m_references.
11451 (sem_item_optimizer::read_section): Remove useless
11452 dump.
11453 (sem_item_optimizer::parse_funcs_and_vars): Likewise here.
11454 (sem_item_optimizer::build_graph): Pass m_references
11455 to ::add_reference.
11456 (sem_item_optimizer::verify_classes): Remove usage of dead
11457 vectors.
11458 (sem_item_optimizer::traverse_congruence_split): Return true
11459 when a class is split.
11460 (sem_item_optimizer::do_congruence_step_for_index): Use
11461 hash_map for look up of (sem_item *, index). That brings
11462 significant speed up.
11463 (sem_item_optimizer::do_congruence_step): Return true
11464 when a split is done.
11465 (congruence_class::is_class_used): Use referenced_by_count.
11466
11467 2019-06-04 Alan Modra <amodra@gmail.com>
11468
11469 PR target/90689
11470 * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge
11471 error.
11472
11473 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
11474
11475 * config/rs6000/rs6000.h (MASK_MFPGPR): Delete.
11476 * config/rs6000/rs6000.c (direct_move_p): Adjust.
11477 (rs6000_secondary_reload_simple_move): Adjust.
11478 (rs6000_opt_masks): Neuter the "mfpgpr" option.
11479 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
11480 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust
11481 comment.
11482 (power6x): Adjust.
11483 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust.
11484 (floatunssi<mode>2_lfiwzx): Adjust.
11485 (fix_trunc<mode>si2_stfiwx): Adjust.
11486 (fixuns_trunc<mode>si2_stfiwx): Adjust.
11487 * config/rs6000/rs6000.opt (mno-mfpgpr): New.
11488 (mfpgpr): Mark as deprecated.
11489 * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr.
11490 (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust.
11491 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr.
11492
11493 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
11494
11495 * config/rs6000/constraints.md (define_register_constraint "wg"):
11496 Delete.
11497 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
11498 RS6000_CONSTRAINT_wg.
11499 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
11500 (rs6000_init_hard_regno_mode_ok): Adjust.
11501 * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64):
11502 Delete "wg" alternatives.
11503 * doc/md.texi (Machine Constraints): Adjust.
11504
11505 2019-06-03 Alan Modra <amodra@gmail.com>
11506
11507 * bb-reorder.c (copy_bb_p): Don't overflow size calculation.
11508 (get_uncond_jump_length): Assert length less than INT_MAX and
11509 non-negative.
11510
11511 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
11512
11513 PR middle-end/64242
11514 * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule
11515 block.
11516 (expand_builtin_nonlocal_goto): Likewise.
11517
11518 2019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
11519
11520 * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
11521 (aarch64_asm_output_external): Declare.
11522 * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
11523 (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
11524 (aarch64_asm_output_alias): New.
11525 (aarch64_asm_output_external): New.
11526 * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
11527 (ASM_OUTPUT_EXTERNAL): Define.
11528
11529 2019-06-03 Aldy Hernandez <aldyh@redhat.com>
11530 * tree-vrp.h (value_range_base::nonzero_p): New.
11531 (value_range_base::set_nonnull): Rename to...
11532 (value_range_base::set_nonzero): ...this.
11533 (value_range_base::set_null): Rename to...
11534 (value_range_base::set_zero): ...this.
11535 (value_range::set_nonnull): Remove.
11536 (value_range::set_null): Remove.
11537 * tree-vrp.c (range_is_null): Remove.
11538 (range_is_nonnull): Remove.
11539 (extract_range_from_binary_expr): Use value_range_base::*zero_p
11540 instead of range_is_*null.
11541 (extract_range_from_unary_expr): Same.
11542 (value_range_base::set_nonnull): Rename to...
11543 (value_range_base::set_nonzero): ...this.
11544 (value_range::set_nonnull): Remove.
11545 (value_range_base::set_null): Rename to...
11546 (value_range_base::set_zero): ...this.
11547 (value_range::set_null): Remove.
11548 (extract_range_from_binary_expr): Rename set_*null uses to
11549 set_*zero.
11550 (extract_range_from_unary_expr): Same.
11551 (union_helper): Same.
11552 * vr-values.c (get_value_range): Use set_*zero instead of
11553 set_*null.
11554 (vr_values::extract_range_from_binary_expr): Same.
11555 (vr_values::extract_range_basic): Same.
11556
11557 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
11558
11559 PR driver/90684
11560 * opts.c (parse_and_check_align_values): Allow 4 alignment values.
11561
11562 2019-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11563
11564 * config/aarch64/iterators.md (MAX_OPP): New code attr.
11565 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3):
11566 Rename to...
11567 (aarch64_<su>abd<mode>_3): ... This.
11568 (<sur>sadv16qi): Add TARGET_DOTPROD expansion.
11569
11570 2019-06-03 Richard Biener <rguenther@suse.de>
11571
11572 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
11573 full reference tree and record in ref->ref.
11574 (vn_reference_lookup_3): Pass in original ref to
11575 ao_ref_init_from_vn_reference.
11576 (vn_reference_lookup): Likewise.
11577 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
11578 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
11579 Handle non-decl bases in the original reference.
11580
11581 2019-06-03 Martin Liska <mliska@suse.cz>
11582
11583 * doc/generic.texi: Remove Java Trees.
11584
11585 2019-06-03 Martin Liska <mliska@suse.cz>
11586
11587 * fold-const.c (operand_equal_p): Fix typo as compare_tree_int
11588 returns 0 when operands are equal.
11589
11590 2019-06-03 Richard Biener <rguenther@suse.de>
11591
11592 PR tree-optimization/90716
11593 * tree-loop-distribution.c (destroy_loop): Process blocks in
11594 correct order.
11595
11596 2019-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11597
11598 PR target/88837
11599 * vector-builder.h (vector_builder::count_dups): New method.
11600 * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
11601 Declare prototype.
11602 * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @.
11603 (vec_init<mode><Vel>): New pattern.
11604 * config/aarch64/aarch64.c (emit_insr): New function.
11605 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
11606 (aarch64_sve_expand_vector_init_insert_elems): Likewise.
11607 (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise.
11608 (aarch64_sve_expand_vector_init): Define two overloaded functions.
11609
11610 2019-06-03 Alejandro Martinez <alejandro.martinezvicente@arm.com>
11611
11612 PR tree-optimization/90681
11613 * internal-fn.c (mask_load_direct): Mark as non-vectorizable again.
11614 * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a
11615 special case for SLP, but fail on non-groupped loads.
11616
11617 2019-06-03 Martin Liska <mliska@suse.cz>
11618
11619 * cfg.c (debug): Use TDF_DETAILS for debug and
11620 print edge info only once.
11621
11622 2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org>
11623
11624 PR fortran/90539
11625 * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
11626
11627 2019-06-01 Martin Sebor <msebor@redhat.com>
11628
11629 PR middle-end/90694
11630 * tree-pretty-print.c (dump_generic_node): Add parentheses.
11631
11632 2019-05-31 Jan Hubicka <jh@suse.cz>
11633
11634 * alias.c: Include ipa-utils.h.
11635 (get_alias_set): Try to complete ODR type via ODR type hash lookup.
11636 * ipa-devirt.c (prevailing_odr_type): New.
11637 * ipa-utils.h (previaling_odr_type): Declare.
11638
11639 2019-05-31 H.J. Lu <hongjiu.lu@intel.com>
11640 Hongtao Liu <hongtao.liu@intel.com>
11641
11642 PR target/89355
11643 * config/i386/i386-features.c (rest_of_insert_endbranch): Remove
11644 NOTE_INSN_DELETED_LABEL check.
11645
11646 2019-05-31 Prachi Godbole <prachi.godbole@imgtec.com>
11647 Robert Suchanek <robert.suchanek@mips.com>
11648
11649 * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
11650 and 3rd operands of the fmadd/fmsub/maddv builtin.
11651
11652 2019-05-31 Jakub Jelinek <jakub@redhat.com>
11653
11654 * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define.
11655 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
11656 on OMP_SIMD if not nested inside of worksharing loop that also has
11657 lastprivate conditional clause for the same decl.
11658 (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed.
11659 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also
11660 on simd.
11661 (lower_rec_input_clauses): Likewise. Handle lastprivate conditional
11662 on simd construct.
11663 (lower_lastprivate_conditional_clauses): Handle lastprivate conditional
11664 on simd construct.
11665 (lower_lastprivate_clauses): Likewise.
11666 (lower_omp_sections): Call lower_lastprivate_conditional_clauses before
11667 calling lower_rec_input_clauses.
11668 (lower_omp_for): Likewise.
11669 (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_
11670 clause on simd construct.
11671 * omp-expand.c (expand_omp_simd): Initialize cond_var if
11672 OMP_CLAUSE__CONDTEMP_ clause is present.
11673
11674 * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
11675 ivar and lvar.
11676
11677 2019-05-31 Xiong Hu Luo <luoxhu@linux.ibm.com>
11678
11679 PR c/43673
11680 * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
11681 TEX_D32, TEX_D64 or TEX_D128.
11682
11683 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
11684
11685 * match.pd (~(vec?cst1:cst2)): New transformation.
11686
11687 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
11688
11689 * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
11690 ((size_t)(A /[ex] B) CMP C): New transformation.
11691
11692 2019-05-31 Richard Sandiford <richard.sandiford@arm.com>
11693
11694 * doc/md.texi: Document define_insn_and_rewrite.
11695 * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code.
11696 * gensupport.c (queue_elem): Update comment.
11697 (replace_operands_with_dups): New function.
11698 (gen_rewrite_sequence): Likewise.
11699 (process_rtx): Handle DEFINE_INSN_AND_REWRITE.
11700 * read-rtl.c (apply_subst_iterator): Likewise.
11701 (add_condition_to_rtx, named_rtx_p): Likewise.
11702 (rtx_reader::read_rtx_operand): Likewise.
11703 * config/aarch64/aarch64-sve.md
11704 (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to...
11705 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use
11706 define_insn_and_rewrite.
11707 (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites.
11708 Remove separate define_split.
11709
11710 2019-05-31 Jan Hubicka <jh@suse.cz>
11711
11712 * tree-ssa-alias.c (type_has_components_p): New function.
11713 (aliasing_component_refs_p): Use it.
11714
11715 2019-05-31 Martin Liska <mliska@suse.cz>
11716
11717 * gdbhooks.py: Add const_tree to TreePrinter.
11718
11719 2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
11720
11721 PR debug/86964
11722 * common.opt (feliminate-unused-debug-symbols): Enable by default.
11723 * doc/invoke.texi (Debugging Options): Document new default of
11724 -feliminate-unused-debug-symbols and remove restriction to 'stabs'.
11725
11726 2019-05-31 Jakub Jelinek <jakub@redhat.com>
11727
11728 PR tree-optimization/90671
11729 * tree-ssa-threadupdate.c (ssa_create_duplicates): If
11730 template_block used to be empty on the first call, don't use
11731 gsi_split_seq_after and gsi_insert_seq_after, but remember whole
11732 seq with bb_seq and set it with set_bb_seq.
11733
11734 2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
11735
11736 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
11737
11738 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
11739 Michael Meissner <meissner@linux.ibm.com>
11740
11741 * config/rs6000/predicates.md (pcrel_address): New define_predicate.
11742 (prefixed_mem_operand): Likewise.
11743 (non_prefixed_mem_operand): Likewise.
11744 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
11745 prototype.
11746 * config/rs6000/rs6000.c (print_operand_address): Handle
11747 PC-relative addresses.
11748 (mode_supports_prefixed_address_p): New function.
11749 (rs6000_prefixed_address): New function.
11750 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
11751 (SYMBOL_REF_PCREL_P): Likewise.
11752
11753 2019-05-30 Jakub Jelinek <jakub@redhat.com>
11754
11755 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
11756 (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
11757 (gimplify_omp_for): If worksharing loop with lastprivate conditional
11758 is nested inside of parallel region, add _condtemp_ clause to both.
11759 * tree-nested.c (convert_nonlocal_omp_clauses,
11760 convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
11761 assertion failure.
11762 * omp-general.h (struct omp_for_data): Add have_pointer_condtemp
11763 member.
11764 * omp-general.c (omp_extract_for_data): Compute it.
11765 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
11766 (lower_rec_input_clauses): Likewise.
11767 (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
11768 clause is already present, just add one further one after it.
11769 (lower_lastprivate_clauses): Handle cond_ptr with array type.
11770 (lower_send_shared_vars): Clear _condtemp_ vars.
11771 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
11772 or section or taskgroup.
11773 * omp-expand.c (determine_parallel_type): Disallow combining only if
11774 first OMP_CLAUSE__CONDTEMP_ has pointer type. Disallow combining
11775 of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
11776 (expand_omp_for_generic, expand_omp_for_static_nochunk,
11777 expand_omp_for_static_chunk, expand_omp_for): Use
11778 fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
11779 determine if a special set of API routines are needed and if condtemp
11780 needs to be initialized, while always initialize cond_var if
11781 fd->lastprivate_conditional is non-zero.
11782
11783 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
11784 Michael Meissner <meissner@linux.ibm.com>
11785
11786 * config/rs6000/constraints.md (eI): New constraint.
11787 * config/rs6000/predicates.md (cint34_operand): New predicate.
11788 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
11789 (SIGNED_34BIT_OFFSET_P): Likewise.
11790 * doc/md.texi (eI): Document constraint.
11791
11792 2019-05-30 Sylvia Taylor <sylvia.taylor@arm.com>
11793
11794 * config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
11795
11796 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
11797 Michael Meissner <meissner@linux.ibm.com>
11798
11799 * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
11800 (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
11801 (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
11802 (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
11803 (OTHER_FUTURE_MASKS): Likewise.
11804 (POWERPC_MASKS): Likewise.
11805 * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
11806 specified without -mprefixed-addr or -mcpu=future. Error if
11807 -mprefixed-addr is specified without -mcpu=future.
11808 (rs6000_opt_masks): Add entry for prefixed-addr.
11809 * rs6000.opt (mprefixed-addr): New option.
11810
11811 2019-05-30 Sam Tebbs <sam.tebbs@arm.com>
11812
11813 * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
11814 cfun->is_thunk check.
11815
11816 2019-05-30 Jakub Jelinek <jakub@redhat.com>
11817
11818 * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
11819 to length.
11820
11821 2019-05-30 Martin Liska <mliska@suse.cz>
11822
11823 * gdbinit.in: Fix 'ptc' command. Add trt
11824 that prints TREE_TYPE($).
11825
11826 2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com>
11827 Alan Modra <amodra@gmail.com>
11828
11829 * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
11830 calls here...
11831 (rs6000_indirect_call_template_1): ...and here.
11832 (rs6000_pltseq_template): Handle plt_pcrel34. Rework tocsave,
11833 plt16_ha, plt16_lo, mtctr indirect calls. Use
11834 rs6000_pltseq_enum.
11835 (rs6000_decl_ok_for_sibcall): New function.
11836 (rs6000_function_ok_for_sibcall): Refactor.
11837 (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
11838 (rs6000_call_aix): Don't emit toc restore rtl for indirect calls
11839 when pcrel. Reorganize.
11840 (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
11841 * rs6000.h (rs6000_pltseq_enum): New enum.
11842 * rs6000.md (UNSPEC_PLT_PCREL): New unspec.
11843 (*pltseq_tocsave): Use rs6000_pltseq_enum.
11844 (*pltseq_plt16_ha): Likewise.
11845 (*pltseq_plt16_lo): Likewise.
11846 (*pltseq_mtctr): Likewise.
11847 (*pltseq_plt_pcrel): New insn.
11848 (*call_local_aix): Handle @notoc calls.
11849 (*call_value_local_aix): Likewise.
11850 (*call_nonlocal_aix): Adjust lengths for pcrel calls.
11851 (*call_value_nonlocal_aix): Likewise.
11852 (*call_indirect_pcrel): New insn.
11853 (*call_value_indirect_pcrel): Likewise.
11854
11855 2019-05-29 Uroš Bizjak <ubizjak@gmail.com>
11856
11857 * config/i386/sse.md (*save_multiple<mode>): Rename from
11858 save_multiple<mode>.
11859 (*restore_multiple<mode>): Rename from restore_multiple<mode>.
11860 (*restore_multiple_and_return<mode>): Rename from
11861 restore_multiple_and_return<mode>.
11862 (*restore_multiple_leave_return<mode>): Rename from
11863 restore_multiple_leave_return<mode>.
11864
11865 2019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp>
11866
11867 * config.gcc (rx-*-linux*): New target.
11868 * config/rx/elf.opt: New file.
11869 * config/rx/linux.h: Likewise.
11870 * config/rx/t-linux: Likewise.
11871 * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
11872 make it zero.
11873 * config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
11874 (ASM_APP_OFF): Likewise.
11875 * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
11876 moved elsewhere.
11877
11878 2019-05-29 Jan Hubicka <jh@suse.cz>
11879
11880 * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
11881 variants are pointer equivalent.
11882
11883 2019-05-29 Alejandro Martinez <alejandro.martinezvicente@arm.com>
11884
11885 * config/aarch64/aarch64-c.c: Added TARGET_SVE2.
11886 * config/aarch64/aarch64-sve2.md: New file.
11887 (<u>avg<mode>3_floor): New pattern.
11888 (<u>avg<mode>3_ceil): Likewise.
11889 (*<sur>h<addsub><mode>): Likewise.
11890 * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2.
11891 * config/aarch64/aarch64.md: Include aarch64-sve2.md.
11892
11893 2019-05-29 Jakub Jelinek <jakub@redhat.com>
11894
11895 PR bootstrap/90543
11896 * optc-save-gen.awk: In cl_optimization_print, use correct condition
11897 for var_opt_string printing. In cl_optimization_print_diff, print
11898 (null) instead of invoking undefined behavior if one of the
11899 var_opt_string pointers is NULL and use && instead of first || in the
11900 guarding condition. For var_target_other options, handle const char *
11901 target variables similarly to const char * optimize node variables.
11902
11903 2019-05-29 Sam Tebbs <sam.tebbs@arm.com>
11904
11905 * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
11906 AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
11907 * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
11908 Add autib1716 and pacib1716 initialisation.
11909 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
11910 for autib1716 and pacib1716.
11911 * config/aarch64/aarch64-protos.h (aarch64_key_type,
11912 aarch64_post_cfi_startproc): Define.
11913 * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
11914 * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
11915 aarch64_handle_pac_ret_protection): Set default sign key to A.
11916 * config/aarch64/aarch64.c (aarch64_expand_epilogue,
11917 aarch64_expand_prologue): Add check for b-key.
11918 * config/aarch64/aarch64.c (aarch64_ra_sign_key,
11919 aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
11920 * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
11921 * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
11922 * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
11923 UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
11924 UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
11925 * config/aarch64/aarch64.md (do_return): Add check for b-key.
11926 * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
11927 pauth_hint_num_a with pauth_hint_num.
11928 * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
11929 pauth_hint_num_a with pauth_hint_num.
11930 * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
11931 * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
11932 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
11933 * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
11934 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
11935 * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
11936 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
11937 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
11938 * config/aarch64/iterators.md (pauth_hint_num_a): Replace
11939 UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
11940 UNSPEC_AUTIA1716 respectively.
11941 * config/aarch64/iterators.md (pauth_hint_num_a): Rename to
11942 pauth_hint_num and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP,
11943 UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
11944 * doc/invoke.texi (-mbranch-protection): Add b-key type.
11945 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
11946 UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
11947
11948 2019-05-29 Jakub Jelinek <jakub@redhat.com>
11949
11950 * gimplify.c (struct gimplify_omp_ctx): Add clauses member.
11951 (gimplify_scan_omp_clauses): Initialize ctx->clauses.
11952 (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
11953 explicit clause on combined parallel into implicit shared clause.
11954 (gimplify_adjust_omp_clauses): Move lastprivate conditional clause
11955 and firstprivate if the decl has one too from combined parallel to
11956 the worksharing construct.
11957
11958 2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com>
11959 Michael Meissner <meissner@linux.ibm.com>
11960
11961 * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
11962
11963 2019-05-28 Michael Meissner <meissner@linux.ibm.com>
11964
11965 * rtl.h (LABEL_REF_P): New #define.
11966
11967 2019-05-28 John David Anglin <danglin@gcc.gnu.org>
11968
11969 * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
11970
11971 2019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com>
11972
11973 * internal-fn.c: Marked mask_load_direct as vectorizable.
11974 * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo.
11975 * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be
11976 combined even if masks different with allow_slp_p param.
11977 (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups.
11978 * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to
11979 dissolve SLP-only vectorizable groups when SLP has been discarded.
11980 (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed.
11981 * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads
11982 masks.
11983 (vect_build_slp_tree_1): Fixed comment typo.
11984 (vect_build_slp_tree_2): Include masks from masked loads in SLP tree.
11985 * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked
11986 loads for SLP only.
11987 * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only
11988 vectorizable.
11989 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise.
11990
11991 2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11992
11993 * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
11994 Remove obsolete use_thunk reference.
11995 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
11996 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
11997 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
11998 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
11999 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
12000 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
12001 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
12002 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
12003 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
12004
12005 2019-05-28 Nathan Sidwell <nathan@acm.org>
12006
12007 * tree.h (IDENTIFIER_ANON_P): New.
12008 (anon_aggrname_format, anon_aggname_p): Don't declare.
12009 (make_anon_name): Declare.
12010 * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
12011 (hash_tree): Likewise.
12012 * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
12013 * tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
12014 (anon_cnt, make_anon_name): New.
12015
12016 2019-05-28 Martin Liska <mliska@suse.cz>
12017
12018 PR other/90315
12019 * opts-global.c (decode_options): Print help for all
12020 help_option_arguments.
12021 * opts.c (print_help): Add new argument.
12022 (common_handle_option): Remember all values into
12023 help_option_arguments.
12024 * opts.h (print_help): Add new argument.
12025
12026 2019-05-28 Martin Liska <mliska@suse.cz>
12027
12028 PR ipa/90555
12029 * ipa-icf-gimple.c (func_checker::compare_loops): New function.
12030 * ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
12031 (func_checker::compare_bb): Call compare_loops.
12032
12033 2019-05-27 Jakub Jelinek <jakub@redhat.com>
12034
12035 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
12036 on sections construct.
12037 * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
12038 construct.
12039 (lower_omp_sections): Handle lastprivate conditional.
12040 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
12041 lastprivate_conditional_map.
12042 * omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
12043
12044 * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
12045 critical, taskgroup and section regions when looking for a region
12046 with non-NULL lastprivate_conditional_map.
12047
12048 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
12049
12050 * config/i386/i386.c (ix86_gen_add3): Remove indirect function.
12051 (*ix86_gen_sub3): Ditto.
12052 (*ix86_gen_sub3_carry): Ditto.
12053 (*ix86_gen_one_cmpl2): Ditto.
12054 (*ix86_gen_andsp): Ditto.
12055 (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
12056 (gen_and2_insn): New static function.
12057 (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
12058 Use gen_add3_insn instead of ix86_gen_add3.
12059 (ix86_expand_split_stack_prologue): Use gen_add2_insn
12060 instead of ix86_gen_add3.
12061 (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
12062 Use gen_sub3_insn instead of ix86_gen_sub3.
12063 * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
12064 instead of ix86_gen_add3.
12065 (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
12066 ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3.
12067 (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
12068 * config/i386/i386-options.c (ix86_option_override_internal):
12069 Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
12070 ix86_gen_one_cmpl2 and ix86_gen_andsp.
12071
12072 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
12073
12074 * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
12075 and DW_OP_GNU_const_index opcodes.
12076
12077 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
12078
12079 * config/i386/i386.h (STACK_SIZE_MODE): Define.
12080
12081 2019-05-27 Richard Biener <rguenther@suse.de>
12082
12083 PR tree-optimization/90637
12084 * tree-ssa-sink.c (statement_sink_location): Honor the
12085 computed sink location for single-uses.
12086
12087 2019-05-27 Richard Biener <rguenther@suse.de>
12088
12089 PR middle-end/90610
12090 * match.pd (vec_perm): Avoid clobbering op0 when not generating
12091 a bit-insert.
12092
12093 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
12094
12095 * config/i386/i386.md (@sub<mode>3_carry): Rename
12096 from sub<mode>3_carry.
12097 (@leave_<mode>): New expander.
12098 (*leave): Rename from leave.
12099 (*leave_rex64): Rename from leave_rex64.
12100 (@monitorx_<mode>): Rename from monitorx_<mode>.
12101 (@clzero_<mode>): Rename from clzero_<mode>.
12102 * config/i386/sse.md (@sse3_monitor_<mode>): Rename
12103 from sse3_monitor_<mode>.
12104 * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function.
12105 (*ix86_gen_leave): Ditto.
12106 (*ix86_gen_monitor): Ditto.
12107 (*ix86_gen_monitorx): Ditto.
12108 (*ix86_gen_clzero): Ditto.
12109 (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
12110 * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1):
12111 Use gen_sub3_carry instead of ix86_gen_sub3_carry.
12112 (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>:
12113 Use gen_sse3_monitor instead of ix86_gen_monitor.
12114 <case IX86_BUILTIN_MONITORX>: Use gen_monitorx
12115 instead of ix86_gen_monitorx.
12116 <case IX86_BUILTIN_CLZERO>: Use gen_clzero
12117 instead of ix86_gen_clzero.
12118 * config/i386/i386-options.c (ix86_option_override_internal):
12119 Do not initialize ix86_gen_leave, ix86_gen_sub3_carry,
12120 ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero.
12121
12122 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
12123
12124 * config/i386/i386.md (@tls_global_dynamic_64_<mode>):
12125 Rename from tls_global_dynamic_64_<mode>.
12126 (@tls_local_dynamic_base_64_<mode>): Rename from
12127 tls_local_dynamic_base_64_<mode>.
12128 * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
12129 Remove indirect function.
12130 (*ix86_gen_tls_local_dynamic_base_64): Ditto.
12131 (legitimize_tls_address): Use gen_tls_global_dynamic_64 function
12132 instead of ix86_gen_tls_global_dynamic_64.
12133 Use gen_tls_local_dynamic_base_64 instead of
12134 ix86_gen_tls_local_dynamic_base_64.
12135 * config/i386/i386-options.c (ix86_option_override_internal):
12136 Do not initialize ix86_gen_tls_global_dynamic_64 and
12137 ix86_gen_tls_local_dynamic_base_64.
12138
12139 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
12140
12141 * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
12142 Rename from pro_epilogue_adjust_stack_<mode>_add.
12143 (@pro_epilogue_adjust_stack_sub_<mode>)
12144 Rename from pro_epilogue_adjust_stack_<mode>_sub.
12145 (@allocate_stack_worker_probe_<mode>):
12146 Rename from allocate_stack_worker_probe_<mode>.
12147 (allocate_stack): Use gen_allocate_stack_worker_probe.
12148 (probe_stack): Use gen_probe_stack_1.
12149 (@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
12150 (@adjust_stack_and_probe_<mode>): Rename from
12151 adjust_stack_and_probe<mode>.
12152 (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
12153 (stack_protect_set): Use gen_stack_protect_set_1.
12154 (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
12155 (stack_protect_test): Use gen_stack_protect_test_1.
12156 (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
12157 * config/i386/i386.c (*ix86_gen_allocate_stack_worker):
12158 Remove indirect function.
12159 (*ix86_gen_adjust_stack_and_probe): Ditto.
12160 (*ix86_gen_probe_stack_range): Ditto.
12161 (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
12162 instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
12163 (ix86_adjust_stack_and_probe_stack_clash): Use
12164 gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
12165 (ix86_adjust_stack_and_probe): Ditto.
12166 (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
12167 of ix86_gen_probe_stack_range.
12168 (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub
12169 instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
12170 * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
12171 Include insn-opinit.h. Use code_for_stack_protect_test_1 instead of
12172 CODE_FOR_stack_protect_test_{si,di}.
12173 * config/i386/i386-options.c (ix86_option_override_internal):
12174 Do not initialize ix86_gen_allocate_stack_worker,
12175 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
12176
12177 2019-05-26 Gerald Pfeifer <gerald@pfeifer.com>
12178
12179 * doc/invoke.texi (Link Options): Many editorial changes around
12180 -flinker-output.
12181
12182 2019-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12183
12184 * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
12185 pre-Solaris 11 referene and most Studio compiler details.
12186
12187 2019-05-24 John David Anglin <danglin@gcc.gnu.org>
12188
12189 PR target/90530
12190 * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
12191 DImode to SImode in floating-point registers on 64-bit target.
12192 * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
12193 register_operand in xmpyu patterns.
12194
12195 2019-05-24 Jakub Jelinek <jakub@redhat.com>
12196
12197 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
12198 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
12199 OMP_CLAUSE__REDUCTEMP_.
12200 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
12201 OMP_CLAUSE__CONDTEMP_.
12202 (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
12203 * tree-pretty-print.c (dump_omp_clause): Likewise.
12204 * tree-nested.c (convert_nonlocal_omp_clauses,
12205 convert_local_omp_clauses): Likewise.
12206 * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
12207 instead of decimal. Add GOVD_LASTPRIVATE_CONDITIONAL.
12208 (gimplify_scan_omp_clauses): Don't reject lastprivate conditional
12209 on OMP_FOR.
12210 (gimplify_omp_for): Warn and disable conditional modifier from
12211 lastprivate on loop iterators.
12212 * omp-general.h (struct omp_for_data): Add lastprivate_conditional
12213 member.
12214 * omp-general.c (omp_extract_for_data): Initialize it.
12215 * omp-low.c (struct omp_context): Add lastprivate_conditional_map
12216 member.
12217 (delete_omp_context): Delete it.
12218 (lower_lastprivate_conditional_clauses): New function.
12219 (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
12220 handle lastprivate conditional clauses.
12221 (lower_reduction_clauses): Add CLIST argument, emit it into
12222 the critical section if any.
12223 (lower_omp_sections): Adjust lower_lastprivate_clauses and
12224 lower_reduction_clauses callers.
12225 (lower_omp_for_lastprivate): Add CLIST argument, pass it through
12226 to lower_lastprivate_clauses.
12227 (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
12228 lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
12229 clist into a critical section if not emitted there already by
12230 lower_reduction_clauses.
12231 (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
12232 callers.
12233 (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
12234 conditional variables.
12235 * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
12236 clause is present.
12237 (expand_omp_for_generic, expand_omp_for_static_nochunk,
12238 expand_omp_for_static_chunk): Handle lastprivate conditional.
12239 (expand_omp_for): Handle fd.lastprivate_conditional like
12240 fd.have_reductemp.
12241
12242 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
12243
12244 * config/gcn/gcn-run.c (main): Set a non-zero return value if the
12245 kernel does not exit cleanly.
12246 * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.
12247
12248 2019-05-24 Jason Merrill <jason@redhat.com>
12249
12250 Revert:
12251 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
12252
12253 2019-05-24 Richard Biener <rguenther@suse.de>
12254
12255 PR testsuite/90607
12256 * tree-loop-distribution.c (struct partition): Add location
12257 member.
12258 (partition_alloc): Initialize all fields.
12259 (generate_memset_builtin): Use the location recorded in the
12260 partition for the generated call.
12261 (generate_memcpy_builtin): Likewise.
12262 (classify_partition): Record the location of a single store
12263 as location for the partition.
12264
12265 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
12266
12267 * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
12268 for lo-part.
12269
12270 2019-05-24 Matthew Malcomson <matthew.malcomson@arm.com>
12271
12272 PR target/90588
12273 * common/config/aarch64/aarch64-common.c
12274 (aarch64_rewrite_selected_cpu): Change local temporary variable
12275 type from unsigned long to uint64_t.
12276 * config/aarch64/aarch64-protos.h (aarch64_parse_extension,
12277 aarch64_get_extension_string_for_isa_flags): Change declaration to
12278 match new definition by replacing unsigned long with uint64_t.
12279
12280 2019-05-24 Jakub Jelinek <jakub@redhat.com>
12281
12282 PR target/90568
12283 * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
12284 gen_attr_type just once instead of 4-7 times. Formatting fixes.
12285 Handle stack_protect_test_<mode> codegen similarly to corresponding
12286 sub instruction.
12287
12288 2019-05-23 Iain Sandoe <iain@sandoe.co.uk>
12289
12290 * config/i386/darwin.h: Reject -mfentry*.
12291 * doc/sourcebuild.texi: Document mfentry target support.
12292
12293 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
12294
12295 * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
12296 Rename to rs6000_global_entry_point_prologue_needed_p. Return
12297 false for PC-relative functions.
12298 (rs6000_output_function_prologue): Change called function name to
12299 rs6000_global_entry_point_prologue_needed_p. Emit ".localentry
12300 name,1" for PC-relative functions.
12301 (rs6000_elf_declare_function_name): Change called function name to
12302 rs6000_global_entry_point_prologue_needed_p.
12303
12304 2019-05-23 Uroš Bizjak <ubizjak@gmail.com>
12305
12306 PR target/90552
12307 * config/i386/i386.c (gen_rtx_cost):
12308 Use ix86_tune_cost instead of ix86_cost.
12309
12310 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
12311 Michael Meissner <meissner@linux.ibm.com>
12312 Segher Boessenkool <segher@kernel.crashing.org>
12313
12314 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
12315 OPTION_MASK_PCREL.
12316 (POWERPC_MASKS): Add OPTION_MASK_PCREL.
12317 * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
12318 (rs6000_fndecl_pcrel_p): Likewise.
12319 * config/rs6000/rs6000.c (rs6000_option_override_internal): Report
12320 error if -mpcrel is requested without -mcpu=future.
12321 (rs6000_opt_masks): Add entry for pcrel.
12322 (rs6000_fndecl_pcrel_p): New function.
12323 (rs6000_pcrel_p): Likewise.
12324 * config/rs6000/rs6000.opt (mpcrel): New option.
12325 * doc/invoke.texi: Document -mpcrel and -mno-pcrel.
12326
12327 2019-05-23 Jan Hubicka <jh@suse.cz>
12328 Martin Liska <mliska@suse.cz>
12329
12330 PR tree-optimization/90576
12331 * tree-ssa-alias.c (compare_sizes): Remove dead calls to
12332 poly_int_tree_p.
12333 (aliasing_component_refs_p): Fix three way size compare conditional;
12334 give up earlier in case we can not decide on equivalence.
12335
12336 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
12337 Michael Meissner <meissner@linux.ibm.com>
12338 Segher Boessenkool <segher@kernel.crashing.org>
12339
12340 * config.gcc: Add future cpu.
12341 * config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
12342 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
12343 #define.
12344 (POWERPC_MASKS): Add OPTION_MASK_FUTURE.
12345 (RS6000_CPU): New instantiation for future cpu.
12346 * config/rs6000/rs6000-opts.h (enum processor_type): Add
12347 PROCESSOR_FUTURE.
12348 * config/rs6000/rs6000-string.c (expand_compare_loop): Treat
12349 PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
12350 * config/rs6000/rs6000-tables.opt: Regenerate.
12351 * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
12352 PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
12353 (rs6000_machine_from_flags): Handle future cpu.
12354 (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
12355 PROCESSOR_POWER9 for now.
12356 (rs6000_adjust_cost): Likewise.
12357 (rs6000_issue_rate): Likewise.
12358 (rs6000_register_move_cost): Likewise.
12359 (rs6000_opt_masks): Add entry for future.
12360 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
12361 (MASK_FUTURE): New #define.
12362 * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
12363 * config/rs6000/rs6000.opt (mfuture): New target option.
12364 * doc/invoke.texi (mcpu): Add future cpu.
12365
12366 2019-05-23 Martin Liska <mliska@suse.cz>
12367
12368 PR c++/90587
12369 * tree-ssa-uninit.c (value_sat_pred_p): The result of &
12370 operation points to a temporary (pointed via tree_to_wide_ref)
12371 that is out of scope after the &.
12372
12373 2019-05-23 Jonathan Wakely <jwakely@redhat.com>
12374
12375 PR c++/90592
12376 * doc/extend.texi (Function Names): Add missing word.
12377
12378 2019-05-23 Richard Biener <rguenther@suse.de>
12379
12380 PR tree-optimization/88440
12381 * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
12382 at -O[2s]+.
12383 * tree-loop-distribution.c (generate_memset_builtin): Fold the
12384 generated call.
12385 (generate_memcpy_builtin): Likewise.
12386 (distribute_loop): Pass in whether to only distribute patterns.
12387 (prepare_perfect_loop_nest): Also allow size optimization.
12388 (pass_loop_distribution::execute): When optimizing a loop
12389 nest for size allow pattern replacement.
12390
12391 2019-05-23 Jakub Jelinek <jakub@redhat.com>
12392
12393 PR target/90568
12394 * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
12395 of xor.
12396
12397 2019-05-23 Martin Liska <mliska@suse.cz>
12398
12399 PR sanitizer/90570
12400 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
12401 expression similarly to gimplify_decl_expr.
12402
12403 2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12404
12405 * cse.c (cse_dump_path): s/dump_file/f.
12406
12407 2019-05-22 David Malcolm <dmalcolm@redhat.com>
12408
12409 PR c++/90462
12410 * diagnostic-format-json.cc: Include "selftest.h".
12411 (json_from_expanded_location): Only add "file" key for non-NULL
12412 file strings.
12413 (json_from_location_range): Don't add "start" and "finish"
12414 children if they are UNKNOWN_LOCATION.
12415 (selftest::test_unknown_location): New selftest.
12416 (selftest::test_bad_endpoints): New selftest.
12417 (selftest::diagnostic_format_json_cc_tests): New function.
12418 * json.cc (json::object::get): New function.
12419 (selftest::test_object_get): New selftest.
12420 (selftest::json_cc_tests): Call it.
12421 * json.h (json::object::get): New decl.
12422 * selftest-run-tests.c (selftest::run_tests): Call
12423 selftest::diagnostic_format_json_cc_tests.
12424 * selftest.h (selftest::diagnostic_format_json_cc_tests): New
12425 decl.
12426
12427 2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com>
12428 Andrew Stubbs <amd@codesourcery.com>
12429
12430 * config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
12431 * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
12432 (kernel): Rename to...
12433 (main_kernel): ... this.
12434 (load_image): Load _init_array and _fini_array kernels.
12435 (run): Add argument for kernel to run.
12436 (main): Run init_array_kernel before main_kernel, and
12437 fini_array_kernel after.
12438 * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
12439 amdgpu_hsa_kernel attribute on functions.
12440 (gcn_disable_constructors): Delete.
12441 (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
12442 * config/gcn/crt0.c (size_t): Define.
12443 (_init_array, _fini_array): New.
12444 (__preinit_array_start, __preinit_array_end,
12445 __init_array_start, __init_array_end,
12446 __fini_array_start, __fini_array_end): Declare weak references.
12447
12448 2019-05-22 Andrew Stubbs <ams@codesourcery.com>
12449
12450 * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
12451
12452 2019-05-22 Jason Merrill <jason@redhat.com>
12453
12454 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
12455
12456 2019-05-22 H.J. Lu <hongjiu.lu@intel.com>
12457
12458 PR target/88483
12459 * config/i386/i386-options.c (ix86_init_machine_status): Set
12460 stack_frame_required to true.
12461 * config/i386/i386.c (ix86_get_frame_size): New function.
12462 (ix86_frame_pointer_required): Replace get_frame_size with
12463 ix86_get_frame_size.
12464 (ix86_compute_frame_layout): Likewise.
12465 (ix86_find_max_used_stack_alignment): Changed to void. Set
12466 stack_frame_required.
12467 (ix86_finalize_stack_frame_flags): Always call
12468 ix86_find_max_used_stack_alignment. Replace get_frame_size with
12469 ix86_get_frame_size.
12470 * config/i386/i386.h (machine_function): Add stack_frame_required.
12471
12472 2019-05-22 Uroš Bizjak <ubizjak@gmail.com>
12473
12474 * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
12475
12476 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com>
12477
12478 * common/config/aarch64/aarch64-common.c
12479 (struct aarch64_option_extension, struct processor_name_to_arch,
12480 struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
12481 aarch64_contains_opt,
12482 aarch64_get_extension_string_for_isa_flags): Change type of
12483 variables storing flags to uint64_t.
12484 * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
12485 sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
12486 * config/aarch64/aarch64.c (struct processor,
12487 aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
12488 aarch64_validate_march, aarch64_override_options,
12489 aarch64_option_print, aarch64_handle_attr_isa_flags,
12490 aarch64_declare_function_name, aarch64_start_file): Make flag
12491 variables uint64_t.
12492 * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
12493 AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
12494 AARCH64_FL_SVE2_BITPERM): New macro feature flags.
12495 * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
12496 * config/aarch64/driver-aarch64.c
12497 (struct aarch64_arch_extension, struct aarch64_core_data,
12498 struct aarch64_arch_driver_info, host_detect_local_cpu): Make
12499 flag variables uint64_t.
12500 * doc/invoke.texi: Add documentation for new arguments.
12501
12502 2019-05-22 Richard Biener <rguenther@suse.de>
12503
12504 * alias.c (ao_ref_from_mem): Move stack-slot sharing
12505 rewrite ...
12506 * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
12507
12508 2019-05-22 Martin Liska <mliska@suse.cz>
12509
12510 PR lto/90500
12511 * doc/extend.texi: Document the change.
12512
12513 2019-05-22 Richard Biener <rguenther@suse.de>
12514
12515 PR tree-optimization/90450
12516 * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
12517 (mem_ref_hasher::equal): Check it.
12518 (mem_ref_alloc): Initialize it.
12519 (gather_mem_refs_stmt): Set it.
12520
12521 2019-05-22 Richard Biener <rguenther@suse.de>
12522
12523 * gimple-fold.c (arith_code_with_undefined_signed_overflow):
12524 Add ABS_EXPR.
12525 (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
12526 as ABSU_EXPR.
12527
12528 2019-05-22 Alan Modra <amodra@gmail.com>
12529
12530 * config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
12531 (ASM_CPU_SPEC): Conditionally add -many.
12532 * config/rs6000/rs6000.c (rs6000_machine): New static var.
12533 (rs6000_machine_from_flags, emit_asm_machine): New functions..
12534 (rs6000_file_start): ..extracted from here, and modified to
12535 test all ISA bits.
12536 (rs6000_output_function_prologue): Emit .machine as necessary.
12537
12538 2019-05-22 Hans-Peter Nilsson <hp@axis.com>
12539
12540 PR middle-end/90553
12541 * ira-lives.c (process_bb_node_lives): Consider defs
12542 for a call insn to be die before the call, not after.
12543
12544 * function.c (assign_parm_setup_block): Raise alignment of
12545 stacked parameter only for STRICT_ALIGNMENT targets.
12546
12547 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
12548
12549 * config/rs6000/constraints.md (define_register_constraint "wz"):
12550 Delete.
12551 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12552 RS6000_CONSTRAINT_wz.
12553 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12554 (rs6000_init_hard_regno_mode_ok): Adjust.
12555 * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
12556 * doc/md.texi (Machine Constraints): Adjust.
12557
12558 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
12559
12560 * config/rs6000/constraints.md (define_register_constraint "wl"):
12561 Delete.
12562 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12563 RS6000_CONSTRAINT_wl.
12564 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12565 (rs6000_init_hard_regno_mode_ok): Adjust.
12566 * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
12567 * doc/md.texi (Machine Constraints): Adjust.
12568
12569 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
12570
12571 * config/rs6000/constraints.md (define_register_constraint "wm"):
12572 Delete.
12573 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12574 RS6000_CONSTRAINT_wm.
12575 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12576 (rs6000_init_hard_regno_mode_ok): Adjust.
12577 * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
12578 * doc/md.texi (Machine Constraints): Adjust.
12579
12580 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
12581
12582 * config/rs6000/constraints.md (define_register_constraint "wk"):
12583 Delete.
12584 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12585 RS6000_CONSTRAINT_wk.
12586 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12587 (rs6000_init_hard_regno_mode_ok): Adjust.
12588 * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
12589 * doc/md.texi (Machine Constraints): Adjust.
12590
12591 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
12592
12593 * config/rs6000/constraints.md (define_register_constraint "wj"):
12594 Delete.
12595 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12596 RS6000_CONSTRAINT_wj.
12597 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12598 (rs6000_init_hard_regno_mode_ok): Adjust.
12599 * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
12600 (VS_64dm): Delete.
12601 * config/rs6000/vsx.md: Ditto.
12602 * doc/md.texi (Machine Constraints): Adjust.
12603
12604 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
12605
12606 * config/rs6000/constraints.md (define_register_constraint "wh"):
12607 Delete.
12608 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12609 RS6000_CONSTRAINT_wh.
12610 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12611 (rs6000_init_hard_regno_mode_ok): Adjust.
12612 * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
12613 * doc/md.texi (Machine Constraints): Adjust.
12614
12615 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
12616
12617 PR target/90547
12618 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
12619 Avoid calling gen_lowpart with CONST operand.
12620
12621 2019-05-21 Alexandre Oliva <aoliva@redhat.com>
12622
12623 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
12624 field template_last_to_copy.
12625 (ssa_create_duplicates): Set it, and use it. Attempt to
12626 preserve more debug stmts.
12627
12628 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
12629
12630 * config/i386/sse.md (VF1_AVX2): New mode iterator.
12631 (signbit<mode>2): New expander
12632
12633 2019-05-21 James Clarke <jrtc27@jrtc27.com>
12634
12635 PR bootstrap/87338
12636 * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
12637 instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
12638
12639 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
12640
12641 * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
12642 %ebx and %ecx bafore calling cpuid with leaf 1 or
12643 non-constant leaf argument.
12644
12645 2019-05-21 Alan Modra <amodra@gmail.com>
12646
12647 PR target/90545
12648 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
12649 power9 direct move cost.
12650
12651 2019-05-21 Richard Biener <rguenther@suse.de>
12652
12653 PR middle-end/90510
12654 * fold-const.c (fold_read_from_vector): New function.
12655 * fold-const.h (fold_read_from_vector): Declare.
12656 * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
12657 single-element insert permutations. Canonicalize selector
12658 further and fix issue with last commit.
12659
12660 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
12661
12662 * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
12663 parameter with default value false to declaration.
12664 (split_edges_for_insertion): New inline function. Wrapper for
12665 split_critical_edges with for_edge_insertion_p = true.
12666 * tree-cfg.c (split_critical_edges): Don't split non-critical
12667 edges if for_edge_insertion_p is false. Fix whitespace.
12668 * tree-ssa-pre.c (pass_pre::execute): Call
12669 split_edges_for_insertion instead of split_critical_edges.
12670 * tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
12671 * tree-ssa-sink.c (pass_sink_code::execute): Ditto.
12672 (pass_data_sink_code): Update function name in the comment.
12673
12674 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
12675
12676 * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
12677 around is_value_included_in that knows how to handle BIT_AND_EXPR.
12678 (is_pred_expr_subset_of): Use the new function. Handle more cases where
12679 code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
12680 positives.
12681
12682 2019-05-21 Martin Liska <mliska@suse.cz>
12683
12684 * config/rs6000/driver-rs6000.c (elf_platform): Do not use
12685 an extra newline.
12686 * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
12687 (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
12688 vec_lvsr.
12689 * config/rs6000/rs6000.c (rs6000_option_override_internal):
12690 Quote a C type.
12691 (rs6000_function_arg): Likewise.
12692 (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
12693 (rs6000_expand_ternop_builtin): Use interval syntax.
12694 (get_element_number): Likewise.
12695 (altivec_expand_builtin): Likewise.
12696 (rs6000_get_function_versions_dispatcher): Quote target_clones.
12697
12698 2019-05-20 Jakub Jelinek <jakub@redhat.com>
12699
12700 PR c++/59813
12701 PR target/90418
12702 * function.h (struct function): Add calls_eh_return member.
12703 * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
12704 gimplifying __builtin_eh_return call.
12705 * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
12706 to cfun.
12707 (expand_call_inline): Or in src_cfun->calls_eh_return into
12708 dst_cfun->calls_eh_return.
12709 * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
12710 cfun->calls_eh_return.
12711 * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
12712 * lto-streamer-out.c (output_struct_function_base): Write
12713 calls_eh_return.
12714
12715 2019-05-20 Marc Glisse <marc.glisse@inria.fr>
12716
12717 PR rtl-optimization/43147
12718 * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
12719 IX86_BUILTIN_SHUFPD.
12720
12721 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
12722
12723 * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
12724 (refs_may_alias_p_1): ... here; update stats.
12725 (refs_may_alias_p): Do not update stats here.
12726
12727 2019-05-20 Richard Biener <rguenther@suse.de>
12728
12729 * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
12730 doesn't produce pointers.
12731 {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
12732 the first operand points to.
12733
12734 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
12735
12736 * tree-ssa-alias.c (compare_sizes): New function.
12737 (sompare_type_sizes): New function
12738 (aliasing_component_refs_p): Use it.
12739 (indirect_ref_may_alias_decl_p): Likewise.
12740
12741 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12742
12743 * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
12744
12745 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12746
12747 * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
12748 (LIBLSAN_EARLY_SPEC): Likewise.
12749 * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
12750
12751 2019-05-20 Martin Liska <mliska@suse.cz>
12752
12753 * config/i386/i386.c (ix86_libc_has_fast_function):
12754 Add ATTRIBUTE_UNUSED for the argument.
12755
12756 2019-05-20 Richard Biener <rguenther@suse.de>
12757
12758 * gimple-match-head.c: Include vec-perm-indices.h.
12759 * generic-match-head.c: Likewise.
12760 * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
12761 is included.
12762 * fold-const.c (fold_vec_perm): Export.
12763 (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
12764 (match.pd): ...here.
12765
12766 2019-05-20 Jakub Jelinek <jakub@redhat.com>
12767
12768 * cfgloop.h (struct loop): Add simdlen member.
12769 * cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
12770 * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
12771 * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
12772 as new argument to autovectorize_vector_sizes target hook. If
12773 loop->simdlen, pick up vector size where the vectorization factor
12774 is equal to loop->simd, and if there is none, fall back to the first
12775 successful one.
12776 (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
12777 caller.
12778 * omp-low.c (omp_clause_aligned_alignment): Likewise.
12779 * omp-general.c (omp_max_vf): Likewise.
12780 * optabs-query.c (can_vec_mask_load_store_p): Likewise.
12781 * tree-vect-slp.c (vect_slp_bb): Likewise.
12782 * target.def (autovectorize_vector_sizes): Add ALL argument and
12783 document it.
12784 * doc/tm.texi: Adjust documentation.
12785 * targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
12786 * targhooks.h (default_autovectorize_vector_sizes): Likewise.
12787 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
12788 bool argument.
12789 * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
12790 * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
12791 * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
12792 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If
12793 true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
12794 preferred vector size is not 512-bit or 256-bit, just put those
12795 unpreferred ones last.
12796
12797 2019-05-20 Martin Liska <mliska@suse.cz>
12798
12799 * targhooks.c (default_libc_has_fast_function): New function.
12800 * targhooks.h (default_libc_has_fast_function): Likewise.
12801
12802 2019-05-20 Martin Liska <mliska@suse.cz>
12803
12804 PR middle-end/90263
12805 * builtins.c (expand_builtin_memory_copy_args): When having a
12806 target with fast mempcpy implementation do now use memcpy.
12807 * config/i386/i386.c (ix86_libc_has_fast_function): New.
12808 (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
12809 * doc/tm.texi: Likewise.
12810 * doc/tm.texi.in: Likewise.
12811 * target.def:
12812 * expr.c (emit_block_move_hints): Add 2 new arguments.
12813 * expr.h (emit_block_move_hints): Bail out when libcall
12814 to memcpy would be used.
12815
12816 2019-05-20 Martin Liska <mliska@suse.cz>
12817
12818 * profile-count.c: Add vertical spacing in order
12819 to separate functions.
12820 * profile-count.h: Likewise.
12821
12822 2019-05-20 Martin Liska <mliska@suse.cz>
12823
12824 * profile-count.h: Do not use full qualified
12825 names if possible.
12826 * profile-count.c (profile_count::to_frequency): Likewise.
12827
12828 2019-05-20 Martin Liska <mliska@suse.cz>
12829
12830 * profile-count.h (enum profile_quality): Use capital letters
12831 for enum value names. Use the adjusted names.
12832 * profile-count.c: Use the adjusted names.
12833
12834 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
12835
12836 * config/rs6000/constraints.md (define_register_constraint "wH"):
12837 Delete.
12838 (define_register_constraint "wI"): Delete.
12839 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12840 RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
12841 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12842 (rs6000_init_hard_regno_mode_ok): Adjust.
12843 * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
12844 resp. "d", or with "wa" as appropriate, all with "p8v".
12845 * config/rs6000/vsx.md: Ditto.
12846 * doc/md.texi (Machine Constraints): Adjust.
12847
12848 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
12849
12850 * config/rs6000/constraints.md (define_register_constraint "wy"):
12851 Delete.
12852 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12853 RS6000_CONSTRAINT_wy.
12854 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12855 (rs6000_init_hard_regno_mode_ok): Adjust.
12856 * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
12857 Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
12858 (define_mode_attr Fisa): New.
12859 * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
12860 * doc/md.texi (Machine Constraints): Adjust.
12861
12862 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
12863
12864 * config/rs6000/constraints.md (define_register_constraint "wu"):
12865 Delete.
12866 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12867 RS6000_CONSTRAINT_wu.
12868 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12869 (rs6000_init_hard_regno_mode_ok): Adjust.
12870 * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
12871 both with "p8v".
12872 (define_mode_attr Fa): Delete.
12873 * config/rs6000/vsx.md: Ditto.
12874 * doc/md.texi (Machine Constraints): Adjust.
12875
12876 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
12877
12878 * config/rs6000/constraints.md (define_register_constraint "wJ"):
12879 Delete.
12880 (define_register_constraint "wK"): Delete.
12881 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12882 RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
12883 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12884 (rs6000_init_hard_regno_mode_ok): Adjust.
12885 * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
12886 Replace "wK" constraint by "wH" with "p9v".
12887 * config/rs6000/vsx.md: Ditto.
12888 * doc/md.texi (Machine Constraints): Adjust.
12889
12890 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
12891
12892 * config/rs6000/constraints.md (define_register_constraint "wb"):
12893 Delete.
12894 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12895 RS6000_CONSTRAINT_wb.
12896 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12897 (rs6000_init_hard_regno_mode_ok): Adjust.
12898 * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
12899 * config/rs6000/vsx.md: Ditto.
12900 * doc/md.texi (Machine Constraints): Adjust.
12901
12902 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
12903
12904 * config/rs6000/constraints.md (define_register_constraint "wo"):
12905 Delete.
12906 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
12907 RS6000_CONSTRAINT_wo.
12908 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
12909 (rs6000_init_hard_regno_mode_ok): Adjust.
12910 * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
12911 * config/rs6000/altivec.md: Ditto.
12912 * doc/md.texi (Machine Constraints): Adjust.
12913
12914 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
12915
12916 * config/darwin-c.c (darwin_register_objc_includes): Do not
12917 prepend the sysroot when building gnu-runtime header search
12918 paths.
12919
12920 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
12921
12922 * config/darwin.c (darwin_file_end): Use switch_to_section ()
12923 instead of direct output of the asm.
12924
12925 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
12926
12927 * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
12928 argument to be type bool (was int before).
12929 (rs6000_emit_epilogue): Simplify some code. Declare some variables
12930 at first use. Use type bool for some variables. Fix a theoretical
12931 eh_return bug for svr4.
12932
12933 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
12934
12935 * config/rs6000/rs6000.md (isa): New attribute.
12936 (enabled): New attribute.
12937
12938 2019-05-17 Max Filippov <jcmvbkbc@gmail.com>
12939
12940 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
12941 assemble_start_function and assemble_end_function.
12942
12943 2019-05-17 Thomas Schwinge <thomas@codesourcery.com>
12944
12945 PR middle-end/89433
12946 * omp-general.c (oacc_verify_routine_clauses): Change formal
12947 parameters. Add checking if already marked with an OpenACC
12948 'routine' directive. Adjust all users.
12949
12950 PR middle-end/89433
12951 * omp-general.c (oacc_build_routine_dims): Move some of its
12952 processing into...
12953 (oacc_verify_routine_clauses): ... this new function.
12954 * omp-general.h (oacc_verify_routine_clauses): New prototype.
12955
12956 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
12957
12958 * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
12959 formating of picbase labels to match other ports.
12960
12961 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
12962
12963 * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
12964 in the generated code.
12965
12966 2019-05-16 Martin Sebor <msebor@redhat.com>
12967
12968 * builtins.c (expand_builtin_atomic_always_lock_free): Quote
12969 identifiers, keywords, operators, and types in diagnostics. Correct
12970 quoting, spelling, and sentence capitalization issues.
12971 (expand_builtin_atomic_is_lock_free): Same.
12972 (fold_builtin_next_arg): Same.
12973 * cfgexpand.c (expand_one_var): Same.
12974 (tree_conflicts_with_clobbers_p): Same.
12975 (expand_asm_stmt): Same.
12976 (verify_loop_structure): Same.
12977 * cgraphunit.c (process_function_and_variable_attributes): Same.
12978 * collect-utils.c (collect_execute): Same.
12979 * collect2.c (maybe_run_lto_and_relink): Same.
12980 (is_lto_object_file): Same.
12981 (scan_prog_file): Same.
12982 * convert.c (convert_to_real_1): Same.
12983 * dwarf2out.c (dwarf2out_begin_prologue): Same.
12984 * except.c (verify_eh_tree): Same.
12985 * gcc.c (execute): Same.
12986 (eval_spec_function): Same.
12987 (run_attempt): Same.
12988 (driver::set_up_specs): Same.
12989 (compare_debug_auxbase_opt_spec_function): Same.
12990 * gcov-tool.c (unlink_gcda_file): Same.
12991 (do_merge): Same.
12992 (do_rewrite): Same.
12993 * gcse.c (gcse_or_cprop_is_too_expensive): Same.
12994 * gimplify.c (gimplify_asm_expr): Same.
12995 (gimplify_adjust_omp_clauses): Same.
12996 * hsa-gen.c (gen_hsa_addr_insns): Same.
12997 (gen_hsa_insns_for_load): Same.
12998 (gen_hsa_cmp_insn_from_gimple): Same.
12999 (gen_hsa_insns_for_operation_assignment): Same.
13000 (gen_get_level): Same.
13001 (gen_hsa_alloca): Same.
13002 (omp_simple_builtin::generate): Same.
13003 (gen_hsa_atomic_for_builtin): Same.
13004 (gen_hsa_insns_for_call): Same.
13005 * input.c (dump_location_info): Same.
13006 * ipa-devirt.c (compare_virtual_tables): Same.
13007 * ira.c (ira_setup_eliminable_regset): Same.
13008 * lra-assigns.c (lra_assign): Same.
13009 * lra-constraints.c (lra_constraints): Same.
13010 * lto-streamer-in.c (lto_input_mode_table): Same.
13011 * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
13012 (merge_and_complain): Same.
13013 (compile_offload_image): Same.
13014 (compile_images_for_offload_targets): Same.
13015 (debug_objcopy): Same.
13016 (run_gcc): Same.
13017 (main): Same.
13018 * opts.c (print_specific_help): Same.
13019 (parse_no_sanitize_attribute): Same.
13020 (print_help): Same.
13021 (handle_param): Same.
13022 * plugin.c (add_new_plugin): Same.
13023 (parse_plugin_arg_opt): Same.
13024 (try_init_one_plugin): Same.
13025 * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
13026 operators, and types in diagnostics. Correct quoting and spelling
13027 issues.
13028 * read-rtl-function.c (parse_edge_flag_token): Same.
13029 (function_reader::parse_enum_value): Same.
13030 * reg-stack.c (check_asm_stack_operands): Same.
13031 * regcprop.c (validate_value_data): Same.
13032 * sched-rgn.c (make_pass_sched_fusion): Same.
13033 * stmt.c (check_unique_operand_names): Same.
13034 * targhooks.c (default_target_option_pragma_parse): Same.
13035 * tlink.c (recompile_files): Same.
13036 * toplev.c (process_options): Same.
13037 (do_compile): Same.
13038 * trans-mem.c (diagnose_tm_1): Same.
13039 (ipa_tm_scan_irr_block): Same.
13040 (ipa_tm_diagnose_transaction): Same.
13041 * tree-cfg.c (verify_address): Same. Use get_tree_code_name to
13042 format a tree code name in a diagnostic.
13043 (verify_types_in_gimple_min_lval): Same.
13044 (verify_types_in_gimple_reference): Same.
13045 (verify_gimple_call): Same.
13046 (verify_gimple_assign_unary): Same.
13047 (verify_gimple_assign_binary): Same.
13048 (verify_gimple_assign_ternary): Same.
13049 (verify_gimple_assign_single): Same.
13050 (verify_gimple_switch): Same.
13051 (verify_gimple_label): Same.
13052 (verify_gimple_phi): Same.
13053 (verify_gimple_in_seq): Same.
13054 (verify_eh_throw_stmt_node): Same.
13055 (collect_subblocks): Same.
13056 (gimple_verify_flow_info): Same.
13057 (do_warn_unused_result): Same.
13058 * tree-inline.c (expand_call_inline): Same.
13059 * tree-into-ssa.c (update_ssa): Same.
13060 * tree.c (tree_int_cst_elt_check_failed): Same.
13061 (tree_vec_elt_check_failed): Same.
13062 (omp_clause_operand_check_failed): Same.
13063 (verify_type_variant): Same.
13064 (verify_type): Same.
13065 * value-prof.c (verify_histograms): Same.
13066 * varasm.c (assemble_start_function): Same.
13067
13068 2019-05-16 Martin Sebor <msebor@redhat.com>
13069
13070 * config/i386/i386-expand.c (get_element_number): Quote keywords
13071 and other internal names in diagnostics. Adjust other diagnostic
13072 formatting issues noted by -Wformat-diag.
13073 * config/i386/i386-features.c
13074 (ix86_mangle_function_version_assembler_name): Same.
13075 * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
13076 * config/i386/i386.c (ix86_function_type_abi): Same.
13077 (ix86_function_ms_hook_prologue): Same.
13078 (classify_argument): Same.
13079 (ix86_expand_prologue): Same.
13080 (ix86_md_asm_adjust): Same.
13081 (ix86_memmodel_check): Same.
13082
13083 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
13084
13085 * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
13086 TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
13087 and fpxx modes.
13088
13089 2019-05-17 H.J. Lu <hongjiu.lu@intel.com>
13090
13091 PR target/90497
13092 * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
13093 intrinsics without SSE/SSE2/SSSE3.
13094 * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
13095 check.
13096 (*mmx_uavgv8qi3): Likewise.
13097
13098 2019-05-17 Richard Biener <rguenther@suse.de>
13099
13100 * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
13101 VEC_PERM_EXPR as __VEC_PERM with -gimple.
13102
13103 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com>
13104
13105 * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
13106 vec_sldw insn pattern.
13107
13108 2019-05-17 Richard Biener <rguenther@suse.de>
13109
13110 * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
13111
13112 2019-05-17 Martin Liska <mliska@suse.cz>
13113
13114 PR driver/90496
13115 * toplev.c (output_stack_usage): With LTO and sanitizer it
13116 happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
13117 has no file location.
13118
13119 2019-05-16 Jakub Jelinek <jakub@redhat.com>
13120
13121 PR c++/90484
13122 * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
13123 sz0 is equal to sz1, instead return false in that case.
13124
13125 * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
13126 has non-constant expression, force sctx.lane and use two
13127 argument IFN_GOMP_SIMD_LANE instead of single argument.
13128 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
13129 two argument IFN_GOMP_SIMD_LANE without lhs.
13130 * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
13131 member.
13132 (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
13133 Define.
13134 (LOOP_REQUIRES_VERSIONING): Or in
13135 LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
13136 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
13137 simd_if_cond.
13138 (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
13139 * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
13140 from simd if clause if needed.
13141
13142 2019-05-16 Richard Biener <rguenther@suse.de>
13143
13144 * tree-affine.c (expr_to_aff_combination): New function split
13145 out from...
13146 (tree_to_aff_combination): ... here.
13147 (aff_combination_expand): Avoid building a GENERIC tree.
13148
13149 2019-05-16 Max Filippov <jcmvbkbc@gmail.com>
13150
13151 * cgraphunit.c (cgraph_node::expand_thunk): Remove
13152 assemble_start_function and assemble_end_function calls.
13153 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
13154 assemble_start_function and assemble_end_function.
13155 * config/arc/arc.c (arc_output_mi_thunk): Likewise.
13156 * config/arm/arm.c (arm_output_mi_thunk): Likewise.
13157 * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
13158 * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
13159 * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
13160 * config/csky/csky.c (csky_output_mi_thunk): Likewise.
13161 * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
13162 * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
13163 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
13164 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
13165 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
13166 * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
13167 Likewise.
13168 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
13169 * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
13170 * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
13171 * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
13172 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
13173 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
13174 * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
13175 * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
13176 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
13177 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
13178 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
13179 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
13180 * config/spu/spu.c (spu_output_mi_thunk): Likewise.
13181 * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
13182 Likewise.
13183 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
13184 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
13185 * config/vax/vax.c (vax_output_mi_thunk): Likewise.
13186
13187 2019-05-16 Jan Hubicka <hubicka@ucw.cz>
13188
13189 * tree-ssa-alias.c (alias_stats): Add
13190 aliasing_component_refs_p_may_alias and
13191 aliasing_component_refs_p_no_alias.
13192 (dump_alias_stats): Print aliasing_component_refs_p stats.
13193 (aliasing_component_refs_p): Update stats.
13194
13195 2019-05-16 Martin Liska <mliska@suse.cz>
13196
13197 PR lto/90500
13198 * multiple_target.c (expand_target_clones): Do not allow
13199 target_clones being used with a symbol that is an alias.
13200
13201 2019-05-16 Vladislav Ivanishin <vlad@ispras.ru>
13202
13203 PR tree-optimization/90394
13204 * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false
13205 positives rather than ICE for cases where (code2 == NE_EXPR
13206 && code1 == BIT_AND_EXPR).
13207
13208 2019-05-16 Jakub Jelinek <jakub@redhat.com>
13209
13210 PR fortran/90329
13211 * tree-core.h (struct tree_decl_common): Document
13212 decl_nonshareable_flag for PARM_DECLs.
13213 * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
13214 * calls.c (expand_call): Don't try tail call if caller
13215 has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
13216 passed on the stack and callee needs to pass any arguments on the
13217 stack.
13218 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
13219 else if instead of series of mutually exclusive ifs. Handle
13220 DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
13221 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
13222
13223 * lto-streamer.h (LTO_major_version): Bump to 9.
13224
13225 2019-05-16 Jun Ma <JunMa@linux.alibaba.com>
13226
13227 PR tree-optimization/90106
13228 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add
13229 new parameter as new internal function call, also move it to new
13230 basic block.
13231 (use_internal_fn): Pass internal function call to
13232 shrink_wrap_one_built_in_call_with_conds.
13233
13234 2019-05-15 Jakub Jelinek <jakub@redhat.com>
13235
13236 * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
13237 max_vf to 1.
13238 * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
13239 safelen_int and set loop->dont_vectorize.
13240
13241 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13242
13243 PR target/89021
13244 * config/i386/i386-builtin.def: Enable MMX intrinsics with
13245 SSE/SSE2/SSSE3.
13246 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
13247 Likewise.
13248 * config/i386/i386-expand.c (ix86_expand_builtin): Allow
13249 SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE.
13250 * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__
13251 is defined.
13252
13253 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13254
13255 PR target/89021
13256 * config/i386/mmx.md (*vec_dupv2sf): Changed to
13257 define_insn_and_split to support SSE emulation.
13258 (*vec_extractv2sf_0): Likewise.
13259 (*vec_extractv2sf_1): Likewise.
13260 (*vec_extractv2si_0): Likewise.
13261 (*vec_extractv2si_1): Likewise.
13262 (*vec_extractv2si_zext_mem): Likewise.
13263 (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE.
13264 (vec_extractv2sf_1 splitter): Likewise.
13265 (vec_extractv2sfsf): Likewise.
13266 (vec_setv2si): Likewise.
13267 (vec_extractv2si_1 splitter): Likewise.
13268 (vec_extractv2sisi): Likewise.
13269 (vec_setv4hi): Likewise.
13270 (vec_extractv4hihi): Likewise.
13271 (vec_setv8qi): Likewise.
13272 (vec_extractv8qiqi): Likewise.
13273 (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
13274 TARGET_MMX_WITH_SSE ix86_expand_vector_extract.
13275 (vec_extractv2sisi): Likewise.
13276 (vec_extractv4hihi): Likewise.
13277 (vec_extractv8qiqi): Likewise.
13278 (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
13279 TARGET_MMX_WITH_SSE to ix86_expand_vector_init.
13280 (vec_initv2sisi): Likewise.
13281 (vec_initv4hihi): Likewise.
13282 (vec_initv8qiqi): Likewise.
13283 (vec_setv2si): Also allow TARGET_MMX_WITH_SSE. Pass
13284 TARGET_MMX_WITH_SSE to ix86_expand_vector_set.
13285 (vec_setv4hi): Likewise.
13286 (vec_setv8qi): Likewise.
13287
13288 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13289
13290 PR target/89021
13291 * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
13292 TARGET_MMX_WITH_SSE.
13293 (MMXMODE:*mov<mode>_internal): Likewise.
13294 (MMXMODE:movmisalign<mode>): Likewise.
13295
13296 2019-05-15 Uroš Bizjak <ubizjak@gmail.com>
13297
13298 PR target/89021
13299 * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute.
13300 * config/i386/sse.md (sse2_cvtpi2pd): Ditto.
13301 (sse2_cvtpd2pi): Ditto.
13302 (sse2_cvttpd2pi): Ditto.
13303 (*vec_concatv2sf_sse4_1): Ditto.
13304 (*vec_concatv2sf_sse): Ditto.
13305 (*vec_concatv2si_sse4_1): Ditto.
13306 (*vec_concatv2si): Ditto.
13307 (*vec_concatv4si_0): Ditto.
13308 (*vec_concatv2di_0): Ditto.
13309
13310 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13311
13312 PR target/89021
13313 * config/i386/sse.md (abs<mode>2): Add SSE emulation.
13314
13315 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13316
13317 PR target/89021
13318 * config/i386/sse.md (ssse3_palignrdi): Changed to
13319 define_insn_and_split to support SSE emulation.
13320
13321 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13322
13323 PR target/89021
13324 * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
13325
13326 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13327
13328 PR target/89021
13329 * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
13330 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
13331 SSE emulation.
13332
13333 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13334
13335 PR target/89021
13336 * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
13337 or TARGET_MMX_WITH_SSE.
13338 (*ssse3_pmulhrswv4hi3): Add SSE emulation.
13339
13340 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13341
13342 PR target/89021
13343 * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
13344
13345 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13346
13347 PR target/89021
13348 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
13349 Changed to define_insn_and_split to support SSE emulation.
13350
13351 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13352
13353 PR target/89021
13354 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
13355 Changed to define_insn_and_split to support SSE emulation.
13356
13357 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13358
13359 PR target/89021
13360 * config/i386/mmx.md (mmx_<emms>): Renamed to ...
13361 (*mmx_<emms>): This.
13362 (mmx_<emms>): New expander.
13363
13364 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13365
13366 PR target/89021
13367 * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
13368 support.
13369 (*sse2_umulv1siv1di3): Add SSE2 emulation.
13370
13371 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13372
13373 PR target/89021
13374 * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
13375
13376 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13377
13378 PR target/89021
13379 * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
13380
13381 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13382
13383 PR target/89021
13384 * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
13385 TARGET_MMX_WITH_SSE.
13386 (*mmx_uavgv4hi3): Add SSE emulation.
13387
13388 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13389
13390 PR target/89021
13391 * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
13392 and TARGET_MMX_WITH_SSE.
13393 (*mmx_uavgv8qi3): Add SSE emulation.
13394
13395 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13396
13397 PR target/89021
13398 * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
13399 maskmovdqu for __MMX_WITH_SSE__.
13400
13401 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13402
13403 PR target/89021
13404 * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check
13405 TARGET_MMX and TARGET_MMX_WITH_SSE.
13406 (*mmx_umulv4hi3_highpart): Add SSE emulation.
13407
13408 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13409
13410 PR target/89021
13411 * config/i386/mmx.md (mmx_pmovmskb): Changed to
13412 define_insn_and_split to support SSE emulation.
13413
13414 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13415
13416 PR target/89021
13417 * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX
13418 and TARGET_MMX_WITH_SSE.
13419 (mmx_<code>v8qi3): Likewise.
13420 (smaxmin:<code>v4hi3): New.
13421 (umaxmin:<code>v8qi3): Likewise.
13422 (smaxmin:*mmx_<code>v4hi3): Add SSE emulation.
13423 (umaxmin:*mmx_<code>v8qi3): Likewise.
13424
13425 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13426
13427 PR target/89021
13428 * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
13429 TARGET_MMX_WITH_SSE.
13430 (*mmx_pinsrw): Add SSE emulation.
13431
13432 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13433
13434 PR target/89021
13435 * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
13436
13437 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13438
13439 PR target/89021
13440 * config/i386/sse.md (sse_cvtpi2ps): Changed to
13441 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
13442 SSE emulation.
13443
13444 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13445
13446 PR target/89021
13447 * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
13448 (sse_cvttps2pi): Likewise.
13449
13450 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13451
13452 PR target/89021
13453 * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and
13454 TARGET_MMX_WITH_SSE.
13455 (mmx_pshufw_1): Add SSE emulation.
13456 (*vec_dupv4hi): Changed to define_insn_and_split and also allow
13457 TARGET_MMX_WITH_SSE to support SSE emulation.
13458
13459 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13460
13461 PR target/89021
13462 * config/i386/constraints.md (Yw): New constraint.
13463 * config/i386/mmx.md (*vec_dupv2si): Changed to
13464 define_insn_and_split and also allow TARGET_MMX_WITH_SSE to
13465 support SSE emulation.
13466
13467 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13468
13469 PR target/89021
13470 * config/i386/mmx.md (mmx_eq<mode>3): Also allow
13471 TARGET_MMX_WITH_SSE.
13472 (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE. Add SSE
13473 support.
13474 (mmx_gt<mode>3): Likewise.
13475
13476 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13477
13478 PR target/89021
13479 * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
13480 TARGET_MMX_WITH_SSE. Add SSE support.
13481
13482 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13483
13484 PR target/89021
13485 * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
13486 TARGET_MMX_WITH_SSE.
13487 (any_logic:<code><mode>3): New.
13488 (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE.
13489 Add SSE support.
13490
13491 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13492
13493 PR target/89021
13494 * config/i386/mmx.md (mmx_ashr<mode>3): Also allow
13495 TARGET_MMX_WITH_SSE. Add SSE emulation.
13496 (mmx_<shift_insn><mode>3): Likewise.
13497 (ashr<mode>3): New.
13498 (<shift_insn><mode>3): Likewise.
13499
13500 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13501
13502 PR target/89021
13503 * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.
13504 (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. Add SSE support.
13505
13506 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13507
13508 PR target/89021
13509 * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow
13510 TARGET_MMX_WITH_SSE.
13511 (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add
13512 SSE support.
13513
13514 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13515
13516 PR target/89021
13517 * config/i386/mmx.md (mmx_mulv4hi3): Also allow
13518 TARGET_MMX_WITH_SSE.
13519 (mulv4hi3): New.
13520 (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE
13521 support.
13522
13523 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13524
13525 PR target/89021
13526 * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI.
13527 (plusminus:mmx_<plusminus_insn><mode>3): Check
13528 TARGET_MMX_WITH_SSE.
13529 (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise.
13530 (<plusminus_insn><mode>3): New.
13531 (*mmx_<plusminus_insn><mode>3): Add SSE emulation.
13532 (*mmx_<plusminus_insn><mode>3): Likewise.
13533
13534 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13535
13536 PR target/89021
13537 * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
13538 * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
13539 prototype.
13540 * config/i386/mmx.m (mmx_punpckhbw): Changed to
13541 define_insn_and_split to support SSE emulation.
13542 (mmx_punpcklbw): Likewise.
13543 (mmx_punpckhwd): Likewise.
13544 (mmx_punpcklwd): Likewise.
13545 (mmx_punpckhdq): Likewise.
13546 (mmx_punpckldq): Likewise.
13547
13548 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13549 Uros Bizjak <ubizjak@gmail.com>
13550
13551 PR target/89021
13552 * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
13553 New function.
13554 (ix86_split_mmx_pack): Likewise.
13555 * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
13556 New prototype.
13557 (ix86_split_mmx_pack): Likewise.
13558 * config/i386/i386.md (mmx_isa): New.
13559 (enabled): Also check mmx_isa.
13560 * config/i386/mmx.md (any_s_truncate): New code iterator.
13561 (s_trunsuffix): New code attr.
13562 (mmx_packsswb): Removed.
13563 (mmx_packssdw): Likewise.
13564 (mmx_packuswb): Likewise.
13565 (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
13566 MMX packsswb/packuswb with SSE2.
13567 (mmx_packssdw): Likewise.
13568 * config/i386/predicates.md (register_mmxmem_operand): New.
13569
13570 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13571
13572 PR target/89021
13573 * config/i386/i386-c.c (ix86_target_macros_internal): Define
13574 __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE.
13575 * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for
13576 TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE.
13577 (ix86_vector_mode_supported_p): Likewise.
13578 * config/i386/i386.h (TARGET_MMX_WITH_SSE): New.
13579
13580 2019-05-15 Martin Liska <mliska@suse.cz>
13581
13582 PR middle-end/90478
13583 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
13584 Check for overflow.
13585
13586 2019-05-15 Richard Biener <rguenther@suse.de>
13587
13588 * tree-into-ssa.c (pass_build_ssa::execute): Run
13589 update_address_taken before going into SSA.
13590
13591 2019-05-15 Richard Biener <rguenther@suse.de>
13592
13593 * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
13594 as __BIT_FIELD_REF with type with -gimple.
13595
13596 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru>
13597
13598 * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
13599 semantically equivalent branches (left over after prior refactorings).
13600
13601 2019-05-15 Richard Biener <rguenther@suse.de>
13602
13603 PR tree-optimization/88828
13604 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
13605 bogus check.
13606
13607 2019-05-14 Richard Biener <rguenther@suse.de>
13608
13609 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
13610 as __VIEW_CONVERT with -gimple.
13611
13612 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
13613
13614 PR target/82920
13615 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
13616 Darwin.
13617
13618 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
13619
13620 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
13621 define_split to become a define_insn_and_split.
13622
13623 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
13624
13625 * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
13626 arguments.
13627 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
13628 * config/rs6000/rs6000.md (epilogue_type): New define_enum.
13629 (sibcall_epilogue): Adjust.
13630 (epilogue): Adjust.
13631
13632 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13633
13634 * config.gcc: Move *-*-solaris2.10* from obsolete configurations
13635 to unsupported ones.
13636 Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
13637 * config.host: Likewise.
13638 * config/i386/sol2.h (ASM_COMMENT_START): Remove.
13639 * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
13640 __svr4__]: Remove "brand" fallback.
13641 [!KSTAT_DATA_STRING]: Remove.
13642 * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
13643 to *-*-solaris2*.
13644 (comdat_group): Likewise.
13645 (set_have_as_tls): Likewise.
13646 (gcc_cv_target_dl_iterate_phdr): Likewise.
13647 (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
13648 (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
13649 * configure: Regenerate.
13650 * doc/install.texi: Simplify Solaris target triplets.
13651 (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
13652 (Specific, *-*-solaris2*): Document Solaris 10 removal.
13653 Remove Solaris 10 references.
13654 Remove obsolete Solaris bug reference.
13655 (Specific, sparc-sun-solaris2.10): Remove.
13656
13657 2019-05-14 Uroš Bizjak <ubizjak@gmail.com>
13658
13659 * config/i386/i386.md (any_div): New code iterator.
13660 (paired_mod): New code attribute.
13661 (sgnprefix): Handle DIV and UDIV RTXes.
13662 (u): Ditto.
13663 (<u>divmod<mode>4): Macroize expander from divmod<mode>4
13664 and udivmod<mode>4 patterns using any_div code iterator.
13665 (divmod splitters): Macroize splitters using any_div code iterator.
13666 (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
13667 (*udivmodsi4_pow2_zext_2): Ditto.
13668 (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
13669 and *udivmod<mode>4_noext patterns using any_div code iterator.
13670 (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
13671 *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
13672 patterns using any_div code iterator.
13673 (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
13674 *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
13675 patterns using any_div code iterator.
13676 (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
13677 udivmodhiqi3 patterns using any_extend code iterator.
13678
13679 2019-05-14 Richard Biener <rguenther@suse.de>
13680 H.J. Lu <hongjiu.lu@intel.com>
13681
13682 PR tree-optimization/88828
13683 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
13684 permuting in a single non-constant element not extracted
13685 from a vector.
13686
13687 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
13688
13689 * internal-fn.def (SIGNBIT): New.
13690 * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
13691 defined.
13692 (signbitv4sf2): Likewise.
13693
13694 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com>
13695
13696 PR target/90357
13697 * config/mips/mips.c (mips_split_move): Skip forward SRC into
13698 next insn when the SRC reg is dead.
13699
13700 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com>
13701
13702 * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
13703 (alloc_cand_and_find_basis): Ditto.
13704 (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
13705 (create_mul_imm_cand, create_add_ssa_cand): Ditto.
13706 (create_add_imm_cand, slsr_process_cast): Ditto.
13707 (slsr_process_copy, replace_mult_candidate): Ditto.
13708 (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
13709 (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
13710 (pass_strength_reduction::execute): Init the first NULL element.
13711
13712 2019-05-13 Nathan Sidwell <nathan@acm.org>
13713
13714 * gcc.c (execute): Simplify cond-expr into if. Reformat comment.
13715 (run_attempt): Reformat line break.
13716
13717 2019-05-13 David Edelsohn <dje.gcc@gmail.com>
13718
13719 PR target/90418
13720 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
13721 data registers in sibcall epilogues.
13722 Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
13723
13724 2019-05-13 Uroš Bizjak <ubizjak@gmail.com>
13725
13726 PR target/89221
13727 * configure.ac (--enable-frame-pointer):
13728 Disable by default for cygwin and mingw.
13729 * configure: Regenerate.
13730
13731 2019-05-13 Nathan Sidwell <nathan@acm.org>
13732
13733 * dwarf2out.c (breakout_comdat_types): Move comment to correct
13734 piece of code.
13735 (const_ok_for_output_1): Balance parens around #if/#else/#endif
13736 (gen_member_die): Move abstract origin check earlier. Only VARs
13737 can be static_inline_p. Simplify splicing control flow.
13738
13739 2019-05-13 Richard Biener <rguenther@suse.de>
13740
13741 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
13742 VIEW_CONVERT_EXPR.
13743 (vect_build_slp_tree_1): Likewise.
13744
13745 2019-05-13 Richard Biener <rguenther@suse.de>
13746
13747 PR tree-optimization/90402
13748 * tree-if-conv.c (tree_if_conversion): Value number only
13749 the loop body by making the latch an exit of the region
13750 as well.
13751 * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
13752 processing PHIs.
13753 (do_rpo_vn): Deal with multiple edges into the entry block
13754 that are not backedges inside the region by skipping PHIs
13755 of the entry block.
13756
13757 2019-05-13 Richard Biener <rguenther@suse.de>
13758
13759 PR tree-optimization/90316
13760 * tree-ssa-pre.c (insert_aux): Fold into ...
13761 (insert): ... this function. Use a RPO walk to reduce the
13762 number of required iterations.
13763
13764 2019-05-13 Martin Liska <mliska@suse.cz>
13765
13766 PR tree-optimization/90416
13767 * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
13768 string instead of passing the second part as va_arg argument.
13769
13770 2019-05-13 Martin Liska <mliska@suse.cz>
13771
13772 PR gcov-profile/90380
13773 * gcov.c (handle_cycle): Do not support zero cycle count,
13774 it should not be possible.
13775 (path_contains_zero_cycle_arc): New function.
13776 (circuit): Ignore zero cycle arc counts.
13777
13778 2019-05-13 Martin Liska <mliska@suse.cz>
13779
13780 PR gcov-profile/90380
13781 * gcov.c (enum loop_type): Remove the enum and
13782 the operator.
13783 (handle_cycle): Assert that we should not reach
13784 a negative count.
13785 (circuit): Use loop_found instead of a tri-state loop_type.
13786 (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
13787 happen.
13788
13789 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
13790
13791 PR target/82920
13792 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
13793 (ix86_output_indirect_branch_via_reg): Use output mechanism
13794 accounting for __USER_LABEL_PREFIX__.
13795 (ix86_output_indirect_branch_via_push): Likewise.
13796 (ix86_output_function_return): Likewise.
13797 (ix86_output_indirect_function_return): Likewise.
13798
13799 2019-05-12 Richard Sandiford <richard.sandiford@arm.com>
13800
13801 * doc/md.texi: Document use of code attributes in rtx patterns.
13802 * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
13803 * read-rtl.c (find_code): Split out search loops into...
13804 (maybe_find_code): ...this new function.
13805 (check_code_iterator): Make the error message more informative.
13806 (check_code_attribute): New function.
13807 (rtx_reader::rtx_alloc_for_name): Likewise.
13808 (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
13809 * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
13810 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
13811 <max_opp> directly as an rtx code instead of via a match_operator.
13812 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
13813 (<su>abd<mode>_3): Update accordingly.
13814
13815 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
13816
13817 * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
13818 is given, print the state of the EH "save world" computation for
13819 Darwin.
13820
13821 2019-05-11 Jakub Jelinek <jakub@redhat.com>
13822
13823 PR c++/59813
13824 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
13825 EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
13826
13827 2019-05-11 Uroš Bizjak <ubizjak@gmail.com>
13828
13829 * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
13830 Use pinsrd for TARGET_SSE4_1.
13831 * config/i386/sse.md (movdi_to_sse): Ditto.
13832
13833 2019-05-10 Richard Biener <rguenther@suse.de>
13834
13835 * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
13836 (do_rpo_vn): Initialize next_value_id.
13837
13838 2019-05-10 Martin Liska <mliska@suse.cz>
13839
13840 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
13841 Fix plural form.
13842
13843 2019-05-10 Jakub Jelinek <jakub@redhat.com>
13844
13845 PR tree-optimization/90385
13846 * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
13847 arguments of the exit phis.
13848
13849 PR c++/90383
13850 * tree-inline.h (struct copy_body_data): Add do_not_fold member.
13851 * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
13852 id->do_not_fold.
13853 (copy_tree_body_r): Likewise.
13854 (copy_fn): Set id.do_not_fold to true.
13855
13856 2019-05-10 Martin Liska <mliska@suse.cz>
13857
13858 * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
13859 Reapply changes from r269790.
13860
13861 2019-05-10 Martin Liska <mliska@suse.cz>
13862
13863 PR middle-end/90340
13864 * doc/invoke.texi: New params.
13865 * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
13866 (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
13867 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
13868 Use it.
13869 * tree-switch-conversion.h (struct jump_table_cluster):
13870 Likewise.
13871
13872 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org>
13873
13874 * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
13875
13876 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com>
13877
13878 * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
13879
13880 2019-05-09 Alexander Monakov <amonakov@ispras.ru>
13881
13882 PR rtl-optimization/88879
13883 * sel-sched.c (sel_target_adjust_priority): Remove assert.
13884
13885 2019-05-09 Richard Earnshaw <rearnsha@arm.com>
13886
13887 PR target/90405
13888 * config/arm/arm.c (callee_saved_reg_p): Move before
13889 thumb_find_work_register.
13890 (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
13891 thumb_find_work_register. Only call df_get_live_out once.
13892 (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
13893 (thumb_find_work_register): Use
13894 thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
13895 algorithms to locate a spare call clobbered reg.
13896
13897 2019-05-09 Martin Liska <mliska@suse.cz>
13898
13899 * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
13900 and MAX_EXPR in GIMPLE FE format.
13901
13902 2019-05-09 Martin Liska <mliska@suse.cz>
13903
13904 * tree-cfg.c (dump_function_to_file): Dump entry BB count.
13905 * gimple-pretty-print.c (dump_gimple_bb_header):
13906 Dump BB count.
13907 (pp_cfg_jump): Dump edge probability.
13908 * profile-count.c (profile_quality_as_string): Simplify
13909 with a static array.
13910 (parse_profile_quality): New function.
13911 (profile_count::dump): Simplify with a static array.
13912 (profile_count::from_gcov_type): Add new argument.
13913 * profile-count.h (parse_profile_quality): Likewise.
13914 * predict.h (set_hot_bb_threshold): New.
13915 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
13916 New param.
13917 * predict.c (get_hot_bb_threshold): Set from the new param.
13918 (set_hot_bb_threshold): New.
13919
13920 2019-05-09 Richard Biener <rguenther@suse.de>
13921
13922 PR tree-optimization/90395
13923 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
13924 rewrite vector stores that throw internally.
13925
13926 2019-05-09 Thomas Schwinge <thomas@codesourcery.com>
13927
13928 * cif-code.def (CHKP): Remove.
13929
13930 PR target/89221
13931 * configure.ac (--enable-frame-pointer): Disable by default for
13932 GNU systems.
13933 * configure: Regenerate.
13934
13935 2019-05-09 Alan Modra <amodra@gmail.com>
13936
13937 PR target/89271
13938 * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
13939 (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
13940 * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
13941 cost for general <-> vsx when direct moves are available.
13942 Cost union classes at minimal cost for any reg in the class.
13943 Correct calculation for moves between vsx, float, and altivec.
13944 Don't return a low cost for moves between special regs. Don't
13945 use hard coded register numbers.
13946 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
13947 (rs6000_ira_change_pseudo_allocno_class): New function.
13948 * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
13949 (movdi_internal32, movdi_internal64): Remove '*' from vsx register
13950 alternatives.
13951 (movsi_internal1): Don't disparage vector alternatives.
13952 (mov<mode>_internal): Likewise, excepting alternative that
13953 will be split.
13954 * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
13955 we <- b alternative.
13956
13957 2019-05-08 Jakub Jelinek <jakub@redhat.com>
13958
13959 PR c++/59813
13960 PR tree-optimization/89060
13961 * tree-ssa-live.h (live_vars_map): New typedef.
13962 (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
13963 * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
13964 (struct compute_live_vars_data): New type.
13965 (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
13966 live_vars_at_stmt, destroy_live_vars): New functions.
13967 * tree-tailcall.c: Include tree-ssa-live.h.
13968 (live_vars, live_vars_vec): New global variables.
13969 (find_tail_calls): Perform variable life analysis before punting.
13970 (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
13971 * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
13972 member.
13973 * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
13974 Perform variable life analysis to select variables that really need
13975 clobbers added.
13976 (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
13977 instead set id->eh_landing_pad_dest and assert it is the same.
13978 (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
13979
13980 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com>
13981 Richard Earnshaw <rearnsha@arm.com>
13982
13983 PR target/88167
13984 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
13985 function.
13986 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
13987 (thumb1_compute_save_core_reg_mask): Don't force a spare work
13988 register if both the epilogue and prologue can use call-clobbered
13989 regs.
13990 (thumb1_unexpanded_epilogue): Use
13991 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for
13992 picking temporaries for restoring high regs to match that of the
13993 prologue where possible.
13994 (thumb1_expand_prologue): Add any usable call-clobbered low registers to
13995 the list of work registers. Detect if the return address is still live
13996 at the end of the prologue and avoid using it for a work register if so.
13997 If the return address is not live, add LR to the list of pushable regs
13998 after the first pass.
13999
14000 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
14001
14002 PR tree-optimization/90078
14003 * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
14004 (INFTY): Increase the value for infinite cost.
14005 (struct comp_cost): Promote type of members to int64_t.
14006 (infinite_cost): Don't set complexity in initialization.
14007 (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
14008 overflows to infinite_cost.
14009 (adjust_setup_cost): Promote type of parameter and cost computation
14010 to int64_t.
14011 (struct ainc_cost_data, struct iv_ca): Promote type of member to
14012 int64_t.
14013 (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
14014 cost computation to int64_t.
14015 (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
14016 int64_t's format specifier in dump.
14017
14018 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
14019
14020 PR tree-optimization/90240
14021 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
14022 with respect to scaling factor pre-computed for each basic block.
14023 (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
14024 (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
14025 (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
14026 (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend
14027 live range for array of loop's basic blocks. Cleanup aux field of
14028 loop's basic blocks.
14029
14030 2019-05-08 Jakub Jelinek <jakub@redhat.com>
14031
14032 PR tree-optimization/90356
14033 * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
14034
14035 2019-05-07 Wei Xiao <wei3.xiao@intel.com>
14036
14037 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
14038 OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
14039 (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
14040 (ix86_handle_option): Handle -mavx512bf16.
14041 * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
14042 to extra_headers.
14043 * config/i386/avx512bf16vlintrin.h: New.
14044 * config/i386/avx512bf16intrin.h: New.
14045 * config/i386/cpuid.h (bit_AVX512BF16): New.
14046 * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
14047 * config/i386/i386-builtin-types.def: Add new types.
14048 * config/i386/i386-builtin.def: Add new builtins.
14049 * config/i386/i386-c.c (ix86_target_macros_internal): Define
14050 __AVX512BF16__.
14051 * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
14052 (ix86_option_override_internal): Handle BF16.
14053 (ix86_valid_target_attribute_inner_p): Ditto.
14054 * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
14055 * config/i386/i386-builtin.c (enum processor_features): Add
14056 F_AVX512BF16.
14057 (static const _isa_names_table isa_names_table): Ditto.
14058 * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
14059 (PTA_AVX512BF16): Ditto.
14060 * config/i386/i386.opt: Add -mavx512bf16.
14061 * config/i386/immintrin.h: Include avx512bf16intrin.h
14062 and avx512bf16vlintrin.h.
14063 * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
14064 avx512f_cvtneps2bf16_<mode><mask_name>,
14065 avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
14066 * config/i386/subst.md (mask_half): Add new subst.
14067 * doc/invoke.texi: Document -mavx512bf16.
14068
14069 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org>
14070
14071 * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
14072 Delete declaration.
14073 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
14074 (rs6000_debug_legitimize_reload_address): Delete.
14075 (rs6000_legitimize_reload_address_ptr): Delete.
14076 (rs6000_option_override_internal): Adjust.
14077 (mem_operand_gpr): Adjust comment.
14078 (legitimate_lo_sum_address_p): Ditto.
14079 (rs6000_legitimize_reload_address): Delete.
14080 (rs6000_debug_legitimize_reload_address): Delete.
14081 * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
14082
14083 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
14084
14085 PR target/89765
14086 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14087 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
14088 to compute vector element selector for both constant and variable
14089 operands.
14090
14091 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
14092
14093 * config/i386/i386.md (cvt_mnemonic): New mode attribute.
14094 (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
14095 ashrdi3_cvt using SWI48 mode iterator.
14096
14097 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com>
14098
14099 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
14100 (aarch64_<su>abd<mode>_3): Likewise.
14101 (*aarch64_<su>abd<mode>_3): New define_insn.
14102 (<sur>sad<vsi2qi>): New define_expand.
14103 * config/aarch64/iterators.md: Added MAX_OPP attribute.
14104 * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
14105 (build_vect_cond_expr): Likewise.
14106
14107 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
14108
14109 * cfgexpand.c (asm_clobber_reg_is_valid): Reject
14110 clobbers outside of accessible_reg_set.
14111 * config/i386/i386.c (ix86_conditional_register_usage):
14112 Disable register sets by clearing corresponding bits in
14113 accessible_reg_set. Do not set corresponding bits in fixed_regs,
14114 call_used_regs and don't clear corresponding reg_names array members.
14115
14116 2019-05-07 Richard Biener <rguenther@suse.de>
14117
14118 * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
14119 not specified still compute a comp_vectype for invariant
14120 compares.
14121
14122 2019-05-07 Richard Biener <rguenther@suse.de>
14123
14124 PR tree-optimization/90316
14125 * tree-ssa-pre.c (translate_vuse_through_block): When
14126 same_valid is NULL do not bother to search for a virtual
14127 PHI continuation.
14128 (phi_translate_1): When operands changed we cannot keep
14129 the same value-number so do not bother to ask whether
14130 that's possible from translate_vuse_through_block.
14131
14132 2019-05-07 Martin Liska <mliska@suse.cz>
14133
14134 * bitmap.c (bitmap_register): Come up with
14135 alloc_descriptor_max_uid and assign it for
14136 a new bitmap.
14137 (register_overhead): Use get_descriptor as
14138 a descriptor.
14139 (release_overhead): New.
14140 (bitmap_elem_to_freelist): Call it.
14141 (bitmap_elt_clear_from): Likewise.
14142 (bitmap_obstack_free): Likewise.
14143 (bitmap_move): Sensitively release memory.
14144 * bitmap.h (struct GTY): Add alloc_descriptor and padding.
14145 (bitmap_initialize): Initialize alloc_descriptor to zero.
14146 * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
14147
14148 2019-05-07 Richard Biener <rguenther@suse.de>
14149
14150 * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
14151 we build a SLP node. Remove max_size and limiting.
14152 (vect_analyze_slp_instance): Record and dump size of the SLP graph.
14153
14154 2019-05-07 Richard Biener <rguenther@suse.de>
14155
14156 PR tree-optimization/90316
14157 * tree-ssa-alias.h (get_continuation_for_phi): Take walking
14158 limit by reference.
14159 (walk_non_aliased_vuses): Take walking limit argument.
14160 * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
14161 walking if it is reached instead of just counting.
14162 (get_continuation_for_phi): Likewise.
14163 (walk_non_aliased_vuses): Likewise, instead of leaving counter
14164 limiting to the callback.
14165 * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
14166 (vn_reference_lookup_3): Likewise.
14167 (vn_reference_lookup_pieces): Likewise.
14168 (vn_reference_lookup): Likewise.
14169 * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
14170 * tree-ssa-scopedtables.c (vuse_eq): Adjust.
14171 (avail_exprs_stack::lookup_avail_expr): Likewise.
14172
14173 2019-05-07 Jan Hubicka <hubicka@ucw.cz>
14174
14175 * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
14176 for comparaible types in the second direction even if first one
14177 hits incomparable type.
14178
14179 2019-05-07 Richard Biener <rguenther@suse.de>
14180
14181 PR lto/90369
14182 * lto-wrapper.c (debug_objcopy): Use the original filename
14183 including archive offset for the filename used for -save-temps.
14184
14185 2019-05-07 Li Jia He <helijia@linux.ibm.com>
14186
14187 * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
14188 detection.
14189
14190 2019-05-06 H.J. Lu <hongjiu.lu@intel.com>
14191 Hongtao Liu <hongtao.liu@intel.com>
14192
14193 PR target/89750
14194 PR target/86444
14195 * config/i386/i386-expand.c (ix86_expand_sse_comi_round):
14196 Modified, original implementation isn't correct.
14197
14198 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
14199
14200 * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
14201 (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
14202 (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
14203 (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
14204 (FRAME_POINTER_REGNUM): Change numbering.
14205 * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
14206 (alt_reg_names): Adjust.
14207 (rs6000_conditional_register_usage): Don't mark hard register 64 as
14208 fixed.
14209 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
14210 (DWARF_FRAME_REGISTERS): Delete.
14211 (DWARF2_FRAME_REG_OUT): Fix whitespace.
14212 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
14213 Adjust.
14214 (REG_ALLOC_ORDER): Adjust.
14215 (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
14216 (REG_CLASS_CONTENTS): Adjust.
14217 (RETURN_ADDR_RTX): Change comment.
14218 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
14219 instead of 67.
14220 (REGISTER_NAMES): Adjust.
14221 (ADDITIONAL_REGISTER_NAMES): Adjust.
14222 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
14223
14224 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
14225
14226 * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
14227 Delete.
14228 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
14229 (DWARF_FRAME_REGISTERS): Adjust.
14230 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
14231 Adjust.
14232 (REG_ALLOC_ORDER): Adjust.
14233 (enum reg_class): Delete SPR_REGS.
14234 (REG_CLASS_NAMES): Delete SPR_REGS.
14235 (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs.
14236 (REGISTER_NAMES): Adjust.
14237 (ADDITIONAL_REGISTER_NAMES): Adjust.
14238 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
14239 * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
14240 * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
14241 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
14242 (htm_spr_regno): Delete.
14243 (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
14244 argument.
14245 (rs6000_dbx_register_number): Adjust.
14246
14247 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
14248
14249 * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
14250
14251 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
14252
14253 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
14254 FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
14255
14256 2019-05-06 Jakub Jelinek <jakub@redhat.com>
14257
14258 PR tree-optimization/88709
14259 PR tree-optimization/90271
14260 * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
14261 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
14262 non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int
14263 variable.
14264 (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
14265 of the store merging group is larger than
14266 PARAM_STORE_MERGING_MAX_SIZE parameter.
14267 (split_group): Add bzero_first argument. If set, always emit first
14268 the first store which must be = {} of the whole area and then for the
14269 rest of the stores consider all zero bytes as paddings.
14270 (imm_store_chain_info::output_merged_store): Check if first store
14271 is = {} of the whole area and if yes, determine which setting of
14272 bzero_first for split_group gives smaller number of stores. Adjust
14273 split_group callers.
14274 (lhs_valid_for_store_merging_p): Allow decls.
14275 (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
14276 no elts.
14277 (pass_store_merging::process_store): Likewise.
14278
14279 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
14280
14281 PR target/89424
14282 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
14283 handling of V1TImode.
14284
14285 2019-05-06 Uroš Bizjak <ubizjak@gmail.com>
14286
14287 PR target/89221
14288 * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
14289 and enable_frame_pointer ...
14290 * configure.ac: ... here. Update help strings for
14291 --enable-frame-pointer.
14292 * configure: Regenerate.
14293 * config/i386/i386-options.c (ix86_option_override_internal): Remove
14294 USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
14295 * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
14296 (USE_X86_64_FRAME_POINTER): Ditto.
14297
14298 2019-05-06 Martin Liska <mliska@suse.cz>
14299
14300 * config.gcc: Append to target_gtfiles and fix indentation.
14301
14302 2019-05-06 Richard Biener <rguenther@suse.de>
14303
14304 PR tree-optimization/90358
14305 * tree-vect-stmts.c (get_group_load_store_type): Properly
14306 detect unused upper half of load.
14307 (vectorizable_load): Likewise.
14308
14309 2019-05-06 Richard Biener <rguenther@suse.de>
14310
14311 PR tree-optimization/88828
14312 * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
14313 (simplify_vector_constructor): ...here. Handle constants in
14314 the constructor.
14315
14316 2019-05-06 Richard Biener <rguenther@suse.de>
14317
14318 PR tree-optimization/90328
14319 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
14320 * tree-data-ref.c (dr_may_alias_p): Check whether the clique
14321 is valid in the loop nest before using it.
14322 (initialize_data_dependence_relation): Adjust.
14323 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
14324 loop as loop-nest to dr_may_alias_p.
14325
14326 2019-05-06 Richard Biener <rguenther@suse.de>
14327
14328 * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
14329
14330 2019-05-06 Richard Biener <rguenther@suse.de>
14331
14332 PR tree-optimization/90316
14333 * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
14334 compute target on demand.
14335 (get_continuation_for_phi): Remove code walking stmts to
14336 get to a target virtual operand which could end up being
14337 quadratic.
14338
14339 2019-05-06 Martin Liska <mliska@suse.cz>
14340
14341 PR sanitizer/90312
14342 * config/i386/i386-options.c (ix86_option_override_internal): Error only
14343 when -mabi is selected to a non-default version.
14344
14345 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com>
14346 Martin Liska <mliska@suse.cz>
14347
14348 * Makefile.in: Add lto-dump.texi.
14349 * cgraph.h: Add new functions get_visibility_string and
14350 get_symtab_type_string.
14351 * doc/gcc.texi: Include lto-dump section.
14352 * doc/lto-dump.texi: New file.
14353 * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
14354 (parse_dump_option): Factor out this function.
14355 * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
14356 (parse_dump_option): Export the function.
14357 * symtab.c (symtab_node::get_visibility_string): New function.
14358 (symtab_node::get_symtab_type_string): Likewise.
14359
14360 2019-05-06 Martin Liska <mliska@suse.cz>
14361
14362 * config/i386/i386-builtins.c: New file.
14363 * config/i386/i386-builtins.h: New file.
14364 * config/i386/i386-expand.c: New file.
14365 * config/i386/i386-expand.h: New file.
14366 * config/i386/i386-features.c: New file.
14367 * config/i386/i386-features.h: New file.
14368 * config/i386/i386-options.c: New file.
14369 * config/i386/i386-options.h: New file.
14370 * config.gcc: Add new files into extra_objs and
14371 target_gtfiles.
14372 * config/i386/i386.c: Split content of the file
14373 into newly introduced files.
14374 * config/i386/i386.h: Declare common variables
14375 and macros.
14376 * config/i386/t-i386: Define dependencies for new files.
14377
14378 2019-05-03 Richard Earnshaw <rearnsha@arm.com>
14379
14380 PR target/89400
14381 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
14382 Restrict 'all' variant to 32-bit configurations.
14383 (unaligned_loadhiu): Likewise.
14384 (unaligned_storehi): Likewise.
14385 (unaligned_storesi): Likewise.
14386 (unaligned_loadhis): Disable when compiling for thumb1.
14387
14388 2019-05-03 Marc Glisse <marc.glisse@inria.fr>
14389
14390 PR tree-optimization/90269
14391 * tree-loop-distribution.c (find_seed_stmts_for_distribution):
14392 Ignore clobbers.
14393
14394 2019-05-03 Martin Liska <mliska@suse.cz>
14395
14396 * hash-map.h: Add is_empty function.
14397 * hash-set.h: Likewise.
14398 * hash-table.h: Likewise.
14399 * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
14400 elements () == 0 (and similar usages).
14401 * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
14402 * gimplify.c (gimplify_bind_expr): Likewise.
14403 (gimplify_switch_expr): Likewise.
14404 * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
14405 * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
14406 * postreload-gcse.c (dump_hash_table): Likewise.
14407 (gcse_after_reload_main): Likewise.
14408 * predict.c (combine_predictions_for_bb): Likewise.
14409 * tree-parloops.c (reduction_phi): Likewise.
14410 (separate_decls_in_region): Likewise.
14411 (transform_to_exit_first_loop): Likewise.
14412 (gen_parallel_loop): Likewise.
14413 (gather_scalar_reductions): Likewise.
14414 (try_create_reduction_list): Likewise.
14415 * var-tracking.c (dump_vars): Likewise.
14416 (emit_notes_for_changes): Likewise.
14417 (vt_emit_notes): Likewise.
14418
14419 2019-05-03 Richard Biener <rguenther@suse.de>
14420
14421 PR tree-optimization/90316
14422 * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
14423 before running VN.
14424
14425 2019-05-03 Richard Biener <rguenther@suse.de>
14426
14427 * tree-vect-stmts.c (get_group_load_store_type): Avoid
14428 peeling for gaps by loading only lower halves of vectors
14429 if possible.
14430 (vectorizable_load): Likewise.
14431
14432 2019-05-03 Richard Biener <rguenther@suse.de>
14433
14434 PR middle-end/89518
14435 * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
14436
14437 2019-05-03 Richard Biener <rguenther@suse.de>
14438
14439 PR middle-end/87314
14440 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
14441 Handle STRING_CST vs DECL or STRING_CST.
14442
14443 2019-05-03 Richard Biener <rguenther@suse.de>
14444
14445 PR tree-optimization/88963
14446 * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
14447 vector loads feeding only BIT_FIELD_REFs to component
14448 loads. Rewrite stores fed by CONSTRUCTORs to component
14449 stores.
14450
14451 2019-05-03 Jakub Jelinek <jakub@redhat.com>
14452
14453 * opts.h (finish_options): Remove lang_mask argument.
14454 (print_help, help_option_argument): Declare.
14455 * opts.c (print_help): Remove forward declaration, no longer static.
14456 (finish_options): Remove lang_mask argument, don't call print_help
14457 here.
14458 * opts-global.c (decode_options): Adjust finish_option caller, call
14459 print_help here.
14460
14461 PR tree-optimization/90303
14462 * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
14463 TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
14464
14465 2019-05-03 Richard Biener <rguenther@suse.de>
14466
14467 PR tree-optimization/89698
14468 * gimple-fold.c (canonicalize_constructor_val): Early out
14469 for constants, handle unfolded INTEGER_CSTs as they appear in
14470 C++ virtual table ctors.
14471
14472 2019-05-03 Richard Biener <rguenther@suse.de>
14473
14474 * passes.c (execute_function_todo): Remove dead code.
14475
14476 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
14477
14478 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
14479 the internal register number, for any "real" register.
14480
14481 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
14482
14483 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
14484 correct numbers for TFHAR, TFIAR, TEXASR.
14485
14486 2019-05-02 Richard Biener <rguenther@suse.de>
14487
14488 PR tree-optimization/89653
14489 * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
14490 update-address-taken before the pass.
14491 * passes.def (pass_tree_loop_init): Put comment before it.
14492
14493 2019-05-02 Richard Biener <rguenther@suse.de>
14494
14495 PR tree-optimization/89509
14496 * tree-ssa-structalias.c (compute_dependence_clique): Look
14497 at the first subvar when determining whether it is restrict.
14498
14499 2019-05-02 Richard Biener <rguenther@suse.de>
14500
14501 PR tree-optimization/90273
14502 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
14503 useless debug stmts.
14504
14505 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com>
14506
14507 * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
14508 ACLE branch.
14509 * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
14510 SVE ACLE branch.
14511 * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
14512 VEC_COND_EXPR be inserted to emulate a conditional internal function.
14513 (build_vect_cond_expr): Emit the VEC_COND_EXPR.
14514 (vectorizable_reduction): Use the functions above to vectorize in a
14515 fully masked loop codes that don't have a conditional internal
14516 function.
14517
14518 2019-05-02 Martin Liska <mliska@suse.cz>
14519
14520 * cgraphclones.c: Call valid_attribute_p with 1 for
14521 target_clone.
14522 * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
14523 it's for target attribute.
14524 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
14525 Add new boolean argument.
14526 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
14527 Likewise.
14528 (ix86_valid_target_attribute_tree): Pass target_clone_attr
14529 to ix86_valid_target_attribute_inner_p.
14530 (ix86_valid_target_attribute_p): Pass flags argument to
14531 ix86_valid_target_attribute_inner_p.
14532 (get_builtin_code_for_version): Use 0 as it's target attribute.
14533
14534 2019-05-02 Martin Liska <mliska@suse.cz>
14535
14536 * gcc.c (process_command): Add dummy file only
14537 if n_infiles == 0.
14538 * opts-global.c (decode_options): Pass lang_mask.
14539 * opts.c (print_help): New function.
14540 (finish_options): Print --help if help_option_argument
14541 is set.
14542 (common_handle_option): Factor out content of OPT__help_
14543 into print_help.
14544 * opts.h (finish_options): Add new argument.
14545
14546 2019-05-02 Martin Liska <mliska@suse.cz>
14547
14548 PR target/88809
14549 * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
14550 With -minline-all-stringops use inline expansion using 4B loop.
14551 * doc/invoke.texi: Document the change of
14552 -minline-all-stringops.
14553
14554 2019-05-01 Jeff Law <law@redhat.com>
14555
14556 PR tree-optimization/88797
14557 * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
14558 PHI feeds a conditional on the RHS of an assignment.
14559
14560 2019-04-30 Andrew Waterman <andrew@sifive.com>
14561 Jim Wilson <jimw@sifive.com>
14562
14563 * config/riscv/constraints.md (L): New.
14564 * config/riscv/predicates.md (lui_operand): New.
14565 (sfb_alu_operand): New.
14566 * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
14567 * config/riscv/riscv.c (riscv_expand_conditional_move): New.
14568 * config/riscv/riscv.h (TARGET_SFB_ALU): New.
14569 * config/riscv/risc.md (type): Add sfb_alu.
14570 (branch<mode>): Renamed from branch_order<mode>. Change predicate for
14571 operand 3 to reg_or_0_operand. In output string, change %3 to %z3.
14572 (branch_zero<mode>): Delete.
14573 (mov<mode>cc): New.
14574 (mov<GPR:mode><X:mode>cc): Likewise.
14575 * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses.
14576
14577 2019-04-30 Nathan Sidwell <nathan@acm.org>
14578
14579 * tree.h (MARK_TS_EXP): New.
14580
14581 2019-04-30 Martin Liska <mliska@suse.cz>
14582
14583 * opts.c (enable_warning_as_error): Provide hints
14584 for unknown options.
14585
14586 2019-04-30 Martin Liska <mliska@suse.cz>
14587
14588 PR debug/90288
14589 * doc/invoke.texi: Add missing dash for gas-locview-support
14590 and gno-as-locview-support.
14591
14592 2019-04-30 Jakub Jelinek <jakub@redhat.com>
14593
14594 PR target/89093
14595 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
14596 whitespace at the start of target attribute string.
14597
14598 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14599
14600 PR target/86538
14601 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
14602 Define __ARM_FEATURE_ATOMICS.
14603
14604 2019-04-30 Martin Liska <mliska@suse.cz>
14605
14606 * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
14607 into built_in_function enum. Remove code for endp == 2 and
14608 use BUILT_IN_* constants.
14609 (gimple_fold_builtin): Call the function with fcode.
14610
14611 2019-04-30 Martin Liska <mliska@suse.cz>
14612
14613 * config/i386/i386.c (ix86_builtin_reciprocal): Cast
14614 DECL_FUNCTION_CODE into ix86_builtins enum before
14615 the switch statement.
14616
14617 2019-04-30 Jakub Jelinek <jakub@redhat.com>
14618
14619 PR tree-optimization/89475
14620 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
14621 calls.
14622
14623 2019-04-30 Martin Liska <mliska@suse.cz>
14624
14625 PR translation/90274
14626 * opts.c (print_filtered_help): Wrap string in _(...).
14627
14628 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com>
14629
14630 PR tree-optimization/90240
14631 Revert:
14632 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
14633
14634 PR tree-optimization/90078
14635 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
14636 checks for infinite_cost overflow.
14637
14638 2019-04-29 Jeff Law <law@redhat.com>
14639
14640 * passes.def: Move -Wrestrict pass after copy propagation.
14641
14642 2019-04-29 Maya Rashish <coypu@sdf.org>
14643
14644 * config.gcc (default_gnu_indirect_function): Default to yes
14645 for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
14646 sparc*-*-netbsd*, x86_64-*-netbsd*.
14647
14648 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru>
14649
14650 * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
14651 where cond2 is NE_EXPR.
14652 (is_value_included_in): Update comment.
14653
14654 2019-04-29 Richard Biener <rguenther@suse.de>
14655
14656 PR tree-optimization/90278
14657 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
14658 EH on comparison simplification.
14659
14660 2019-04-29 Jason Merrill <jason@redhat.com>
14661
14662 PR c++/82081 - tail call optimization breaks noexcept
14663 * tree-tailcall.c (find_tail_calls): Don't turn a call from a
14664 nothrow function to a might-throw function into a tail call.
14665
14666 2019-04-29 Richard Sandiford <richard.sandiford@arm.com>
14667
14668 * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
14669 (DDR_INNER_LOOP): Likewise.
14670 * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
14671 (initialize_data_dependence_relation): Likewise.
14672 (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
14673
14674 2019-04-29 Jakub Jelinek <jakub@redhat.com>
14675
14676 PR rtl-optimization/90257
14677 * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
14678 return value.
14679
14680 Revert the revert:
14681 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
14682
14683 PR target/90178
14684 Revert:
14685 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
14686
14687 Revert the revert:
14688 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
14689
14690 Revert:
14691 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
14692
14693 * lra-spills.c (lra_final_code_change): Remove useless move insns.
14694
14695 2019-04-29 Richard Biener <rguenther@suse.de>
14696
14697 * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
14698 rhs issue a reset.
14699
14700 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org>
14701
14702 * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h,
14703 varasm.h, and netbsd-protos.h.
14704
14705 2019-04-27 Uroš Bizjak <ubizjak@gmail.com>
14706
14707 PR target/89261
14708 * config/i386/i386-protos.h (ix86_data_alignment): Change
14709 the second argument type to unsigned int.
14710 * config/i386/i386.c (ix86_data_alignment): Change "align"
14711 argument type to unsigned int.
14712
14713 2019-04-27 Martin Liska <mliska@suse.cz>
14714
14715 PR middle-end/90258
14716 * opt-suggestions.c (option_proposer::build_option_suggestions):
14717 When get_valid_option_values returns empty values, add the
14718 misspelling candidate.
14719
14720 2019-04-26 Jim Wilson <jimw@sifive.com>
14721
14722 * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
14723 parameter.
14724 * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
14725 Pass orig_mode to riscv_build_integer.
14726 (riscv_split_integer): Pass mode to riscv_move_integer.
14727 (riscv_legitimize_const_move): Likewise.
14728 (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
14729 promoted_mode. Replace force_reg call with code to load constant into
14730 promoted reg and then subreg it for the store.
14731 * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
14732 riscv_move_integer.
14733
14734 2018-04-26 Eugene Sharygin <eush@ispras.ru>
14735
14736 * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
14737 corrupt codes.
14738
14739 2019-04-26 Richard Sandiford <richard.sandiford@arm.com>
14740
14741 * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
14742 commentary about the encoding of precision.
14743
14744 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org>
14745
14746 * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
14747 * config/i386/t-freebsd64: New file.
14748 * config.gcc: Add the t-freebsd64 for multilib support.
14749
14750 2019-04-25 Uroš Bizjak <ubizjak@gmail.com>
14751
14752 * doc/extend.texi (vector_size): Add missing comma after @xref.
14753
14754 2019-04-25 Jakub Jelinek <jakub@redhat.com>
14755
14756 * BASE-VER: Set to 10.0.0.
14757
14758 2019-04-25 Richard Biener <rguenther@suse.de>
14759
14760 PR middle-end/89765
14761 * gimplify.c (gimplify_expr): Avoid turning a lvalue
14762 VIEW_CONVERT_EXPR into one operating on an rvalue.
14763
14764 2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
14765
14766 PR target/89929
14767 * config/i386/i386.c (feature_priority): Moved to file scope.
14768 (processor_features): Likewise.
14769 (processor_model): Likewise.
14770 (_arch_names_table): Likewise.
14771 (arch_names_table): Likewise.
14772 (_feature_list): Removed.
14773 (feature_list): Likewise.
14774 (_isa_names_table): Moved to file scope. Add priority.
14775 (isa_names_table): Likewise.
14776 (get_builtin_code_for_version): Replace feature_list with
14777 isa_names_table. Update error message for P_ZERO priority.
14778
14779 2019-04-25 Richard Biener <rguenther@suse.de>
14780
14781 * tree-pass.h (make_pass_phi_only_cprop): Remove.
14782 * timevar.def (TV_TREE_PHI_CPROP): Likewise.
14783
14784 2019-04-24 Jeff Law <law@redhat.com>
14785
14786 PR tree-optimization/90037
14787 * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
14788 * passes.def: Replace all instance of phi-only cprop with the
14789 lattice propagator. Move propagation pass from after erroneous
14790 path isolation to before erroneous path isolation.
14791 * tree-ssa-phionlycprop.c: Remove.
14792
14793 2019-04-24 Richard Biener <rguenther@suse.de>
14794
14795 PR middle-end/90213
14796 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
14797 by size and BITS_PER_UNIT on poly-wide-ints.
14798
14799 2019-04-25 Richard Biener <rguenther@suse.de>
14800
14801 PR middle-end/90194
14802 * match.pd: Add pattern to simplify view-conversion of an
14803 empty constructor.
14804
14805 2019-04-24 Clement Chigot <clement.chigot@atos.net>
14806
14807 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
14808 OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
14809 for Go on 32 bit AIX.
14810 * config/rs6000/aix72.h: Likewise.
14811
14812 2019-04-24 Jakub Jelinek <jakub@redhat.com>
14813
14814 PR target/90193
14815 * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
14816 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
14817
14818 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
14819
14820 PR target/89952
14821 * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
14822 from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also
14823 for restored hard frame pointer.
14824 (s390_sched_dependencies_evaluation): Implement new target hook.
14825 (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
14826
14827 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com>
14828
14829 * config/arc/arc-options.def: Fix typos and spelling mistakes.
14830 * config/arc/arc.c (arc_init): Cleanup warning message.
14831 (arc_override_options): Likewise.
14832
14833 2019-04-24 Jakub Jelinek <jakub@redhat.com>
14834
14835 PR target/90187
14836 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
14837 a register if both if_true and if_false are MEMs.
14838
14839 PR tree-optimization/90208
14840 * tree-cfg.c (remove_bb): Move forced labels from removed bbs
14841 after labels of new_bb, not before them.
14842
14843 PR tree-optimization/90211
14844 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
14845 which are not SSA_NAMEs.
14846
14847 2018-04-23 Sudakshina Das <sudi.das@arm.com>
14848
14849 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
14850 AArch64.
14851 (aarch64_file_end_indicate_exec_stack): Add gnu note section.
14852
14853 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
14854
14855 PR rtl-optimization/87979
14856 * modulo-sched.c (sms_schedule): Start ii value "mii" should
14857 not equal zero.
14858
14859 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
14860
14861 PR rtl-optimization/84032
14862 * modulo-sched.c (ps_insn_find_column): Change condition so that
14863 branch will always be the last insn in a row inside partial
14864 schedule.
14865
14866 2019-04-23 Richard Biener <rguenther@suse.de>
14867
14868 PR debug/90131
14869 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
14870 dest_single_pred_p argument.
14871 (remove_forwarder_block): Adjust.
14872 (remove_forwarder_block_with_phi): Likewise.
14873
14874 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14875 Bernd Edlinger <bernd.edlinger@hotmail.de>
14876 Jakub Jelinek <jakub@redhat.com>
14877
14878 PR target/89093
14879 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
14880 if used with general-regs-only.
14881 (arm_conditional_register_usage): Don't add non-general regs if
14882 general-regs-only.
14883 (arm_valid_target_attribute_rec): Handle general-regs-only.
14884 * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
14885 general-regs-only.
14886 (TARGET_HARD_FLOAT_SUB): Define.
14887 (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
14888 (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
14889 (TARGET_REALLY_IWMMXT2): Likewise.
14890 * config/arm/arm.opt: Add -mgeneral-regs-only.
14891 * doc/extend.texi: Document ARM general-regs-only target.
14892 * doc/invoke.texi: Document ARM -mgeneral-regs-only.
14893
14894 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
14895
14896 PR tree-optimization/90078
14897 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
14898 checks for infinite_cost overflow.
14899
14900 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
14901
14902 PR tree-optimization/90021
14903 * tree-chrec.c (evolution_function_is_univariate_p): New parameter
14904 and check univariate against it.
14905 * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
14906 * tree-data-ref.c (add_other_self_distances): Pass new argument.
14907
14908 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
14909
14910 PR target/90178
14911 Revert:
14912 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
14913
14914 Revert the revert:
14915 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
14916
14917 Revert:
14918 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
14919
14920 * lra-spills.c (lra_final_code_change): Remove useless move insns.
14921
14922 2019-04-21 Iain Sandoe <iain@sandoe.co.uk>
14923
14924 * config/rs6000/rs6000.md (group_end_nop): Emit insn register
14925 names using operand format, rather than hard-wired.
14926 (speculation_barrier): Likewise.
14927
14928 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org>
14929
14930 PR tree-optimization/88055
14931 * tree-call-cdce.c (comparison_code_if_no_nans): New function.
14932 (gen_one_condition): Use it if !HONOR_NANS.
14933
14934 2019-04-19 Jakub Jelinek <jakub@redhat.com>
14935
14936 PR middle-end/90139
14937 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
14938 assign_temp instead of gen_reg_rtx.
14939
14940 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org>
14941
14942 PR translation/90118
14943 * config/aarch64/aarch64.c (aarch64_override_options_internal):
14944 Add missing space before %<.
14945
14946 2019-04-18 Peter Bergner <bergner@linux.ibm.com>
14947
14948 PR rtl-optimization/87871
14949 * ira-lives.c (make_object_dead): Don't add conflicts to
14950 TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
14951
14952 2019-04-18 Martin Sebor <msebor@redhat.com>
14953
14954 PR middle-end/89797
14955 * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
14956 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
14957 assuming type size fits in SHWI.
14958
14959 2019-04-18 Jan Hubicka <hubicka@ucw.cz>
14960
14961 PR ipa/85051
14962 * ipa-inline.c (flatten_function): New parameter UPDATE.
14963 (ipa_inline, early_inliner): Use it.
14964
14965 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
14966
14967 * fold-const.c (int_const_binop): Return early on failure.
14968
14969 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
14970
14971 PR middle-end/85164
14972 * combine.c (force_int_to_mode): Cast the argument rather than
14973 the result of known_alignment.
14974 * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
14975
14976 2019-04-18 Richard Biener <rguenther@suse.de>
14977
14978 PR debug/90131
14979 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
14980 out from ...
14981 (remove_forwarder_block): ... here.
14982 (remove_forwarder_block_with_phi): Also move debug stmts here.
14983
14984 2019-04-18 Jakub Jelinek <jakub@redhat.com>
14985
14986 PR translation/79183
14987 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
14988 inform where appropriate.
14989
14990 2019-04-18 Richard Biener <rguenther@suse.de>
14991
14992 * tree.c (get_qualified_type): Put found type variants at the
14993 head of the variant list.
14994
14995 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org>
14996
14997 * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
14998
14999 2019-04-17 Hongtao Liu <hongtao.liu@intel.com>
15000
15001 PR target/90125
15002 * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
15003 _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
15004 _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
15005 _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
15006 _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
15007
15008 2019-04-17 Peter Bergner <bergner@linux.ibm.com>
15009
15010 * ira-conflicts.c (print_allocno_conflicts): Always print something,
15011 even for allocno's with no conflicts.
15012 (print_conflicts): Print an extra newline.
15013
15014 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
15015
15016 * auto-inc-dec.c (attempt_change): Set the alignment of the
15017 temporary memory to that of the original.
15018
15019 2019-04-17 Joao Moreira <jmoreira@suse.de>
15020
15021 * targhooks.c (default_print_patchable_function_entry): Emit
15022 __patchable_function_entries section with writable flags to allow
15023 relocation resolution.
15024
15025 2019-04-17 Jonny Grant <jg@jguk.org>
15026
15027 * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
15028
15029 2019-04-17 Jakub Jelinek <jakub@redhat.com>
15030
15031 PR middle-end/90095
15032 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
15033 on lowpart SUBREGs.
15034
15035 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com>
15036
15037 * config/arc/arc.c (arc_init): Format diagnostic string.
15038 (arc_override_options): Likewise.
15039 (check_if_valid_regno_const): Likewise.
15040 (arc_reorg): Likewise.
15041
15042 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
15043
15044 PR target/17108
15045 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
15046 name.
15047 (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
15048 name.
15049 * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
15050 (*movdi_update1): Use Pmode.
15051 (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
15052 (movdi_<mode>_update_stack): Rename to ...
15053 (movdi_update_stack): ... this. Fix comment. Change condition. Don't
15054 use Pmode.
15055 (*movsi_update1): Use Pmode.
15056 (*movsi_update2): Use Pmode.
15057 (movsi_update): Rename to ...
15058 (movsi_<mode>_update): ... this. Use Pmode.
15059 (movsi_update_stack): Fix condition.
15060 (*movhi_update1): Use Pmode. Fix argument to
15061 avoiding_indexed_address_p.
15062 (*movhi_update2): Ditto.
15063 (*movhi_update3): Ditto.
15064 (*movhi_update4): Ditto.
15065 (*movqi_update1): Ditto.
15066 (*movqi_update2): Ditto.
15067 (*movqi_update3): Ditto.
15068 (*movsf_update1, *movdf_update1): Merge, rename to...
15069 (*mov<mode>_update1): This. Use Pmode. Fix argument to
15070 avoiding_indexed_address_p. Add "size" attribute.
15071 (*movsf_update2, *movdf_update2): Merge, rename to...
15072 (*mov<mode>_update2): This. Ditto.
15073 (*movsf_update3): Use Pmode. Fix argument to
15074 avoiding_indexed_address_p.
15075 (*movsf_update4): Ditto.
15076 (allocate_stack): Simplify condition. Adjust pattern names.
15077
15078 2019-04-17 Jakub Jelinek <jakub@redhat.com>
15079
15080 PR target/89093
15081 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
15082 whitespace at the start of target attribute string.
15083
15084 2019-04-16 Pat Haugen <pthaugen@us.ibm.com>
15085
15086 PR target/84369
15087 * config/rs6000/power9.md: Add store forwarding bypass.
15088
15089 2019-04-16 Alexandre Oliva <aoliva@redhat.com>
15090
15091 PR debug/89528
15092 * valtrack.c (dead_debug_insert_temp): Reset debug references
15093 to the return value of a call being removed.
15094
15095 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
15096
15097 * config/arc/arc-protos.h (arc_register_move_cost): Remove.
15098 * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
15099 implement target hook.
15100 (arc_memory_move_cost): New function.
15101 (TARGET_REGISTER_MOVE_COST): Define.
15102 (TARGET_MEMORY_MOVE_COST): Likewise.
15103 * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
15104 (MEMORY_MOVE_COST): Likewise.
15105
15106 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
15107
15108 * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
15109 (sibcall_value_insn): Likewise.
15110 * config/arc/constraints.md (Rs5): Remove.
15111
15112 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
15113
15114 * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
15115 for last two fake registers.
15116 (arc_conditional_register_usage): Make sure fake frame and arg
15117 pointer regs are in general regs class.
15118 (FRAME_POINTER_MASK): Remove.
15119 (RETURN_ADDR_MASK): Remove.
15120 (arc_must_save_register): Use hard frame regnum.
15121 (frame_restore_reg): Use hard_frame_pointer_rtx.
15122 (arc_save_callee_saves): Likewise.
15123 (arc_restore_callee_saves): Likewise.
15124 (arc_save_callee_enter): Likewise.
15125 (arc_restore_callee_leave): Likewise.
15126 (arc_save_callee_milli): Likewise.
15127 (arc_eh_return_address_location): Likewise.
15128 (arc_check_multi): Use hard frame regnum.
15129 (arc_can_eliminate): Likewise.
15130 * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
15131 for register allocator.
15132 (REG_CLASS_CONTENTS): Update GENERAL_REGS.
15133 (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
15134 (FRAME_POINTER_REGNUM): Change it to a fake register.
15135 (HARD_FRAME_POINTER_REGNUM): Defined.
15136 (ARG_POINTER_REGNUM): Change it to a new fake register.
15137 (ELIMINABLE_REGS): Update.
15138 (REGISTER_NAMES): Update names.
15139 * config/arc/arc.md (LP_START): Remove.
15140 (LP_END): Likewise.
15141 (shift_si3_loop): Update pattern.
15142
15143 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
15144
15145 * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
15146 to avoid delay slot scheduling.
15147 (arc_must_save_register): Don't save SP.
15148 * config/arc/arc.md (stack_tie): Remove.
15149 (UNSPEC_ARC_STKTIE): Likewise.
15150
15151 2019-04-16 Kito Cheng <kito.cheng@gmail.com>
15152 Shiva Chen <shiva0217@gmail.com>
15153
15154 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
15155 code gen with large shift amount.
15156
15157 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
15158
15159 * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
15160 subreg.
15161
15162 2019-04-16 Jakub Jelinek <jakub@redhat.com>
15163
15164 PR target/90096
15165 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
15166 print -m64/-mx32/-m32 if it is true.
15167 (ix86_debug_options, ix86_function_specific_print): Pass true as
15168 ADD_ABI_P to ix86_target_string.
15169 (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
15170 ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
15171 or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
15172
15173 PR rtl-optimization/90082
15174 * dce.c (can_delete_call): New function.
15175 (deletable_insn_p, mark_insn): Use it.
15176
15177 PR tree-optimization/90090
15178 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
15179 throw internally.
15180 (is_division_by_square): Likewise. Formatting fix.
15181
15182 2019-04-16 Richard Biener <rguenther@suse.de>
15183
15184 PR tree-optimization/56049
15185 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
15186 equality check if alias-set zero will prevail.
15187
15188 2019-04-15 Jeff Law <law@redhat.com>
15189
15190 * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
15191 size and alignment as unsigned.
15192
15193 2019-04-15 Richard Biener <rguenther@suse.de>
15194
15195 PR debug/90074
15196 * tree-loop-distribution.c (destroy_loop): Preserve correct
15197 debug info.
15198
15199 2019-04-15 Richard Biener <rguenther@suse.de>
15200
15201 PR tree-optimization/90071
15202 * tree-ssa-reassoc.c (init_range_entry): Do not pick up
15203 abnormal operands from def stmts.
15204
15205 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org>
15206
15207 PR rtl-optimization/89794
15208 * combine.c (count_auto_inc): New function.
15209 (try_combine): Count how many auto_inc expressions there were in the
15210 original instructions. Ensure we have the same number in the new
15211 instructions. Remove the code that tried to ensure auto_inc side
15212 effects on i1 and i0 are not lost.
15213
15214 2019-04-15 Richard Biener <rguenther@suse.de>
15215
15216 PR ipa/88936
15217 * tree.h (auto_var_p): Declare.
15218 * tree.c (auto_var_p): New function, split out from ...
15219 (auto_var_in_fn_p): ... here.
15220 * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
15221 member.
15222 (new_var_info): Initialize it.
15223 (set_uids_in_ptset): Also set the shadow variable uid if required.
15224 (ipa_pta_execute): Postprocess points-to solutions assigning
15225 shadow variable uids for locals that may reach their containing
15226 function recursively.
15227 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
15228 assert but instead check whether the points-to solution is
15229 a singleton.
15230
15231 2019-04-15 Martin Jambor <mjambor@suse.cz>
15232
15233 PR ipa/pr89693
15234 * cgraph.c (clone_of_p): Loop over clone chain for each step in
15235 the thunk chain.
15236
15237 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
15238
15239 * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
15240
15241 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
15242 Kito Cheng <kito.cheng@gmail.com>
15243 Shiva Chen <shiva0217@gmail.com>
15244
15245 * config/nds32/nds32-md-auxiliary.c
15246 (nds32_legitimize_pic_address): Use new PIC pattern.
15247 (nds32_legitimize_tls_address): Use new TLS pattern.
15248 (nds32_output_symrel): New.
15249 * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
15250 (nds32_alloc_relax_group_id): Ditto.
15251 * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
15252 (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
15253 relax_group_id.
15254 (nds32_group_tls_insn): Ditto.
15255 (nds32_group_float_insns): Ditto.
15256 * config/nds32/nds32.md (tls_le): New.
15257 (sym_got): Ditto.
15258
15259 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com>
15260
15261 * configure: Add nds32 target for dwarf2 debug_line checking.
15262 * configure.ac: Regenerated.
15263
15264 2019-04-14 Jan Hubicka <hubicka@ucw.cz>
15265
15266 PR lto/89358
15267 * ipa-devirt.c (skip_in_fields_list_p): New.
15268 (odr_types_equivalent_p): Use it.
15269
15270 2019-04-13 Jakub Jelinek <jakub@redhat.com>
15271
15272 PR target/89093
15273 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
15274 instead of strncmp when checking for thumb and arm. Formatting fixes.
15275
15276 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
15277
15278 * doc/install.texi: Document --with-target-system-zlib.
15279
15280 2019-04-12 Martin Sebor <msebor@redhat.com>
15281
15282 PR c/88383
15283 PR c/89288
15284 PR c/89798
15285 PR c/89797
15286 * targhooks.c (default_vector_alignment): Avoid assuming
15287 argument fits in SHWI.
15288 * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
15289 a shift expression.
15290 * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
15291
15292 2019-04-12 Jakub Jelinek <jakub@redhat.com>
15293
15294 PR rtl-optimization/89965
15295 * dce.c: Include rtl-iter.h.
15296 (struct check_argument_load_data): New type.
15297 (check_argument_load): New function.
15298 (find_call_stack_args): Check for loads from stack slots still tracked
15299 in sp_bytes and punt if any is found.
15300
15301 * config/mips/loongson-mmiintrin.h: Fix up #error message.
15302
15303 2019-04-12 Jan Hubicka <hubicka@ucw.cz>
15304
15305 * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
15306 * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
15307
15308 2019-04-12 Martin Liska <mliska@suse.cz>
15309
15310 PR middle-end/89970
15311 * multiple_target.c (create_dispatcher_calls): Wrap ifunc
15312 in error message.
15313 (separate_attrs): Handle multiple 'default's.
15314 (expand_target_clones): Rework error handling code.
15315
15316 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
15317
15318 PR target/87532
15319 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
15320 mode of vector rather than mode of destination for move instruction.
15321 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
15322 Use QI inner mode with V16QI vector mode.
15323
15324 2019-04-12 Jakub Jelinek <jakub@redhat.com>
15325
15326 PR target/52726
15327 * config/tilepro/tilepro.c (tilepro_print_operand): Use just
15328 "invalid %%t operand" in output_operand_lossage message.
15329
15330 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
15331
15332 * config/s390/predicates.md (permute_pattern_operand): New
15333 predicate.
15334 * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
15335 operand for the permute pattern.
15336 ("*vec_perm<mode>"): New insn definition.
15337 ("bswap<mode>"): Generate the permute pattern operand in the
15338 expander and perform the operand reloads for pre arch13 level
15339 already.
15340 ("*bswap<mode>_emu"): Rename to ...
15341 ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
15342 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
15343 Add the USE operand for the permute pattern.
15344 ("*vec_set_bswap_vec<mode>"): Likewise.
15345
15346 2019-04-12 Jakub Jelinek <jakub@redhat.com>
15347
15348 PR c/89946
15349 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
15350 and gcc_unreachable if it fails, just call tree_to_uhwi which
15351 verifies that too. Test TREE_CHAIN instead of list_length > 1.
15352 Start warning message with a lower-case letter. Formatting fixes.
15353
15354 PR rtl-optimization/90026
15355 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
15356 successors, look for BARRIERs inside of the whole BB_FOOTER chain
15357 rather than just at the start of it. If e->src BB_FOOTER is not NULL
15358 in cfglayout mode, use emit_barrier_after_bb.
15359
15360 2018-04-11 Steve Ellcey <sellcey@marvell.com>
15361
15362 PR rtl-optimization/87763
15363 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
15364 New Instruction.
15365
15366 2019-04-11 Tom de Vries <tdevries@suse.de>
15367
15368 * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
15369 max macro using statement expression.
15370
15371 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
15372
15373 * xcoffout.h (xcoff_private_rodata_section_name): Declare.
15374 * xcoffout.c (xcoff_private_rodata_section_name): Define.
15375 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
15376 read_only_private_data_section using xcoff_private_rodata_section_name.
15377 (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
15378
15379 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org>
15380
15381 PR target/90016
15382 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
15383
15384 2019-04-11 Jakub Jelinek <jakub@redhat.com>
15385
15386 PR rtl-optimization/89965
15387 * dce.c (sp_based_mem_offset): New function.
15388 (find_call_stack_args): Use sp_based_mem_offset.
15389
15390 2019-04-11 Jonathan Wakely <jwakely@redhat.com>
15391
15392 * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
15393
15394 2019-04-11 Richard Biener <rguenther@suse.de>
15395
15396 PR tree-optimization/90020
15397 * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
15398 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
15399 * tree-ssa-pre.c (compute_avail): Use it to not put
15400 possibly trapping references after a call that might not
15401 return into EXP_GEN.
15402 * gcse.c (compute_hash_table_work): Do not elide
15403 marking a block containing a call if the call might not
15404 return.
15405
15406 2019-04-11 Richard Biener <rguenther@suse.de>
15407
15408 PR tree-optimization/90018
15409 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
15410 Test both SLP and interleaving variants.
15411
15412 2019-04-11 Robin Dapp <rdapp@linux.ibm.com>
15413
15414 * config/s390/8561.md: New file.
15415 * config/s390/driver-native.c (s390_host_detect_local_cpu):
15416 Add arch13 cpu model.
15417 * config/s390/s390-opts.h (enum processor_type): Likewise.
15418 * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
15419 (s390_get_unit_mask): Likewise.
15420 (s390_is_fpd): Likewise.
15421 (s390_is_fxd): Likewise.
15422 * config/s390/s390.h (s390_tune_attr): Likewise.
15423 * config/s390/s390.md: Include arch13 pipeline description.
15424 * config/s390/s390.opt: Add arch13.
15425
15426 2018-04-10 Steve Ellcey <sellcey@marvell.com>
15427
15428 PR rtl-optimization/87763
15429 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
15430 New prototype.
15431 * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
15432 New function.
15433 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
15434 New instruction.
15435 (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
15436 (*aarch64_bfi<GPI:mode>4_noand): Ditto.
15437 (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
15438 (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
15439
15440 2019-04-10 Jonathan Wakely <jwakely@redhat.com>
15441
15442 * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
15443 "Although" in -fipa-icf documentation.
15444
15445 * doc/invoke.texi (Debugging Options): Explicitly state the semantics
15446 of using multiple -g options.
15447
15448 2019-04-10 Martin Liska <mliska@suse.cz>
15449
15450 PR gcov-profile/89959
15451 * doc/gcov.texi: Make documentation of -x option
15452 more precise.
15453
15454 2019-04-10 Richard Biener <rguenther@suse.de>
15455
15456 * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
15457 member.
15458 (DR_GROUP_SAME_DR_STMT): Remove.
15459 * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
15460 * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
15461 replace with assert.
15462 (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
15463 (vect_record_grouped_load_vectors): Remove unreachable code.
15464
15465 2019-04-10 Richard Earnshaw <rearnsha@arm.com>
15466
15467 PR target/90016
15468 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
15469 obsolete reference to N.
15470
15471 2019-04-10 Jakub Jelinek <jakub@redhat.com>
15472
15473 PR middle-end/90025
15474 * expr.c (store_expr): Set properly size on the MEM passed to
15475 clear_storage.
15476
15477 PR c++/90010
15478 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
15479 with strlen in between hostsz-3 and hostsz-1 inclusive when no
15480 translation is needed, and when translation is needed, only append
15481 ... if the string length is hostsz or more bytes long. Avoid using
15482 strncpy or strcat.
15483
15484 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
15485
15486 PR target/90024
15487 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
15488 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
15489 into three.
15490 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
15491 differences directly.
15492 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
15493
15494 2019-04-09 Jakub Jelinek <jakub@redhat.com>
15495
15496 PR translation/90011
15497 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
15498 from diagnostics.
15499 * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
15500 diagnostics.
15501 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
15502 * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
15503 * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
15504 trailing space from -gsplit-dwarf diagnostics.
15505
15506 PR tree-optimization/89998
15507 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
15508 instead of integer_type_node if possible, don't add ranges if return
15509 type is not compatible with int.
15510 * gimple-fold.c (gimple_fold_builtin_sprintf,
15511 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
15512 integer_type_node.
15513
15514 2019-04-09 Martin Liska <mliska@suse.cz>
15515
15516 * Makefile.in: Use GENERATOR_CFLAGS for all generators.
15517 * doc/install.texi: Document the new config.
15518
15519 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
15520
15521 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
15522 use gimple_expr_type for load and store calls. Skip over the
15523 condition argument in a conditional internal function.
15524 Protect use of TREE_INT_CST_LOW.
15525
15526 2019-04-09 Jakub Jelinek <jakub@redhat.com>
15527
15528 PR target/90015
15529 * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
15530 (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove
15531 trailing period from it too.
15532
15533 2019-04-08 wu yuan <wuyuan5@huawei.com>
15534
15535 * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
15536 * config/aarch64/aarch64.md : Add "tsv110.md"
15537 * config/aarch64/tsv110.md: New file.
15538
15539 2019-04-08 Richard Biener <rguenther@suse.de>
15540
15541 PR tree-optimization/90006
15542 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
15543 calls like lrint.
15544
15545 2019-04-08 Andrea Corallo <andrea.corallo@arm.com>
15546
15547 PR target/83033
15548 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
15549 construction.
15550 (fma_root_node): Likewise.
15551 (func_fma_steering): Likewise.
15552
15553 2019-04-08 Jakub Jelinek <jakub@redhat.com>
15554
15555 PR rtl-optimization/89865
15556 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
15557
15558 PR rtl-optimization/89865
15559 * config/i386/i386.md
15560 (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
15561 numbers not to clash with the additional operands[4].
15562 (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
15563 with extra register copy in the middle.
15564
15565 2019-04-08 Martin Liska <mliska@suse.cz>
15566
15567 PR gcov-profile/89961
15568 * doc/gcov.texi: Document data_file.
15569 * gcov.c (generate_results): Add data_info into JSON output.
15570
15571 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
15572
15573 PR tree-optimization/89725
15574 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer
15575 loop's chrec as invariant symbol.
15576 * tree-chrec.h (chrec_contains_symbols): New parameter.
15577 * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
15578 (build_classic_dist_vector_1, add_other_self_distances): Bypass access
15579 function of loops not in DDR's loop_nest.
15580 * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
15581
15582 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
15583
15584 PR target/89623
15585 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
15586 Mask.
15587
15588 2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
15589
15590 PR target/89945
15591 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
15592 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
15593
15594 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com>
15595
15596 * sched-deps.c (sched_macro_fuse_insns): Check return value of
15597 targetm.fixed_condition_code_regs.
15598
15599 2019-04-05 Richard Biener <rguenther@suse.de>
15600
15601 PR debug/89892
15602 PR debug/89905
15603 * tree-cfgcleanup.c (remove_forwarder_block): Always move
15604 debug bind stmts but reset them if they are not valid at the
15605 destination.
15606
15607 2019-04-05 Martin Liska <mliska@suse.cz>
15608
15609 PR translation/89936
15610 * collect-utils.c (collect_execute): Use %< and %>, or %qs in
15611 order to wrap keywords or arguments.
15612 * collect2.c (main): Likewise.
15613 (scan_prog_file): Likewise.
15614 (scan_libraries): Likewise.
15615 * common/config/riscv/riscv-common.c
15616 (riscv_subset_list::parsing_subset_version): Likewise.
15617 (riscv_subset_list::parse_std_ext): Likewise.
15618 * config/aarch64/aarch64.c (aarch64_override_options_internal):
15619 Likewise.
15620 * config/arm/arm.c (arm_option_override): Likewise.
15621 * config/cris/cris.c (cris_print_operand): Likewise.
15622 * config/darwin-c.c (darwin_pragma_options): Likewise.
15623 (darwin_pragma_unused): Likewise.
15624 (darwin_pragma_ms_struct): Likewise.
15625 * config/ft32/ft32.c (ft32_print_operand): Likewise.
15626 * config/i386/i386.c (print_reg): Likewise.
15627 (ix86_print_operand): Likewise.
15628 * config/i386/xm-djgpp.h: Likewise.
15629 * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
15630 * config/m32c/m32c.c (m32c_option_override): Likewise.
15631 * config/msp430/msp430.c (msp430_option_override): Likewise.
15632 * config/nds32/nds32.c (nds32_option_override): Likewise.
15633 * config/nvptx/mkoffload.c (main): Likewise.
15634 * config/rx/rx.c (rx_print_operand): Likewise.
15635 (valid_psw_flag): Likewise.
15636 * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
15637 (vms_pragma_nomember_alignment): Likewise.
15638 (vms_pragma_extern_model): Likewise.
15639 * lto-wrapper.c (compile_offload_image): Likewise.
15640 * omp-offload.c (oacc_parse_default_dims): Likewise.
15641 * symtab.c (symtab_node::verify_base): Likewise.
15642 * tlink.c (recompile_files): Likewise.
15643 (start_tweaking): Likewise.
15644 * tree-profile.c (parse_profile_filter): Likewise.
15645
15646 2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
15647
15648 PR tree-optimization/89956
15649 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
15650 multiple negates of the same value.
15651
15652 2019-04-04 Martin Sebor <msebor@redhat.com>
15653
15654 PR middle-end/89957
15655 PR middle-end/89911
15656 * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
15657 have the same precision since the function crashes otherwise.
15658 * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
15659 has non-zero arguments.
15660
15661 2019-04-04 Martin Sebor <msebor@redhat.com>
15662
15663 PR middle-end/89934
15664 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
15665 out if the number of arguments is less than expected.
15666
15667 2019-04-04 Jeff Law <law@redhat.com>
15668
15669 PR rtl-optimization/89399
15670 * ree.c (combine_set_extension): Use single_set rather than
15671 digging into PATTERN for items on the candidate list.
15672 (combine_reaching_defs): Likewise.
15673
15674 2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
15675
15676 PR rtl-optimization/46590
15677 * loop-invariant.c (find_defs): Move df_remove_problem and
15678 df_process_deferred_rescans to move_invariants.
15679 Move df_live_add_problem and df_live_set_all_dirty calls
15680 to move_invariants.
15681 (move_invariants): Likewise.
15682 (move_loop_invariants): Likewise, making the df_live calls
15683 conditional on -O. Remove the problem again if we added it
15684 locally.
15685
15686 2019-04-03 qing zhao <qing.zhao@oracle.com>
15687
15688 PR tree-optimization/89730
15689 * ipa-inline.c (can_inline_edge_p): Delete the checking for
15690 -flive-patching=inline-only-static.
15691 (can_inline_edge_by_limits_p): Add the checking for
15692 -flive-patching=inline-only-static and grant always_inline
15693 even when -flive-patching=inline-only-static is specified.
15694
15695 2019-04-03 Jeff Law <law@redhat.com>
15696
15697 PR rtl-optimization/81025
15698 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
15699
15700 2019-04-03 Richard Biener <rguenther@suse.de>
15701
15702 PR tree-optimization/84101
15703 * tree-vect-stmts.c: Include explow.h for hard_function_value,
15704 regs.h for hard_regno_nregs.
15705 (cfun_returns): New helper.
15706 (vect_model_store_cost): When vectorizing a store to a decl
15707 we return and the function ABI returns in a multi-reg location
15708 account for the possible spilling that will happen.
15709
15710 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com>
15711
15712 * config/s390/s390.c (s390_legitimate_address_p): Reject long
15713 displacement addresses for vector mode operands.
15714
15715 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com>
15716
15717 * config/arc/arc.c (GMASK_LEN): Define.
15718 (arc_restore_callee_saves): Restore first blink when
15719 !optimize_size.
15720
15721 2019-04-03 Sudakshina Das <sudi.das@arm.com>
15722
15723 * doc/extend.texi: Add deprecated comment on sign-return-address
15724 function attribute and add mbranch-protection.
15725 * doc/invoke.texi: Add bti to the options for mbranch-protection.
15726
15727 2019-04-03 Richard Biener <rguenther@suse.de>
15728
15729 PR lto/89896
15730 * lto-wrapper.c (run_gcc): Avoid implicit rules making
15731 the all target phony.
15732
15733 2019-04-02 Uroš Bizjak <ubizjak@gmail.com>
15734
15735 PR target/89902
15736 PR target/89903
15737 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
15738 Return false for variable DImode shifts.
15739 (dimode_scalar_chain::compute_convert_gain): Do not handle
15740 register count operand in variable DImode shifts.
15741 (dimode_scalar_chain::make_vector_copies): Remove support to copy
15742 count argument of a variable shift instruction to a vector register.
15743 (dimode_scalar_chain::convert_reg): Remove support to convert
15744 count argument of a variable shift instruction.
15745
15746 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
15747
15748 PR rtl-optimization/84206
15749 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
15750 iterating over loop headers.
15751
15752 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
15753
15754 PR rtl-optimization/85876
15755 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
15756 beyond the original fence.
15757
15758 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com>
15759
15760 * config.gcc: Mark spu* targets as deprecated/obsolete.
15761
15762 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15763
15764 * config/s390/s390-builtin-types.def: New builtin function type
15765 definitions. Remove unused types.
15766 * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
15767 (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
15768 (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
15769 overloaded builtins.
15770 (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
15771 (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
15772 * config/s390/vecintrin.h (vec_float): New builtin macro definition.
15773 (vec_double, vec_signed, vec_unsigned): Define to use the new
15774 overloaded builtins.
15775 * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
15776 Remove expanders.
15777
15778 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15779
15780 * config/s390/s390-builtin-types.def: New builtin function type
15781 definitions.
15782 * config/s390/s390-builtins.def (s390_vec_search_string_cc)
15783 (s390_vec_search_string_until_zero_cc): New overloaded builtins.
15784 (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
15785 (s390_vstrszh, s390_vstrszf): New low-level builtins.
15786 * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
15787 constant definitions.
15788 * config/s390/vecintrin.h (vec_search_string_cc)
15789 (vec_search_string_until_zero_cc): New builtin name definitions.
15790 * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
15791 expanders.
15792 ("vec_vstrs<mode>"): New insn definition.
15793
15794 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15795
15796 * config/s390/s390-builtin-types.def: Add new builtin function
15797 types.
15798 * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
15799 New overloaded builtins.
15800 (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and
15801 s390_vsrd.
15802 * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
15803 (UNSPEC_VEC_SLDBYTE): ... this.
15804 (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
15805 * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
15806 definitions.
15807 * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
15808 Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
15809 ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
15810
15811 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15812
15813 ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
15814 New insn definition.
15815 * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
15816 * config/s390/vector.md (V_HW_HSD): ... here.
15817
15818 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15819
15820 * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
15821 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
15822 ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
15823 ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
15824 New insn definitions.
15825
15826 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15827
15828 * config/s390/s390-builtin-types.def: Add new builtin function type.
15829 * config/s390/s390-builtins.def: Add overloaded builtin
15830 s390_vec_reve and low-level builtins for s390_vler and s390_vster.
15831 * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
15832 * config/s390/vecintrin.h (vec_reve): New builtin name definition.
15833 * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
15834 ("eltswap<mode>"): New expander.
15835 ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
15836 insn definitions.
15837
15838 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15839
15840 * config/s390/s390-builtin-types.def: Add new builtin function types.
15841 * config/s390/s390-builtins.def: Add overloaded builtin
15842 s390_vec_revb. Add low-level builtins for vlbr and vstbr
15843 instructions.
15844 * config/s390/vecintrin.h (vec_revb): New builtin name definition.
15845 * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
15846 ("bswap<mode>"): New expander.
15847 ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
15848
15849 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15850
15851 * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
15852 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
15853 vector builtin version number in __VEC__.
15854
15855 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15856
15857 * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
15858 iterators.
15859 (SFSI): New mode attribute.
15860 ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
15861 ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
15862 rename to ...
15863 ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
15864 ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
15865 ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
15866 ("floatsi<mode>2"): Add wcefb instruction.
15867
15868 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15869
15870 * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
15871 * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
15872 mode iterators.
15873 ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
15874 ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
15875 support 32 bit fp-int conversions. Rename to ...
15876 ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
15877 ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
15878 ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
15879 ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
15880 ... to these.
15881
15882 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15883
15884 * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
15885 if-then-else constructs if we can use the select instruction.
15886 * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
15887
15888 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15889
15890 * config/s390/s390.md ("*popcountdi_arch13_cc")
15891 ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
15892 definition.
15893 ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
15894 Append _z196 to make it ...
15895 ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
15896 ("popcounthi2_z196"): ... this.
15897 ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
15898 ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
15899
15900 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15901
15902 * config/s390/s390.c (s390_canonicalize_comparison): Convert
15903 certain compares for arch13 in order to make use of the condition
15904 code result produced by the new instructions.
15905 (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
15906 nxrk, and nxgrk instruction patterns.
15907 * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
15908 (inv_no): Add new code iterator together with some attributes.
15909 ("*andc_split_<mode>"): Disable splitter for arch13.
15910 ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
15911 ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
15912 ("*<ANDOR:bitops_name>c<GPR:mode>")
15913 ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
15914 ("*n<ANDOR:inv_bitops_name><mode>_cconly")
15915 ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
15916 ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
15917
15918 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15919
15920 * common/config/s390/s390-common.c (processor_flags_table): New
15921 entry for arch13.
15922 * config.gcc: Support arch13 with the --with-arch= configure flag.
15923 * config/s390/driver-native.c (s390_host_detect_local_cpu):
15924 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
15925 * config/s390/s390.c (s390_get_sched_attrmask)
15926 (s390_get_unit_mask): Add PROCESSOR_ARCH13.
15927 * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
15928 * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
15929 (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
15930 (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
15931 definitions.
15932 * config/s390/s390.opt: Support arch13 as processor type in
15933 command line options.
15934
15935 2019-04-02 Martin Liska <mliska@suse.cz>
15936
15937 PR translation/89912
15938 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
15939 Fix param description of graphite-max-arrays-per-scop.
15940
15941 2019-04-02 Eric Botcazou <ebotcazou@adacore.com>
15942
15943 * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
15944 (ASAN_CC1_SPEC): Use it in 64-bit mode.
15945 * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
15946
15947 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
15948
15949 PR rtl-optimization/85412
15950 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
15951 sel_sched_region_1, not after.
15952
15953 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
15954
15955 PR rtl-optimization/86928
15956 * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
15957 compute_live if necessary.
15958 (sel_redirect_edge_and_branch): Likewise.
15959
15960 2019-04-01 Vladimir Makarov <vmakarov@redhat.com>
15961
15962 PR rtl-optimization/89865
15963 * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
15964 register if it is a part of small class.
15965
15966 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
15967
15968 PR rtl-optimization/87273
15969 * sel-sched-ir.c (merge_fences): Remove assert.
15970
15971 2019-04-01 Richard Biener <rguenther@suse.de>
15972
15973 PR tree-optimization/46590
15974 * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
15975 (dom_walker::m_reachability): Add in place of...
15976 (dom_walker::m_skip_unreachable_blocks): ...this.
15977 * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
15978 Move complex initialization ...
15979 (dom_walker::walk): Here. Especially compute m_bb_to_rpo
15980 lazily and initialize edge flags on each invocation.
15981 (dom_walker::bb_reachable): Use m_reachability.
15982
15983 2019-04-01 Martin Liska <mliska@suse.cz>
15984
15985 PR driver/89861
15986 * opt-suggestions.c (option_proposer::build_option_suggestions):
15987 Add variant without any argument in order to provide better
15988 hints.
15989
15990 2019-04-01 Richard Biener <rguenther@suse.de>
15991
15992 PR c/71598
15993 * gimple.c: Include langhooks.h.
15994 (gimple_get_alias_set): Treat enumeral types as the underlying
15995 integer type.
15996
15997 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org>
15998 Eric Botcazou <ebotcazou@adacore.com>
15999
16000 PR rtl-optimization/89862
16001 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
16002 that operates on the full registers for WORD_REGISTER_OPERATIONS
16003 architectures.
16004
16005 2019-03-29 Jim Wilson <jimw@sifive.com>
16006
16007 * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
16008 Clear MASK_RVC and then set if C subset supported.
16009
16010 2019-03-29 Jakub Jelinek <jakub@redhat.com>
16011
16012 PR c/89872
16013 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
16014 non-addressable complit into its initializer if it is volatile.
16015
16016 2019-03-29 Roman Zhuykov <zhroma@ispras.ru>
16017
16018 * opts-common.c (integral_argument): Set errno properly in one case.
16019
16020 2019-03-29 Martin Liska <mliska@suse.cz>
16021
16022 * doc/invoke.texi: Remove -Wchkp from documentation.
16023
16024 2019-03-29 Martin Liska <mliska@suse.cz>
16025
16026 * dbgcnt.c (print_limit_reach): New function.
16027 (dbg_cnt): Use it.
16028
16029 2019-03-29 Martin Liska <mliska@suse.cz>
16030
16031 * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
16032 (dbg_cnt_process_opt): Parse first tokens aas
16033 dbg_cnt_process_single_pair is also using strtok.
16034
16035 2019-03-29 Jakub Jelinek <jakub@redhat.com>
16036
16037 PR rtl-optimization/87485
16038 * function.c (expand_function_end): Move stack_protect_epilogue
16039 before loading of return value into hard register(s).
16040
16041 2019-03-28 Jakub Jelinek <jakub@redhat.com>
16042
16043 PR middle-end/89621
16044 * tree-inline.h (struct copy_body_data): Add
16045 dont_remap_vla_if_no_change flag.
16046 * tree-inline.c (remap_type_3, remap_type_2): New functions.
16047 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
16048 and remap_type_2 returns false.
16049 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
16050 Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
16051 only from where it is copied to nested contexts.
16052
16053 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
16054
16055 PR target/89865
16056 * config/i386/i386.md (RMW operation with LEA peephole):
16057 Use LEAMODE mode attribute instead of SWI mode iterator for
16058 LEA pattern.
16059
16060 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
16061
16062 PR target/89848
16063 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
16064 Also process XEXP (src, 0) of a shift insn.
16065
16066 2019-03-28 David Malcolm <dmalcolm@redhat.com>
16067
16068 PR middle-end/89725
16069 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
16070 Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
16071
16072 2019-03-28 Jakub Jelinek <jakub@redhat.com>
16073
16074 * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
16075 test.
16076 (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
16077 (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing
16078 immediately after first one with df_analyze in between, but rather
16079 process all bbs, queueing ones that need second pass in a worklist,
16080 df_analyze, process queued debug insn changes and if second pass is
16081 needed, process bbs from worklist, df_analyze, process queued debug
16082 insns again.
16083
16084 * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
16085 or CALL_P instead of INSN_P && !DEBUG_INSN_P.
16086 (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
16087
16088 2019-03-28 Jonathan Wakely <jwakely@redhat.com>
16089
16090 PR c/79022
16091 * gengtype.h (create_nested_ptr_option): Fix parameter names to match
16092 definition.
16093
16094 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl>
16095
16096 PR target/85667
16097 * config/i386/i386.c (ix86_function_value_1): Call the newly added
16098 function for 32-bit MS_ABI.
16099 (function_value_ms_32): New function.
16100
16101 2019-03-27 Andrew Stubbs <ams@codesourcery.com>
16102
16103 * config/gcn/gcn.md (CC_SAVE_REG): New constant.
16104 (movdi): Call gen_movdi_symbol_save_scc.
16105 (gen_movdi_symbol_save_scc): New insn and split.
16106
16107 2019-03-27 Peter Bergner <bergner@linux.ibm.com>
16108
16109 PR rtl-optimization/89313
16110 * function.c (matching_constraint_num): New static function.
16111 (match_asm_constraints_1): Use it. Fixup white space and comment.
16112 Don't replace inputs with non-matching constraints which conflict
16113 with early clobber outputs.
16114
16115 2019-03-27 Jeff Law <law@redhat.com>
16116
16117 PR rtl-optimization/87761
16118 PR rtl-optimization/89826
16119 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
16120 slightly later.
16121 (pass_cprop_hardreg::execute): Call df_analyze after adding the
16122 note problem to get REG_DEAD/REG_UNUSED notes updated.
16123
16124 2019-03-27 Richard Biener <rguenther@suse.de>
16125
16126 PR tree-optimization/89463
16127 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
16128 queue edges to remove.
16129 (eliminate_unnecessary_stmts): Remove dead PHIs alongside
16130 dead stmts. Delay edge removal until PHIs are removed to
16131 make debug-stmt creation not confused by seemingly degenerate
16132 PHIs.
16133
16134 2019-03-27 Alan Modra <amodra@gmail.com>
16135
16136 * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
16137 throughout file.
16138 * config/rs6000/darwin.h: Likewise.
16139 * config/rs6000/rs6000.c: Likewise.
16140
16141 2019-03-27 Alan Modra <amodra@gmail.com>
16142
16143 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
16144 assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting.
16145
16146 2019-03-26 Andrew Waterman <andrew@sifive.com>
16147 Jim Wilson <jimw@sifive.com>
16148
16149 * config/riscv/generic.md (generic_alu, generic_load, generic_store)
16150 (generic_xfer, generic_branch, generic_imul, generic_idivsi)
16151 (generic_idivdi, generic_fmul_single, generic_fmul_double)
16152 (generic_fdiv, generic_fsqrt): Add check for generic tune.
16153 (generic_alu): Add auipc to type list.
16154 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
16155 (riscv_microarchitecture): Declare.
16156 * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
16157 * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
16158 field.
16159 (riscv_microarchitecture): New.
16160 (sifive_7_tune_info): New.
16161 (riscv_cpu_info_table): Add microarchitecture value for rocket and
16162 size. Add sifive-3-series, sifive-5-series, and sifive-7-series
16163 entries.
16164 (riscv_store_data_bypass_p): New.
16165 (riscv_option_override): Set riscv_microarchitecture from
16166 cpu->microarchitecture.
16167 * config/riscv/riscv.md: Include sifive-7.md.
16168 (type): Add auipc.
16169 (tune): New.
16170 (auipc<mode>): Change type to auipc.
16171 (restore_stack_nonlocal): New.
16172 * config/riscv/sifive-7.md: New.
16173 * doc/invoke.texi (RISC-V Options): Update mtune docs.
16174
16175 2019-03-26 Uroš Bizjak <ubizjak@gmail.com>
16176
16177 PR target/89827
16178 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
16179 Also process XEXP (src, 0) of a shift insn.
16180
16181 2019-03-26 Richard Biener <rguenther@suse.de>
16182
16183 * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
16184 (copy_debug_stmt): Likewise.
16185 (expand_call_inline): Likewise.
16186 (copy_bb): Avoid redundant lookup & set of gimple_block.
16187 * gimple-low.c (lower_gimple_return): Likewise.
16188 (lower_builtin_setjmp): Likewise.
16189
16190 2019-03-26 Jakub Jelinek <jakub@redhat.com>
16191
16192 * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
16193 is constant 0, turn into static const data member initialized to false.
16194 (hash_table::hash_table): Only initialize m_gather_mem_stats #if
16195 GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param.
16196
16197 2019-03-26 Jason Merrill <jason@redhat.com>
16198 Jakub Jelinek <jakub@redhat.com>
16199
16200 * mem-stats.h (mem_alloc_description::unregister_descriptor): New
16201 method.
16202 (mem_alloc_description::release_object_overhead): Fix comment typos.
16203 * hash-table.h (hash_table::~hash_table): Call
16204 release_instance_overhead only if m_entries is non-NULL, otherwise
16205 call unregister_descriptor.
16206
16207 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
16208
16209 PR tree-optimization/81740
16210 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
16211 In case of outer loop vectorization, check for backward dependence
16212 at the inner loop if outer loop dependence is reversed.
16213
16214 2019-03-26 Alan Modra <amodra@gmail.com>
16215
16216 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
16217 rs6000_vector_mem init. Correct wI and wJ comment.
16218
16219 2019-03-25 Alexander Monakov <amonakov@ispras.ru>
16220
16221 PR rtl-optimization/88347
16222 PR rtl-optimization/88423
16223 * sched-deps.c (sched_analyze_insn): Take into account that for
16224 tablejumps the barrier appears after a label and a jump_table_data.
16225
16226 2019-03-25 Martin Sebor <msebor@redhat.com>
16227
16228 PR c/89812
16229 * c-common.c (check_user_alignment): Rename local. Correct maximum
16230 alignment in diagnostic. Avoid assuming argument fits in SHWI,
16231 convert it to UHWI when it fits.
16232
16233 2019-03-25 Johan Karlsson <johan.karlsson@enea.com>
16234
16235 PR debug/86964
16236 * dwarf2out.c (premark_used_variables): New function.
16237 (prune_unused_types_walk): Do not mark not premarked external
16238 variables.
16239 (prune_unused_types): Call premark_used_variables.
16240
16241 2019-03-25 Vladimir Makarov <vmakarov@redhat.com>
16242
16243 PR rtl-optimization/89676
16244 * lra-constraints.c (curr_insn_transform): Do match reload for
16245 early clobbers when the match was successful only for different
16246 registers.
16247
16248 2019-03-25 Martin Sebor <msebor@redhat.com>
16249
16250 * doc/extend.texi (Common Type Attributes): Document vector_size.
16251 (Common Variable Attributes): Mention size constraint. Correct
16252 quoting and typos.
16253 (Vector Extensions): Use @dfn when defining bas type. Clarify
16254 base type and size constraints.
16255
16256 2019-03-25 Richard Biener <rguenther@suse.de>
16257
16258 PR tree-optimization/89789
16259 * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
16260 changes from non-undefined back to undefined.
16261
16262 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de>
16263
16264 * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
16265 heap string and a gc string, but since this variable is unknown to
16266 ggc the gc string might get reused and corrupted. Fixed by always
16267 using a heap string.
16268
16269 2019-03-25 Richard Biener <rguenther@suse.de>
16270
16271 PR tree-optimization/89779
16272 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
16273 to remove IV defs, delay actual removal.
16274 (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset.
16275 (tree_ssa_iv_optimize): Remove eliminated IV defs at the
16276 very end, properly also reset loop control IV information.
16277
16278 2019-03-25 Richard Biener <rguenther@suse.de>
16279
16280 PR tree-optimization/89802
16281 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
16282 move EH data to folded stmt.
16283
16284 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
16285
16286 * config/s390/s390-builtin-types.def: Remove few unused types and
16287 fix sort order for others.
16288
16289 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
16290
16291 * config/s390/s390-c.c (s390_fn_types_compatible): Print the
16292 expected and found types with -mdebug during builtin matching.
16293
16294 2019-03-25 Richard Biener <rguenther@suse.de>
16295
16296 PR middle-end/89790
16297 * fold-const.c (operand_equal_p): Revert last change with
16298 updated comment.
16299
16300 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org>
16301
16302 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
16303 notes for the result of the __tls_get_addr calls.
16304 * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
16305
16306 2019-03-24 Jeff Law <law@redhat.com>
16307
16308 * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
16309
16310 PR rtl-optimization/87761
16311 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
16312 not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan
16313 as needed.
16314 (pass_cprop_hardreg::execute): Add df note problem and defer insn
16315 rescans. Reprocess blocks as needed, calling df_analyze before
16316 reprocessing. Always call df_analyze before fixing up debug bind
16317 insns.
16318
16319 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org>
16320
16321 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
16322 big endian.
16323
16324 2019-03-22 Andrew Pinski <apinski@marvell.com>
16325
16326 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
16327 attrribute for uxtw.
16328
16329 2019-03-26 Jeff Law <law@redhat.com>
16330
16331 PR rtl-optimization/87761
16332 * config/mips/mips-protos.h (mips_split_move): Add new argument.
16333 (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
16334 (mips_split_move): Accept new INSN argument. Try to forward SRC
16335 into the next instruction.
16336 (mips_split_move_insn): Pass INSN through to mips_split_move.
16337
16338 2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
16339
16340 PR rtl-optimization/89676
16341 * lra-constraints.c (curr_insn_transform): Do match reload for
16342 early clobbers even if the match was successful.
16343
16344 2019-03-22 Jakub Jelinek <jakub@redhat.com>
16345
16346 PR c++/87481
16347 * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
16348
16349 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
16350
16351 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
16352
16353 2019-03-22 Jakub Jelinek <jakub@redhat.com>
16354
16355 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
16356 <avx512>_fmsub_<mode>_mask3<round_name>,
16357 <avx512>_fnmadd_<mode>_mask3<round_name>,
16358 <avx512>_fnmsub_<mode>_mask3<round_name>,
16359 avx512f_vmfmadd_<mode>_mask3<round_name>,
16360 avx512f_vmfmsub_<mode>_mask3<round_name>,
16361 *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
16362 instead of register_operand and %v instead of v for match_operand 1.
16363 (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
16364 (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use
16365 <round_nimm_predicate> instead of register_operand and %v instead of v
16366 for match_operand 1.
16367
16368 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
16369 <avx512>_fmadd_<mode>_mask3<round_name>,
16370 <avx512>_fmsub_<mode>_mask<round_name>,
16371 <avx512>_fmsub_<mode>_mask3<round_name>,
16372 <avx512>_fnmadd_<mode>_mask<round_name>,
16373 <avx512>_fnmadd_<mode>_mask3<round_name>,
16374 <avx512>_fnmsub_<mode>_mask<round_name>,
16375 <avx512>_fnmsub_<mode>_mask3<round_name>,
16376 <avx512>_fmaddsub_<mode>_mask<round_name>,
16377 <avx512>_fmaddsub_<mode>_mask3<round_name>,
16378 <avx512>_fmsubadd_<mode>_mask<round_name>,
16379 <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
16380 <round_nimm_predicate> instead of nonimmediate_operand.
16381 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
16382 fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
16383 Use register_operand instead of <round_nimm_predicate> for the
16384 operand that needs to match output.
16385 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
16386 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
16387 Likewise. Formatting fixes.
16388
16389 PR target/89784
16390 * config/i386/i386.c (enum ix86_builtins): Remove
16391 IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
16392 * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
16393 __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
16394 __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
16395 __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
16396 __builtin_ia32_vfmsubss3_mask3): New builtins.
16397 * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
16398 avx512f_vmfmadd_<mode>_mask3<round_name>,
16399 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
16400 *avx512f_vmfmsub_<mode>_mask<round_name>,
16401 avx512f_vmfmsub_<mode>_mask3<round_name>,
16402 *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
16403 *avx512f_vmfnmadd_<mode>_mask<round_name>,
16404 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
16405 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
16406 *avx512f_vmfnmsub_<mode>_mask<round_name>,
16407 avx512f_vmfnmsub_<mode>_mask3<round_name>,
16408 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
16409 (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
16410 * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
16411 _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
16412 _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
16413 _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
16414 _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
16415 _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
16416 _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
16417 _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
16418 _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
16419 _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
16420 _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
16421 _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
16422 _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
16423 _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
16424 _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
16425 _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
16426 _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
16427 _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
16428 _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
16429 _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
16430
16431 2019-03-21 Martin Sebor <msebor@redhat.com>
16432
16433 PR tree-optimization/89350
16434 * builtins.c (compute_objsize): Also ignore offsets whose upper
16435 bound is negative.
16436 * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
16437 (builtin_memref::builtin_memref): Initialize new member.
16438 Allow EXPR to be null.
16439 (builtin_memref::extend_offset_range): Replace local with a member.
16440 Avoid assuming pointer offsets are unsigned.
16441 (builtin_memref::set_base_and_offset): Determine base object
16442 before computing offset range.
16443 (builtin_access::builtin_access): Handle memset.
16444 (builtin_access::generic_overlap): Replace local with a member.
16445 (builtin_access::strcat_overlap): Same.
16446 (builtin_access::overlap): Same.
16447 (maybe_diag_overlap): Same.
16448 (maybe_diag_access_bounds): Same.
16449 (wrestrict_dom_walker::check_call): Handle memset.
16450 (check_bounds_or_overlap): Same.
16451
16452 2019-03-21 Jan Hubicka <hubicka@ucw.cz>
16453 Jakub Jelinek <jakub@redhat.com>
16454
16455 PR lto/89692
16456 * tree.c (fld_type_variant, fld_incomplete_type_of,
16457 fld_process_array_type): Call fld->pset.add and don't call
16458 add_tree_to_fld_list if it returns true.
16459 (free_lang_data_in_type): Similarly with self-recursive call. Purge
16460 non-marked types from TYPE_NEXT_VARIANT list.
16461 (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
16462
16463 2019-03-21 Jakub Jelinek <jakub@redhat.com>
16464
16465 * hash-table.h (hash_table): Add Lazy template parameter defaulted
16466 to false, if true, don't alloc_entries during construction, but defer
16467 it to the first method that needs m_entries allocated.
16468 (hash_table::hash_table, hash_table::~hash_table,
16469 hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
16470 hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
16471 hash_table::clear_slot, hash_table::traverse_noresize,
16472 hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
16473 * hash-set.h (hash_set): Add Lazy template parameter defaulted to
16474 false.
16475 (hash_set::contains): If Lazy is true, use find_slot_with_hash with
16476 NO_INSERT instead of find_with_hash.
16477 (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
16478 hash_set::m_table): Add Lazy to template params of hash_table.
16479 (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
16480 * attribs.c (test_attribute_exclusions): Likewise.
16481 * hash-set-tests.c (test_set_of_strings): Add iterator tests for
16482 hash_set. Add tests for hash_set with Lazy = true.
16483
16484 2019-03-21 Richard Biener <rguenther@suse.de>
16485
16486 PR tree-optimization/89779
16487 * tree.c (tree_nop_conversion): Consolidate and fix defensive
16488 checks with respect to released SSA names now having error_mark_node
16489 type.
16490 * fold-const.c (operand_equal_p): Likewise.
16491
16492 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com>
16493
16494 PR target/89775
16495 * config/s390/s390.c (global_not_special_regno_p): Move to make it
16496 available to ...
16497 (s390_optimize_register_info): Use global_not_special_regno_p to
16498 check for global regs.
16499
16500 2019-03-20 Jakub Jelinek <jakub@redhat.com>
16501
16502 PR target/89752
16503 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
16504 update this_alternative nor this_alternative_set.
16505
16506 2019-03-19 Jim Wilson <jimw@sifive.com>
16507
16508 PR target/89411
16509 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals
16510 align, size, offset. Use them to handle a BLKmode reference. Update
16511 comment.
16512 (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
16513
16514 2019-03-19 Jakub Jelinek <jakub@redhat.com>
16515
16516 PR rtl-optimization/89768
16517 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
16518 instead of GEN_INT.
16519 (unroll_loop_runtime_iterations): Likewise.
16520
16521 2019-03-19 Martin Sebor <msebor@redhat.com>
16522
16523 PR tree-optimization/89644
16524 * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
16525 rather than endptr as an indicator of nul-termination.
16526
16527 PR tree-optimization/89644
16528 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
16529 arrays in determining sequence sizes in strncpy and stpncpy.
16530
16531 2019-03-19 Martin Liska <mliska@suse.cz>
16532
16533 PR middle-end/89737
16534 * predict.c (combine_predictions_for_bb): Empty likely_edges and
16535 unlikely_edges if there's an edge that belongs to both these sets.
16536
16537 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org>
16538
16539 PR target/89746
16540 * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
16541 non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
16542 go via a stack temporary.
16543
16544 2019-03-19 Jakub Jelinek <jakub@redhat.com>
16545
16546 PR target/89378
16547 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
16548 instead of gen_rtx_SUBREG.
16549 * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
16550
16551 2019-03-19 Richard Biener <rguenther@suse.de>
16552
16553 PR debug/88389
16554 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
16555
16556 2019-03-19 Jan Hubicka <hubicka@ucw.cz>
16557
16558 PR lto/87809
16559 PR lto/89335
16560 * tree.c (free_lang_data_in_decl): Do not free context of C++
16561 destrutors.
16562
16563 2019-03-19 Jakub Jelinek <jakub@redhat.com>
16564
16565 PR target/89506
16566 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
16567 subs for the first alternative except when operands[3] is 1.
16568
16569 PR target/89752
16570 * gimplify.c (gimplify_asm_expr): For output argument with
16571 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
16572 diagnose error.
16573
16574 2019-03-19 Eric Botcazou <ebotcazou@adacore.com>
16575
16576 PR rtl-optimization/89753
16577 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
16578 explicit unrolling factor even more robust.
16579
16580 2019-03-19 Jakub Jelinek <jakub@redhat.com>
16581
16582 PR target/89726
16583 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
16584 compensation use x2 += 1 instead of x2 -= -1 and when honoring
16585 signed zeros, do another copysign after the compensation.
16586
16587 2019-03-18 Martin Sebor <msebor@redhat.com>
16588
16589 PR tree-optimization/89720
16590 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
16591 more conservatively, the same as anti-range.
16592
16593 2019-03-18 Richard Biener <rguenther@suse.de>
16594
16595 PR middle-end/88945
16596 * tree-ssanames.c (release_ssa_name_fn): For released SSA names
16597 use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
16598 basic-blocks that are removed. Remove restoring SSA_NAME_VAR.
16599 * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
16600
16601 2019-03-18 Andrew Stubbs <ams@codesourcery.com>
16602
16603 * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
16604 Extend queue to 1024 entries.
16605 Add "consumed" field.
16606 (gomp_print_output): Remove print_index parameter.
16607 Add final parameter.
16608 Change limit to unsigned.
16609 Use consumed field to implement circular buffer.
16610 Detect interrupted print in final pass.
16611 Flush output at the end.
16612 (run): Update gomp_print_output usage.
16613 (main): Initialize kernargs->output_data.consumed.
16614
16615 2019-03-18 Richard Sandiford <richard.sandiford@arm.com>
16616
16617 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
16618 calculation of the minimum number of scalar iterations for
16619 fully-predicated loops.
16620
16621 2019-03-18 Martin Jambor <mjambor@suse.cz>
16622
16623 PR tree-optimization/89546
16624 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
16625 any propagation to its children took place.
16626
16627 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com>
16628
16629 PR target/89627
16630 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
16631 parameter, and make use of it.
16632 (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
16633
16634 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
16635
16636 * config/arc/arc.opt (mcode-density-frame): Get the inital value
16637 from TARGET_CODE_DENSITY_FRAME_DEFAULT.
16638 * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
16639 * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
16640 * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
16641 match what the ops is doing.
16642 (push_multi_fp_blink): Likewise.
16643 * config/arc/arc.c (arc_override_options): Enable enter/leave when
16644 compiling for size and elf target.
16645 (arc_save_callee_enter): Adjust note to match what enter/leave
16646 operation does.
16647
16648 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
16649
16650 * config/arc/arc.md (tst_movb): Fix constraint.
16651
16652 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
16653
16654 * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
16655
16656 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
16657
16658 * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
16659 * config/arc/arc.c (arc_conditional_register_usage): Remove all
16660 reg_alloc_order references.
16661 (size_alloc_order): Define.
16662 (arc_adjust_reg_alloc_order): New function.
16663 * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
16664 order.
16665 (ADJUST_REG_ALLOC_ORDER): Define.
16666 (HONOR_REG_ALLOC_ORDER): Likewise.
16667
16668 2019-03-18 Richard Biener <rguenther@suse.de>
16669
16670 PR target/87561
16671 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
16672 loads and stores a bit more.
16673
16674 2019-03-18 Richard Biener <rguenther@suse.de>
16675
16676 PR target/87561
16677 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
16678 load pessimization to stores as well.
16679
16680 2019-03-18 Andrey Belevantsev <abel@ispras.ru>
16681
16682 PR middle-end/86979
16683 * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
16684 successor, use NULL as its av set.
16685
16686 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org>
16687
16688 PR rtl-optimization/89721
16689 * lra-constraints (invariant_p): Return false if side_effects_p holds.
16690
16691 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org>
16692
16693 PR target/87532
16694 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16695 When handling vec_extract, use modular arithmetic to allow
16696 constant selectors greater than vector length.
16697 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
16698 V1TImode vectors to have constant selector values greater than 0.
16699 Use modular arithmetic to compute vector index.
16700 (rs6000_split_vec_extract_var): Use modular arithmetic to compute
16701 index for in-memory vectors. Correct code generation for
16702 in-register vectors.
16703 (altivec_expand_vec_ext_builtin): Use modular arithmetic to
16704 compute index.
16705
16706 2019-03-15 Alexandre Oliva <aoliva@redhat.com>
16707
16708 PR c++/88534
16709 PR c++/88537
16710 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
16711 VAR_DECL args.
16712
16713 2019-03-15 Jakub Jelinek <jakub@redhat.com>
16714
16715 PR c++/89709
16716 * tree.c (inchash::add_expr): Strip any location wrappers.
16717 * fold-const.c (operand_equal_p): Move stripping of location wrapper
16718 after hash verification.
16719
16720 PR debug/89704
16721 * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
16722 SIGN_EXTEND and ZERO_EXTEND.
16723
16724 2019-03-14 Jason Merrill <jason@redhat.com>
16725 Jakub Jelinek <jakub@redhat.com>
16726
16727 * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
16728 than if is_empty (*slot).
16729 * hash-set-tests.c (test_set_of_strings): Add tests for addition of
16730 existing elt and for elt removal.
16731 * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
16732 of already removed elt.
16733
16734 2019-03-15 H.J. Lu <hongjiu.lu@intel.com>
16735
16736 PR target/89650
16737 * config/i386/i386.c (remove_partial_avx_dependency): Handle
16738 REG_EH_REGION note.
16739
16740 2019-03-14 Martin Liska <mliska@suse.cz>
16741
16742 PR other/89712
16743 * doc/invoke.texi: Remove -fdump-class-hierarchy option.
16744
16745 2019-03-14 Richard Biener <rguenther@suse.de>
16746
16747 PR target/89711
16748 * config/i386/i386.c (make_resolver_func): Properly set
16749 DECL_CONTEXT on the RESULT_DECL.
16750 * config/rs6000/rs6000.c (make_resolver_func): Likewise.
16751
16752 2019-03-14 Richard Biener <rguenther@suse.de>
16753
16754 * gimple-pretty-print.c: Include cfgloop.h.
16755 (dump_gimple_phi): Adjust.
16756 (dump_gimple_bb_header): Dump loop header for GIMPLE.
16757 (pp_cfg_jump): Adjust.
16758 (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
16759 * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
16760 (lower_phi_internal_fn): Remove.
16761 (verify_gimple_call): Remove IFN_PHI special-casing.
16762 (dump_function_to_file): Dump IL state.
16763 * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
16764 done to deal with PHI nodes being present in non-SSA state.
16765
16766 2019-03-14 Jakub Jelinek <jakub@redhat.com>
16767
16768 PR ipa/89684
16769 * multiple_target.c (create_dispatcher_calls): Change
16770 references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
16771 In the node->iterate_referring loop, push *ref rather than ref, call
16772 ref->remove_reference () and always pass 0 to iterate_referring.
16773
16774 PR rtl-optimization/89679
16775 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
16776 would contain a paradoxical SUBREG.
16777
16778 2019-03-14 Richard Biener <rguenther@suse.de>
16779
16780 PR tree-optimization/89710
16781 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
16782 safe_dyn_cast.
16783
16784 2019-03-14 Martin Liska <mliska@suse.cz>
16785
16786 * coverage.c (coverage_begin_function): Stream also
16787 end_column.
16788 * doc/gcov.texi: Document 2 new fields in JSON file. Improve
16789 documentation about function declaration location.
16790 * gcov-dump.c (tag_function): Print whole range
16791 of function declaration.
16792 * gcov.c (struct function_info): Add end_column field.
16793 (function_info::function_info): Initialize it.
16794 (output_json_intermediate_file): Output {start,end}_column
16795 fields.
16796 (read_graph_file): Read end_column.
16797
16798 2019-03-14 Richard Biener <rguenther@suse.de>
16799
16800 PR middle-end/89698
16801 * fold-const.c (operand_equal_p): For INDIRECT_REF check
16802 that the access types are similar.
16803
16804 2019-03-14 Jakub Jelinek <jakub@redhat.com>
16805
16806 PR tree-optimization/89703
16807 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
16808 aren't compatible also with builtin_decl_explicit. Check pure
16809 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
16810 and BUILT_IN_STPNCPY{,_CHK}.
16811
16812 2019-03-14 H.J. Lu <hongjiu.lu@intel.com>
16813
16814 PR target/89523
16815 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
16816 addr32 prefix to VSIB address for X32.
16817 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
16818 "%M2" to opcode.
16819 (*avx512pf_gatherpf<mode>df_mask): Likewise.
16820 (*avx512pf_scatterpf<mode>sf_mask): Likewise.
16821 (*avx512pf_scatterpf<mode>df_mask): Likewise.
16822 (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
16823 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
16824 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
16825 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
16826 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
16827 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
16828 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
16829 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
16830 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
16831 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
16832 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
16833 (*avx512f_scatterdi<mode>): Likewise.
16834
16835 2019-03-13 Vladimir Makarov <vmakarov@redhat.com>
16836
16837 PR target/85860
16838 * lra-constraints.c (inherit_in_ebb): Update
16839 potential_reload_hard_regs along with live_hard_regs.
16840
16841 2019-03-13 Jakub Jelinek <jakub@redhat.com>
16842
16843 PR debug/89498
16844 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
16845 DWARF_OFFSET_SIZE.
16846 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
16847
16848 2019-03-13 Martin Sebor <msebor@redhat.com>
16849
16850 PR tree-optimization/89662
16851 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
16852 has a size.
16853
16854 2019-03-13 Richard Biener <rguenther@suse.de>
16855
16856 PR middle-end/89677
16857 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
16858 throw FP expressions at tree-affine.
16859
16860 2019-03-14 Richard Biener <rguenther@suse.de>
16861
16862 * tree-pretty-print.c (dump_generic_node): For -gimple properly
16863 dump negative integer constants using _Literal (type) -num.
16864
16865 2019-03-13 Jakub Jelinek <jakub@redhat.com>
16866
16867 * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
16868 nonlocal_value member.
16869
16870 PR middle-end/88588
16871 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
16872 (ipa_simd_modify_function_body): Handle PHIs.
16873
16874 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
16875
16876 * config/s390/s390.c (s390_option_override_internal): Use more
16877 aggressive inlining parameters.
16878
16879 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
16880
16881 * config/s390/3906.md: New file.
16882 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
16883 (LONGRUNNING_THRESHOLD): Remove.
16884 (MAX_SCHED_MIX_SCORE): Decrease.
16885 (MAX_SCHED_MIX_DISTANCE): Decrease.
16886 (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
16887 (struct s390_sched_state): New struct to hold scheduling state.
16888 (S390_SCHED_STATE_NORMAL): Remove.
16889 (S390_SCHED_STATE_CRACKED): Remove.
16890 (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
16891 (s390_get_sched_attrmask): Use new attribute.
16892 (s390_get_unit_mask): Use new units.
16893 (s390_is_fpd): New function.
16894 (s390_is_fxd): New function.
16895 (s390_is_longrunning): New function.
16896 (s390_sched_score): Use new functions.
16897 (s390_sched_reorder): Likewise.
16898 (s390_sched_variable_issue): Rework and use new functions.
16899 (s390_sched_init): Use new functions.
16900 * config/s390/s390.h (s390_tune_attr): Add z14.
16901 * config/s390/s390.md: Add z14.
16902
16903 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
16904
16905 * config/s390/2964.md: Update pipeline description.
16906 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
16907 (LONGRUNNING_THRESHOLD): Remove.
16908 (LATENCY_FACTOR): Remove.
16909 (s390_get_unit_mask): Add unit.
16910 (s390_sched_score): Use fxd/fpd.
16911 (s390_sched_variable_issue): Use fxd/fpd.
16912
16913 2019-03-12 Martin Liska <mliska@suse.cz>
16914
16915 * config/i386/i386.c: Reword an error message.
16916
16917 2019-03-12 Martin Jambor <mjambor@suse.cz>
16918
16919 * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
16920 terminate with newline.
16921
16922 2019-03-12 Jakub Jelinek <jakub@redhat.com>
16923
16924 PR target/52726
16925 * config/s390/s390.md (tabort): Use %wd instead of
16926 HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
16927 letters and periods.
16928 * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
16929 output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
16930 's with %< and %>.
16931
16932 PR middle-end/89663
16933 * builtins.c (expand_builtin_int_roundingfn,
16934 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
16935 gcc_unreachable if validate_arglist fails.
16936
16937 2019-03-12 Richard Biener <rguenther@suse.de>
16938
16939 PR tree-optimization/89664
16940 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
16941 free the occurance tree after the early out.
16942
16943 2019-03-11 Jakub Jelinek <jakub@redhat.com>
16944
16945 PR middle-end/89655
16946 PR bootstrap/89656
16947 * vr-values.c (vr_values::update_value_range): If
16948 old_vr->varying_p (), don't update it, make new_vr also VARYING
16949 and return false.
16950
16951 2019-03-11 Martin Liska <mliska@suse.cz>
16952
16953 * config/aarch64/aarch64.c (aarch64_override_options_internal):
16954 Fix double string quoting.
16955
16956 2019-03-11 Martin Liska <mliska@suse.cz>
16957
16958 * collect-utils.c (collect_wait): Wrap apostrophes
16959 in gcc internal format with %'.
16960 * collect2.c (main): Likewise.
16961 (scan_prog_file): Likewise.
16962 (scan_libraries): Likewise.
16963 * config/i386/i386.c (ix86_expand_call): Likewise.
16964 (ix86_handle_interrupt_attribute): Likewise.
16965 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
16966 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
16967 * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
16968 * lto-wrapper.c (find_crtoffloadtable): Likewise.
16969 * symtab.c (symtab_node::verify_base): Likewise.
16970 * tree-cfg.c (verify_gimple_label): Likewise.
16971 * tree.c (verify_type_variant): Likewise.
16972
16973 2019-03-11 Martin Liska <mliska@suse.cz>
16974
16975 * builtins.c (expand_builtin_thread_pointer): Wrap an option name
16976 in a string format message and fix GNU coding style.
16977 (expand_builtin_set_thread_pointer): Likewise.
16978 * common/config/aarch64/aarch64-common.c
16979 (aarch64_rewrite_selected_cpu): Likewise.
16980 * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
16981 * common/config/arc/arc-common.c (arc_handle_option): Likewise.
16982 * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
16983 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
16984 * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
16985 * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
16986 * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
16987 * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
16988 * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
16989 * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
16990 Likewise.
16991 * common/config/riscv/riscv-common.c
16992 (riscv_subset_list::parsing_subset_version): Likewise.
16993 (riscv_subset_list::parse_std_ext): Likewise.
16994 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
16995 (riscv_subset_list::parse): Likewise.
16996 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
16997 * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
16998 (aarch64_override_options_internal): Likewise.
16999 (aarch64_validate_mcpu): Likewise.
17000 (aarch64_validate_march): Likewise.
17001 (aarch64_validate_mtune): Likewise.
17002 (aarch64_override_options): Likewise.
17003 * config/alpha/alpha.c (alpha_option_override): Likewise.
17004 * config/arc/arc.c (arc_init): Likewise.
17005 (parse_mrgf_banked_regs_option): Likewise.
17006 (arc_override_options): Likewise.
17007 (arc_expand_builtin_aligned): Likewise.
17008 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
17009 (arm_expand_builtin): Likewise.
17010 * config/arm/arm.c (arm_option_check_internal): Likewise.
17011 (arm_configure_build_target): Likewise.
17012 (arm_option_override): Likewise.
17013 (arm_options_perform_arch_sanity_checks): Likewise.
17014 (arm_handle_cmse_nonsecure_entry): Likewise.
17015 (arm_handle_cmse_nonsecure_call): Likewise.
17016 (arm_tls_referenced_p): Likewise.
17017 (thumb1_expand_prologue): Likewise.
17018 * config/avr/avr.c (avr_option_override): Likewise.
17019 * config/bfin/bfin.c (bfin_option_override): Likewise.
17020 * config/c6x/c6x.c (c6x_option_override): Likewise.
17021 * config/cr16/cr16.c (cr16_override_options): Likewise.
17022 * config/cris/cris.c (cris_option_override): Likewise.
17023 * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
17024 * config/darwin-c.c (macosx_version_as_macro): Likewise.
17025 * config/darwin.c (darwin_override_options): Likewise.
17026 * config/frv/frv.c (frv_expand_builtin): Likewise.
17027 * config/h8300/h8300.c (h8300_option_override): Likewise.
17028 * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
17029 (ix86_option_override_internal): Likewise.
17030 (warn_once_call_ms2sysv_xlogues): Likewise.
17031 (ix86_expand_prologue): Likewise.
17032 (split_stack_prologue_scratch_regno): Likewise.
17033 (ix86_warn_parameter_passing_abi): Likewise.
17034 * config/ia64/ia64.c (fix_range): Likewise.
17035 * config/m68k/m68k.c (m68k_option_override): Likewise.
17036 * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
17037 * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
17038 (mips_set_compression_mode): Likewise.
17039 * config/mmix/mmix.c (mmix_option_override): Likewise.
17040 * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
17041 * config/msp430/msp430.c (msp430_option_override): Likewise.
17042 * config/nds32/nds32.c (nds32_option_override): Likewise.
17043 * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
17044 (nios2_option_override): Likewise.
17045 (nios2_expand_custom_builtin): Likewise.
17046 * config/nvptx/mkoffload.c (main): Likewise.
17047 * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
17048 * config/pa/pa.c (fix_range): Likewise.
17049 (pa_option_override): Likewise.
17050 * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
17051 (riscv_option_override): Likewise.
17052 * config/rl78/rl78.c (rl78_option_override): Likewise.
17053 * config/rs6000/aix61.h: Likewise.
17054 * config/rs6000/aix71.h: Likewise.
17055 * config/rs6000/aix72.h: Likewise.
17056 * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
17057 * config/rs6000/freebsd64.h: Likewise.
17058 * config/rs6000/linux64.h: Likewise.
17059 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
17060 (rs6000_expand_zeroop_builtin): Likewise.
17061 (rs6000_expand_mtfsb_builtin): Likewise.
17062 (rs6000_expand_set_fpscr_rn_builtin): Likewise.
17063 (rs6000_expand_set_fpscr_drn_builtin): Likewise.
17064 (rs6000_invalid_builtin): Likewise.
17065 (rs6000_expand_split_stack_prologue): Likewise.
17066 * config/rs6000/rtems.h: Likewise.
17067 * config/rx/rx.c (valid_psw_flag): Likewise.
17068 (rx_expand_builtin): Likewise.
17069 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
17070 * config/s390/s390.c (s390_expand_builtin): Likewise.
17071 (s390_function_profiler): Likewise.
17072 (s390_option_override_internal): Likewise.
17073 (s390_option_override): Likewise.
17074 * config/sh/sh.c (sh_option_override): Likewise.
17075 (sh_builtin_saveregs): Likewise.
17076 (sh_fix_range): Likewise.
17077 * config/sh/vxworks.h: Likewise.
17078 * config/sparc/sparc.c (sparc_option_override): Likewise.
17079 * config/spu/spu.c (spu_option_override): Likewise.
17080 (fix_range): Likewise.
17081 * config/visium/visium.c (visium_option_override): Likewise.
17082 (visium_handle_interrupt_attr): Likewise.
17083 * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
17084 * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
17085 (dbg_cnt_process_opt): Likewise.
17086 * dwarf2out.c (output_dwarf_version): Likewise.
17087 * except.c (expand_eh_return): Likewise.
17088 * gcc.c (defined): Likewise.
17089 (driver_handle_option): Likewise.
17090 (process_command): Likewise.
17091 (compare_files): Likewise.
17092 (driver::prepare_infiles): Likewise.
17093 (driver::do_spec_on_infiles): Likewise.
17094 (driver::maybe_run_linker): Likewise.
17095 * omp-offload.c (oacc_parse_default_dims): Likewise.
17096 * opts-global.c (handle_common_deferred_options): Likewise.
17097 * opts.c (parse_sanitizer_options): Likewise.
17098 (common_handle_option): Likewise.
17099 (enable_warning_as_error): Likewise.
17100 * passes.c (enable_disable_pass): Likewise.
17101 * plugin.c (parse_plugin_arg_opt): Likewise.
17102 (default_plugin_dir_name): Likewise.
17103 * targhooks.c (default_expand_builtin_saveregs): Likewise.
17104 (default_pch_valid_p): Likewise.
17105 * toplev.c (init_asm_output): Likewise.
17106 (process_options): Likewise.
17107 (toplev::run_self_tests): Likewise.
17108 * tree-cfg.c (verify_gimple_call): Likewise.
17109 * tree-inline.c (inline_forbidden_p_stmt): Likewise.
17110 (tree_inlinable_function_p): Likewise.
17111 * var-tracking.c (vt_find_locations): Likewise.
17112
17113 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com>
17114
17115 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
17116 only on the else branch.
17117
17118 2019-03-11 Martin Liska <mliska@suse.cz>
17119
17120 * gcov.c (output_intermediate_json_line): Print function
17121 name of each line.
17122 (output_json_intermediate_file): Add new argument.
17123 * doc/gcov.texi: Document the change.
17124
17125 2019-03-11 Eric Botcazou <ebotcazou@adacore.com>
17126
17127 PR rtl-optimization/89588
17128 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
17129 explicit unrolling factor more robust.
17130
17131 2019-03-11 Richard Biener <rguenther@suse.de>
17132
17133 PR tree-optimization/89649
17134 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
17135 * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
17136 on the prolog and epilog loops.
17137 (vect_loop_versioning): Return copy of loop.
17138 * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
17139 on the non-vectorized version of the loop.
17140
17141 2019-03-10 Uroš Bizjak <ubizjak@gmail.com>
17142
17143 PR target/68924
17144 * config/i386/sse.md (*vec_extractv2di_0_sse):
17145 Add (=r,x) alternative and corresponding splitter.
17146
17147 2019-03-10 Martin Jambor <mjambor@suse.cz>
17148
17149 PR tree-optimization/85762
17150 PR tree-optimization/87008
17151 PR tree-optimization/85459
17152 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
17153 it points to if there is a type changing MEM_REF. Adjust all callers.
17154 (build_accesses_from_assign): Disable total scalarization if
17155 contains_vce_or_bfcref_p returns true through the new parameter, for
17156 both rhs and lhs.
17157
17158 2019-03-09 Jakub Jelinek <jakub@redhat.com>
17159
17160 PR c/88568
17161 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
17162 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
17163
17164 PR target/79645
17165 * common.opt (fdiagnostics-show-labels,
17166 fdiagnostics-show-line-numbers, fdiagnostics-format=,
17167 fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
17168 gas-locview-support, ginline-points, ginternal-reset-location-views):
17169 Terminate description text with a dot.
17170 * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
17171 * config/mcore/mcore.opt (m210, m340): Likewise.
17172 * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
17173 mnops=): Start description text with a capital letter.
17174 * config/arc/arc.opt (msize-level=): Likewise.
17175 * config/sh/sh.opt (minline-ic_invalidate): Likewise.
17176 * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
17177 mnewlib): Likewise.
17178 * config/ft32/ft32.opt (msim): Likewise.
17179 (mft32b, mcompress): Likewise. Terminate description text with a dot.
17180 (mnodiv, mnopm): Terminate description text with a dot.
17181 * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
17182 a colon.
17183 * config/i386/i386.opt (prefer_vector_width, instrument_return):
17184 Likewise.
17185 * config/rx/rx.opt (nofpu): Remove trailing spaces from description
17186 text.
17187
17188 PR rtl-optimization/89634
17189 * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
17190 are modified in BB_END (e->src) instruction.
17191
17192 2019-03-08 David Malcolm <dmalcolm@redhat.com>
17193
17194 PR target/79926
17195 * config/i386/i386.c (ix86_set_current_function): Make "sorry"
17196 messages more amenable to translation, and improve wording.
17197
17198 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com>
17199
17200 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
17201 ud- and du-chains between phases.
17202
17203 2019-03-08 Richard Sandiford <richard.sandiford@arm.com>
17204
17205 PR debug/89631
17206 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
17207 instead of POLY_INT_CST.
17208
17209 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
17210
17211 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
17212 requirement.
17213
17214 2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
17215
17216 PR target/68924
17217 PR target/78782
17218 PR target/87558
17219 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
17220 (_mm_storeu_si64): Ditto.
17221
17222 2019-03-08 Martin Liska <mliska@suse.cz>
17223
17224 PR target/86952
17225 * config/i386/i386.c (ix86_option_override_internal): Disable
17226 jump tables when retpolines are used.
17227
17228 2019-03-08 Jan Hubicka <hubicka@ucw.cz>
17229
17230 PR go/63560
17231 * ipa-split.c (execute_split_functions): Do not split
17232 'noinline' or 'section' function.
17233
17234 2019-03-08 Jakub Jelinek <jakub@redhat.com>
17235
17236 PR target/79846
17237 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
17238 HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
17239 HOST_WIDE_INT_PRINT_DEC. Formatting fixes.
17240
17241 PR ipa/80000
17242 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
17243 from diagnostics. Formatting fixes.
17244
17245 PR target/85665
17246 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
17247 warn_odr diagnostics.
17248
17249 PR other/80058
17250 * lra-constraints.c (process_alt_operands): Avoid one space before
17251 " at the end of line and another after " on another line in a string
17252 literal.
17253 * attribs.c (handle_dll_attribute): Likewise.
17254 * config/avr/avr-devices.c (avr_texinfo): Likewise.
17255
17256 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
17257 warning_at or inform messages in G_() if there is no ?:.
17258
17259 PR tree-optimization/89550
17260 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
17261 returned true. Formatting fixes.
17262 (expand_builtin_strnlen): Formatting fixes.
17263 * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
17264 if warning_at returned true.
17265 * tree-cfg.c (pass_warn_function_return::execute): Likewise.
17266
17267 2019-03-08 Richard Biener <rguenther@suse.de>
17268
17269 PR middle-end/89578
17270 * cfgloop.h (struct loop): Add owned_clique field.
17271 * cfgloopmanip.c (copy_loop_info): Copy it.
17272 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
17273 cliques.
17274 * tree-inline.c (copy_loops): Remap owned_clique.
17275 * lto-streamer-in.c (input_cfg): Stream owned_clique.
17276 * lto-streamer-out.c (output_cfg): Likewise.
17277
17278 2019-03-08 Jakub Jelinek <jakub@redhat.com>
17279
17280 PR target/80190
17281 * config/darwin.c: Include intl.h.
17282 (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
17283 composing the message out of two separate parts.
17284
17285 2019-03-07 Jakub Jelinek <jakub@redhat.com>
17286
17287 PR target/80003
17288 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
17289 doesn't start with a capital letter and doesn't end with a dot.
17290 (ix86_function_arg_boundary): Make sure diagnostics doesn't start
17291 with a capital letter.
17292 (ix86_mangle_function_version_assembler_name): Likewise.
17293 (ix86_generate_version_dispatcher_body): Likewise.
17294 (fold_builtin_cpu): Likewise.
17295 (get_builtin_code_for_version): Likewise. Remove extraneous space.
17296 (ix86_handle_interrupt_attribute): Make the diagnostics easier for
17297 translators, wrap full type name in %qs.
17298
17299 PR translation/79999
17300 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
17301 depend clause with source (or sink) modifier.
17302 * omp-expand.c (expand_omp_ordered_sink): Likewise.
17303
17304 PR target/89602
17305 * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
17306 *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
17307 (avx512f_load<mode>_mask): New define_expand.
17308 * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
17309 __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
17310 __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
17311 __builtin_ia32_movess_mask): New builtins.
17312 * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
17313 _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
17314 _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
17315 _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
17316
17317 2019-03-07 Martin Jambor <mjambor@suse.cz>
17318
17319 PR lto/87525
17320 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
17321 for extern inline functions.
17322
17323 2019-03-07 Martin Jambor <mjambor@suse.cz>
17324
17325 PR ipa/88235
17326 * cgraph.h (cgraph_node): New inline method former_thunk_p.
17327 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
17328 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
17329 have multiple callees. At the end check if declarations match as
17330 opposed to cgraph_nodes.
17331
17332 2019-03-07 Martin Liska <mliska@suse.cz>
17333
17334 * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
17335 which is equivalent to searching for this in clones chain.
17336 * symtab.c (symtab_node::verify_base): Similarly compare ASM
17337 names with a neighbour and special case first node in a chain.
17338
17339 2019-01-25 Jason Merrill <jason@redhat.com>
17340
17341 PR c++/80916 - spurious "static but not defined" warning.
17342 * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
17343 for an internal symbol with DECL_EXTERNAL.
17344
17345 2019-04-07 Richard Biener <rguenther@suse.de>
17346
17347 PR middle-end/89618
17348 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
17349 * tree-inline.c (copy_loops): Simplify.
17350
17351 2019-03-07 Martin Liska <mliska@suse.cz>
17352
17353 * dwarf2out.c (add_AT_vms_delta): Revert function removal.
17354
17355 2019-03-07 Richard Biener <rguenther@suse.de>
17356
17357 PR tree-optimization/89595
17358 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
17359 stmt iterator as reference, take boolean output parameter to
17360 indicate whether the stmt was removed and thus the iterator
17361 already advanced.
17362 (dom_opt_dom_walker::before_dom_children): Re-iterate over
17363 stmts created by folding.
17364
17365 2019-03-07 Jakub Jelinek <jakub@redhat.com>
17366
17367 PR c++/89585
17368 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
17369 at toplevel.
17370
17371 2019-03-06 Peter Bergner <bergner@linux.ibm.com>
17372
17373 PR rtl-optimization/88845
17374 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
17375 LRA.
17376 * lra.c (remove_scratches_1): New function.
17377 (remove_scratches): Use it.
17378 (lra_emit_move): Likewise.
17379
17380 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com>
17381
17382 * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
17383 unaligned_access variable.
17384 * config/arc/arc.c (arc_override_options): Set unaligned access
17385 default on for HS CPUs.
17386 * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
17387
17388 2019-03-06 Martin Liska <mliska@suse.cz>
17389
17390 PR gcov-profile/89577
17391 * doc/gcov.texi: Prefer to use --coverage.
17392 * doc/sourcebuild.texi: Likewise.
17393
17394 2019-03-02 Jason Merrill <jason@redhat.com>
17395
17396 PR c++/86485 - -Wmaybe-unused with empty class ?:
17397 * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
17398
17399 2019-03-05 Jakub Jelinek <jakub@redhat.com>
17400
17401 PR target/89587
17402 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
17403 if_multiarch.
17404
17405 PR middle-end/89590
17406 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
17407 exactly one argument.
17408
17409 2019-03-05 Jakub Jelinek <jakub@redhat.com>
17410 Richard Sandiford <richard.sandiford@arm.com>
17411
17412 PR tree-optimization/89570
17413 * match.pd (vec_cond into cond_op simplification): Don't use
17414 get_conditional_internal_fn, use as_internal_fn (cond_op).
17415
17416 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com>
17417
17418 PR target/89222
17419 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
17420 to decide when to split off a non-zero offset from a symbol.
17421 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
17422 in function symbols.
17423
17424 2019-03-05 Richard Biener <rguenther@suse.de>
17425
17426 PR tree-optimization/89594
17427 * tree-if-conv.c (pass_if_conversion::execute): Handle
17428 case where .LOOP_VECTORIZED_FUNCTION was removed.
17429
17430 2019-03-05 Jakub Jelinek <jakub@redhat.com>
17431
17432 PR bootstrap/89560
17433 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
17434 instead alloca it only when needed with the needed size.
17435
17436 PR tree-optimization/89570
17437 * match.pd (vec_cond into cond_op simplification): Guard with
17438 vectorized_internal_fn_supported_p test and #if GIMPLE.
17439
17440 PR tree-optimization/89566
17441 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
17442 Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
17443 Punt if get_user_idx_format succeeds, but idx_format argument is
17444 not provided or doesn't have pointer type, or if idx_args is above
17445 number of provided arguments.
17446
17447 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com>
17448
17449 PR tree-optimization/89437
17450 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
17451
17452 2019-03-04 Richard Biener <rguenther@suse.de>
17453
17454 PR middle-end/89572
17455 * tree-scalar-evolution.c: (get_loop_exit_condition): Use
17456 safe_dyn_cast.
17457
17458 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com>
17459
17460 PR tree-optimization/89487
17461 * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
17462 (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
17463 (distribute_loop): Don't do runtime alias check if there is non-
17464 addressable data reference.
17465 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
17466 is a register variable.
17467
17468 2019-03-02 Jakub Jelinek <jakub@redhat.com>
17469
17470 PR target/89506
17471 * config/arm/arm.md (cmpsi2_addneg): Use
17472 trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
17473 If operands[2] is 0 or INT_MIN, force use of subs.
17474 (*compare_scc splitter): Use gen_int_mode.
17475 (*negscc): Likewise.
17476 * config/arm/thumb2.md (*thumb2_negscc): Likewise.
17477
17478 2019-03-01 Kito Cheng <kito.cheng@gmail.com>
17479 Monk Chiang <sh.chiang04@gmail.com>
17480
17481 * common/config/riscv/riscv-common.c: Include sstream.
17482 (riscv_subset_list::to_string): New.
17483 (riscv_arch_str): Likewise.
17484 * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
17485 * config.in: Regen.
17486 * config/riscv/riscv-protos.h (riscv_arch_str): New.
17487 * config/riscv/riscv.c (INCLUDE_STRING): Defined.
17488 (riscv_emit_attribute): New.
17489 (riscv_file_start): Emit attribute if needed.
17490 (riscv_option_override): Init riscv_emit_attribute_p.
17491 * config/riscv/riscv.opt (mriscv-attribute): New option.
17492 * configure.ac (riscv*-*-*): Check binutils is supporting ELF
17493 * configure: Regen.
17494 * doc/install.texi: Document --with-riscv-attribute.
17495 * doc/invoke.texi: Document -mriscv-attribute.
17496
17497 * common/config/riscv/riscv-common.c:
17498 Include config/riscv/riscv-protos.h.
17499 (INCLUDE_STRING): Defined.
17500 (RISCV_DONT_CARE_VERSION): Defined.
17501 (riscv_subset_t): Declare.
17502 (riscv_subset_t::riscv_subset_t): New.
17503 (riscv_subset_list): Declare.
17504 (riscv_subset_list::riscv_subset_list): New.
17505 (riscv_subset_list::~riscv_subset_list): Likewise.
17506 (riscv_subset_list::parsing_subset_version): Likewise.
17507 (riscv_subset_list::parse_std_ext): Likewise.
17508 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
17509 (riscv_subset_list::add): Likewise.
17510 (riscv_subset_list::lookup): Likewise.
17511 (riscv_subset_list::xlen): Likewise.
17512 (riscv_subset_list::parse): Likewise.
17513 (riscv_supported_std_ext): Likewise.
17514 (current_subset_list): Likewise.
17515 (riscv_parse_arch_string): Using riscv_subset_list::parse to
17516 parse.
17517
17518 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org>
17519
17520 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
17521 rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
17522 * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
17523
17524 2019-03-01 Alexander Monakov <amonakov@ispras.ru>
17525
17526 PR rtl-optimization/85899
17527 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
17528 fallthru edges leading to the exit block.
17529
17530 2019-03-01 Tamar Christina <tamar.christina@arm.com>
17531
17532 PR target/89517
17533 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
17534 rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
17535
17536 2019-03-01 Richard Sandiford <richard.sandiford@arm.com>
17537
17538 PR tree-optimization/89535
17539 * tree-vect-stmts.c (vectorizable_call): Record the vector types
17540 for each operand. Calculate the fallback choice for mask operands
17541 and pass it to vect_get_vec_def_for_operand.
17542
17543 2019-03-01 Richard Biener <rguenther@suse.de>
17544
17545 PR middle-end/89541
17546 * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
17547 get virtual operands.
17548 (get_expr_operands): Handle CONST_DECL like other decls.
17549
17550 2019-03-01 Jakub Jelinek <jakub@redhat.com>
17551
17552 PR middle-end/89503
17553 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
17554 on DECL_P and EXPR_P.
17555
17556 2019-03-01 Richard Biener <rguenther@suse.de>
17557
17558 PR middle-end/89497
17559 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
17560 argument, defaulted to zero.
17561 * passes.c (execute_function_todo): Pass down SSA update flags
17562 to cleanup_tree_cfg.
17563 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
17564 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
17565 form if requested.
17566 (cleanup_tree_cfg): Get and pass down SSA update flags.
17567
17568 2019-03-01 Jakub Jelinek <jakub@redhat.com>
17569
17570 PR bootstrap/89539
17571 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
17572 early_lto_debug argument.
17573
17574 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
17575
17576 PR tree-optimization/89536
17577 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
17578 only whether bit #0 of the value is 0 instead of the entire value.
17579
17580 2019-02-28 Marek Polacek <polacek@redhat.com>
17581
17582 PR c++/87068 - missing diagnostic with fallthrough statement.
17583 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
17584 at the end of a seq, save its location to walk_stmt_info.
17585 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
17586 a switch.
17587
17588 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
17589
17590 PR lto/88585
17591 * tree.c (find_atomic_core_type): Move ahead in file.
17592 (check_base_type): Correctly compare alignments of atomic types.
17593
17594 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
17595
17596 PR target/89455
17597 * config/i386/i386.c (get_builtin_code_for_version): Identify
17598 Westmere from PCLMUL, instead of AES.
17599
17600 2019-02-28 Jakub Jelinek <jakub@redhat.com>
17601
17602 PR target/89434
17603 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
17604 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
17605 -UINTVAL (...).
17606
17607 2019-02-28 Tamar Christina <tamar.christina@arm.com>
17608
17609 PR target/88530
17610 * config/aarch64/aarch64-option-extensions.def: Document it.
17611 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
17612 if empty hwcaps.
17613
17614 2019-02-28 Jakub Jelinek <jakub@redhat.com>
17615
17616 PR c/89520
17617 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
17618 builtins if they don't have a single scalar floating point argument.
17619 Formatting fixes.
17620
17621 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
17622
17623 PR rtl-optimization/89490
17624 * varasm.c (get_block_for_section): Bail out for mergeable sections.
17625 (default_use_anchors_for_symbol_p, output_object_block): Assert the
17626 block section is not mergeable.
17627
17628 2019-02-27 Jakub Jelinek <jakub@redhat.com>
17629
17630 PR target/70341
17631 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
17632 old define_insn to ...
17633 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
17634 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
17635 Rename old define_insn to ...
17636 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
17637 (thumb2_casesi_internal_pic): New define_expand. Rename old
17638 define_insn to ...
17639 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
17640 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
17641 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
17642
17643 2019-02-27 Richard Biener <rguenther@suse.de>
17644
17645 PR debug/88878
17646 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
17647
17648 2019-02-27 Richard Biener <rguenther@suse.de>
17649
17650 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
17651 building.
17652
17653 2019-02-27 Richard Biener <rguenther@suse.de>
17654
17655 PR debug/88878
17656 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
17657 parameter, prefix section name with .gnu.debuglto_ if true.
17658 (dwarf2out_finish): Pass false to output_comdat_type_unit.
17659 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
17660
17661 2019-02-27 Richard Biener <rguenther@suse.de>
17662
17663 PR debug/89514
17664 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
17665 rather than on use_debug_types, doing what output_die does.
17666 (value_format): Likewise.
17667
17668 2019-02-27 Martin Jambor <mjambor@suse.cz>
17669 Martin Sebor <msebor@redhat.com>
17670
17671 * doc/invoke.texi (Warning Options): Reword description of
17672 -Wno-absolute-value.
17673
17674 2019-02-27 Jakub Jelinek <jakub@redhat.com>
17675
17676 PR tree-optimization/89280
17677 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
17678 builtin_setjmp_setup_bb): New functions.
17679 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
17680 When visiting __builtin_setjmp_setup block, queue in special
17681 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
17682 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
17683 from visited after the loop if they don't have any visited successor
17684 blocks.
17685
17686 2018-02-26 Steve Ellcey <sellcey@marvell.com>
17687
17688 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
17689 New function.
17690 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
17691
17692 2019-02-26 Jakub Jelinek <jakub@redhat.com>
17693
17694 PR c++/89507
17695 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
17696 with types other than sizetype/ssizetype.
17697
17698 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
17699
17700 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
17701 (enum sparc_processor_type): ...this.
17702 (enum sparc_code_model_type): New enumeration type.
17703 (enum sparc_memory_model_type): Tweak comments.
17704 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
17705 (mtune): Likewise.
17706 (mcmodel): Use sparc_code_model enumeration and variable.
17707 (sparc_code_model): New enumeration.
17708 (mdebug): Add Undocumented marker.
17709 * config/sparc/sparc.h (enum cmodel): Delete.
17710 (sparc_cmodel): Likewise.
17711 (TARGET_CM_MEDLOW): Adjust to above renaming.
17712 (TARGET_CM_MEDMID): Likewise.
17713 (TARGET_CM_MEDANY): Likewise.
17714 (TARGET_CM_EMBMEDANY): Likewise.
17715 * config/sparc/sparc.c (sparc_cmodel): Delete.
17716 (sparc_option_override): Remove string/value mapping support for the
17717 code model. Move code and memory model support to after the handling
17718 of target flags. Do private machine setup last.
17719 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
17720 (sparc_legitimize_reload_address): Likewise.
17721 (sparc_output_mi_thunk): Likewise.
17722 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
17723
17724 2019-02-26 Jakub Jelinek <jakub@redhat.com>
17725
17726 PR tree-optimization/89500
17727 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
17728 (handle_builtin_strlen): Remove noncst_bound variable. Always
17729 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
17730 cst if the first cst bytes starting at x are known to be non-zero,
17731 even if the string is not zero terminated. Don't try to modify
17732 *si for strnlen. Update strlen_to_stridx only for strlen or if
17733 we can prove strnlen returns the same value as strlen would.
17734
17735 2019-02-26 Martin Liska <mliska@suse.cz>
17736
17737 * alloc-pool.h (struct pool_usage): Remove extra
17738 print_dash_line.
17739 * bitmap.h (struct bitmap_usage): Likewise.
17740 * ggc-common.c (struct ggc_usage): Likewise.
17741 * mem-stats.h (struct mem_usage): Likewise.
17742 (mem_alloc_description::dump): Print dash lines
17743 here and repeat header at the end of a table report.
17744 It's then more readable.
17745 * tree-phinodes.c (phinodes_print_statistics): Make
17746 horizontal alignment.
17747 * tree-ssanames.c (ssanames_print_statistics): Likewise.
17748 * vec.c (struct vec_usage): Remove extra print_dash_line.
17749 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
17750
17751 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
17752
17753 * doc/extend.texi (__builtin_object_size):
17754 Use @pxref instead of @xref inside parenthesis.
17755 (__builtin_has_attribute): Add missing comma after @xref.
17756 (__builtin_object_size): Ditto.
17757 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
17758
17759 2019-02-26 Jeff Law <law@redhat.com>
17760
17761 PR rtl-optimization/87761
17762 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
17763 detect obviously dead insns and delete them.
17764
17765 2019-02-26 Richard Biener <rguenther@suse.de>
17766
17767 PR tree-optimization/89505
17768 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
17769 to handle restrict pointed-to vars with multiple subvars
17770 correctly.
17771
17772 2019-02-26 Richard Biener <rguenther@suse.de>
17773
17774 PR tree-optimization/89489
17775 * tree-parloops.c (create_loop_fn): Copy over last_clique.
17776
17777 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
17778
17779 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
17780 and move around comment.
17781 <BIT_AND_EXPR>: Likewise.
17782 <BIT_NOT_EXPR>: Add specific handling for boolean types.
17783
17784 2019-02-26 Jakub Jelinek <jakub@redhat.com>
17785
17786 PR target/89474
17787 * config/i386/i386.c (remove_partial_avx_dependency): Call
17788 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
17789 after changing possibly many instructions to use that pseudo. Fix up
17790 insertion of v4sf_const0 setter at the start of bb.
17791
17792 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
17793
17794 PR c/80409
17795 * doc/extend.texi (Variadic Pointer Args): New section.
17796
17797 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
17798 Martin Sebor <msebor@gmail.com>
17799
17800 * common.opt (Wattribute-alias): Likewise.
17801 * doc/invoke.texi (Option Summary): List general form of
17802 -Wattribute-alias=. List positive form of -Wmissing-attributes.
17803 (-Wmissing-attributes): Invert entry, rewrite and correct default.
17804 Add cross-references.
17805 (-Wattribute-alias): Rewrite and correct default. Mention
17806 considered attributes (same as for -Wmissing-attributes).
17807
17808 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
17809
17810 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
17811 (_mm_cvtpd_ps): Likewise.
17812 (_mm_cvttpd_epi32): Likewise.
17813
17814 PR target/89338
17815 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
17816 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
17817
17818 PR target/89339
17819 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
17820
17821 2019-02-25 Tamar Christina <tamar.christina@arm.com>
17822
17823 PR target/88530
17824 * common/config/aarch64/aarch64-common.c
17825 (struct aarch64_option_extension): Add is_synthetic.
17826 (all_extensions): Use it.
17827 (TARGET_OPTION_INIT_STRUCT): Define hook.
17828 (struct gcc_targetm_common): Moved to end.
17829 (all_extensions_by_on): New.
17830 (opt_ext_cmp, typedef opt_ext): New.
17831 (aarch64_option_init_struct): New.
17832 (aarch64_contains_opt): New.
17833 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
17834 * config/aarch64/aarch64-option-extensions.def
17835 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
17836 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
17837 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
17838 Set is_synthetic to false.
17839 (crypto): Set is_synthetic to true.
17840 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
17841 SYNTHETIC.
17842
17843 2019-02-25 Tamar Christina <tamar.christina@arm.com>
17844
17845 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
17846 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
17847 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
17848 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
17849 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
17850 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
17851 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
17852 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
17853 Rename ...
17854 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
17855 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
17856 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
17857 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
17858 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
17859 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
17860 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
17861 vfmlsl_laneq_high_f16): ... To this.
17862 * config/arm/neon.md: Update comments.
17863
17864 2019-02-25 Tamar Christina <tamar.christina@arm.com>
17865
17866 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
17867 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
17868 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
17869 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
17870 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
17871 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
17872 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
17873 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
17874 Rename ...
17875 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
17876 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
17877 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
17878 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
17879 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
17880 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
17881 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
17882 vfmlslq_laneq_high_f16): ... To this.
17883
17884 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
17885
17886 PR rtl-optimization/86096
17887 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
17888 comparing mw_order values.
17889
17890 2019-02-25 Jakub Jelinek <jakub@redhat.com>
17891
17892 PR target/89434
17893 * config/arm/arm.md (*subsi3_carryin_const): Use
17894 arm_neg_immediate_operand predicate instead of
17895 arm_not_immediate_operand, "L" constraint instead of "K" and
17896 print it using %n2 instead of %B2.
17897 (*subsi3_carryin_const0): New define_insn.
17898 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
17899 instead of arm_not_operand and "I" constraint instead of "K" and
17900 print it using %n3 instead of %B2. Instead of using match_dup 2 add
17901 another match_operand and in the condition check that it is negation
17902 of operands[2].
17903 (*subsi3_carryin_compare_const0): New define_ins.
17904 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
17905 *subsi3_carryin_const.
17906 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
17907 split into *subsi3_carryin_compare_const0 if the highpart is zero.
17908
17909 PR target/89438
17910 * config/arm.vfp.md (*negdf2_vfp): Use
17911 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
17912 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
17913
17914 2019-02-24 Jakub Jelinek <jakub@redhat.com>
17915
17916 PR rtl-optimization/89445
17917 * simplify-rtx.c (simplify_ternary_operation): Don't use
17918 simplify_merge_mask on operands that may trap.
17919 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
17920 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
17921 second operand is CONST_VECTOR, check if any element could be zero.
17922 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
17923 their operands can trap.
17924
17925 2019-02-23 Martin Sebor <msebor@redhat.com>
17926
17927 * gimple-ssa-sprintf.c (target_strtol): Rename...
17928 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
17929 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
17930 check for range error.
17931
17932 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
17933
17934 PR driver/69471
17935 * opts-common.c (prune_options): Also prune joined switches
17936 with Negative and RejectNegative.
17937 * config/i386/i386.opt (march=): Add Negative(march=).
17938 (mtune=): Add Negative(mtune=).
17939 * doc/options.texi: Document Negative used together with Joined
17940 and RejectNegative.
17941
17942 2019-02-22 Martin Sebor <msebor@redhat.com>
17943
17944 * doc/extend.texi (Other Builtins): Add
17945 __builtin_is_constant_evaluated.
17946
17947 2019-02-22 Richard Biener <rguenther@suse.de>
17948
17949 PR tree-optimization/87609
17950 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
17951
17952 2019-02-22 Jeff Law <law@redhat.com>
17953
17954 PR rtl-optimization/87761
17955 * config/mips/mips.md: Add new combiner pattern to recognize
17956 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
17957
17958 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
17959
17960 PR target/89324
17961 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
17962 destination register in peepholes generating patterns for ADDS/SUBS.
17963 (add<mode>3_compare0,
17964 *addsi3_compare0_uxtw, add<mode>3_compareC,
17965 add<mode>3_compareV_imm, add<mode>3_compareV,
17966 *adds_<optab><ALLX:mode>_<GPI:mode>,
17967 *subs_<optab><ALLX:mode>_<GPI:mode>,
17968 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
17969 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
17970 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
17971 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
17972 sub<mode>3_compare1): Allow stack pointer for source register.
17973 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
17974
17975 2019-02-22 Martin Sebor <msebor@redhat.com>
17976
17977 PR tree-optimization/88993
17978 PR tree-optimization/88853
17979 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
17980 New helper.
17981 (sprintf_dom_walker::call_info::is_string_func): New helper.
17982 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
17983 for formatted string functions.
17984 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
17985
17986 2019-02-22 Martin Sebor <msebor@redhat.com>
17987
17988 PR c/89425
17989 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
17990 unreachable subexpressions.
17991
17992 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
17993 Hongtao Liu <hongtao.liu@intel.com>
17994 Sunil K Pandey <sunil.k.pandey@intel.com>
17995
17996 PR target/87007
17997 * config/i386/i386-passes.def: Add
17998 pass_remove_partial_avx_dependency.
17999 * config/i386/i386-protos.h
18000 (make_pass_remove_partial_avx_dependency): New.
18001 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
18002 New function.
18003 (pass_data_remove_partial_avx_dependency): New.
18004 (pass_remove_partial_avx_dependency): Likewise.
18005 (make_pass_remove_partial_avx_dependency): Likewise.
18006 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
18007 (*extendsfdf2): Add avx_partial_xmm_update.
18008 (truncdfsf2): Likewise.
18009 (*float<SWI48:mode><MODEF:mode>2): Likewise.
18010 (SF/DF conversion splitters): Disabled for TARGET_AVX.
18011
18012 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
18013
18014 PR middle-end/85598
18015 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
18016 analysis for pass.
18017
18018 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
18019
18020 PR target/89444
18021 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
18022 (PTA_SKYLAKE): Add PTA_AES.
18023 (PTA_GOLDMONT): Likewise.
18024
18025 2019-02-22 Sudakshina Das <sudi.das@arm.com>
18026
18027 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
18028 instruction if enabled.
18029 (aarch64_override_options): Remove reference to return address key.
18030
18031 2019-02-22 Richard Biener <rguenther@suse.de>
18032
18033 PR tree-optimization/89440
18034 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
18035 not necessary assert.
18036
18037 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
18038
18039 PR fortran/72741
18040 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
18041 (oacc_replace_fn_attrib_attr): ... this new function.
18042 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
18043 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
18044
18045 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18046
18047 * config/arm/arm-cpus.in (ares): Rename to...
18048 (neoverse-n1): ... This. Add ares as alias.
18049 * config/arm/arm-tables.opt: Regenerate.
18050 * config/arm/arm-tune.md: Likewise.
18051 * doc/invoke.txt (ARM Options): Document neoverse-n1.
18052
18053 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18054
18055 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
18056 * config/aarch64/aarch64-tune.md: Regenerate.
18057 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
18058
18059 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18060
18061 * config/aarch64/aarch64.c (ares_tunings): Rename to...
18062 (neoversen1_tunings): ... This.
18063 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
18064 (neoverse-n1): New CPU.
18065 * config/aarch64/aarch64-tune.md: Regenerate.
18066 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
18067
18068 2019-02-22 Richard Biener <rguenther@suse.de>
18069
18070 PR middle-end/87609
18071 * cfghooks.h (dependence_hash): New typedef.
18072 (struct copy_bb_data): New type.
18073 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
18074 (duplicate_block): Likewise.
18075 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
18076 (copy_bbs): Create and pass down copy_bb_data.
18077 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
18078 (rtl_duplicate_bb): Likewise.
18079 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
18080 remap dependence info.
18081
18082 2019-02-22 Richard Biener <rguenther@suse.de>
18083
18084 PR tree-optimization/87609
18085 * tree-core.h (tree_base): Document special clique values.
18086 * tree-inline.c (remap_dependence_clique): Do not use the
18087 special clique value of one.
18088 (maybe_set_dependence_info): Use clique one.
18089 (clear_dependence_clique): New callback.
18090 (compute_dependence_clique): Clear clique one from all refs
18091 before assigning it (again).
18092
18093 2019-02-21 Martin Sebor <msebor@redhat.com>
18094
18095 * doc/extend.texi (__clear_cache): Correct signature.
18096
18097 2019-02-21 Ian Lance Taylor <iant@golang.org>
18098
18099 PR go/89170
18100 * varasm.c (decode_addr_const): Call lookup_constant_def rather
18101 than output_constant_def.
18102 (add_constant_to_table): New static function.
18103 (output_constant_def): Call add_constant_to_table.
18104 (tree_output_constant_def): Likewise.
18105
18106 2019-02-21 Jakub Jelinek <jakub@redhat.com>
18107
18108 PR c++/89285
18109 * builtins.c (fold_builtin_arith_overflow): If first two args are
18110 INTEGER_CSTs, set intres and ovfres to constants rather than calls
18111 to ifn.
18112
18113 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
18114
18115 PR target/87412
18116 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
18117 error for -mindirect-branch/-mfunction-return with incompatible
18118 -fcf-protection.
18119
18120 2019-02-21 Jakub Jelinek <jakub@redhat.com>
18121
18122 PR bootstrap/88714
18123 * constraints.md (q): Remove.
18124 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
18125 instead of q.
18126
18127 2019-02-21 Martin Jambor <mjambor@suse.cz>
18128
18129 PR hsa/89302
18130 * omp-general.c (omp_extract_for_data): Removed a duplicate call
18131 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
18132 (omp_adjust_for_condition): ...here. Added necessary parameters.
18133 * omp-general.h (omp_adjust_for_condition): Updated declaration.
18134 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
18135 proper values to new parameters of omp_adjust_for_condition.
18136
18137 2019-02-20 Jakub Jelinek <jakub@redhat.com>
18138
18139 PR middle-end/89412
18140 * expr.c (expand_assignment): If result is a MEM, use change_address
18141 instead of simplify_gen_subreg.
18142
18143 2019-02-20 Jakub Jelinek <jakub@redhat.com>
18144 David Malcolm <dmalcolm@redhat.com>
18145
18146 PR middle-end/89091
18147 * fold-const.c (decode_field_reference): Return NULL_TREE if
18148 lang_hooks.types.type_for_size returns NULL. Check it before
18149 overwriting *exp_. Use return NULL_TREE instead of return 0.
18150
18151 2019-02-20 Jakub Jelinek <jakub@redhat.com>
18152
18153 PR middle-end/88074
18154 PR middle-end/89415
18155 * toplev.c (do_compile): Double the emin/emax exponents to workaround
18156 buggy mpc_norm.
18157
18158 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
18159
18160 PR target/89397
18161 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
18162 TARGET_SSE in addition to TARGET_SSE_MATH.
18163
18164 (ix86_excess_precision): Ditto.
18165 (ix86_float_exceptions_rounding_supported_p): Ditto.
18166 (use_rsqrt_p): Ditto.
18167 * config/i386/sse.md (rsqrt<mode>2): Ditto.
18168
18169 2019-02-20 David Malcolm <dmalcolm@redhat.com>
18170
18171 PR c/89410
18172 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
18173 linenum_arith_t when determining if two adjacent line spans are
18174 close enough to merge.
18175 (diagnostic_show_locus): Use linenum_arith_t when iterating over
18176 lines within each line_span.
18177
18178 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
18179
18180 PR target/86487
18181 * lra-constraints.c(uses_hard_regs_p): Fix handling of
18182 paradoxical SUBREGS.
18183
18184 2019-02-20 Li Jia He <helijia@linux.ibm.com>
18185
18186 PR target/88100
18187 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
18188 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
18189 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
18190 range checking it.
18191
18192 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
18193
18194 * config/gcn/gcn.c (print_operand): Fix typo.
18195
18196 2019-02-19 Richard Biener <rguenther@suse.de>
18197
18198 PR middle-end/88074
18199 * toplev.c (do_compile): Initialize mpfr's exponent range
18200 based on available float modes.
18201
18202 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
18203
18204 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
18205 as long as the epilogue isn't completed.
18206
18207 2019-02-18 Martin Sebor <msebor@redhat.com>
18208
18209 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
18210 __has_cpp_attribute, and __has_include.
18211
18212 2019-02-18 Martin Sebor <msebor@redhat.com>
18213
18214 * doc/invoke.texi (-Wreturn-type): Correct and expand.
18215
18216 2019-02-18 Martin Sebor <msebor@redhat.com>
18217
18218 PR middle-end/89294
18219 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
18220 expression.
18221 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
18222
18223 2019-02-18 Richard Biener <rguenther@suse.de>
18224
18225 PR tree-optimization/89296
18226 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
18227 of no-warning flag to cases that might emit the bogus warning.
18228
18229 2019-02-18 Jakub Jelinek <jakub@redhat.com>
18230
18231 PR bootstrap/88714
18232 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
18233 "q" constraint.
18234 * config/arm/vfp.md (*movdi_vfp): Likewise.
18235 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
18236 "q" constraint for operands[0].
18237
18238 PR target/89369
18239 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
18240 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
18241 pattern in a temporary buffer.
18242 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
18243 than 64-operands[2].
18244
18245 PR target/89361
18246 * config/s390/s390.c (s390_indirect_branch_attrvalue,
18247 s390_indirect_branch_settings): Define unconditionally.
18248 (s390_set_current_function): Likewise, but guard the whole body except
18249 the s390_indirect_branch_settings call with
18250 #if S390_USE_TARGET_ATTRIBUTE.
18251 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
18252
18253 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
18254 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
18255 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
18256 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
18257 HOST_WIDE_INT_1U instead of 1ULL.
18258 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
18259 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
18260 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
18261 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
18262 instead of 1UL.
18263 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
18264 instead of 1ul.
18265
18266 2019-02-18 Martin Jambor <mjambor@suse.cz>
18267
18268 PR tree-optimization/89209
18269 * tree-sra.c (create_access_replacement): New optional parameter
18270 reg_tree. Use it as a type if non-NULL and access type is not of
18271 a register type.
18272 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
18273 to create_access_replacement.
18274 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
18275 Check lacc is non-NULL before attempting to re-create it on the RHS.
18276
18277 2019-02-18 Martin Liska <mliska@suse.cz>
18278
18279 PR ipa/89306
18280 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
18281 by default.
18282 (symbol_table::free_edge): Recycle m_summary_id.
18283 * cgraph.h (get_summary_id): New.
18284 (symbol_table::release_symbol): Set m_summary_id to -1
18285 by default.
18286 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
18287 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
18288 function_summary to fast_function_summary.
18289 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
18290 * ipa-pure-const.c (class funct_state_summary_t):
18291 Switch from function_summary to fast_function_summary.
18292 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
18293 (class ipa_ref_opt_summary_t): Switch from function_summary
18294 to fast_function_summary.
18295 * symbol-summary.h (class function_summary_base): New class
18296 that is created from base of former function_summary.
18297 (function_summary_base::unregister_hooks): New.
18298 (class function_summary): Inherit from function_summary_base.
18299 (class call_summary_base): New class
18300 that is created from base of former call_summary.
18301 (class call_summary): Inherit from call_summary_base.
18302 (struct is_same): New.
18303 (class fast_function_summary): New summary class.
18304 (class fast_call_summary): New summary class.
18305 * vec.h (vec_safe_grow_cleared): New function.
18306
18307 2019-02-18 Martin Liska <mliska@suse.cz>
18308
18309 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
18310 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
18311 * doc/tm.texi: Document new target hook.
18312 * doc/tm.texi.in: Likewise.
18313 * target.def: Add new target macro.
18314 * gcc.c (find_fortran_preinclude_file): Do not search multilib
18315 suffixes.
18316
18317 2019-02-17 Alan Modra <amodra@gmail.com>
18318
18319 PR target/89271
18320 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
18321 output reg on add insn.
18322 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
18323
18324 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
18325
18326 PR target/89372
18327 * config/i386/sse.md (ssedoublemode): Remove V4HI.
18328 (PMULHRSW): Likewise.
18329 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
18330 TARGET_AVX2.
18331 (ssse3_pmulhrswv4hi3): New expander.
18332
18333 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
18334
18335 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
18336 MMX. Add isa attribute.
18337
18338 2019-02-16 Jakub Jelinek <jakub@redhat.com>
18339
18340 PR rtl-optimization/66152
18341 * builtins.h (c_readstr): Declare.
18342 * builtins.c (c_readstr): Remove forward declaration. Add
18343 null_terminated_p argument, if false, read all bytes from the
18344 string instead of stopping after '\0'.
18345 * expr.c (string_cst_read_str): New function.
18346 (store_expr): Use string_cst_read_str instead of
18347 builtin_strncpy_read_str. Try to store by pieces the whole
18348 exp_len first, and only if that fails, split it up into
18349 store by pieces followed by clear_storage. Formatting fix.
18350
18351 * config/i386/i386.md (*movqi_internal): Remove static from
18352 buf variable. Use output_asm_insn (buf, operands); return "";
18353 instead of return buf;.
18354 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
18355 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
18356 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
18357
18358 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
18359
18360 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
18361 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
18362 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
18363 (CC1_SPEC): Likewise.
18364 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
18365
18366 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
18367
18368 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
18369 the base address on 64-bit strict-alignment platforms.
18370
18371 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
18372
18373 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
18374
18375 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
18376
18377 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
18378
18379 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
18380
18381 PR rtl-optimization/88308
18382 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
18383 on copied instruction.
18384
18385 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
18386
18387 * final.c (insn_current_reference_address): Replace test on JUMP_P
18388 with test on jump_to_label_p.
18389 * config/visium/visium-passes.def: New file.
18390 * config/visium/t-visium (PASSES_EXTRA): Define.
18391 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
18392 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
18393 (TRAMPOLINE_ALIGNMENT): Define.
18394 * config/visium/visium.c (visium_option_override): Do not register
18395 the machine-specific reorg pass here.
18396 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
18397 for the GR6.
18398 (output_branch): Adjust threshold for long branch instruction.
18399 * config/visium/visium.md (cpu): Move around.
18400 (length): Adjust for the GR6.
18401
18402 2019-02-15 Richard Biener <rguenther@suse.de>
18403 Jakub Jelinek <jakub@redhat.com>
18404
18405 PR tree-optimization/89278
18406 * tree-loop-distribution.c: Include tree-eh.h.
18407 (generate_memset_builtin, generate_memcpy_builtin): Call
18408 rewrite_to_non_trapping_overflow on builtin->size before passing it
18409 to force_gimple_operand_gsi.
18410
18411 2019-02-15 Jakub Jelinek <jakub@redhat.com>
18412
18413 PR other/89342
18414 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
18415 optimize_debug.
18416 * opth-gen.awk: Likewise.
18417
18418 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
18419
18420 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
18421 Enable MMX, SSE and SSE2 by default.
18422 * config/i386/i386.c (ix86_option_override_internal): Do not
18423 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
18424
18425 2019-02-14 Jakub Jelinek <jakub@redhat.com>
18426
18427 PR rtl-optimization/89354
18428 * combine.c (make_extraction): Punt if extraction_mode is narrower
18429 than len bits.
18430
18431 2019-02-14 Maya Rashish <coypu@sdf.org>
18432
18433 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
18434 * config/netbsd-d.c: New file.
18435 * config/t-netbsd: Add netbsd-d.o
18436
18437 2018-02-14 Steve Ellcey <sellcey@marvell.com>
18438
18439 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
18440 affects_type_identity to true for aarch64_vector_pcs.
18441 (aarch64_comp_type_attributes): New function.
18442 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
18443
18444 2019-02-14 Tamar Christina <tamar.christina@arm.com>
18445
18446 PR target/88850
18447 * config/arm/iterators.md (ANY64): Add V4HF.
18448
18449 2019-02-14 Martin Liska <mliska@suse.cz>
18450
18451 PR rtl-optimization/89242
18452 * dce.c (delete_unmarked_insns): Call free_dominance_info we
18453 process a transformation.
18454
18455 2019-02-14 Jakub Jelinek <jakub@redhat.com>
18456
18457 PR tree-optimization/89314
18458 * fold-const.c (fold_binary_loc): Cast strlen argument to
18459 const char * before dereferencing it. Formatting fixes.
18460
18461 PR middle-end/89284
18462 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
18463
18464 2019-02-13 Ian Lance Taylor <iant@golang.org>
18465
18466 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
18467 and set current index for other optimizations.
18468
18469 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
18470
18471 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
18472 nonimmediate_operand as operand 2 predicate.
18473 (vec_set<VF2_512_256:mode>_0): Ditto.
18474 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
18475 (*vec_concatv2si): Remove alternative 2.
18476 (*vec_concatv4si_0): Use vm constraint for alternative 0.
18477 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
18478 (vec_concatv2di): Split alternatives 4,5,6 to ...
18479 (*vec_concatv2di_0) ... new pattern.
18480
18481 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
18482
18483 PR target/89190
18484 * config/arm/arm.c (ldm_stm_operation_p) Set
18485 addr_reg_in_reglist correctly for first register.
18486 (load_multiple_sequence): Remove dead base check.
18487 (gen_ldm_seq): Correctly set write_back for Thumb-1.
18488
18489 2019-02-13 Tamar Christina <tamar.christina@arm.com>
18490
18491 PR target/88847
18492 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
18493 Expose as @aarch64_pred_mov.
18494 * config/aarch64/aarch64.c (aarch64_classify_address):
18495 Use expand_insn which legitimizes operands.
18496
18497 2019-02-13 Martin Liska <mliska@suse.cz>
18498
18499 * builtins.h (expand_builtin_with_bounds): Remove declaration.
18500 * calls.c (struct arg_data): Remove special_slot, pointer_arg
18501 and pointer_offset fields.
18502 (initialize_argument_information): Remove usage of dead
18503 fields.
18504 * cgraph.h (struct cgraph_thunk_info): Remove
18505 add_pointer_bounds_args.
18506 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
18507 fields.
18508 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
18509 fields.
18510 * config/i386/i386.c (ix86_function_arg_advance): Remove
18511 unrelated comment.
18512 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
18513 (def_builtin): Remove usage of dead fields.
18514 (ix86_add_new_builtins): Likewise.
18515 * ipa-fnsummary.c (compute_fn_summary): Likewise.
18516 * ipa-icf.c (sem_function::equals_wpa): Likewise.
18517 (sem_function::init): Likewise.
18518 (sem_variable::merge): Likewise.
18519 * ipa-visibility.c (function_and_variable_visibility): Likewise.
18520 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
18521 * lto-cgraph.c (lto_output_node): Likewise.
18522 (lto_output_varpool_node): Likewise.
18523 (input_node): Likewise.
18524 (input_varpool_node): Likewise.
18525 * lto-streamer-out.c (lto_output): Likewise.
18526 * tree-inline.c (expand_call_inline): Remove usage of
18527 assign_stmts.
18528 * tree-inline.h (struct copy_body_data): Likewise.
18529 * varpool.c (varpool_node::dump): Likewise.
18530
18531 2019-02-13 Jakub Jelinek <jakub@redhat.com>
18532
18533 PR middle-end/89303
18534 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
18535 into pt->vars_contains_escaped_heap instead of setting
18536 pt->vars_contains_escaped_heap to it.
18537
18538 PR middle-end/89281
18539 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
18540 INTVAL (size), compare it to GET_MODE_MASK instead of
18541 1 << GET_MODE_BITSIZE.
18542
18543 PR target/89290
18544 * config/i386/predicates.md (x86_64_immediate_operand): Allow
18545 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
18546 -mcmodel=large.
18547
18548 2019-02-13 Martin Liska <mliska@suse.cz>
18549
18550 PR lto/88858
18551 * cfgrtl.c (remove_barriers_from_footer): New function.
18552 (try_redirect_by_replacing_jump): Use it.
18553 (cfg_layout_redirect_edge_and_branch): Likewise.
18554
18555 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
18556
18557 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
18558 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
18559 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
18560 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
18561 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
18562 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
18563 New BU_CRYPTO_2.
18564 * config/rs6000/rs6000.c (builtin_function_type)
18565 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
18566 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
18567 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
18568 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
18569 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
18570
18571 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
18572
18573 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
18574 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
18575
18576 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
18577
18578 PR target/89229
18579 * config/i386/i386.md (*movoi_internal_avx): Revert revision
18580 268678 and revision 268657.
18581 (*movti_internal): Likewise.
18582
18583 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
18584
18585 PR target/89233
18586 * config/s390/s390.c (s390_decompose_address): Update comment.
18587 (s390_check_qrst_address): Reject invalid address forms after
18588 LRA.
18589
18590 2019-02-12 Martin Liska <mliska@suse.cz>
18591
18592 PR lto/88876
18593 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
18594 we need default values of funct_state for a function that
18595 is not optimized.
18596
18597 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
18598
18599 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
18600 the object to pick the size of stores on strict-alignment platforms.
18601
18602 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
18603 (*movdi_insn_sp32): Likewise.
18604 (*movdi_insn_sp64): Likewise.
18605
18606 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
18607
18608 PR lto/88677
18609 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
18610 types that needs constructiong.
18611 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
18612
18613 2019-02-12 Richard Biener <rguenther@suse.de>
18614
18615 PR tree-optimization/89253
18616 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
18617 duplicate the loop.
18618
18619 2019-02-11 David Malcolm <dmalcolm@redhat.com>
18620
18621 PR lto/88147
18622 * input.c (selftest::test_line_offset_overflow): New selftest.
18623 (selftest::input_c_tests): Call it.
18624
18625 2019-02-11 Martin Sebor <msebor@redhat.com>
18626
18627 PR tree-optimization/88771
18628 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
18629 when -Wstringop-overflow is set.
18630 (builtin_memref::builtin_memref): Adjust excessive upper bound
18631 only when lower bound is not excessive.
18632 (maybe_diag_overlap): Detect and diagnose excessive bounds via
18633 -Wstringop-ovefflow.
18634 (maybe_diag_offset_bounds): Rename...
18635 (maybe_diag_access_bounds): ...to this.
18636 (check_bounds_or_overlap): Adjust for name change above.
18637
18638 2019-02-11 Martin Sebor <msebor@redhat.com>
18639
18640 PR c++/87996
18641 * builtins.c (max_object_size): Move from here...
18642 * builtins.h (max_object_size): ...and here...
18643 * tree.c (max_object_size): ...to here...
18644 * tree.h (max_object_size): ...and here.
18645
18646 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
18647
18648 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
18649 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
18650 for correct semantics.
18651
18652 2019-02-11 Alan Modra <amodra@gmail.com>
18653
18654 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
18655 -mlongcall and -mpltseq.
18656 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
18657 (RS/6000 and PowerPC Options <-mpltseq>): Document.
18658 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
18659 * config/rs6000/sysv4.opt (mpltseq): New option.
18660 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
18661 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
18662 support is lacking. Don't allow -mpltseq with -mbss-plt.
18663 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
18664 -mpltseq given for ELFv1.
18665 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
18666 Only use UNSPEC_PLTSEQ for inline PLT calls.
18667 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
18668 use UNSPEC_PLTSEQ for inline PLT calls.
18669 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
18670 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
18671 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
18672 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
18673 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
18674 (pltseq_mtctr_<mode>): Likewise.
18675
18676 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18677
18678 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
18679 Solaris ld.
18680 * configure: Regenerate.
18681
18682 2019-02-11 Jakub Jelinek <jakub@redhat.com>
18683
18684 PR bootstrap/88714
18685 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
18686 instead of r.
18687
18688 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
18689
18690 * function.c (assign_parm_setup_block): Use the stored
18691 size, not the passed size, when allocating stack-space,
18692 also for a parameter with alignment larger than
18693 MAX_SUPPORTED_STACK_ALIGNMENT.
18694
18695 2019-02-11 Martin Liska <mliska@suse.cz>
18696
18697 PR ipa/89009
18698 * ipa-cp.c (build_toporder_info): Remove usage of a param.
18699 * ipa-inline.c (inline_small_functions): Likewise.
18700 * ipa-pure-const.c (propagate_pure_const): Likewise.
18701 (propagate_nothrow): Likewise.
18702 * ipa-reference.c (propagate): Likewise.
18703 * ipa-utils.c (struct searchc_env): Remove unused field.
18704 (searchc): Always search across AVAIL_INTERPOSABLE.
18705 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
18706 the only called IPA pure const can properly not propagate
18707 across interposable boundary.
18708 * ipa-utils.h (ipa_reduced_postorder): Remove param.
18709
18710 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
18711
18712 * config/nds32/nds32.md (call_internal, call_value_internal,
18713 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
18714
18715 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
18716
18717 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
18718 typo.
18719
18720 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
18721
18722 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
18723 in comments
18724
18725 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
18726
18727 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
18728
18729 2019-02-10 Jakub Jelinek <jakub@redhat.com>
18730
18731 PR tree-optimization/89268
18732 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
18733 if preds is non-NULL.
18734
18735 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
18736
18737 PR lto/89272
18738 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
18739 polymorphic types.
18740
18741 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
18742
18743 * config/nds32/nds32.md (trap): New pattern.
18744
18745 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
18746
18747 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
18748 dwarf span.
18749
18750 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
18751
18752 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
18753 to split POST_INC.
18754
18755 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
18756
18757 * ipa-visibility.c (localize_node): Also do not localize
18758 LDPR_PREVAILING_DEF_IRONLY_EXP.
18759
18760 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
18761
18762 PR lto/87957
18763 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
18764 instead of type_with_linkage.
18765
18766 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
18767
18768 PR ipa/88755
18769 * params.def (uninlined-function-insns, uninlined-function-time,
18770 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
18771 bound so we don't get overflows.
18772
18773 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
18774
18775 * config/rs6000/rs6000-string.c (expand_compare_loop,
18776 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
18777 memcmp/strncmp.
18778
18779 2019-02-09 Jakub Jelinek <jakub@redhat.com>
18780
18781 PR middle-end/89246
18782 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
18783 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
18784 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
18785
18786 2019-02-09 Alan Modra <amodra@gmail.com>
18787
18788 PR target/88343
18789 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
18790 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
18791 setup.
18792
18793 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
18794
18795 PR middle-end/88560
18796 * lra-constraints.c (process_alt_operands): Don't increase reject
18797 for memory when offset memory is required.
18798
18799 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
18800
18801 * config/s390/vector.md: Implement vector copysign.
18802
18803 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
18804
18805 * expr.c (expand_constructor): Correct indentations.
18806
18807 2019-02-08 Richard Biener <rguenther@suse.de>
18808
18809 PR tree-optimization/89247
18810 * tree-if-conv.c: Include tree-cfgcleanup.h.
18811 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
18812 (tree_if_conversion): Pass through predicate vector.
18813 (pass_if_conversion::execute): Do CFG cleanup and SSA update
18814 inline, see if any if-converted loops we refrece in
18815 LOOP_VECTORIZED calls vanished and fixup.
18816 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
18817
18818 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
18819
18820 * config/s390/constraints.md (jdd): New constraint.
18821
18822 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
18823
18824 PR target/89229
18825 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
18826 upper 16 vector registers without TARGET_AVX512VL.
18827 (*movti_internal): Likewise.
18828
18829 2019-02-08 Jakub Jelinek <jakub@redhat.com>
18830
18831 PR rtl-optimization/89234
18832 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
18833 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
18834 (copy_reg_eh_region_note_backward): Likewise.
18835
18836 2019-02-08 Richard Biener <rguenther@suse.de>
18837
18838 PR middle-end/89223
18839 * tree-data-ref.c (initialize_matrix_A): Fail if constant
18840 doesn't fit in HWI.
18841 (analyze_subscript_affine_affine): Handle failure from
18842 initialize_matrix_A.
18843
18844 2019-02-08 Jakub Jelinek <jakub@redhat.com>
18845
18846 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
18847 cfun everywhere.
18848
18849 2019-02-07 David Malcolm <dmalcolm@redhat.com>
18850
18851 PR tree-optimization/86637
18852 PR tree-optimization/89235
18853 * tree-vect-loop.c (optimize_mask_stores): Add an
18854 auto_purge_vect_location sentinel to ensure that vect_location is
18855 purged on exit.
18856 * tree-vectorizer.c
18857 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
18858 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
18859 to ensure that vect_location is purged on exit.
18860 (pass_slp_vectorize::execute): Likewise, replacing the manual
18861 reset.
18862 * tree-vectorizer.h (class auto_purge_vect_location): New class.
18863
18864 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18865
18866 * config/aarch64/iterators.md (max_opp): New code_attr.
18867 (USMAX): New code iterator.
18868 * config/aarch64/predicates.md (aarch64_smin): New predicate.
18869 (aarch64_smax): Likewise.
18870 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
18871 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
18872 MINUS (MAX MIN).
18873
18874 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
18875
18876 PR target/89229
18877 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
18878 for TARGET_AVX512VL.
18879 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
18880
18881 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
18882
18883 * config/s390/s390-builtin-types.def: Add new types.
18884 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
18885 (s390_vec_xlw4): Make the memory operand into a const pointer.
18886 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
18887 float.
18888 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
18889 a new vector type with the alignment of the scalar memory operand.
18890
18891 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
18892 Jakub Jelinek <jakub@redhat.com>
18893
18894 PR bootstrap/88714
18895 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
18896 arm_count_ldrdstrd_insns): New declarations.
18897 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
18898 MINUS.
18899 (valid_operands_ldrd_strd): New function.
18900 (arm_count_ldrdstrd_insns): New function.
18901 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
18902 sets instead of single DImode set and define new insns to match this.
18903
18904 2019-02-07 Tamar Christina <tamar.christina@arm.com>
18905
18906 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
18907 Make it a C initializer.
18908
18909 2019-02-07 Tamar Christina <tamar.christina@arm.com>
18910
18911 PR/target 88850
18912 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
18913
18914 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18915
18916 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
18917 Use neon_dot<q> for type.
18918 (neon_<sup>dot_lane<vsi2qi>): Likewise.
18919
18920 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18921
18922 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
18923 Use neon_dot<q> for type.
18924 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
18925 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
18926
18927 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
18928
18929 PR rtl-optimization/89225
18930 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
18931 sizes check.
18932
18933 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
18934
18935 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
18936 after restoring registers saved to allocate the frame on Windows.
18937
18938 2019-02-06 Richard Biener <rguenther@suse.de>
18939
18940 PR tree-optimization/89182
18941 * graphite.h (cached_scalar_evolution_in_region): Declare.
18942 * graphite.c (struct seir_cache_key): New.
18943 (struct sese_scev_hash): Likewise.
18944 (seir_cache): New global.
18945 (cached_scalar_evolution_in_region): New function.
18946 (graphite_transform_loops): Allocate and release seir_cache.
18947 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
18948 cached_scalar_evolution_in_region.
18949 * graphite-scop-detection.c (scop_detection::can_represent_loop):
18950 Simplify.
18951 (scop_detection::graphite_can_represent_expr: Use
18952 cached_scalar_evolution_in_region.
18953 (scop_detection::stmt_simple_for_scop_p): Likewise.
18954 (find_params_in_bb): Likewise.
18955 (gather_bbs::before_dom_children): Likewise.
18956 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
18957 (add_loop_constraints): Likewise.
18958
18959 2019-02-06 Jakub Jelinek <jakub@redhat.com>
18960
18961 PR middle-end/89210
18962 * fold-const-call.c (fold_const_vec_convert): Pass true as last
18963 operand to new_unary_operation only if both element types are integral
18964 and it isn't a widening conversion. Return NULL_TREE if
18965 new_unary_operation failed.
18966
18967 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
18968
18969 PR target/88856
18970 * config/s390/s390.md: Remove load and test FP splitter.
18971
18972 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
18973
18974 PR target/89112
18975 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
18976 expand_compare_loop, expand_block_compare_gpr,
18977 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
18978 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
18979 #include "profile-count.h" and "predict.h" for types and functions
18980 needed to work with REG_BR_PROB notes.
18981
18982 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
18983
18984 PR target/89112
18985 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
18986 for the long branch case.
18987
18988 2019-02-05 Jakub Jelinek <jakub@redhat.com>
18989
18990 PR target/89188
18991 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
18992 can throw, non-call exceptions are enabled and we can't delete
18993 dead exceptions or alter cfg. Set must_clean if
18994 delete_insn_and_edges returns true, don't set it blindly for calls.
18995 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
18996
18997 PR rtl-optimization/89195
18998 * combine.c (make_extraction): For MEMs, don't extract bytes outside
18999 of the original MEM.
19000
19001 2019-02-05 Martin Liska <mliska@suse.cz>
19002
19003 PR gcov-profile/89000
19004 * gcov.c (function_summary): Remove argument.
19005 (file_summary): New function.
19006 (print_usage): Replace tabs with spaces.
19007 (generate_results): Use new function file_summary.
19008
19009 2019-02-05 Jakub Jelinek <jakub@redhat.com>
19010
19011 PR target/89186
19012 * optabs.c (prepare_cmp_insn): Pass x and y to
19013 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
19014
19015 2019-02-05 Richard Biener <rguenther@suse.de>
19016
19017 PR middle-end/89150
19018 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
19019 (struct bitmap_element): Drop chain_prev so we properly recurse on
19020 the prev member, supporting tree views.
19021 (struct bitmap_head): GTY skip the obstack member.
19022
19023 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
19024
19025 PR c/88698
19026 * doc/extend.texi (Vector Extensions): Add an example of using vector
19027 types together with x86 intrinsics.
19028
19029 2019-02-04 Alan Modra <amodra@gmail.com>
19030
19031 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
19032 str[] size to 160, and comment.
19033
19034 2019-02-04 Alan Modra <amodra@gmail.com>
19035
19036 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
19037 (rs6000_pltseq_template): Guard output of TLS markers with
19038 TARGET_TLS_MARKERS.
19039 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
19040 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
19041 to use inline PLT sequences.
19042 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
19043 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
19044 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
19045
19046 2019-02-04 Martin Liska <mliska@suse.cz>
19047
19048 PR ipa/88985
19049 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
19050 out when ipa_fn_summaries does not contain entry for callee.
19051
19052 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
19053
19054 * config/sparc/sparc.h: Remove superfluous blank lines.
19055 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
19056 (got_register_rtx): ...this.
19057 (sparc_got): Adjust to above renaming.
19058 (sparc_tls_got): Likewise.
19059 (sparc_delegitimize_address): Likewise.
19060 (sparc_output_mi_thunk): Likewise.
19061 (sparc_init_pic_reg): Likewise.
19062 (save_local_or_in_reg_p): Fix test on the GOT register.
19063 (USE_HIDDEN_LINKONCE): Move around.
19064 (get_pc_thunk_name): Likewise.
19065 (gen_load_pcrel_sym): Likewise.
19066 (load_got_register): Likewise.
19067
19068 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
19069
19070 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
19071 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
19072
19073 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
19074
19075 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
19076 into consideration.
19077
19078 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
19079
19080 * config.gcc (with_nds32_lib, glibc):
19081 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
19082 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
19083 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
19084
19085 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
19086
19087 PR target/89071
19088 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
19089 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
19090 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
19091 (*rcpsf2_sse): Ditto.
19092 (*rsqrtsf2_sse): Ditto.
19093 (sse4_1_round<mode<2): Ditto.
19094
19095 2019-02-03 Richard Biener <rguenther@suse.de>
19096
19097 PR debug/87295
19098 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
19099 orig.
19100
19101 2019-02-02 Jakub Jelinek <jakub@redhat.com>
19102
19103 PR middle-end/87887
19104 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
19105 Punt with warning on aggregate return or argument types. Ignore
19106 type/mode checking for uniform arguments.
19107
19108 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
19109
19110 * combine.c (try_combine): Do not print "Can't combine" messages unless
19111 printing failed combination attempts.
19112
19113 2019-02-01 Martin Jambor <mjambor@suse.cz>
19114
19115 PR hsa/87863
19116 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
19117 segment and global segment variables before making them static.
19118
19119 2019-02-01 Martin Jambor <mjambor@suse.cz>
19120
19121 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
19122 missed optimization dump with dump_enabled_p.
19123
19124 2019-02-01 Richard Biener <rguenther@suse.de>
19125
19126 PR middle-end/88597
19127 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
19128 the instantiate cache.
19129 (instantiate_scev_binary): Elide second operand procesing
19130 if equal to the first.
19131 * tree-chrec.c (chrec_contains_symbols): Add visited set.
19132 (chrec_contains_undetermined): Likewise.
19133 (tree_contains_chrecs): Likewise.
19134
19135 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
19136
19137 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
19138
19139 2019-02-01 Jakub Jelinek <jakub@redhat.com>
19140
19141 PR tree-optimization/89143
19142 * wide-int-range.h (wide_int_range_absu): Declare.
19143 * wide-int-range.cc (wide_int_range_absu): New function.
19144 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
19145
19146 PR tree-optimization/88107
19147 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
19148 instead of assertion that eh_region_outermost is non-NULL, if it
19149 is NULL, set *ALL to true and return NULL.
19150 (move_sese_region_to_fn): Adjust caller, if all is set, call
19151 duplicate_eh_regions with NULL region.
19152
19153 2019-02-01 Richard Biener <rguenth@suse.de>
19154
19155 PR rtl-optimization/88593
19156 * mode-switching.c (optimize_mode_switching): Free dominators before
19157 calling cleanup_cfg.
19158
19159 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
19160
19161 PR tree-optimization/88932
19162 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
19163
19164 2019-01-31 Jakub Jelinek <jakub@redhat.com>
19165
19166 PR middle-end/89137
19167 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
19168 bogus clang warning.
19169
19170 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
19171
19172 PR target/89071
19173 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
19174 alternative to avoid partial SSE register stall for TARGET_AVX.
19175 (truncdfsf2): Ditto.
19176 (sse4_1_round<mode>2): Ditto.
19177
19178 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
19179
19180 PR tree-optimization/89008
19181 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
19182 process anything of the form X * 0.
19183
19184 2019-01-31 Richard Biener <rguenther@suse.de>
19185
19186 PR tree-optimization/89135
19187 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
19188 with abnormal preds.
19189
19190 2019-01-31 Jakub Jelinek <jakub@redhat.com>
19191
19192 PR sanitizer/89124
19193 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
19194 always_inline callees into no_sanitize_address callers.
19195
19196 2019-01-31 Richard Biener <rguenther@suse.de>
19197
19198 PR rtl-optimization/89115
19199 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
19200
19201 2019-01-30 Martin Sebor <msebor@redhat.com>
19202
19203 PR other/89106
19204 * doc/extend.texi (cast to a union): Correct and expand.
19205
19206 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
19207
19208 PR rtl-optimization/87246
19209 * lra-constraints.c (simplify_operand_subreg): Reload memory
19210 in subreg if the address became invalid.
19211
19212 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
19213
19214 PR target/87064
19215 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
19216 Disable for little-endian.
19217
19218 2019-01-30 Richard Biener <rguenther@suse.de>
19219
19220 PR rtl-optimization/89115
19221 * opts.c (default_options_optimization): Reduce
19222 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
19223 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
19224 to the default.
19225
19226 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
19227
19228 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
19229 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
19230 type of vector element when vec_extract is implemented by direct
19231 move.
19232
19233 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
19234
19235 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
19236
19237 2019-01-30 Richard Biener <rguenther@suse.de>
19238
19239 PR tree-optimization/89111
19240 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
19241 canonicalization to appropriately sized access types.
19242
19243 2019-01-30 Jakub Jelinek <jakub@redhat.com>
19244
19245 PR c++/89105
19246 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
19247 for arguments to functions that are TU-local and shouldn't be
19248 referenced by assembly.
19249
19250 2019-01-30 Ulrich Drepper <drepper@redhat.com>
19251
19252 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
19253 after '='.
19254
19255 2019-01-29 Martin Sebor <msebor@redhat.com>
19256
19257 PR c/88956
19258 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
19259
19260 2019-01-29 Jakub Jelinek <jakub@redhat.com>
19261
19262 PR c++/66676
19263 PR ipa/89104
19264 * omp-simd-clone.c (simd_clone_clauses_extract)
19265 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
19266 OMP_CLAUSE_ALIGNED_ALIGNMENT.
19267
19268 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
19269
19270 * config.gcc: Force .init_array for ARC.
19271
19272 2019-01-29 Richard Biener <rguenther@suse.de>
19273
19274 PR debug/87295
19275 * dwarf2out.c (collect_skeleton_dies): New helper.
19276 (copy_decls_for_unworthy_types): Call it.
19277 (build_abbrev_table): Assert we do not try to replace
19278 DW_AT_signature refs with local refs.
19279
19280 2019-01-28 Jakub Jelinek <jakub@redhat.com>
19281
19282 PR middle-end/89002
19283 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
19284 for lastprivate/linear IV, push gimplify context around gimplify_assign
19285 and, if it needed any temporaries, pop it into a gimple bind around the
19286 sequence.
19287
19288 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
19289
19290 * common.opt (-Wattribute-alias): Remove "no-" from name.
19291 Make -Wattribute-alias command line option and
19292 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
19293
19294 2019-01-28 Jakub Jelinek <jakub@redhat.com>
19295
19296 PR target/89073
19297 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
19298 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
19299 x86 ISA options.
19300 (bmi2): Add missing @opindex.
19301 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
19302 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
19303 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
19304 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
19305 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
19306 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
19307 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
19308 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
19309 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
19310 xsavec, xsaveopt and xsaves options.
19311
19312 2019-01-28 Richard Biener <rguenther@suse.de>
19313
19314 PR debug/89076
19315 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
19316 support removal.
19317
19318 2019-01-28 Richard Biener <rguenther@suse.de>
19319
19320 PR tree-optimization/88739
19321 * tree-cfg.c (verify_types_in_gimple_reference): Verify
19322 BIT_FIELD_REFs only are applied to mode-precision operands
19323 when they are integral.
19324 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
19325 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
19326 BIT_FIELD_REFs of non-mode-precision integral operands.
19327
19328 2019-01-27 Jakub Jelinek <jakub@redhat.com>
19329
19330 PR target/87214
19331 * config/i386/sse.md
19332 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
19333 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
19334 first constants in pairs are multiples of 2. Formatting fixes.
19335 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
19336 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
19337 first constants in each quadruple are multiples of 4. Formatting fixes.
19338
19339 2019-01-26 Martin Jambor <mjambor@suse.cz>
19340
19341 PR ipa/88933
19342 * tree-inline.c: Include tree-cfgcleanup.h.
19343 (delete_unreachable_blocks_update_callgraph): Move...
19344 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
19345 ...here, make externally visible, make second argument bool, adjust
19346 all callers.
19347 * tree-cfgcleanup.c: Include cgraph.h.
19348 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
19349 Declare.
19350 * ipa-prop.c: Include tree-cfgcleanup.h.
19351 (ipcp_transform_function): Call
19352 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
19353
19354 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
19355
19356 PR rtl-optimization/88846
19357 * ira.c (process_set_for_memref_referenced_p): New.
19358 (memref_referenced_p): Add new param. Use
19359 process_set_for_memref_referenced_p. Add new switch cases.
19360 (memref_used_between_p): Pass new arg to memref_referenced_p.
19361
19362 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
19363
19364 PR target/88469
19365 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
19366 argument ABI_BREAK. Set to true if the calculated alignment has
19367 changed in gcc-9. Check bit-fields for their base type alignment.
19368 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
19369 (aarch64_function_arg_boundary): Likewise.
19370 (aarch64_gimplify_va_arg_expr): Likewise.
19371
19372 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
19373
19374 PR middle-end/89037
19375 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
19376 instead of accessing TREE_INT_CST_ELT directly.
19377
19378 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
19379
19380 * doc/sourcebuild.texi (Environment attributes): Add fenv and
19381 fenv_exceptions description.
19382
19383 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
19384
19385 PR rtl-optimization/87763
19386 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
19387 Allow SUBREG when matching CC_NZmode compare.
19388
19389 2019-01-25 Richard Biener <rguenther@suse.de>
19390
19391 PR tree-optimization/89049
19392 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
19393 Look at the pattern stmt to determine if the stmt is vectorized.
19394
19395 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
19396
19397 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
19398 (pred_mov<mode>): Handle all-register forms using both a new
19399 alternative and a split.
19400
19401 2019-01-25 Richard Biener <rguenther@suse.de>
19402
19403 PR tree-optimization/86865
19404 * graphite-scop-detection.c (scop_detection::can_represent_loop):
19405 Reject non-do-while loops.
19406
19407 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
19408
19409 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
19410 * config/rs6000/constraints.md (Q constraint): Use REG_P.
19411 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
19412 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
19413 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
19414 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
19415 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
19416 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
19417 vlogical_operand, gpc_reg_operand, int_reg_operand,
19418 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
19419 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
19420 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
19421 (save_world_operation, restore_world_operation, lmw_operation,
19422 stmw_operation): Use MEM_P and REG_P.
19423 (tie_operand): Use MEM_P.
19424 (vrsave_operation, crsave_operation): Use REG_P.
19425 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
19426 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
19427 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
19428 (call_operand): Use HARD_REGISTER_P.
19429 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
19430 Use CONST_INT_P.
19431 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
19432 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
19433 quad_aligned_load_p, replace_swapped_aligned_store,
19434 recombine_lvx_pattern, replace_swapped_aligned_load,
19435 recombine_stvx_pattern): Use MEM_P.
19436 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
19437 Use MEM_P and SYMBOL_REF_P.
19438 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
19439 (insn_is_swappable_p): Use REG_P and MEM_P.
19440 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
19441 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
19442 Use CONST_INT_P.
19443 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
19444 Use CONST_DOUBLE_P.
19445 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
19446 CONST_WIDE_INT_P.
19447 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
19448 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
19449 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
19450 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
19451 reg_or_subregno:
19452 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
19453 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
19454 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
19455 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
19456 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
19457 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
19458 rs6000_split_logical_di): Use CONST_INT_P.
19459 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
19460 REG_P and SYMBOL_REF_P.
19461 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
19462 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
19463 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
19464 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
19465 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
19466 (small_data_operand, print_operand_address): Use CONST_INT_P and
19467 SYMBOL_REF_P.
19468 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
19469 (rs6000_init_hard_regno_mode_ok, direct_move_p):
19470 Use HARD_REGISTER_NUM_P.
19471 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
19472 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
19473 SUBREG_P and SYMBOL_REF_P.
19474 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
19475 and HARD_REGISTER_NUM_P.
19476 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
19477 reg_or_subregno.
19478 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
19479 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
19480 MEM_P and REG_P.
19481 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
19482 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
19483 find_addr_reg): Use REG_P.
19484 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
19485 (rs6000_emit_le_vsx_move): Use SUBREG_P.
19486 (offsettable_ok_by_alignment, constant_pool_expr_p,
19487 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
19488 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
19489 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
19490 rs6000_assemble_integer, create_TOC_reference,
19491 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
19492 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
19493 (rs6000_split_vec_extract_var): Use reg_or_subregno.
19494 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
19495 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
19496 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
19497 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
19498 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
19499 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
19500 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
19501 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
19502 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
19503 and cbranch<mode>4): Use CONST_INT_P.
19504 (multiple define_splits): Use REG_P and SUBREG_P.
19505 (define_expands call, call_value): Use MEM_P.
19506 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
19507 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
19508 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
19509 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
19510 and HARD_REGISTER_NUM_P.
19511 (multiple define_splits): Use HARD_REGISTER_NUM_P.
19512
19513 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
19514
19515 PR rtl-optimization/88948
19516 * rtl.h (prepare_copy_insn): New prototype.
19517 * gcse.c (prepare_copy_insn): New function, split out from
19518 process_insert_insn.
19519 (process_insert_insn): Use prepare_copy_insn.
19520 * store-motion.c (replace_store_insn): Use prepare_copy_insn
19521 instead of gen_move_insn.
19522
19523 2019-01-24 Jakub Jelinek <jakub@redhat.com>
19524
19525 PR debug/89006
19526 * config/i386/i386.c (ix86_pic_register_p): Return true for
19527 UNSPEC_SET_GOT too.
19528
19529 PR tree-optimization/88964
19530 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
19531 punt if HONOR_SNANS (chrec).
19532
19533 PR middle-end/89015
19534 * tree-nested.c (convert_nonlocal_reference_stmt,
19535 convert_local_reference_stmt, convert_tramp_reference_stmt,
19536 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
19537 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
19538 or GIMPLE_OMP_TASK.
19539
19540 PR tree-optimization/89027
19541 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
19542 for "omp simd array" variables.
19543
19544 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
19545
19546 PR target/88469
19547 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
19548 force the alignment of m_val.
19549
19550 2019-01-24 Richard Biener <rguenther@suse.de>
19551
19552 PR lto/87187
19553 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
19554 When in "legacy" debug mode make sure to reset self-origins.
19555
19556 2019-01-24 Martin Liska <mliska@suse.cz>
19557
19558 PR gcov-profile/88994
19559 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
19560 result will be always smaller or equal to the original.
19561 * gcov.c (mangle_name): Fix else branch where we should
19562 also copy to PTR and shift the pointer.
19563
19564 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
19565
19566 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
19567 * vr-values.c (find_case_label_ranges): Fix a comment typo.
19568
19569 2019-01-23 Xuepeng Guo <xuepeng.guo@intel.com>
19570
19571 * common/config/i386/i386-common.c
19572 (OPTION_MASK_ISA_ENQCMD_SET,
19573 OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
19574 (ix86_handle_option): Handle -menqcmd.
19575 * config.gcc (enqcmdintrin.h): New header file.
19576 * config/i386/cpuid.h (bit_ENQCMD): New bit.
19577 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
19578 -menqcmd.
19579 * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
19580 function type.
19581 * config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
19582 __builtin_ia32_enqcmds): New builtins.
19583 * config/i386/i386-c.c (__ENQCMD__): New macro.
19584 * config/i386/i386-option.c (ix86_target_string): Add
19585 -menqcmd.
19586 (ix86_valid_target_attribute_inner_p): Likewise.
19587 * config/i386/i386-expand.c
19588 (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
19589 IX86_BUILTIN_ENQCMDS.
19590 * config/i386/i386.h (TARGET_ENQCMD): New.
19591 * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
19592 (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
19593 (movdir64b_<mode>): Parameterize to enable share expansion code
19594 with ENQCMD in function ix86_expand_builtin.
19595 * config/i386/i386.opt: Add -menqcmd.
19596 * config/i386/immintrin.h: Include enqcmdintrin.h.
19597 * config/i386/enqcmdintrin.h: New intrinsic file.
19598 * doc/invoke.texi: Add -menqcmd.
19599
19600 2019-01-23 Bin Cheng <bin.cheng@arm.com>
19601 Steve Ellcey <sellcey@marvell.com>
19602
19603 PR target/85711
19604 * recog.c (address_operand): Return false on wrong mode for address.
19605 (constrain_operands): Check for mode with 'p' constraint.
19606
19607 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
19608
19609 PR target/88998
19610 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
19611 Disparage MMX alternative.
19612 (sse2_cvtpd2pi): Ditto.
19613 (sse2_cvttpd2pi): Ditto.
19614
19615 2019-01-23 David Malcolm <dmalcolm@redhat.com>
19616
19617 PR driver/89014
19618 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
19619 use-after-free of the result of
19620 aarch64_get_extension_string_for_isa_flags.
19621
19622 2019-01-23 Jakub Jelinek <jakub@redhat.com>
19623
19624 PR c/44715
19625 * doc/extend.texi: Document break and continue behavior in
19626 statement expressions.
19627
19628 2019-01-23 Richard Biener <rguenther@suse.de>
19629
19630 PR tree-optimization/89008
19631 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
19632 not leave another stray operand.
19633
19634 2019-01-23 Jakub Jelinek <jakub@redhat.com>
19635
19636 * BASE-VER: Bump to 9.0.1.
19637
19638 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
19639
19640 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
19641 thunk that returns by reference, use the type of the return object
19642 of the thunk instead of that of the alias to build the dereference.
19643
19644 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
19645
19646 * config/arc/atomic.md: Add operand to DMB instruction.
19647
19648 2019-01-23 Jakub Jelinek <jakub@redhat.com>
19649
19650 PR tree-optimization/88964
19651 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
19652 build_zero_cst instead of build_int_cst. Return false for loop
19653 invariants which honor signed zeros.
19654
19655 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
19656
19657 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
19658
19659 2019-01-22 Jakub Jelinek <jakub@redhat.com>
19660
19661 PR target/88965
19662 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
19663 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
19664 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
19665
19666 PR middle-end/88968
19667 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
19668 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
19669
19670 PR target/87064
19671 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
19672 Disable for little endian.
19673
19674 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
19675
19676 PR target/88469
19677 * config/arm/arm.c (arm_needs_double_word_align): Check
19678 DECL_BIT_FIELD_TYPE.
19679
19680 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
19681 H.J. Lu <hongjiu.lu@intel.com>
19682
19683 PR target/88909
19684 * config/i386/i386-builtin.def: Add mask2 to all builtin
19685 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
19686 SPECIAL_ARGS.
19687 * config/i386/i386.c (BDESC): Add mask2 to the definition.
19688 (BDESC_FIRST): Likewise.
19689 (define_builtin): Add an argument for mask2. Updated to handle
19690 both ix86_isa_flags and ix86_isa_flags2.
19691 (define_builtin_const): Likewise.
19692 (define_builtin_pure): Likewise.
19693 (define_builtin2): Deleted.
19694 (define_builtin_const2): Likewise.
19695 (builtin_description): Add a member, mask2.
19696 (bdesc_*): Add mask2 to builtin initializations.
19697 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
19698 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
19699 support.
19700 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
19701
19702 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
19703
19704 PR target/88954
19705 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
19706 noplt attribute.
19707
19708 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
19709
19710 PR target/88469
19711 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
19712 alignment is dominated by a bitfield with 64-bit aligned base type.
19713 (arm_function_arg): Emit a warning if the alignment has changed since
19714 earlier GCC releases.
19715 (arm_function_arg_boundary): Likewise.
19716 (arm_setup_incoming_varargs): Likewise.
19717
19718 2019-01-22 Richard Biener <rguenther@suse.de>
19719
19720 PR tree-optimization/88862
19721 * graphite-scop-detection.c
19722 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
19723
19724 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
19725
19726 * doc/extend.tex (AMD GCN Function Attributes): New section.
19727 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
19728 * doc/invoke.texi (AMD GCN Options): New section.
19729 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
19730
19731 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
19732
19733 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
19734 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
19735
19736 2019-01-22 Jakub Jelinek <jakub@redhat.com>
19737
19738 PR tree-optimization/88044
19739 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
19740 is false in the first iteration, but !every_iteration, return false
19741 instead of true with niter->niter zero.
19742
19743 PR rtl-optimization/88904
19744 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
19745 any nonequal registers before processing BB_END (b).
19746
19747 PR target/88905
19748 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
19749 GET_MODE (op0).
19750 (expand_binop_directly, expand_doubleword_clz,
19751 expand_doubleword_popcount, expand_ctz, expand_ffs,
19752 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
19753
19754 PR rtl-optimization/49429
19755 PR target/49454
19756 PR rtl-optimization/86334
19757 PR target/88906
19758 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
19759 addressable from here...
19760 (emit_block_op_via_libcall): ... to here.
19761
19762 2019-01-22 Richard Biener <rguenther@suse.de>
19763
19764 * tree-vect-loop.c (vect_analyze_loop_operations): Use
19765 auto_vec for cost vector to fix memleak.
19766 (vectorize_fold_left_reduction): Properly gather SLP defs.
19767 (vectorizable_comparison): Do not swap operands to properly
19768 gather SLP defs.
19769
19770 2019-01-22 Alan Modra <amodra@gmail.com>
19771
19772 PR target/88614
19773 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
19774 stays a reg. Allow a const_int.
19775 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
19776 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
19777 (IS_NOMARK_TLSGETADDR): Define.
19778 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
19779 (rs6000_output_tlsargs): New function.
19780 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
19781 __tls_get_addr call takes an arg.
19782 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
19783 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
19784 delete split..
19785 (call_value_nonlocal_sysv): ..or here, delete split.
19786 (tls_gdld_nomark): Delete.
19787 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
19788 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
19789 (call_value_nonlocal_sysv): Likewise.
19790 (call_value_nonlocal_sysv_secure): Likewise.
19791 (call_value_nonlocal_aix): Likewise.
19792 (call_value_indirect_aix): Likewise.
19793 (call_value_indirect_elfv2): Likewise.
19794 (call_value_local32, call_value_local64): Disable for no-mark tls.
19795 (call_value_local_aix): Likewise.
19796
19797 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
19798
19799 PR target/88938
19800 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
19801 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
19802
19803 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
19804
19805 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
19806 string contents as hash_map keys.
19807
19808 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
19809
19810 PR c/88928
19811 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
19812 for rvalue context. Handle rvalues correctly. Use min_align_of_type
19813 instead of TYPE_ALIGN.
19814 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
19815 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
19816 pointer from TYPE_STUB_DECL.
19817
19818 2019-01-21 Richard Biener <rguenther@suse.de>
19819
19820 PR tree-optimization/88934
19821 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
19822 at the possibly non-constant operand.
19823 (vect_get_constant_vectors): Adjust.
19824
19825 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
19826
19827 PR target/71659
19828 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
19829 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
19830 instead of _X86INTRIN_H_INCLUDED.
19831 * onfig/i386/clwbintrin.h: Likewise.
19832 * config/i386/pkuintrin.h: Likewise.
19833 * config/i386/prfchwintrin.h: Likewise.
19834 * config/i386/rdseedintrin.h: Likewise.
19835 * config/i386/wbnoinvdintrin.h: Likewise.
19836 * config/i386/xsavecintrin.h: Likewise.
19837 * config/i386/xsavesintrin.h: Likewise.
19838 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
19839 * config/i386/xsaveintrin.h: Likewise.
19840 * config/i386/xsaveoptintrin.h: Likewise.
19841 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
19842 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
19843 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
19844 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
19845 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
19846 * config/i386/immintrin.h: Here.
19847
19848 2019-01-20 Martin Jambor <mjambor@suse.cz>
19849
19850 PR ipa/87615
19851 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
19852 with aa_walk_budget.
19853 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
19854 aa_walk_budget_p parameter.
19855 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
19856 walk. Updated all callers.
19857 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
19858 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
19859 unmodified_parm.
19860 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
19861 parameter info. Extract info from fbi. Pass fbi to recursive calls
19862 and to unmodified_parm.
19863 (phi_result_unknown_predicate): New parameter fbi, removed parameter
19864 info, updated call to will_be_nonconstant_expr_predicate.
19865 (param_change_prob): New parameter fbi, limit AA walking.
19866 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
19867 calls to various above functions.
19868 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
19869 parameter. Use it to limit AA walking.
19870 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
19871 fbi, limit AA walk.
19872 (detect_type_change): New parameter fbi, pass it on to
19873 detect_type_change_from_memory_writes.
19874 (detect_type_change_ssa): Likewise.
19875 (aa_overwalked): Removed.
19876 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
19877 accordingly, adjust to the neew AA limiting scheme.
19878 (parm_ref_data_preserved_p): Likewise.
19879 (ipa_compute_jump_functions_for_edge): Adjust call to
19880 get_dynamic_type.
19881 (ipa_analyze_call_uses): Likewise.
19882 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
19883 (ipa_analyze_node): Initialize aa_walk_budget.
19884 (ipcp_transform_function): Likewise.
19885 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
19886 to get_dynamic_type.
19887
19888 2019-01-19 Jakub Jelinek <jakub@redhat.com>
19889
19890 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
19891 outside of #if CHECKING_P code.
19892
19893 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
19894
19895 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
19896 New function, split out from...
19897 (loop_versioning::analyze_stride): ...here.
19898 (loop_versioning::find_per_loop_multiplication): Use gassign.
19899 (loop_versioning::analyze_term_using_scevs): Return a success code.
19900 (loop_versioning::analyze_arbitrary_term): New function.
19901 (loop_versioning::analyze_address_fragment): Use
19902 analyze_arbitrary_term if all else fails.
19903
19904 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
19905
19906 PR target/88892
19907 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
19908 operands.
19909
19910 2019-01-18 Richard Biener <rguenther@suse.de>
19911
19912 PR tree-optimization/88903
19913 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
19914 scalar stmts a SLP shift amount is composed of when detecting
19915 shifts by scalars.
19916
19917 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
19918
19919 PR target/88799
19920 * config/arm/arm-cpus.in (mp): New feature.
19921 (sec): New feature.
19922 (fgroup ARMv7ve): Add mp and sec features.
19923 (arch armv7-a): Add options to allow mp and sec extensions.
19924 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
19925 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
19926 extenstions to the base architecture.
19927 (cpu cortex-a8): Add sec extension to the base architecture.
19928 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
19929 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
19930 variants down to the base v7-a varaint.
19931 * config/arm/t-multilib (v7_a_arch_variants): New variable.
19932 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
19933 of permitted extensions for -march=armv7-a and for
19934 -mcpu=generic-armv7-a.
19935
19936 2019-01-18 Martin Liska <mliska@suse.cz>
19937
19938 * params.def: Fix comment.
19939 * tree-profile.c (gimple_init_gcov_profiler): Bump function
19940 name.
19941 (gimple_gen_ic_func_profiler): Likewise.
19942
19943 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19944
19945 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
19946 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
19947 and put in error checks for stack protector guard options.
19948 (aarch64_stack_protect_guard): New.
19949 (TARGET_STACK_PROTECT_GUARD): Define.
19950 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
19951 (reg_stack_protect_address<mode>): New.
19952 (stack_protect_set): Adjust for SSP_GLOBAL.
19953 (stack_protect_test): Likewise.
19954 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
19955 (-mstack-protector-guard): Likewise.
19956 (-mstack-protector-guard-offset): Likewise.
19957
19958 2019-01-18 Jakub Jelinek <jakub@redhat.com>
19959
19960 PR tree-optimization/86214
19961 * tree-inline.h (struct copy_body_data): Add
19962 add_clobbers_to_eh_landing_pads member.
19963 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
19964 (copy_edges_for_bb): Call it if EH edge destination is <
19965 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
19966 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
19967 if flag_stack_reuse != SR_NONE and clear it afterwards.
19968
19969 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
19970
19971 PR target/85596
19972 * doc/install.texi (with-multilib-list): Document for aarch64.
19973
19974 2019-01-18 Jakub Jelinek <jakub@redhat.com>
19975
19976 PR target/88734
19977 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
19978 (("..."))) with ("...").
19979
19980 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
19981
19982 * doc/extend.texi (Built-in Functions for Memory Model Aware
19983 Atomic Operations): Document atomic fetch and nand.
19984
19985 2019-01-18 Martin Liska <mliska@suse.cz>
19986 Richard Biener <rguenther@suse.de>
19987
19988 PR middle-end/88587
19989 * cgraph.h (create_version_clone_with_body): Add new argument
19990 with attributes.
19991 * cgraphclones.c (cgraph_node::create_version_clone): Add
19992 DECL_ATTRIBUTES to a newly created decl. And call
19993 valid_attribute_p so that proper cl_target_optimization_node
19994 is set for the newly created declaration.
19995 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
19996 for declaration.
19997 (expand_target_clones): Do not call valid_attribute_p, it must
19998 be already done.
19999 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
20000 vector types.
20001
20002 2019-01-17 Jakub Jelinek <jakub@redhat.com>
20003
20004 PR target/88734
20005 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
20006 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
20007 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
20008
20009 2019-01-17 Martin Sebor <msebor@redhat.com>
20010
20011 PR middle-end/88273
20012 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
20013 Handle anti-ranges the same as no range at all.
20014
20015 2018-01-17 Steve Ellcey <sellcey@cavium.com>
20016
20017 * config/aarch64/aarch64.c (cgraph.h): New include.
20018 (intl.h): New include.
20019 (supported_simd_type): New function.
20020 (currently_supported_simd_type): Ditto.
20021 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
20022 (aarch64_simd_clone_adjust): Ditto.
20023 (aarch64_simd_clone_usable): Ditto.
20024 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
20025 (TARGET_SIMD_CLONE_ADJUST): Ditto.
20026 (TARGET_SIMD_CLONE_USABLE): Ditto.
20027 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
20028 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
20029 call.
20030
20031 2019-01-17 Martin Sebor <msebor@redhat.com>
20032
20033 PR tree-optimization/88800
20034 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
20035 NO_WARNING bit here. Avoid folding out-of-bounds calls.
20036 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
20037 redundant argument. Add new argument and issue diagnostics under
20038 its control. Detect out-of-bounds access even with warnings
20039 disabled.
20040 (check_bounds_or_overlap): Change return type. Add argument.
20041 (wrestrict_dom_walker::check_call): Adjust.
20042 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
20043 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
20044 check_bounds_or_overlap's return value.
20045 (handle_builtin_stxncpy): Same.
20046 (handle_builtin_strcat): Same.
20047
20048 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
20049 Kwok Cheung Yeung <kcy@codesourcery.com>
20050 Julian Brown <julian@codesourcery.com>
20051 Tom de Vries <tom@codesourcery.com>
20052
20053 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
20054
20055 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
20056
20057 * doc/sourcebuild.texi: Document dg-require-effective-target
20058 llvm_binutils and offload_gcn.
20059
20060 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
20061 Kwok Cheung Yeung <kcy@codesourcery.com>
20062 Julian Brown <julian@codesourcery.com>
20063 Tom de Vries <tom@codesourcery.com>
20064
20065 * doc/sourcebuild.texi: Document dg-required-effective-target
20066 exceptions.
20067
20068 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
20069 Kwok Cheung Yeung <kcy@codesourcery.com>
20070 Julian Brown <julian@codesourcery.com>
20071 Tom de Vries <tom@codesourcery.com>
20072 Jan Hubicka <hubicka@ucw.cz>
20073 Martin Jambor <mjambor@suse.cz>
20074
20075 * config.gcc: Add amdgcn*-*-amdhsa configuration.
20076 * configure.ac: Check for dlopen.
20077 * configure: Regenerate.
20078
20079 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
20080 Kwok Cheung Yeung <kcy@codesourcery.com>
20081 Julian Brown <julian@codesourcery.com>
20082 Tom de Vries <tom@codesourcery.com>
20083 Jan Hubicka <hubicka@ucw.cz>
20084 Martin Jambor <mjambor@suse.cz>
20085
20086 * common/config/gcn/gcn-common.c: New file.
20087 * config/gcn/driver-gcn.c: New file.
20088 * config/gcn/gcn-builtins.def: New file.
20089 * config/gcn/gcn-hsa.h: New file.
20090 * config/gcn/gcn-modes.def: New file.
20091 * config/gcn/gcn-opts.h: New file.
20092 * config/gcn/gcn-passes.def: New file.
20093 * config/gcn/gcn-protos.h: New file.
20094 * config/gcn/gcn-run.c: New file.
20095 * config/gcn/gcn-tree.c: New file.
20096 * config/gcn/gcn.c: New file.
20097 * config/gcn/gcn.h: New file.
20098 * config/gcn/gcn.opt: New file.
20099 * config/gcn/t-gcn-hsa: New file.
20100
20101 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
20102 Kwok Cheung Yeung <kcy@codesourcery.com>
20103 Julian Brown <julian@codesourcery.com>
20104 Tom de Vries <tom@codesourcery.com>
20105 Jan Hubicka <hubicka@ucw.cz>
20106 Martin Jambor <mjambor@suse.cz>
20107
20108 * config/gcn/constraints.md: New file.
20109 * config/gcn/gcn-valu.md: New file.
20110 * config/gcn/gcn.md: New file.
20111 * config/gcn/predicates.md: New file.
20112
20113 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
20114
20115 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
20116 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
20117 (stmt_uses_0_or_null_in_undefined_way): Likewise.
20118 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
20119
20120 2019-01-17 Tamar Christina <tamar.christina@arm.com>
20121
20122 PR target/88851
20123 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
20124 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
20125 it and document registers.
20126
20127 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20128
20129 * config/aarch64/aarch64.c (ares_tunings): Define.
20130 * config/aarch64/aarch64-cores.def (ares): Use the above.
20131
20132 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
20133
20134 PR target/88794
20135 Revert:
20136 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
20137
20138 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
20139 (_mm512_fixupimm_round_pd): Update parameters and builtin.
20140 (_mm512_maskz_fixupimm_round_pd): Ditto.
20141 (_mm512_fixupimm_round_ps): Ditto.
20142 (_mm512_maskz_fixupimm_round_ps): Ditto.
20143 (_mm_fixupimm_round_sd): Ditto.
20144 (_mm_maskz_fixupimm_round_sd): Ditto.
20145 (_mm_fixupimm_round_ss): Ditto.
20146 (_mm_maskz_fixupimm_round_ss): Ditto.
20147 (_mm512_fixupimm_pd): Ditto.
20148 (_mm512_maskz_fixupimm_pd): Ditto.
20149 (_mm512_fixupimm_ps): Ditto.
20150 (_mm512_maskz_fixupimm_ps): Ditto.
20151 (_mm_fixupimm_sd): Ditto.
20152 (_mm_maskz_fixupimm_sd): Ditto.
20153 (_mm_fixupimm_ss): Ditto.
20154 (_mm_maskz_fixupimm_ss): Ditto.
20155 (_mm512_mask_fixupimm_round_pd): Update builtin.
20156 (_mm512_mask_fixupimm_round_ps): Ditto.
20157 (_mm_mask_fixupimm_round_sd): Ditto.
20158 (_mm_mask_fixupimm_round_ss): Ditto.
20159 (_mm512_mask_fixupimm_pd): Ditto.
20160 (_mm512_mask_fixupimm_ps): Ditto.
20161 (_mm_mask_fixupimm_sd): Ditto.
20162 (_mm_mask_fixupimm_ss): Ditto.
20163 * config/i386/avx512vlintrin.h:
20164 (_mm256_fixupimm_pd): Update parameters and builtin.
20165 (_mm256_maskz_fixupimm_pd): Ditto.
20166 (_mm256_fixupimm_ps): Ditto.
20167 (_mm256_maskz_fixupimm_ps): Ditto.
20168 (_mm_fixupimm_pd): Ditto.
20169 (_mm_maskz_fixupimm_pd): Ditto.
20170 (_mm_fixupimm_ps): Ditto.
20171 (_mm_maskz_fixupimm_ps): Ditto.
20172 (_mm256_mask_fixupimm_pd): Update builtin.
20173 (_mm256_mask_fixupimm_ps): Ditto.
20174 (_mm_mask_fixupimm_pd): Ditto.
20175 (_mm_mask_fixupimm_ps): Ditto.
20176 * config/i386/i386-builtin-types.def: Add new types and remove
20177 useless ones.
20178 * config/i386/i386-builtin.def: Update builtin definitions.
20179 * config/i386/i386.c: Handle new builtin types and remove useless ones.
20180 * config/i386/sse.md: Update VFIXUPIMM* patterns.
20181 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
20182 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
20183 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
20184 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
20185 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
20186 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
20187 * config/i386/subst.md:
20188 (round_saeonly_sd_mask_operand4): Add new subst_attr.
20189 (round_saeonly_sd_mask_op4): Ditto.
20190 (round_saeonly_expand_operand5): Ditto.
20191 (round_saeonly_expand): Update.
20192
20193 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
20194
20195 PR target/88794
20196 Revert:
20197 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
20198
20199 * config/i386/sse.md: Combine VFIXUPIMM* patterns
20200 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
20201 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
20202 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
20203 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
20204 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
20205 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
20206
20207 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
20208
20209 PR target/88794
20210 Revert:
20211 2018-12-15 Jakub Jelinek <jakub@redhat.com>
20212
20213 PR target/88489
20214 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
20215 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
20216 instead of UNSPEC_FIXUPIMM.
20217
20218 2019-01-17 Richard Biener <rguenther@suse.de>
20219
20220 PR lto/86736
20221 * dwarf2out.c (want_pubnames): Never generate pubnames sections
20222 and friends for the LTO part of debug info.
20223
20224 2019-01-17 Jakub Jelinek <jakub@redhat.com>
20225
20226 PR tree-optimization/86214
20227 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
20228 if x == y.
20229
20230 PR rtl-optimization/88870
20231 * dce.c (deletable_insn_p): Never delete const/pure calls that can
20232 throw if we can't alter the cfg or delete dead exceptions.
20233 (mark_insn): Don't call find_call_stack_args for such calls.
20234
20235 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
20236
20237 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
20238 prototypes for vec_st.
20239 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
20240 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
20241 mainly on signed/unsigned long long and double.
20242
20243 2019-01-16 David Malcolm <dmalcolm@redhat.com>
20244
20245 PR target/88861
20246 * combine.c (delete_noop_moves): Convert to "bool" return,
20247 returning true if any edges are eliminated.
20248 (combine_instructions): Also return true if delete_noop_moves
20249 returns true.
20250
20251 2019-01-16 Tamar Christina <tamar.christina@arm.com>
20252
20253 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
20254 correct max nunits for endian swap.
20255 (aarch64_expand_fcmla_builtin): Correct subreg code.
20256 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
20257 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
20258 lane endianness.
20259
20260 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
20261
20262 * config/alpha/alpha.c (alpha_gimplify_va_arg):
20263 Handle split indirect COMPLEX_TYPE arguments.
20264
20265 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
20266
20267 PR target/86891
20268 * config/aarch64/aarch64-modes.def: Add comment about how the carry
20269 bit is set by add and compare.
20270 (CC_ADC): New CC_MODE.
20271 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
20272 to cache the code and mode of X. Adjust the shape of a CC_Cmode
20273 comparison. Add detection for CC_ADCmode.
20274 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
20275 CC_ADCmode.
20276 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
20277 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
20278 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
20279 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
20280 to eliminate the need for zero-extending the operands.
20281 (add<mode>3_compareC_imm): Delete. Merge into ...
20282 (add<mode>3_compareC): ... this. Restructure the comparison to
20283 eliminate the need for zero-extending the operands.
20284 (add<mode>3_carryin): Use LTU for the overflow detection.
20285 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
20286 Reexpress comparison for overflow.
20287 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
20288 (add<mode>3_carryinC): Likewise.
20289 (add<mode>3_carryinV): Use LTU for carry between partials.
20290 * config/aarch64/predicates.md (aarch64_carry_operation): Update
20291 handling of CC_Cmode and add CC_ADCmode.
20292 (aarch64_borrow_operation): Likewise.
20293
20294 2019-01-16 Tamar Christina <tamar.christina@arm.com>
20295
20296 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands):
20297 Remove patternmode.
20298 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
20299 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
20300 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>):
20301 Remove endianness conversion.
20302
20303 2019-01-16 Martin Liska <mliska@suse.cz>
20304
20305 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
20306 for GCC driver.
20307 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
20308 a new argument.
20309 * gcc.c (add_sysrooted_hdrs_prefix): New function.
20310 (path_prefix_reset): Move up in the source file.
20311 (find_fortran_preinclude_file): Make complex search for the
20312 fortran header files.
20313
20314 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
20315
20316 * godump.c (go_output_typedef): When outputting a typedef, refer
20317 to the underlying type by its name and not its structure.
20318
20319 2019-01-15 David Malcolm <dmalcolm@redhat.com>
20320
20321 PR c++/88795
20322 * tree.c (build_function_type): Assert that arg_types is not
20323 error_mark_node.
20324
20325 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
20326
20327 PR inline-asm/52813
20328 * doc/extend.texi: Document that listing the stack pointer in the
20329 clobber list of an asm is a deprecated feature.
20330 * common.opt (Wdeprecated): Moved from c-family/c.opt.
20331 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
20332 warning instead of an error for clobbers of the stack pointer.
20333 Add a note explaining why.
20334
20335 2019-01-15 Richard Biener <rguenther@suse.de>
20336
20337 PR debug/88046
20338 * dwarf2out.c (gen_member_die): Do not generate inheritance
20339 DIEs late.
20340
20341 2019-01-15 Richard Biener <rguenther@suse.de>
20342
20343 PR tree-optimization/88855
20344 * tree-if-conv.c (combine_blocks): Collect
20345 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
20346
20347 2019-01-15 Tom de Vries <tdevries@suse.de>
20348
20349 PR target/80547
20350 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
20351 lhs == NULL_TREE for gang-level reduction.
20352
20353 2019-01-15 Richard Biener <rguenther@suse.de>
20354 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
20355
20356 PR ipa/88788
20357 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
20358 return true if SSA_NAME is already marked in visited bitmap.
20359 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
20360
20361 2019-01-15 Jakub Jelinek <jakub@redhat.com>
20362
20363 PR tree-optimization/88775
20364 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
20365 equal == 0 equality pointer comparisons some more if compared in
20366 integral types and either one points to an automatic var and the
20367 other to a global, or we can prove at least one points to the middle
20368 or both point to start or both point to end.
20369
20370 2019-01-14 Andi Kleen <ak@linux.intel.com>
20371
20372 * Makefile.in: Lower autofdo sampling rate by 10x.
20373 * Makefile.tpl: Dito.
20374
20375 2019-01-14 Tom Honermann <tom@honermann.net>
20376
20377 * defaults.h: Define CHAR8_TYPE.
20378
20379 2019-01-14 Martin Sebor <msebor@redhat.com>
20380
20381 PR target/88638
20382 * doc/extend.texi (Darwin Format Checks): Clarify.
20383
20384 2019-01-14 Richard Biener <rguenther@suse.de>
20385
20386 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
20387 whether we are in (simplify ...) or (match ...) context.
20388
20389 2019-01-14 Jakub Jelinek <jakub@redhat.com>
20390
20391 PR rtl-optimization/88796
20392 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
20393 * cfgexpand.c (stack_protect_prologue): Initialize
20394 crtl->stack_protect_guard_decl.
20395 * function.c (stack_protect_epilogue): Use it instead of calling
20396 targetm.stack_protect_guard again.
20397 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
20398 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
20399 crtl->stack_protect_guard_decl.
20400 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
20401 on the returned MEM_EXPR.
20402
20403 2019-01-12 Tom de Vries <tdevries@suse.de>
20404
20405 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
20406 vector length using -fopenacc-dim.
20407
20408 2019-01-12 Tom de Vries <tdevries@suse.de>
20409
20410 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
20411 lengths into account.
20412
20413 2019-01-12 Svante Signell <svante.signell@gmail.com>
20414
20415 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
20416 (TARGET_CAN_SPLIT_STACK): Define.
20417 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
20418
20419 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
20420
20421 * params.def (inline-unit-growth): Set to 40.
20422
20423 2019-01-12 Jakub Jelinek <jakub@redhat.com>
20424
20425 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
20426
20427 2019-01-12 Tom de Vries <tdevries@suse.de>
20428
20429 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
20430 region calling vector-partitionable routine, set default_vector_length
20431 to WARP_SIZE.
20432
20433 2019-01-12 Tom de Vries <tdevries@suse.de>
20434
20435 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
20436 variable default_vector_length.
20437
20438 2019-01-12 Tom de Vries <tdevries@suse.de>
20439
20440 PR middle-end/88703
20441 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
20442 from oacc_default_dims, as oacc_validate_dims would do it, and apply
20443 dimensions limits.
20444
20445 2019-01-12 Tom de Vries <tdevries@suse.de>
20446
20447 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
20448 (nvptx_goacc_validate_dims): Add used parameter.
20449 * doc/tm.texi: Regenerate.
20450 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
20451 argument to call to targetm.goacc.validate_dims.
20452 (default_goacc_validate_dims): Add used
20453 parameter.
20454 * target.def (validate_dims): Add used parameter in DEFHOOK.
20455 * targhooks.h (default_goacc_validate_dims): Add used parameter.
20456
20457 2019-01-11 Jakub Jelinek <jakub@redhat.com>
20458
20459 PR middle-end/85956
20460 PR lto/88733
20461 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
20462 field.
20463 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
20464 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
20465 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
20466 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
20467
20468 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
20469
20470 PR rtl-optimization/87305
20471 * lra-assigns.c
20472 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
20473 for little endian pseudos used as paradoxical subreg.
20474
20475 2019-01-11 Jakub Jelinek <jakub@redhat.com>
20476
20477 PR tree-optimization/88693
20478 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
20479 for STRING_CSTs that don't contain any NUL characters in the first
20480 TREE_STRING_LENGTH bytes.
20481
20482 2019-01-11 Alan Modra <amodra@gmail.com>
20483
20484 PR 88777
20485 PR 88614
20486 * genattrtab.c (min_fn): Don't translate values.
20487 (min_attr_value): Return INT_MAX when the value can't be calculated.
20488 Return minimum among any values that can be calculated.
20489 (max_attr_value): Adjust.
20490
20491 2019-01-11 Jakub Jelinek <jakub@redhat.com>
20492
20493 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
20494
20495 2019-01-11 Steve Ellcey <sellcey@marvell.com>
20496
20497 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
20498 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
20499 (aarch64_return_call_with_max_clobbers): New function.
20500 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
20501 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
20502 argument.
20503 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
20504 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
20505 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
20506 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
20507 * cselib.c (cselib_process_insn): Add argument to
20508 targetm.hard_regno_call_part_clobbered call.
20509 * ira-conflicts.c (ira_build_conflicts): Ditto.
20510 * ira-costs.c (ira_tune_allocno_costs): Ditto.
20511 * lra-constraints.c (inherit_reload_reg): Ditto.
20512 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
20513 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
20514 argument. Call targetm.return_call_with_max_clobbers.
20515 Add argument to targetm.hard_regno_call_part_clobbered call.
20516 (calls_have_same_clobbers_p): New function.
20517 (process_bb_lives): Add call_insn and last_call_insn variables.
20518 Pass call_insn to check_pseudos_live_through_calls.
20519 Modify if stmt to check targetm.return_call_with_max_clobbers.
20520 Update setting of flush variable.
20521 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
20522 to false.
20523 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
20524 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
20525 targetm.hard_regno_call_part_clobbered call.
20526 * reginfo.c (choose_hard_reg_mode): Ditto.
20527 * regrename.c (check_new_reg_p): Ditto.
20528 * reload.c (find_equiv_reg): Ditto.
20529 * reload1.c (emit_reload_insns): Ditto.
20530 * sched-deps.c (deps_analyze_insn): Ditto.
20531 * sel-sched.c (init_regs_for_mode): Ditto.
20532 (mark_unavailable_hard_regs): Ditto.
20533 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
20534 * target.def (hard_regno_call_part_clobbered): Add insn argument.
20535 (return_call_with_max_clobbers): New target function.
20536 * doc/tm.texi: Regenerate.
20537 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
20538 * hooks.c (hook_bool_uint_mode_false): Change to
20539 hook_bool_insn_uint_mode_false.
20540 * hooks.h (hook_bool_uint_mode_false): Ditto.
20541
20542 2019-01-11 Steve Ellcey <sellcey@marvell.com>
20543
20544 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
20545 (aarch64_remove_extra_call_preserved_regs): New function.
20546 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
20547 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
20548 * doc/tm.texi: Regenerate.
20549 * final.c (get_call_reg_set_usage): Call new hook.
20550 * target.def (remove_extra_call_preserved_regs): New hook.
20551 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
20552 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
20553
20554 2019-01-11 Jakub Jelinek <jakub@redhat.com>
20555
20556 PR bootstrap/88714
20557 * passes.c (finish_optimization_passes): Call print_combine_total_stats
20558 inside of pass_combine_1 dump rather than pass_profile_1.
20559
20560 2019-01-11 Tom de Vries <tdevries@suse.de>
20561
20562 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
20563 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
20564 (PTX_NUM_PER_WORKER_BARRIERS): Define.
20565 (nvptx_apply_dim_limits): Prevent vector_length 64 and
20566 num_workers 16.
20567
20568 2019-01-11 Tom de Vries <tdevries@suse.de>
20569
20570 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
20571
20572 2019-01-11 Jan Beulich <jbeulich@suse.com>
20573
20574 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
20575 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
20576 sse2_cvtsi2sd): Add {l}.
20577 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
20578 syntax.
20579
20580 2019-01-10 Jakub Jelinek <jakub@redhat.com>
20581
20582 PR target/88785
20583 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
20584 define_expand.
20585 (*float<floatunssuffix>v2div2sf2): New define_insn.
20586 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
20587 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
20588 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
20589 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
20590 match_operands with "const0_operand" "C".
20591
20592 2019-01-10 Tamar Christina <tamar.christina@arm.com>
20593
20594 * config/aarch64/aarch64-builtins.c
20595 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
20596 (aarch64_init_simd_builtins): ...Here
20597
20598 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
20599
20600 PR rtl-optimization/87305
20601 * lra-assigns.c
20602 (setup_live_pseudos_and_spill_after_risky_transforms): Check
20603 allocation for big endian pseudos used as paradoxical subregs and
20604 spill them if it is wrong.
20605 * lra-constraints.c (lra_constraints): Add a comment.
20606
20607 2019-01-10 Richard Biener <rguenther@suse.de>
20608
20609 PR tree-optimization/88792
20610 * tree-ssa-pre.c (get_representative_for): Do not return a
20611 value-number here.
20612
20613 2019-01-10 Jakub Jelinek <jakub@redhat.com>
20614
20615 PR middle-end/84877
20616 PR bootstrap/88450
20617 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
20618 (assign_parm_setup_block): Do the argument slot realignment here
20619 instead.
20620
20621 2019-01-10 Stefan Agner <stefan@agner.ch>
20622
20623 PR target/88648
20624 * config/arm/arm.c (arm_option_override_internal): Force
20625 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
20626
20627 2019-01-10 Jakub Jelinek <jakub@redhat.com>
20628
20629 PR c/88568
20630 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
20631 DECL_EXTERNAL.
20632
20633 2019-01-10 Tamar Christina <tamar.christina@arm.com>
20634
20635 * config/arm/arm-builtins.c
20636 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
20637 (MAC_LANE_PAIR_QUALIFIERS): New.
20638 (arm_expand_builtin_args): Use it.
20639 (arm_expand_builtin_1): Likewise.
20640 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
20641 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
20642 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
20643 * config/arm/arm_neon.h:
20644 (vcadd_rot90_f16): New.
20645 (vcaddq_rot90_f16): New.
20646 (vcadd_rot270_f16): New.
20647 (vcaddq_rot270_f16): New.
20648 (vcmla_f16): New.
20649 (vcmlaq_f16): New.
20650 (vcmla_lane_f16): New.
20651 (vcmla_laneq_f16): New.
20652 (vcmlaq_lane_f16): New.
20653 (vcmlaq_laneq_f16): New.
20654 (vcmla_rot90_f16): New.
20655 (vcmlaq_rot90_f16): New.
20656 (vcmla_rot90_lane_f16): New.
20657 (vcmla_rot90_laneq_f16): New.
20658 (vcmlaq_rot90_lane_f16): New.
20659 (vcmlaq_rot90_laneq_f16): New.
20660 (vcmla_rot180_f16): New.
20661 (vcmlaq_rot180_f16): New.
20662 (vcmla_rot180_lane_f16): New.
20663 (vcmla_rot180_laneq_f16): New.
20664 (vcmlaq_rot180_lane_f16): New.
20665 (vcmlaq_rot180_laneq_f16): New.
20666 (vcmla_rot270_f16): New.
20667 (vcmlaq_rot270_f16): New.
20668 (vcmla_rot270_lane_f16): New.
20669 (vcmla_rot270_laneq_f16): New.
20670 (vcmlaq_rot270_lane_f16): New.
20671 (vcmlaq_rot270_laneq_f16): New.
20672 (vcadd_rot90_f32): New.
20673 (vcaddq_rot90_f32): New.
20674 (vcadd_rot270_f32): New.
20675 (vcaddq_rot270_f32): New.
20676 (vcmla_f32): New.
20677 (vcmlaq_f32): New.
20678 (vcmla_lane_f32): New.
20679 (vcmla_laneq_f32): New.
20680 (vcmlaq_lane_f32): New.
20681 (vcmlaq_laneq_f32): New.
20682 (vcmla_rot90_f32): New.
20683 (vcmlaq_rot90_f32): New.
20684 (vcmla_rot90_lane_f32): New.
20685 (vcmla_rot90_laneq_f32): New.
20686 (vcmlaq_rot90_lane_f32): New.
20687 (vcmlaq_rot90_laneq_f32): New.
20688 (vcmla_rot180_f32): New.
20689 (vcmlaq_rot180_f32): New.
20690 (vcmla_rot180_lane_f32): New.
20691 (vcmla_rot180_laneq_f32): New.
20692 (vcmlaq_rot180_lane_f32): New.
20693 (vcmlaq_rot180_laneq_f32): New.
20694 (vcmla_rot270_f32): New.
20695 (vcmlaq_rot270_f32): New.
20696 (vcmla_rot270_lane_f32): New.
20697 (vcmla_rot270_laneq_f32): New.
20698 (vcmlaq_rot270_lane_f32): New.
20699 (vcmlaq_rot270_laneq_f32): New.
20700 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
20701 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
20702 vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
20703 vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
20704 vcmlaq_lane270): New.
20705 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
20706 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
20707 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
20708 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
20709 (arm_option_reconfigure_globals): Use them.
20710 * config/arm/iterators.md (VDF, VQ_HSF): New.
20711 (VCADD, VCMLA): New.
20712 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
20713 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
20714 New.
20715 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
20716 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
20717
20718 2019-01-10 Tamar Christina <tamar.christina@arm.com>
20719
20720 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
20721 Add qualifier_lane_pair_index.
20722 (emit-rtl.h): Include.
20723 (TYPES_QUADOP_LANE_PAIR): New.
20724 (aarch64_simd_expand_args): Use it.
20725 (aarch64_simd_expand_builtin): Likewise.
20726 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
20727 New.
20728 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
20729 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
20730 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
20731 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
20732 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
20733 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
20734 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
20735 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
20736 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
20737 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
20738 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
20739 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
20740 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
20741 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
20742 Add __ARM_FEATURE_COMPLEX.
20743 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
20744 fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
20745 fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
20746 fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
20747 fcmlaq_lane270): New.
20748 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
20749 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
20750 aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
20751 * config/aarch64/arm_neon.h:
20752 (vcadd_rot90_f16): New.
20753 (vcaddq_rot90_f16): New.
20754 (vcadd_rot270_f16): New.
20755 (vcaddq_rot270_f16): New.
20756 (vcmla_f16): New.
20757 (vcmlaq_f16): New.
20758 (vcmla_lane_f16): New.
20759 (vcmla_laneq_f16): New.
20760 (vcmlaq_lane_f16): New.
20761 (vcmlaq_rot90_lane_f16): New.
20762 (vcmla_rot90_laneq_f16): New.
20763 (vcmla_rot90_lane_f16): New.
20764 (vcmlaq_rot90_f16): New.
20765 (vcmla_rot90_f16): New.
20766 (vcmlaq_laneq_f16): New.
20767 (vcmla_rot180_laneq_f16): New.
20768 (vcmla_rot180_lane_f16): New.
20769 (vcmlaq_rot180_f16): New.
20770 (vcmla_rot180_f16): New.
20771 (vcmlaq_rot90_laneq_f16): New.
20772 (vcmlaq_rot270_laneq_f16): New.
20773 (vcmlaq_rot270_lane_f16): New.
20774 (vcmla_rot270_laneq_f16): New.
20775 (vcmlaq_rot270_f16): New.
20776 (vcmla_rot270_f16): New.
20777 (vcmlaq_rot180_laneq_f16): New.
20778 (vcmlaq_rot180_lane_f16): New.
20779 (vcmla_rot270_lane_f16): New.
20780 (vcadd_rot90_f32): New.
20781 (vcaddq_rot90_f32): New.
20782 (vcaddq_rot90_f64): New.
20783 (vcadd_rot270_f32): New.
20784 (vcaddq_rot270_f32): New.
20785 (vcaddq_rot270_f64): New.
20786 (vcmla_f32): New.
20787 (vcmlaq_f32): New.
20788 (vcmlaq_f64): New.
20789 (vcmla_lane_f32): New.
20790 (vcmla_laneq_f32): New.
20791 (vcmlaq_lane_f32): New.
20792 (vcmlaq_laneq_f32): New.
20793 (vcmla_rot90_f32): New.
20794 (vcmlaq_rot90_f32): New.
20795 (vcmlaq_rot90_f64): New.
20796 (vcmla_rot90_lane_f32): New.
20797 (vcmla_rot90_laneq_f32): New.
20798 (vcmlaq_rot90_lane_f32): New.
20799 (vcmlaq_rot90_laneq_f32): New.
20800 (vcmla_rot180_f32): New.
20801 (vcmlaq_rot180_f32): New.
20802 (vcmlaq_rot180_f64): New.
20803 (vcmla_rot180_lane_f32): New.
20804 (vcmla_rot180_laneq_f32): New.
20805 (vcmlaq_rot180_lane_f32): New.
20806 (vcmlaq_rot180_laneq_f32): New.
20807 (vcmla_rot270_f32): New.
20808 (vcmlaq_rot270_f32): New.
20809 (vcmlaq_rot270_f64): New.
20810 (vcmla_rot270_lane_f32): New.
20811 (vcmla_rot270_laneq_f32): New.
20812 (vcmlaq_rot270_lane_f32): New.
20813 (vcmlaq_rot270_laneq_f32): New.
20814 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
20815 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
20816 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
20817 (FCADD, FCMLA): New.
20818 (rot): New.
20819 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
20820
20821 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
20822
20823 PR other/16615
20824
20825 * config/pa/pa.c: Change "can not" to "cannot".
20826 * gimple-ssa-evrp-analyze.c: Likewise.
20827 * ipa-icf.c: Likewise.
20828 * ipa-polymorphic-call.c: Likewise.
20829 * ipa-pure-const.c: Likewise.
20830 * lra-constraints.c: Likewise.
20831 * lra-remat.c: Likewise.
20832 * reload1.c: Likewise.
20833 * reorg.c: Likewise.
20834 * tree-ssa-uninit.c: Likewise.
20835
20836 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
20837
20838 PR other/16615
20839
20840 * Makefile.in: Mechanically replace "can not" with "cannot".
20841 * alias.c: Likewise.
20842 * builtins.c: Likewise.
20843 * calls.c: Likewise.
20844 * cgraph.c: Likewise.
20845 * cgraph.h: Likewise.
20846 * cgraphclones.c: Likewise.
20847 * cgraphunit.c: Likewise.
20848 * combine-stack-adj.c: Likewise.
20849 * combine.c: Likewise.
20850 * common/config/i386/i386-common.c: Likewise.
20851 * config/aarch64/aarch64.c: Likewise.
20852 * config/alpha/sync.md: Likewise.
20853 * config/arc/arc.c: Likewise.
20854 * config/arc/predicates.md: Likewise.
20855 * config/arm/arm-c.c: Likewise.
20856 * config/arm/arm.c: Likewise.
20857 * config/arm/arm.h: Likewise.
20858 * config/arm/arm.md: Likewise.
20859 * config/arm/cortex-r4f.md: Likewise.
20860 * config/csky/csky.c: Likewise.
20861 * config/csky/csky.h: Likewise.
20862 * config/darwin-f.c: Likewise.
20863 * config/epiphany/epiphany.md: Likewise.
20864 * config/i386/i386.c: Likewise.
20865 * config/i386/sol2.h: Likewise.
20866 * config/m68k/m68k.c: Likewise.
20867 * config/mcore/mcore.h: Likewise.
20868 * config/microblaze/microblaze.md: Likewise.
20869 * config/mips/20kc.md: Likewise.
20870 * config/mips/sb1.md: Likewise.
20871 * config/nds32/nds32.c: Likewise.
20872 * config/nds32/predicates.md: Likewise.
20873 * config/pa/pa.c: Likewise.
20874 * config/rs6000/e300c2c3.md: Likewise.
20875 * config/rs6000/rs6000.c: Likewise.
20876 * config/s390/s390.h: Likewise.
20877 * config/sh/sh.c: Likewise.
20878 * config/sh/sh.md: Likewise.
20879 * config/spu/vmx2spu.h: Likewise.
20880 * cprop.c: Likewise.
20881 * dbxout.c: Likewise.
20882 * df-scan.c: Likewise.
20883 * doc/cfg.texi: Likewise.
20884 * doc/extend.texi: Likewise.
20885 * doc/fragments.texi: Likewise.
20886 * doc/gty.texi: Likewise.
20887 * doc/invoke.texi: Likewise.
20888 * doc/lto.texi: Likewise.
20889 * doc/md.texi: Likewise.
20890 * doc/objc.texi: Likewise.
20891 * doc/rtl.texi: Likewise.
20892 * doc/tm.texi: Likewise.
20893 * dse.c: Likewise.
20894 * emit-rtl.c: Likewise.
20895 * emit-rtl.h: Likewise.
20896 * except.c: Likewise.
20897 * expmed.c: Likewise.
20898 * expr.c: Likewise.
20899 * fold-const.c: Likewise.
20900 * genautomata.c: Likewise.
20901 * gimple-fold.c: Likewise.
20902 * hard-reg-set.h: Likewise.
20903 * ifcvt.c: Likewise.
20904 * ipa-comdats.c: Likewise.
20905 * ipa-cp.c: Likewise.
20906 * ipa-devirt.c: Likewise.
20907 * ipa-fnsummary.c: Likewise.
20908 * ipa-icf.c: Likewise.
20909 * ipa-inline-transform.c: Likewise.
20910 * ipa-inline.c: Likewise.
20911 * ipa-polymorphic-call.c: Likewise.
20912 * ipa-profile.c: Likewise.
20913 * ipa-prop.c: Likewise.
20914 * ipa-pure-const.c: Likewise.
20915 * ipa-reference.c: Likewise.
20916 * ipa-split.c: Likewise.
20917 * ipa-visibility.c: Likewise.
20918 * ipa.c: Likewise.
20919 * ira-build.c: Likewise.
20920 * ira-color.c: Likewise.
20921 * ira-conflicts.c: Likewise.
20922 * ira-costs.c: Likewise.
20923 * ira-int.h: Likewise.
20924 * ira-lives.c: Likewise.
20925 * ira.c: Likewise.
20926 * ira.h: Likewise.
20927 * loop-invariant.c: Likewise.
20928 * loop-unroll.c: Likewise.
20929 * lower-subreg.c: Likewise.
20930 * lra-assigns.c: Likewise.
20931 * lra-constraints.c: Likewise.
20932 * lra-eliminations.c: Likewise.
20933 * lra-lives.c: Likewise.
20934 * lra-remat.c: Likewise.
20935 * lra-spills.c: Likewise.
20936 * lra.c: Likewise.
20937 * lto-cgraph.c: Likewise.
20938 * lto-streamer-out.c: Likewise.
20939 * postreload-gcse.c: Likewise.
20940 * predict.c: Likewise.
20941 * profile-count.h: Likewise.
20942 * profile.c: Likewise.
20943 * recog.c: Likewise.
20944 * ree.c: Likewise.
20945 * reload.c: Likewise.
20946 * reload1.c: Likewise.
20947 * reorg.c: Likewise.
20948 * resource.c: Likewise.
20949 * rtl.def: Likewise.
20950 * rtl.h: Likewise.
20951 * rtlanal.c: Likewise.
20952 * sched-deps.c: Likewise.
20953 * sched-ebb.c: Likewise.
20954 * sched-rgn.c: Likewise.
20955 * sel-sched-ir.c: Likewise.
20956 * sel-sched.c: Likewise.
20957 * shrink-wrap.c: Likewise.
20958 * simplify-rtx.c: Likewise.
20959 * symtab.c: Likewise.
20960 * target.def: Likewise.
20961 * toplev.c: Likewise.
20962 * tree-call-cdce.c: Likewise.
20963 * tree-cfg.c: Likewise.
20964 * tree-complex.c: Likewise.
20965 * tree-core.h: Likewise.
20966 * tree-eh.c: Likewise.
20967 * tree-inline.c: Likewise.
20968 * tree-loop-distribution.c: Likewise.
20969 * tree-nrv.c: Likewise.
20970 * tree-profile.c: Likewise.
20971 * tree-sra.c: Likewise.
20972 * tree-ssa-alias.c: Likewise.
20973 * tree-ssa-dce.c: Likewise.
20974 * tree-ssa-dom.c: Likewise.
20975 * tree-ssa-forwprop.c: Likewise.
20976 * tree-ssa-loop-im.c: Likewise.
20977 * tree-ssa-loop-ivcanon.c: Likewise.
20978 * tree-ssa-loop-ivopts.c: Likewise.
20979 * tree-ssa-loop-niter.c: Likewise.
20980 * tree-ssa-phionlycprop.c: Likewise.
20981 * tree-ssa-phiopt.c: Likewise.
20982 * tree-ssa-propagate.c: Likewise.
20983 * tree-ssa-threadedge.c: Likewise.
20984 * tree-ssa-threadupdate.c: Likewise.
20985 * tree-ssa-uninit.c: Likewise.
20986 * tree-ssanames.c: Likewise.
20987 * tree-streamer-out.c: Likewise.
20988 * tree.c: Likewise.
20989 * tree.h: Likewise.
20990 * vr-values.c: Likewise.
20991
20992 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
20993
20994 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
20995 (ix86_split_xorsign): Ditto.
20996 * config/i386/i386.c (ix86_expand_xorsign): New function.
20997 (ix86_split_xorsign): Ditto.
20998 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
20999 (xorsign<mode>3): New expander.
21000 (xorsign<mode>3_1): New insn_and_split pattern.
21001 * config/i386/sse.md (xorsign<mode>3): New expander.
21002
21003 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
21004
21005 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
21006 (*tablejump_sp64): Likewise.
21007 (*tablejump<P:mode>): ...this.
21008 (*call_address_sp32): Merge into...
21009 (*call_address_sp64): Likewise.
21010 (*call_address<P:mode>): ...this.
21011 (*call_symbolic_sp32): Merge into...
21012 (*call_symbolic_sp64): Likewise.
21013 (*call_symbolic<P:mode>): ...this.
21014 (call_value): Remove constraint and add predicate.
21015 (*call_value_address_sp32): Merge into...
21016 (*call_value_address_sp64): Likewise.
21017 (*call_value_address<P:mode>): ...this.
21018 (*call_value_symbolic_sp32): Merge into...
21019 (*call_value_symbolic_sp64): Likewise.
21020 (*call_value_symbolic<P:mode>): ...this.
21021 (*sibcall_symbolic_sp32): Merge into...
21022 (*sibcall_symbolic_sp64): Likewise.
21023 (*sibcall_symbolic<P:mode>): ...this.
21024 (sibcall_value): Remove constraint and add predicate.
21025 (*sibcall_value_symbolic_sp32): Merge into...
21026 (*sibcall_value_symbolic_sp64): Likewise.
21027 (*sibcall_value_symbolic<P:mode>): ...this.
21028 (window_save): Minor tweak.
21029 (*branch_sp32): Merge into...
21030 (*branch_sp64): Likewise.
21031 (*branch<P:mode>): ...this.
21032
21033 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
21034 James Clarke <jrtc27@jrtc27.com>
21035
21036 PR target/84010
21037 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
21038 consistently in TLS address generation and adjust code to the renaming
21039 of patterns. Mark calls to __tls_get_addr as const.
21040 * config/sparc/sparc.md (tgd_hi22): Turn into...
21041 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
21042 (tgd_lo10): Turn into...
21043 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
21044 (tgd_add32): Merge into...
21045 (tgd_add64): Likewise.
21046 (tgd_add<P:mode>): ...this and use Pmode throughout.
21047 (tldm_hi22): Turn into...
21048 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
21049 (tldm_lo10): Turn into...
21050 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
21051 (tldm_add32): Merge into...
21052 (tldm_add64): Likewise.
21053 (tldm_add<P:mode>): ...this and use Pmode throughout.
21054 (tldm_call32): Merge into...
21055 (tldm_call64): Likewise.
21056 (tldm_call<P:mode>): ...this and use Pmode throughout.
21057 (tldo_hix22): Turn into...
21058 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
21059 (tldo_lox10): Turn into...
21060 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
21061 (tldo_add32): Merge into...
21062 (tldo_add64): Likewise.
21063 (tldo_add<P:mode>): ...this and use Pmode throughout.
21064 (tie_hi22): Turn into...
21065 (tie_hi22<P:mode>): ...this and use Pmode throughout.
21066 (tie_lo10): Turn into...
21067 (tie_lo10<P:mode>): ...this and use Pmode throughout.
21068 (tie_ld64): Use DImode throughout.
21069 (tie_add32): Merge into...
21070 (tie_add64): Likewise.
21071 (tie_add<P:mode>): ...this and use Pmode throughout.
21072 (tle_hix22_sp32): Merge into...
21073 (tle_hix22_sp64): Likewise.
21074 (tle_hix22<P:mode>): ...this and use Pmode throughout.
21075 (tle_lox22_sp32): Merge into...
21076 (tle_lox22_sp64): Likewise.
21077 (tle_lox22<P:mode>): ...this and use Pmode throughout.
21078 (*tldo_ldub_sp32): Merge into...
21079 (*tldo_ldub_sp64): Likewise.
21080 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
21081 (*tldo_ldub1_sp32): Merge into...
21082 (*tldo_ldub1_sp64): Likewise.
21083 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
21084 (*tldo_ldub2_sp32): Merge into...
21085 (*tldo_ldub2_sp64): Likewise.
21086 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
21087 (*tldo_ldsb1_sp32): Merge into...
21088 (*tldo_ldsb1_sp64): Likewise.
21089 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
21090 (*tldo_ldsb2_sp32): Merge into...
21091 (*tldo_ldsb2_sp64): Likewise.
21092 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
21093 (*tldo_ldub3_sp64): Use DImode throughout.
21094 (*tldo_ldsb3_sp64): Likewise.
21095 (*tldo_lduh_sp32): Merge into...
21096 (*tldo_lduh_sp64): Likewise.
21097 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
21098 (*tldo_lduh1_sp32): Merge into...
21099 (*tldo_lduh1_sp64): Likewise.
21100 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
21101 (*tldo_ldsh1_sp32): Merge into...
21102 (*tldo_ldsh1_sp64): Likewise.
21103 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
21104 (*tldo_lduh2_sp64): Use DImode throughout.
21105 (*tldo_ldsh2_sp64): Likewise.
21106 (*tldo_lduw_sp32): Merge into...
21107 (*tldo_lduw_sp64): Likewise.
21108 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
21109 (*tldo_lduw1_sp64): Use DImode throughout.
21110 (*tldo_ldsw1_sp64): Likewise.
21111 (*tldo_ldx_sp64): Likewise.
21112 (*tldo_stb_sp32): Merge into...
21113 (*tldo_stb_sp64): Likewise.
21114 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
21115 (*tldo_sth_sp32): Merge into...
21116 (*tldo_sth_sp64): Likewise.
21117 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
21118 (*tldo_stw_sp32): Merge into...
21119 (*tldo_stw_sp64): Likewise.
21120 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
21121 (*tldo_stx_sp64): Use DImode throughout.
21122
21123 2018-01-09 Sudakshina Das <sudi.das@arm.com>
21124
21125 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
21126 check configure option to set BTI and Return Address Signing.
21127 * configure.ac: Add --enable-standard-branch-protection and
21128 --disable-standard-branch-protection.
21129 * configure: Regenerated.
21130 * doc/install.texi: Document the same.
21131
21132 2018-01-09 Sudakshina Das <sudi.das@arm.com>
21133 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21134
21135 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
21136 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
21137 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
21138 if bti is enabled.
21139 * config/aarch64/aarch64-bti-insert.c: New file.
21140 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
21141 pass.
21142 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
21143 new bti pass.
21144 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
21145 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
21146 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
21147 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
21148
21149 2018-01-09 Sudakshina Das <sudi.das@arm.com>
21150
21151 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
21152 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
21153 Disable bti for -mbranch-protection=none.
21154 (aarch64_handle_standard_branch_protection): Enable bti for
21155 -mbranch-protection=standard.
21156 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
21157 -mbranch-protection.
21158 (aarch64_bti_enabled): Check if bti is enabled.
21159 * config/aarch64/aarch64.opt: Declare target variable.
21160 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
21161
21162 2018-01-09 Sudakshina Das <sudi.das@arm.com>
21163
21164 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
21165 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
21166 (aarch64_expand_epilogue): Likewise.
21167 (aarch64_output_mi_thunk): Likewise.
21168 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
21169 TAILCALL_ADDR_REGS to x16 and x17.
21170 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
21171
21172 2018-01-09 Sudakshina Das <sudi.das@arm.com>
21173
21174 * config/aarch64/aarch64-option-extensions.def: Define
21175 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
21176 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
21177 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
21178 (AARCH64_FL_PREDRES): New.
21179 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
21180 AARCH64_FL_PREDRES by default.
21181 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
21182
21183 2018-01-09 Sudakshina Das <sudi.das@arm.com>
21184
21185 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
21186 ARMv8.5-A.
21187 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
21188 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
21189 * doc/invoke.texi: Document ARMv8.5-A.
21190
21191 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
21192
21193 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
21194 (xorsign<mode>3): Likewise.
21195
21196 2019-01-09 Jelinek <jakub@redhat.com>
21197
21198 PR middle-end/88758
21199 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
21200 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
21201
21202 PR rtl-optimization/88331
21203 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
21204 not currently_expanding_to_rtl.
21205
21206 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
21207
21208 * doc/invoke.texi (-Os): Remove trailing spaces.
21209 (-finline-functions): Remove reference to -O2.
21210
21211 2019-01-08 Jakub Jelinek <jakub@redhat.com>
21212
21213 PR rtl-optimization/79593
21214 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
21215
21216 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
21217 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
21218
21219 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
21220
21221 PR bootstrap/88721
21222 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
21223 to -1 on entry.
21224
21225 PR debug/88723
21226 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
21227 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
21228
21229 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
21230
21231 PR target/88717
21232 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
21233 ix86_avx_u128_mode_entry.
21234
21235 2019-01-08 Martin Liska <mliska@suse.cz>
21236
21237 PR tree-optimization/88753
21238 * tree-switch-conversion.c (switch_conversion::build_one_array):
21239 Come up with local variable constructor. Convert first to
21240 type of constructor values.
21241
21242 2019-01-08 Richard Biener <rguenther@suse.de>
21243
21244 PR tree-optimization/86554
21245 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
21246 rpo_avail): Move earlier.
21247 (visit_nary_op): When value-numbering to expressions
21248 with different overflow behavior make sure there's an
21249 available expression on the path.
21250
21251 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
21252
21253 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
21254 aarch64_parse_branch_protection,
21255 struct aarch64_branch_protect_type,
21256 aarch64_handle_no_branch_protection,
21257 aarch64_handle_standard_branch_protection,
21258 aarch64_validate_mbranch_protection,
21259 aarch64_handle_pac_ret_protection,
21260 aarch64_handle_attr_branch_protection,
21261 accepted_branch_protection_string,
21262 aarch64_pac_ret_subtypes,
21263 aarch64_branch_protect_types,
21264 aarch64_handle_pac_ret_leaf): Define.
21265 (aarch64_override_options_after_change_1, aarch64_override_options):
21266 Add check for accepted_branch_protection_string.
21267 (aarch64_option_save): Save accepted_branch_protection_string.
21268 (aarch64_option_restore): Save accepted_branch_protection_string.
21269 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
21270 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
21271 msign-return-address.
21272 * doc/invoke.texi: Add mbranch-protection.
21273
21274 2019-01-08 Alan Modra <amodra@gmail.com>
21275
21276 PR target/88614
21277 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
21278 Delete "unknownp" parameter. Adjust callers. Handle
21279 CONST_INT, PLUS, MINUS, and MULT.
21280 (attr_value_aligned): Renamed from or_attr_value.
21281 (min_attr_value): Return INT_MIN for unhandled rtl case..
21282 (min_fn): ..and translate to INT_MAX here.
21283 (write_length_unit_log): Modify to cope without "unknown".
21284 (write_attr_value): Handle IF_THEN_ELSE.
21285
21286 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
21287
21288 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
21289 optimization for masked stores.
21290
21291 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
21292
21293 PR middle-end/88567
21294 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
21295 output vector directly to duplicate_and_interleave instead of
21296 going through a temporary. Postpone insertion of ctor_seq to
21297 the end of the loop.
21298
21299 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
21300
21301 PR target/86891
21302 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
21303 unsigned_p. Handle signed and unsigned overflow correction as
21304 required.
21305 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
21306 prototype.
21307 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
21308 for operand 2.
21309 (add<mode>3_compareV_imm): Make this callable for expanding.
21310 (subv<GPI:mode>4): Use register_operand for operand 1. Use
21311 aarch64_plus_operand for operand 2.
21312 (subv<GPI:mode>_insn): New insn pattern.
21313 (subv<GPI:mode>_imm): Likewise.
21314 (negv<GPI:mode>3): New expand pattern.
21315 (negv<GPI:mode>_insn): New insn pattern.
21316 (negv<GPI:mode>_cmp_only): Likewise.
21317 (cmpv<GPI:mode>_insn): Likewise.
21318 (subvti4): Use register_operand for operand 1. Update call to
21319 aarch64_expand_subvti.
21320 (usubvti4): Likewise.
21321 (negvti3): New expand pattern.
21322 (negdi_carryout): New insn pattern.
21323 (negvdi_carryinV): New insn pattern.
21324 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
21325 version the named version.
21326 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
21327 operands.
21328 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
21329 patterns.
21330 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
21331 patterns.
21332 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
21333 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
21334 (sub<mode>3_carryinCV): Delete.
21335 (sub<GPI:mode>3_carryinV): New expand pattern.
21336 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
21337
21338 2019-01-07 Richard Biener <rguenther@suse.de>
21339
21340 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
21341 of tree_operand_hash.
21342
21343 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
21344
21345 PR tree-optimization/88598
21346 * tree.h (single_nonzero_element): Declare.
21347 * tree.c (single_nonzero_element): New function.
21348 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
21349 if I is the only nonzero element of CST.
21350
21351 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
21352
21353 PR tree-optimization/88598
21354 * tree.h (initializer_each_zero_or_onep): Declare.
21355 * tree.c (initializer_each_zero_or_onep): New function.
21356 (signed_or_unsigned_type_for): Handle float types too.
21357 (unsigned_type_for, signed_type_for): Update comments accordingly.
21358 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
21359 x & { 0 or -1, 0 or -1, ... }.
21360
21361 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
21362
21363 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
21364 with x86_64-pc-linux-gnu.
21365
21366 2019-01-07 Tom de Vries <tdevries@suse.de>
21367
21368 PR target/85486
21369 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
21370 function.
21371 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
21372 routines.
21373
21374 2019-01-07 Jakub Jelinek <jakub@redhat.com>
21375
21376 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
21377 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
21378 TARGET_AVX512F as condition.
21379
21380 PR debug/88723
21381 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
21382 const_not_ok_for_debug_p target hook.
21383 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
21384 on UNSPEC and subexpressions thereof if all subexpressions of the
21385 UNSPEC are CONSTANT_P.
21386
21387 PR tree-optimization/88676
21388 * tree-ssa-phiopt.c (two_value_replacement): New function.
21389 (tree_ssa_phiopt_worker): Call it.
21390
21391 PR sanitizer/88619
21392 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
21393 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
21394
21395 PR c++/85052
21396 * tree-vect-generic.c: Include insn-config.h and recog.h.
21397 (expand_vector_piecewise): Add defaulted ret_type argument,
21398 if non-NULL, use that in preference to type for the result type.
21399 (expand_vector_parallel): Formatting fix.
21400 (do_vec_conversion, do_vec_narrowing_conversion,
21401 expand_vector_conversion): New functions.
21402 (expand_vector_operations_1): Call expand_vector_conversion
21403 for VEC_CONVERT ifn calls.
21404 * internal-fn.def (VEC_CONVERT): New internal function.
21405 * internal-fn.c (expand_VEC_CONVERT): New function.
21406 * fold-const-call.c (fold_const_vec_convert): New function.
21407 (fold_const_call): Use it for CFN_VEC_CONVERT.
21408 * doc/extend.texi (__builtin_convertvector): Document.
21409
21410 2019-01-07 Tom de Vries <tdevries@suse.de>
21411
21412 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
21413 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
21414 vector_red_partition, vector_red_sym): New global variables.
21415 (nvptx_option_override): Initialize vector_red_sym.
21416 (nvptx_declare_function_name): Restore red_partition register.
21417 (nvptx_file_end): Emit code to declare the vector reduction variables.
21418 (nvptx_output_red_partition): New function.
21419 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
21420 large vector reductions.
21421 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
21422 (nvptx_init_builtins): Add VECTOR_ADDR.
21423 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
21424 Handle nvptx_expand_shared_addr.
21425 (nvptx_get_shared_red_addr): Add vector argument and handle large
21426 vectors.
21427 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
21428 large vectors.
21429 (nvptx_goacc_reduction_init): Likewise.
21430 (nvptx_goacc_reduction_fini): Likewise.
21431 (nvptx_goacc_reduction_teardown): Likewise.
21432 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
21433 init,fini,teardown}.
21434 (nvptx_init_axis_predicate): Initialize vector_red_partition.
21435 (nvptx_set_current_function): Init vector_red_partition.
21436 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
21437 (nvptx_red_partition): New insn.
21438 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
21439
21440 2019-01-07 Tom de Vries <tdevries@suse.de>
21441
21442 PR target/85381
21443 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
21444 empty loops.
21445
21446 2019-01-07 Tom de Vries <tdevries@suse.de>
21447
21448 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
21449 (nvptx_option_override): Init oacc_bcast_partition.
21450 (nvptx_init_oacc_workers): New function.
21451 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
21452 (nvptx_needs_shared_bcast): New function.
21453 (nvptx_find_par): Generalize to enable vectors to use shared-memory
21454 to propagate state.
21455 (nvptx_shared_propagate): Initialize vector bcast partition and
21456 synchronization state.
21457 (nvptx_single): Generalize to enable vectors to use shared-memory
21458 to propagate state.
21459 (nvptx_process_pars): Likewise.
21460 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
21461 * config/nvptx/nvptx.h (struct machine_function): Add
21462 bcast_partition and sync_bar members.
21463
21464 2019-01-07 Tom de Vries <tdevries@suse.de>
21465
21466 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
21467 (nvptx_apply_dim_limits): New function.
21468 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
21469 PTX_WARP_SIZE.
21470
21471 2019-01-07 Tom de Vries <tdevries@suse.de>
21472
21473 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
21474 as late as possible.
21475
21476 2019-01-07 Tom de Vries <tdevries@suse.de>
21477
21478 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
21479 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
21480 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
21481 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
21482 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
21483
21484 2019-01-07 Tom de Vries <tdevries@suse.de>
21485
21486 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
21487
21488 2019-01-07 Tom de Vries <tdevries@suse.de>
21489
21490 * omp-offload.c (oacc_get_min_dim): New function.
21491 * omp-offload.h (oacc_get_min_dim): Declare.
21492
21493 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
21494
21495 PR target/88521
21496 * config/i386/i386.c (function_value_ms_64): Return small sturct in
21497 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
21498
21499 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
21500
21501 PR tree-opt/86020
21502 Revert:
21503 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
21504
21505 * ipa-inline.c (edge_badness): Use inlined_time instead of
21506 inline_summaries->get.
21507
21508 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
21509
21510 * opts.c (enable_fdo_optimizations): Enable
21511 version-loops-for-strides, loop-interchange, unrol-and-jam
21512 and tree-loop-distribution.
21513 * invoke.texi: Document newly enabled options.
21514
21515 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
21516
21517 * doc/invoke.texi (max-inline-insns-small): New parameters.
21518 * ipa-inline.c (want_early_inline_function_p): simplify.
21519 (want_inline_small_function_p): Fix pasto from previous patch;
21520 use max-inline-insns-small bound.
21521 * params.def (max-inline-insns-small): New param.
21522 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
21523 variables correctly.
21524
21525 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
21526
21527 * doc/invoke.texi: Document max-inline-insns-size,
21528 uninlined-function-insns, uninlined-function-time,
21529 uninlined-thunk-insns and uninlined-thunk-time.
21530 * params.def: Add max-inline-insns-size,
21531 uninlined-function-insns, uninlined-function-time,
21532 uninlined-thunk-insns and uninlined-thunk-time.
21533 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
21534 new parameters.
21535 * ipa-inline.c (can_inline_edge_by_limits_p,
21536 want_inline_small_function_p): Use new parameters.
21537
21538 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
21539
21540 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
21541
21542 2019-01-05 Jakub Jelinek <jakub@redhat.com>
21543
21544 PR middle-end/82564
21545 PR target/88620
21546 * expr.c (expand_assignment): For calls returning VLA structures
21547 if to_rtx is not a MEM, force it into a stack temporary.
21548
21549 PR debug/88635
21550 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
21551 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
21552 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
21553 subexpressions of both operands.
21554 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
21555 subrtxes are CONSTANT_P.
21556 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
21557 2018-11-09 changes.
21558
21559 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
21560
21561 * params.def (hot-bb-count-ws-permille): Set to 990.
21562
21563 2019-01-04 Martin Sebor <msebor@redhat.com>
21564
21565 PR c/88546
21566 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
21567 leaf.
21568
21569 2019-01-04 Martin Sebor <msebor@redhat.com>
21570
21571 PR c/88363
21572 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
21573
21574 2019-01-04 Jakub Jelinek <jakub@redhat.com>
21575
21576 * gdbinit.in: Turn off pagination for the skip commands, restore
21577 it to previous state afterwards.
21578
21579 2019-01-04 Jakub Jelinek <jakub@redhat.com>
21580
21581 PR target/88594
21582 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
21583 of GET_MODE (opN) as modes of the libcall arguments.
21584
21585 2019-01-04 Jan Beulich <jbeulich@suse.com>
21586
21587 * config/i386/sse.md
21588 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
21589 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
21590 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
21591 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
21592 avx512f_vmcmp<mode>3<round_saeonly_name>,
21593 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
21594 avx512f_maskcmp<mode>3,
21595 <avx512>_cvt<ssemodesuffix>2mask<mode>,
21596 <avx512>_cvt<ssemodesuffix>2mask<mode>,
21597 *<avx512>_cvtmask2<ssemodesuffix><mode>,
21598 *<avx512>_cvtmask2<ssemodesuffix><mode>,
21599 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
21600 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
21601 <avx512>_gt<mode>3<mask_scalar_merge_name>,
21602 <avx512>_gt<mode>3<mask_scalar_merge_name>,
21603 <avx512>_testm<mode>3<mask_scalar_merge_name>,
21604 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
21605 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
21606 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
21607 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
21608 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
21609 avx512cd_maskb_vec_dup<mode>,
21610 avx512cd_maskw_vec_dup<mode>,
21611 avx512dq_fpclass<mode><mask_scalar_merge_name>,
21612 avx512dq_vmfpclass<mode>,
21613 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
21614 instead of =Yk.
21615
21616 2019-01-03 Martin Sebor <msebor@redhat.com>
21617
21618 PR tree-optimization/88659
21619 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
21620
21621 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
21622
21623 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
21624 unaligned vsx and avoid lxvd2x/stxvd2x.
21625 (gen_lvx_v4si_move): New function.
21626
21627 2019-01-03 Tom de Vries <tdevries@suse.de>
21628
21629 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
21630 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
21631 function.
21632 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
21633
21634 2019-01-03 Tom de Vries <tdevries@suse.de>
21635
21636 * config/nvptx/nvptx.c (struct offload_attrs): New.
21637 (populate_offload_attrs): New function. Factor mask extraction out of
21638 nvptx_reorg. Add extraction of dimensions.
21639 (nvptx_reorg): Use populate_offload_attrs.
21640
21641 2019-01-03 Tom de Vries <tdevries@suse.de>
21642
21643 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
21644 cases for oacc_min_dims_p and routine_p. Add asserts for
21645 oacc_default_dims_p and offload_region_p.
21646
21647 2019-01-03 Tom de Vries <tdevries@suse.de>
21648
21649 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
21650 factored out of ...
21651 (nvptx_goacc_validate_dims): ... here.
21652
21653 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
21654
21655 PR tree-optimization/85574
21656 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
21657 structure.
21658 (struct ssa_equip_hash_traits): Declare.
21659 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
21660
21661 2019-01-03 Jakub Jelinek <jakub@redhat.com>
21662
21663 PR debug/88644
21664 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
21665 change it to qualified_type.
21666
21667 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
21668
21669 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
21670 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
21671
21672 2019-01-02 Martin Sebor <msebor@redhat.com>
21673 Jeff Law <law@redhat.com>
21674
21675 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
21676 (get_range_strlen_tree): Update appropriately.
21677 (get_range_strlen)
21678 * gimple-fold.h (get_range_strlen): Drop unused last argument.
21679
21680 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
21681 rather than set_range_info.
21682 * tree-ssa-strlen.c (set_strlen_range): Extracted from
21683 maybe_set_strlen_range. Handle potentially boundary crossing
21684 cases more conservatively.
21685 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
21686 Call set_strlen_range.
21687 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
21688
21689 PR middle-end/88663
21690 * gimple-fold.c (get_range_strlen): Update prototype to no longer
21691 need the flexp argument.
21692 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
21693 from calls to get_range_strlen. Update comments. Just update
21694 VAL for an unterminated const char array and let the reset of the
21695 code handle it normally. No longer try to set *flexp. Adjust
21696 return value.
21697 (get_range_strlen): Update for the new get_range_strlen API.
21698 (get_maxval_strlen): Similarly.
21699 (gimple_fold_builtin_strlen): Handle update meaning of return value
21700 from get_range_strlen.
21701 * gimple-ssa-sprintf.c (get_string_length): Update for the new
21702 get_range_strlen API.
21703
21704 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
21705
21706 PR lto/88130
21707 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
21708 false at WPA time when body was removed.
21709
21710 2019-01-02 Martin Liska <mliska@suse.cz>
21711
21712 PR tree-optimization/88650
21713 * predict.c (set_even_probabilities): Calculate probability
21714 remainer only when really used.
21715
21716 2019-01-02 Richard Biener <rguenther@suse.de>
21717
21718 PR middle-end/88651
21719 * tree-data-ref.c (analyze_subscript_affine_affine): Use
21720 widest_ints when mangling max_stmt_execution results.
21721
21722 2019-01-02 Richard Biener <rguenther@suse.de>
21723
21724 PR tree-optimization/88621
21725 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
21726 bitfields when canoncalizing.
21727
21728 2019-01-02 Richard Biener <rguenther@suse.de>
21729
21730 PR target/87545
21731 * config/i386/x86-tune-costs.h (intel_cost): Adjust
21732 cost of cheap SSE instruction.
21733
21734 2019-01-02 Richard Biener <rguenther@suse.de>
21735
21736 PR ipa/85574
21737 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
21738 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
21739 function.
21740 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
21741 set after UIDs before splitting them.
21742
21743 2019-01-01 Martin Sebor <msebor@redhat.com>
21744 Jeff Law <law@redhat.com>
21745
21746 * gimple-fold.c (get_range_strlen_tree): Record if the computed
21747 length is optimistic. If it is, then arrange to compute the
21748 conservative length as well.
21749
21750 * gimple-fold.h (get_range_strlen): Update prototype.
21751 * builtins.c (check_access): Update call to get_range_strlen to use
21752 c_strlen_data pointer. Change various variable accesses to instead
21753 pull data from the c_strlen_data structure.
21754 (check_strncat_sizes, expand_builtin_strncat): Likewise.
21755 * calls.c (maybe_warn_nonstring_arg): Likewise.
21756 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
21757 minimum length if maximum lengh is unknown.
21758 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
21759 that used c_strlen, it's no longer needed. Restructure slightly.
21760 (format_string): Set unlikely range appropriately.
21761 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
21762 formatting issues.
21763 (get_range_strlen): Accept c_strlen_data pointer for external
21764 call sites as well. Pass through to call to internal get_range_strlen.
21765 Adjust minlen, maxlen and maxbound as needed.
21766 (get_maxval_strlen): Update comments.
21767 (gimple_fold_builtin_strlen): Update call to get_range_strlen
21768 to use c_strlen_data pointer. Change variable accesses to instead
21769 use c_strlen_data data members.
21770
21771 * gimple-fold.c (get_range_strlen): Update prototype.
21772 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
21773 local variables. Use pdata to return information to caller.
21774 Update calls to get_range_strlen. Update pdata->maxbound.
21775 (get_range_strlen -- static version): Similarly.
21776 (get_range_strlen -- extern version): Update for internal
21777 get_range_strlen API change. Convert to external data format.
21778 (get_maxval_strlen): Similarly.
21779
21780 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
21781
21782 * coverage.c (get_coverage_counts): Use current_function_decl.
21783 * profile.c (read_thunk_profile): New function.
21784 (branch_prob): Add THUNK parameter.
21785 * tree-profile.c (tree_profiling): Handle thunks.
21786 * value-prof.c (init_node_map): Handle thunks.
21787 * value-prof.h (branch_prob): Upate prototype.
21788 (read_thunk_profile): Declare.
21789
21790 2019-01-01 Jakub Jelinek <jakub@redhat.com>
21791
21792 Update copyright years.
21793
21794 * gcc.c (process_command): Update copyright notice dates.
21795 * gcov-dump.c (print_version): Ditto.
21796 * gcov.c (print_version): Ditto.
21797 * gcov-tool.c (print_version): Ditto.
21798 * gengtype.c (create_file): Ditto.
21799 * doc/cpp.texi: Bump @copying's copyright year.
21800 * doc/cppinternals.texi: Ditto.
21801 * doc/gcc.texi: Ditto.
21802 * doc/gccint.texi: Ditto.
21803 * doc/gcov.texi: Ditto.
21804 * doc/install.texi: Ditto.
21805 * doc/invoke.texi: Ditto.
21806 \f
21807 Copyright (C) 2019 Free Software Foundation, Inc.
21808
21809 Copying and distribution of this file, with or without modification,
21810 are permitted in any medium without royalty provided the copyright
21811 notice and this notice are preserved.