1 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
3 * hard-reg-set.h (COPY_HARD_REG_SET): Delete.
4 * caller-save.c (save_call_clobbered_regs): Use assignment instead
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.
54 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
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
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 *
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
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
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
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
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
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
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
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.
138 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
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
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.
173 2019-09-09 Richard Sandiford <richard.sandiford@arm.com>
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.
196 2019-09-09 Barnaby Wilks <barnaby.wilks@arm.com>
198 * match.pd: Add flag_unsafe_math_optimizations check
199 before deciding on the widest type in a binary math operation.
201 2019-09-09 Martin Liska <mliska@suse.cz>
203 * config/i386/i386.opt: Update comment of removed
204 options that are preserved only for backward
207 2019-09-09 Jakub Jelinek <jakub@redhat.com>
210 * config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi
214 * config/i386/avxintrin.h (__v32qs): New typedef.
215 * config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs
218 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
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.
225 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
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.
241 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
243 * doc/sourcebuild.texi (Effective-Target Keywords): Document
246 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com>
248 * opt-functions.awk (integer_range_info): Make sure values are in
249 numeric context before operating with them.
251 2019-09-08 Segher Boessenkool <segher@kernel.crashing.org>
253 * genemit.c (gen_split): Print the filename and line number where the
254 splitter (or peephole2) was defined, to the dump file.
256 2019-09-07 Jakub Jelinek <jakub@redhat.com>
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.
262 2019-09-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
265 * config/arm/arm.c (arm_block_set_aligned_non_vect): Use
266 gen_unaligned_storedi for 4-byte aligned addresses.
268 2019-09-06 Jim Wilson <jimw@sifive.com>
270 * config/riscv/riscv.c (riscv_option_override): Revert 2019-08-30
273 2019-09-06 Segher Boessenkool <segher@kernel.crashing.org>
275 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_MV_CR_OV.
277 2019-09-06 Segher Boessenkool <segher@kernel.crashing.org>
279 * config/rs6000/rs6000.c (rs6000_rtx_costs) <case UNSPEC>: Delete.
280 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_FRSP.
282 2019-09-06 Uroš Bizjak <ubizjak@gmail.com>
285 * config/i386/x86-tune-costs.h (skylake_cost): Raise the
286 cost of SSE->integer and integer->SSE moves from 2 to 6.
289 2019-09-06 Jakub Jelinek <jakub@redhat.com>
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):
296 2019-09-06 Richard Earnshaw <rearnsha@arm.com>
298 * config/arm/arm.md (cmp_and): Add short-it variant for thumb2 with
302 2019-09-06 Martin Liska <mliska@suse.cz>
304 * doc/match-and-simplify.texi: Separate tuples with ;.
306 2019-09-06 Martin Liska <mliska@suse.cz>
309 * Makefile.in: Remove tlink.o.
310 * collect2.c (do_link): New function isolated
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.
319 2019-09-05 Jakub Jelinek <jakub@redhat.com>
320 Jim Wilson <jimw@sifive.com>
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.
329 2019-09-05 Andrew Stubbs <ams@codesourcery.com>
331 * config/gcn/gcn.md (*movti_insn): Set delayeduse for global_store.
332 (sync_compare_and_swap<mode>_insn): Likewise.
334 2019-09-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
337 * expr.c (expand_expr_real_1): Handle misaligned TARGET_MEM_REF
338 without movmisalign optab.
340 2019-09-05 Jakub Jelinek <jakub@redhat.com>
345 * calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR
346 types, use type of their first field instead of type of
349 2019-09-05 Richard Biener <rguenther@suse.de>
351 PR rtl-optimization/91656
352 * postreload-gcse.c (record_last_mem_set_info): Revert addition
355 2019-09-05 Richard Biener <rguenther@suse.de>
358 * tree-inline.c (declare_return_variable): Mark the return
359 slot as addressable after building an address of it.
361 2019-09-05 Arnaud Charlet <charlet@adacore.com>
363 * doc/install.texi: Update and clarify requirements to build GNAT.
365 2019-09-05 Richard Sandiford <richard.sandiford@arm.com>
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.
374 2019-09-04 Caroline Tice <cmtice@google.com>
376 * opts.c (finish_options): Disallow -fvtable-verify and -flto to be
379 2019-09-04 Marek Polacek <polacek@redhat.com>
381 * doc/invoke.texi: Remove -fdeduce-init-list documentation.
383 2019-09-04 Uroš Bizjak <ubizjak@gmail.com>
386 * config/i386/i386.c (inline_secondary_memory_needed): Return true
387 for QI and HImode moves between SSE and general registers.
389 2019-09-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
392 * doc/invoke.texi: Document -Wenum-conversion.
394 2019-09-04 Richard Biener <rguenther@suse.de>
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
403 (gcse_after_reload_main): Skip compute_transp and extended PRE
404 if gcse_or_cprop_is_too_expensive says so.
406 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
408 * config/msp430/msp430.c (msp430_init_sections): Remove handling of the
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.
417 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
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"
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"
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
442 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com>
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.
452 2019-09-03 Kamlesh Kumar <kamleshbhalui@gmail.com>
454 PR tree-optimization/91504
455 * match.pd: Add ((~a & b) ^a) --> (a | b).
457 2019-09-03 Jakub Jelinek <jakub@redhat.com>
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
465 2019-09-03 Ulrich Weigand <uweigand@de.ibm.com>
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.
473 * doc/extend.texi: Remove references to spu.
474 * doc/invoke.texi: Likewise.
475 * doc/md.texi: Likewise.
476 * doc/sourcebuild.texi: Likewise.
478 2019-09-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
483 * expr.c (expand_expr_real_1): Handle unaligned decl_rtl
484 and SSA_NAME referring to CONSTANT_P correctly.
486 2019-09-03 Richard Biener <rguenther@suse.de>
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.
494 2019-09-03 Ilya Leoshkevich <iii@linux.ibm.com>
496 * config/s390/s390.c (s390_canonicalize_comparison): Use XEXP
497 (*op0, 1) instead of XEXP (*op1, 0).
499 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
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):
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.
512 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
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.
532 2019-09-03 Dennis Zhang <dennis.zhang@arm.com>
534 * config/aarch64/aarch64-cores.def (AARCH64_CORE): New entries
535 for Cortex-A77, Cortex-A76AE, Cortex-A65, Cortex-A65AE, and
537 * config/aarch64/aarch64-tune.md: Regenerated.
538 * doc/invoke.texi: Document the new processors.
540 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
542 * config/aarch64/aarch64-option-extensions.def (sb): Add feature
546 (sve2-sm4): Likewise.
549 (svebitperm): Likewise.
551 2019-09-03 Jakub Jelinek <jakub@redhat.com>
552 Richard Biener <rguenther@suse.de>
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.
559 2019-09-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
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.
568 2019-09-02 Eric Botcazou <ebotcazou@adacore.com>
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.
576 2019-09-02 Jakub Jelinek <jakub@redhat.com>
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.
587 2019-09-02 Eric Botcazou <ebotcazou@adacore.com>
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.
593 2019-09-02 Martin Liska <mliska@suse.cz>
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
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.
603 2019-09-02 Martin Liska <mliska@suse.cz>
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
609 (circuit): Handle also negative edges as they can happen
612 2019-09-01 Eric Botcazou <ebotcazou@adacore.com>
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.
619 2019-09-01 Jakub Jelinek <jakub@redhat.com>
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
628 * tree.c (find_decls_types_in_node): Also walk TREE_PURPOSE of
629 GIMPLE_ASM TREE_LIST operands.
631 2019-08-31 Gerald Pfeifer <gerald@pfeifer.com>
633 * doc/generic.texi (Unary and Binary Expressions): Mark up
634 an instance of TYPE_MIN.
636 2019-08-31 Stafford Horne <shorne@gmail.com>
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.
642 2019-08-30 Jim Wilson <jimw@sifive.com>
644 * config/riscv/riscv.c (riscv_option_override): If -msave-restore
645 and -fpic and -mplt then disable -msave-restore and warn.
647 2019-08-30 Martin Sebor <msebor@redhat.com>
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.
655 * tree-vrp.c (vrp_prop::check_mem_ref): Normalize type domain bounds
656 before using them to validate MEM_REF offset.
658 2019-08-30 Marek Polacek <polacek@redhat.com>
660 * doc/invoke.texi (-Wvolatile): Use @code for volatile.
662 2019-08-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
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.
672 2019-08-30 Martin Jambor <mjambor@suse.cz>
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
678 (arg_needs_copy_p): Removed.
679 (eliminate_tail_call): Test tailr_arg_needs_copy instead of calling
681 (tree_optimize_tail_calls_1): Likewise. Free tailr_arg_needs_copy.
683 2019-08-29 Uroš Bizjak <ubizjak@gmail.com>
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.
691 2019-08-29 Uroš Bizjak <ubizjak@gmail.com>
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.
698 2019-08-29 Richard Biener <rguenther@suse.de>
700 * config/i386/i386-features.c (general_scalar_chain::convert_insn):
701 Guard debug work with MAY_HAVE_DEBUG_BIND_INSNS.
703 2019-08-29 Richard Biener <rguenther@suse.de>
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.
711 2019-08-29 Jakub Jelinek <jakub@redhat.com>
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.
729 PR tree-optimization/91351
730 * tree-cfg.c (generate_range_test): Use range_check_type instead of
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
740 (switch_decision_tree::try_switch_expansion): Punt if range_check_type
743 2019-08-29 Richard Biener <rguenther@suse.de>
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.
753 2019-08-28 Marek Polacek <polacek@redhat.com>
755 Implement P1152R4: Deprecating some uses of volatile.
757 * doc/invoke.texi: Document -Wvolatile.
759 2019-08-28 Marek Polacek <polacek@redhat.com>
761 PR c++/91360 - Implement C++20 P1143R2: constinit.
762 * doc/invoke.texi: Document -Wc++20-compat.
764 2019-08-28 Martin Sebor <msebor@redhat.com>
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.
776 2019-08-28 Martin Sebor <msebor@redhat.com>
779 * opts-common.c (option_enabled): Correct checking for language
782 2019-08-28 Uroš Bizjak <ubizjak@gmail.com>
784 * config/i386/i386.c (ix86_register_move_cost): Do not
785 limit the cost of moves to/from XMM register to minimum 8.
787 2019-08-28 Martin Jambor <mjambor@suse.cz>
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
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
799 2019-08-28 Richard Biener <rguenther@suse.de>
801 * config/i386/i386-features.c (convert_scalars_to_vector): Do not
804 2019-08-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
805 Richard Biener <rguenther@suse.de>
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
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.
819 2019-08-28 Jakub Jelinek <jakub@redhat.com>
822 * config/i386/sse.md (vec_shl_<mode>, vec_shr_<mode>): Use
823 V_128 iterator instead of VI_128.
825 2019-08-28 Martin Liska <mliska@suse.cz>
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.
831 2019-08-27 Martin Sebor <msebor@redhat.com>
833 PR tree-optimization/91567
834 * gimple-ssa-sprintf.c (get_string_length): Handle more forms of lengths
836 * vr-values.c (vr_values::extract_range_basic): Set strlen upper bound
839 2019-08-27 Jeff Law <law@redhat.com>
841 * tree-ssa-strlen.c (printf_strlen_execute): Initialize
842 the loop optimizer and SCEV before sizing ssa_ver_to_stridx.
844 2019-08-27 Uroš Bizjak <ubizjak@gmail.com>
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.
853 2019-08-27 Richard Biener <rguenther@suse.de>
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.
874 2019-08-27 Richard Earnshaw <rearnsha@arm.com>
876 * config/arm/arm.md (stack_protect_set_insn): Add security-related
878 * config/aarch64/aarch64.md (stack_protect_set_<mode>): Likewise.
880 2019-08-27 Martin Liska <mliska@suse.cz>
882 * cgraph.c (cgraph_node::remove): Remove dead assignment before
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.
891 2019-08-26 Uroš Bizjak <ubizjak@gmail.com>
893 * config/i386/i386.c (emit_i387_cw_initialization)
894 <case I387_CW_ROUNDEVEN>: Fix masking operand value.
896 2019-08-26 Martin Sebor <msebor@redhat.com>
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.
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.
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.
951 2019-08-26 Richard Biener <rguenther@suse.de>
953 * config/i386/i386-features.c (general_remove_non_convertible_regs):
955 (convert_scalars_to_vector): Do not call it.
957 2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com>
958 Uros Bizjak <ubizjak@gmail.com>
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
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.
982 2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com>
984 * builtins.c (mathfn_built_in_2): Added CASE_MATHFN_FLOATN
986 * builtins.def: Added function definitions for roundeven function
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.
1004 2019-08-26 Richard Biener <rguenther@suse.de>
1008 * config/i386/i386-features.h (general_scalar_chain::defs_map):
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.
1029 2019-08-26 Robin Dapp <rdapp@linux.ibm.com>
1031 * match.pd: Add (T)(A) + CST -> (T)(A + CST).
1033 2019-08-26 Robin Dapp <rdapp@linux.ibm.com>
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.
1044 2019-08-26 Richard Biener <rguenther@suse.de>
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.
1051 2019-08-26 Gerald Pfeifer <gerald@pfeifer.com>
1053 * config/i386/gmm_malloc.h: Only use <errno.h> and errno if
1056 2019-08-23 Mihailo Stojanovic <mistojanovic@wavecomp.com>
1058 * config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI
1059 machine mode for unspec_volatile operand.
1061 2019-08-23 Wilco Dijkstra <wdijkstr@arm.com>
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.
1075 2019-08-23 Iain Sandoe <iain@sandoe.co.uk>
1078 * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure
1079 and issue any diagnostics needed before collecting the pre-PCH
1082 2019-08-23 Jakub Jelinek <jakub@redhat.com>
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
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.
1102 2019-08-23 Martin Liska <mliska@suse.cz>
1104 * lto-wrapper.c (run_gcc): When setting jobserver
1105 set also parallel to 1. This was done so before r273908.
1107 2019-08-23 Dennis Zhang <dennis.zhang@arm.com>
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.
1117 2019-08-23 Martin Liska <mliska@suse.cz>
1119 * profile.c (instrument_values): Do not set
1121 * tree-profile.c (gimple_gen_interval_profiler): Remove
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
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):
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.
1149 2019-08-22 Martin Sebor <msebor@redhat.com>
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.
1163 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org>
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
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.
1174 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org>
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.
1186 2019-08-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
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.
1192 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
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.
1202 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
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.
1219 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com>
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.
1231 (iordi3_insn): Likewise.
1232 (iordi_zesidi_di): Likewise.
1233 (iordi_sesidi_di): 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
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.
1255 2019-08-22 Richard Earnshaw <rearnsha@arm.com>
1257 * config/arm/arm.md (iorsi3_compare0): Add alternative for 16-bit thumb
1259 (iorsi3_compare0_scratch): Likewise.
1261 2019-08-22 Sylvia Taylor <sylvia.taylor@arm.com>
1263 * config/aarch64/aarch64-simd-builtins.def:
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.
1329 2019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1331 * config/aarch64/aarch64-sve.md (vcond_mask): Add "@".
1333 2019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1334 Richard Sandiford <richard.sandiford@arm.com>
1337 * config/aarch64/aarch64.c (aarch64_evpc_sel): New function.
1338 (aarch64_expand_vec_perm_const_1): Call aarch64_evpc_sel.
1340 2019-08-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1343 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y
1344 in reg if it fails aarch64_plus_operand predicate.
1346 2019-08-21 Richard Biener <rguenther@suse.de>
1348 PR tree-optimization/91482
1349 * tree-ssa-ccp.c (ccp_folder::fold_stmt): Remove useless
1350 BUILT_IN_ASSUME_ALIGNED calls.
1352 2019-08-21 Richard Biener <rguenther@suse.de>
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.
1361 2019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
1363 * function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==.
1365 2019-08-20 Matthew Beliveau <mbelivea@redhat.com>
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.
1371 2019-08-20 Richard Biener <rguenther@suse.de>
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.
1378 2019-08-20 Richard Biener <rguenther@suse.de>
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.
1384 2019-08-20 Eric Botcazou <ebotcazou@adacore.com>
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.
1390 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
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.
1404 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
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.
1415 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
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.
1434 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
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.
1444 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
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):
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.
1499 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
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.
1545 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
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):
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):
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.
1660 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
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
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.
1760 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
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):
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.
1802 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
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
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.
1874 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
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):
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.
1931 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
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):
1939 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
1941 2019-08-20 Richard Sandiford <richard.sandiford@arm.com>
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.
1964 2019-08-20 Richard Biener <rguenther@suse.de>
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.
1974 2019-08-20 Lili Cui <lili.cui@intel.com>
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.
2007 2019-08-20 Gerald Pfeifer <gerald@pfeifer.com>
2009 * doc/install.texi (Specific, alpha): Remove note to use
2010 binutils 2.11.2 or later.
2012 2019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
2015 * function.c (assign_parm_find_stack_rtl): Use larger alignment
2018 2019-08-19 Joel Hutton <Joel.Hutton@arm.com>
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
2027 2019-08-19 Richard Biener <rguenther@suse.de>
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.
2034 2019-08-19 Kito Cheng <kito.cheng@sifive.com>
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.
2041 2019-08-18 Iain Sandoe <iain@sandoe.co.uk>
2043 * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
2044 for cpu and machine. Factor 64/32b builtins.
2046 2019-08-18 Gerald Pfeifer <gerald@pfeifer.com>
2048 * doc/install.texi (Specific, bfin): blackfin.uclinux.org is
2049 gone, point to sourceforge.net.
2051 2019-08-17 Gerald Pfeifer <gerald@pfeifer.com>
2053 * doc/ux.texi (User Experience Guidelines): Update reference.
2055 2019-08-17 Gerald Pfeifer <gerald@pfeifer.com>
2057 * doc/include/gpl_v3.texi (Copying): Adjust the link to "Why
2060 2019-08-16 Eric Botcazou <ebotcazou@adacore.com>
2062 * tree-sra.c (build_reconstructed_reference): Return NULL_TREE instead
2063 of NULL. Add guard for broken VIEW_CONVERT_EXPRs.
2065 2019-08-16 Martin Sebor <msebor@redhat.com>
2067 * tree.def (TYPE_SIZE): Clarify.
2068 * tree.h (TYPE_SIZE, TYPE_SIZE_UNIT, DECL_SIZE): Add comments.
2070 2019-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
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.
2077 2019-08-16 Uroš Bizjak <ubizjak@gmail.com>
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.
2089 2019-08-16 Richard Biener <rguenther@suse.de>
2091 * tree-scalar-evolution.c (follow_ssa_edge_expr): Declare.
2092 (follow_ssa_edge_binary): Call follow_ssa_edge_expr instead of
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.
2099 2019-08-16 Richard Biener <rguenther@suse.de>
2102 * config/i386/i386-features.c
2103 (general_scalar_chain::replace_with_subreg): Stop at memory operands.
2105 2019-08-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2108 * gensupport.c (has_subst_attribute): Error out on set_attr_alternative
2109 only if subst_name matches curr_attr string.
2111 2019-08-16 Richard Biener <rguenther@suse.de>
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.
2118 2019-08-16 Aldy Hernandez <aldyh@redhat.com>
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
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
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
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
2149 (vr_values::get_lattice_entry): Set varying even if propagation
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
2166 2019-08-15 H.J. Lu <hongjiu.lu@intel.com>
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.
2182 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
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.
2192 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2194 MSP430: Fix lines over 80 characters long in
2195 config/msp430/*.{c,h} files
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.
2236 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2238 MSP430: Fix whitespace errors and incorrect indentation in
2239 config/msp430/*.{c,h} files
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
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
2292 (PC_REGNUM): Likewise.
2293 (STACK_POINTER_REGNUM): Likewise.
2294 (CC_REGNUM): Likewise.
2296 2019-08-15 Richard Biener <rguenther@suse.de>
2299 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): New
2301 (general_scalar_chain::make_vector_copies): Use it.
2303 2019-08-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
2305 * function.c (assign_parm_setup_reg): Handle misaligned stack arguments.
2307 2019-08-15 Martin Liska <mliska@suse.cz>
2309 * tree-ssa-dce.c (propagate_necessity): We can't reach now
2310 operators with no arguments.
2311 (eliminate_unnecessary_stmts): Likewise here.
2313 2019-08-15 Uroš Bizjak <ubizjak@gmail.com>
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).
2320 2019-08-15 Aldy Hernandez <aldyh@redhat.com>
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
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
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.
2351 (vr_values::extract_range_for_var_from_comparison_expr): Call set
2352 instead of set_and_canonicalize.
2354 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
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.
2361 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
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.
2367 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2369 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Return
2370 16 for SVE predicates even if they are fixed-length.
2372 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2374 * config/aarch64/aarch64-sve.md (and<PRED_ALL:mode>3): Make the
2375 operand order match the MOV /Z alias.
2377 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
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.
2385 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
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.
2392 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
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.
2430 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
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.
2449 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2450 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
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
2457 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2459 * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_ext)
2460 (*aarch64_sve_ext<mode>): Add MOVPRFX alternatives.
2462 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2464 * config/aarch64/aarch64-sve.md (*sub<SVE_F:mode>3): Remove immediate
2465 FADD and FSUB alternatives. Add a MOVPRFX alternative for FSUBR.
2467 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2468 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
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.
2474 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2475 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2477 * config/aarch64/aarch64-sve.md (*v<ASHIFT:optab><SVE_I:mode>3):
2478 Add an alternative that uses reversed shifts.
2480 2019-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2482 * config/aarch64/aarch64-cores.def (cortex-a76): Use neoversen1 tuning
2485 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2487 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Add
2488 a commutativity marker.
2490 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2491 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
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.
2509 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2510 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
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
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.
2535 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2536 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
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.
2542 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2543 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2545 * config/aarch64/aarch64-sve.md (*aarch64_cond_<su>abd<mode>_2)
2546 (*aarch64_cond_<su>abd<mode>_any): New patterns.
2548 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2549 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
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
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.
2565 2019-08-15 Martin Liska <mliska@suse.cz>
2568 * cgraph.c (cgraph_node::remove): When setting
2569 n->origin = NULL for all nested functions, reset
2572 2019-08-15 Martin Liska <mliska@suse.cz>
2574 * cgraph.c (cgraph_node::verify_node): Verify origin, nested
2577 2019-08-15 Martin Liska <mliska@suse.cz>
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.
2589 2019-08-14 Uroš Bizjak <ubizjak@gmail.com>
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.
2597 2019-08-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
2599 * builtins.c (expand_builtin_init_descriptor): Set memory alignment.
2601 2019-08-14 Martin Sebor <msebor@redhat.com>
2603 PR tree-optimization/91294
2604 * tree-ssa-strlen.c (handle_store): Avoid treating lower bound of
2605 source length as exact.
2607 2019-08-14 Christophe Lyon <christophe.lyon@linaro.org>
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"
2613 (default_elf_select_section): Add support for "noinit" attribute.
2614 * config/msp430/msp430.c (msp430_attribute_table): Remove
2617 2019-08-14 Richard Biener <rguenther@suse.de>
2618 Uroš Bizjak <ubizjak@gmail.com>
2621 * config/i386/i386-features.h (scalar_chain::scalar_chain): Add
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
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
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.
2656 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2657 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2659 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2)
2660 (*cond_bic<mode>_any): New patterns.
2662 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
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
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.
2675 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
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>):
2682 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2683 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
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.
2689 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2690 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
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.
2696 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2698 * config/aarch64/iterators.md (SVE_COND_FP_ABS_CMP): New iterator.
2699 * config/aarch64/aarch64-sve.md (*aarch64_pred_fac<cmp_op><mode>):
2702 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2703 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2705 * config/aarch64/aarch64-sve.md (*aarch64_sel_dup<mode>): New pattern.
2707 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2708 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
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
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
2738 (vss): New constraint.
2740 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
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.
2746 * config/aarch64/iterators.md (sve_pred_fp_rhs2_operand): Use
2747 aarch64_sve_float_maxmin_operand for UNSPEC_COND_FMAXNM and
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.
2754 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2756 * config/aarch64/constraints.md (vsb): New constraint.
2757 (vsm): Generalize description.
2758 * config/aarch64/iterators.md (SVE_INT_BINARY_IMM): New code
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
2776 (*<SVE_INT_BINARY_SD:optab><SVE_SDI:mode>3): Fix incorrect predicate
2779 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
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.
2785 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
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.
2791 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
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.
2797 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
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>):
2806 (@aarch64_sve_<perm_insn><mode>): ...this.
2808 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2810 * config/aarch64/aarch64-protos.h (aarch64_sve_same_pred_for_ptest_p):
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
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
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
2834 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
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.
2853 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2855 * config/aarch64/iterators.md (VNx4SI_ONLY, VNx2DF_ONLY): New mode
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):
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.
2885 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
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
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
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.
2920 2019-08-14 Richard Biener <rguenther@suse.de>
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.
2928 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
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
2942 * config/aarch64/aarch64.c (aarch64_emit_sve_ptrue_op): Delete.
2943 (aarch64_unspec_cond_code): Move after integer code. Handle
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.
2953 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
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.
2960 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2961 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2963 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_REG): New int
2965 (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs1_operand): New int
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.
2974 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
2975 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2977 * config/aarch64/aarch64.md (SVE_RELAXED_GP, SVE_STRICT_GP): New
2979 * config/aarch64/predicates.md (aarch64_sve_gp_strictness): New
2981 * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p):
2983 * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): New
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
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
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.
3012 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
3013 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
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
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_*
3023 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
3024 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
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.
3033 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
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.
3055 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
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
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.
3077 2019-08-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
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.
3086 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
3089 * tree-core.h (function_decl::function_code): Change type to
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
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
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
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):
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.
3171 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
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.
3196 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
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
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
3227 2019-08-13 Iain Sandoe <iain@sandoe.co.uk>
3229 * config/darwin.c (machopic_indirect_call_target): Rename symbol stub
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.
3242 2019-08-13 Uroš Bizjak <ubizjak@gmail.com>
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.
3254 2019-08-13 Jonathan Wakely <jwakely@redhat.com>
3256 * target.def (libc_has_function, libc_has_fast_function): Improve
3257 documentation strings.
3258 * doc/tm.texi: Regenerate.
3260 2019-08-13 Caroline Tice <cmtice@google.com>
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.
3266 2019-08-13 Olivier Hainque <hainque@adacore.com>
3268 * rtl.h (tablejump_casesi_pattern): Move declaration to proper spot.
3270 2019-08-13 Olivier Hainque <hainque@adacore.com>
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.
3279 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com>
3282 * gcc/config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF
3283 operand is larger than a long int.
3285 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
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
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
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.
3321 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com>
3323 * config/aarch64/aarch64.c (generic_tunings): Set function alignment to
3326 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
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
3344 * doc/invoke.texi (-mmcu): Document that -I and -L paths are
3345 searched for devices.csv.
3346 (mwarn-devices-csv): Document option.
3348 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
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
3356 (aarch64_simd_valid_immediate): Fill in the simd_immediate_info
3358 (aarch64_output_sve_mov_immediate): Handle predicate modes.
3359 (aarch64_output_ptrue): Delete.
3361 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
3363 * config/aarch64/aarch64.c (simd_immediate_info::insn_type): Add
3365 (simd_immediate_info::value, simd_immediate_info::step)
3366 (simd_immediate_info::modifier, simd_immediate_info::shift): Replace
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.
3373 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
3375 * config.gcc (msp430*-*-*): Add msp430-devices.o to extra_objs and
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
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
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
3391 (DRIVER_SELF_SPECS): Call msp430_select_cpu if -mmcu is used without
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.
3397 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
3399 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Switch
3400 based on the mode instead of testing properties of it.
3402 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
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.
3414 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
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.
3431 2019-08-13 Martin Liska <mliska@suse.cz>
3433 * value-prof.c (gimple_ic_transform): Add new line.
3434 Print details with MSG_NOTE.
3436 2019-08-13 Martin Liska <mliska@suse.cz>
3438 * doc/invoke.texi: Document automatic detection of jobserver.
3439 * lto-wrapper.c (run_gcc): Detect jobserver always.
3441 2019-08-13 Uroš Bizjak <ubizjak@gmail.com>
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.
3450 2019-08-12 Jakub Jelinek <jakub@redhat.com>
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.
3460 2019-08-12 Richard Biener <rguenther@suse.de>
3463 * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on
3466 2019-08-12 Richard Biener <rguenther@suse.de>
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.
3475 2019-08-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3477 * ipa-predicate.c (add_condition): Restore inverted test.
3479 2019-08-10 Jakub Jelinek <jakub@redhat.com>
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.
3491 * config/i386/mmx.md (usadv8qi): Use register_operand instead of
3494 2019-08-09 Vladimir Makarov <vmakarov@redhat.com>
3496 * reload1.c (finish_spills): Do not check ira_conflicts_p when
3497 handling spilled pseudos.
3499 2019-08-09 Richard Earnshaw <rearnsha@arm.com>
3502 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Use copy_rtx
3503 to preserve the contents of the original insns.
3505 2019-08-09 Richard Earnshaw <rearnsha@arm.com>
3507 * config/arm/arm.md (addsi3_compare_op1): Add 16-bit thumb-2 variants.
3508 (addsi3_compare_op2): Likewise.
3510 2019-08-09 Martin Liska <mliska@suse.cz>
3512 * alias.c (alias_ptr_types_compatible_p): Strengten
3513 type comparison in LTO mode.
3515 2019-08-09 Richard Sandiford <richard.sandiford@arm.com>
3518 * tree-tailcall.c (find_tail_calls): Reject calls that might
3519 read from an escaped RESULT_DECL.
3521 2019-08-09 Martin Liska <mliska@suse.cz>
3523 * doc/invoke.texi: Document the option value.
3524 * lto-wrapper.c (run_gcc): Set auto_parallel
3525 only with -flto=auto.
3527 2019-08-09 Martin Liska <mliska@suse.cz>
3529 * opts.c (common_handle_option): Error for an invalid argument
3532 2019-08-09 Martin Liska <mliska@suse.cz>
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
3540 2019-08-09 Martin Liska <mliska@suse.cz>
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.
3550 2019-08-08 Mihailo Stojanovic <mistojanovic@wavecomp.com>
3552 * doc/extend.texi: Add const qualifier to ld intrinsics.
3554 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org>
3556 * config/rs6000/dfp.md (D64_D128): Rename to ...
3557 (DDTD): ... this, throughout.
3558 (dfp_suffix): Rename to ...
3559 (q): ... this, throughout.
3561 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org>
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.
3580 2019-08-08 Jim Wilson <jimw@sifive.com>
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.
3593 2019-08-08 Martin Liska <mliska@suse.cz>
3596 * gcc.c (driver::detect_jobserver): Use is_valid_fd.
3597 * lto-wrapper.c (jobserver_active_p): Likewise.
3599 2019-08-08 Martin Liska <mliska@suse.cz>
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.
3605 2019-08-08 Jakub Jelinek <jakub@redhat.com>
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.
3618 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3620 * config/aarch64/constraints.md (Z): Handle floating-point zeros too.
3621 * config/aarch64/predicates.md (aarch64_reg_or_zero): Likewise.
3623 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3625 * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): Add
3626 MOVPRFX alternatives. Make the GPR alternatives more expensive
3629 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
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.
3635 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
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
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
3661 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
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.
3672 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3674 * config/aarch64/iterators.md (SVE_COND_FP_MAXMIN_PUBLIC): New
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.
3684 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
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.
3702 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3704 * config/aarch64/aarch64-sve.md (*pred_fold_left_plus_<mode>): Delete.
3706 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
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.
3736 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3738 * config/aarch64/aarch64-sve.md: Reorganize contents and add
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.
3744 2019-08-07 Uroš Bizjak <ubizjak@gmail.com>
3747 * config/i386/sse.md (*negsi2_1_zext): Simplify insn pattern.
3748 (*negsi2_cmpz_zext): Ditto.
3750 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
3752 * config/aarch64/iterators.md (commutative): Remove.
3754 2019-08-07 Richard Earnshaw <rearnsha@arm.com>
3757 * lto-wrapper.c (find_and_merge_options): Use CL_DRIVER when
3758 processing COLLECT_GCC_OPTIONS.
3759 (run_gcc): Likewise.
3761 2019-08-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
3763 PR tree-optimization/91109
3764 * lra-remat.c (update_scratch_ops): Remove assignment of the
3767 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
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.
3791 2019-08-07 Martin Liska <mliska@suse.cz>
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.
3799 2019-08-07 Jakub Jelinek <jakub@redhat.com>
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):
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.
3816 2019-08-07 Kewen Lin <linkw@gcc.gnu.org>
3818 * config/rs6000/vector.md (vrotr<mode>3): New define_expand.
3820 2019-08-07 Kito Cheng <kito.cheng@sifive.com>
3822 * config/riscv/multilib-generator: (canonical_order): Add 'g'.
3823 (arch_canonicalize): Support rv32g and rv64g and fix error
3826 2019-08-06 Martin Liska <mliska@suse.cz>
3828 * cgraph.c (cgraph_node::dump): Dump DECL_IS_OPERATOR_NEW_P
3829 and DECL_IS_OPERATOR_DELETE_P.
3831 2019-08-06 Jakub Jelinek <jakub@redhat.com>
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.
3857 2019-08-06 Kito Cheng <kito.cheng@sifive.com>
3859 * config/riscv/multilib-generator: (canonical_order): New.
3860 (arch_canonicalize): Dito.
3861 Apply arch_canonicalize for alts.
3863 2019-08-05 Martin Sebor <msebor@redhat.com>
3865 * doc/extend.texi (Common Variable Attributes): Document alias
3868 2019-08-05 Marek Polacek <polacek@redhat.com>
3870 PR c++/91338 - Implement P1161R3: Deprecate a[b,c].
3871 * doc/invoke.texi: Document -Wcomma-subscript.
3873 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
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.
3880 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
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
3887 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
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.
3905 2019-08-05 Martin Liska <mliska@suse.cz>
3908 * tree-ssa-dce.c (propagate_necessity): Handle new operators
3910 (eliminate_unnecessary_stmts): Likewise.
3912 2019-08-05 Richard Biener <rguenther@suse.de>
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.
3919 2019-08-05 Jakub Jelinek <jakub@redhat.com>
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.
3926 2019-08-05 Kito Cheng <kito.cheng@sifive.com>
3928 * config/riscv/riscv.c (riscv_promote_function_mode): New.
3929 (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode.
3931 2019-08-05 Alan Modra <amodra@gmail.com>
3934 * config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC),
3935 (LINK_GCC_C_SEQUENCE_SPEC): Undef.
3937 2019-08-04 Gerald Pfeifer <gerald@pfeifer.com>
3939 * doc/install.texi (Prerequisites): Remove reference to Tcl 8.6
3940 bug that was fixed in Tcl 8.6.1.
3942 2019-08-02 Michael Meissner <meissner@linux.ibm.com>
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.
3948 2019-08-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
3950 * function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT
3951 check to use targetm.slow_unaligned_access instead.
3953 * function.c (assign_param_data_one): Remove unused data members.
3955 2019-08-02 Steve Ellcey <sellcey@marvell.com>
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.
3963 2019-08-02 Uroš Bizjak <ubizjak@gmail.com>
3966 * config/i386/sse.md (*vec_extractv16qi_zext): New insn pattern.
3968 2019-08-02 Alexander Monakov <amonakov@ispras.ru>
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.
3974 2019-08-02 Eric Botcazou <ebotcazou@adacore.com>
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.
3986 2019-08-02 Uroš Bizjak <ubizjak@gmail.com>
3989 * config/i386/i386-expand.c (ix86_unordered_fp_compare) <case LTGT>:
3992 2019-08-02 Richard Biener <rguenther@suse.de>
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.
4002 2019-08-02 Martin Liska <mliska@suse.cz>
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
4012 * gcc.h (driver): Add detect_jobserver.
4013 * lto-wrapper.c (jobserver_active_p): Simplify sscanf by
4014 not scanning for --jobserver-auth prefix.
4016 2019-08-02 Jakub Jelinek <jakub@redhat.com>
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
4023 2019-08-01 Martin Sebor <msebor@redhat.com>
4026 * tree.c (type_initializer_zero_p): Define.
4027 * tree.h (type_initializer_zero_p): New function.
4029 2019-08-01 Eric Botcazou <ebotcazou@adacore.com>
4031 * cfgrtl.c (relink_block_chain): Add line returns in dump file.
4033 2019-08-01 Eric Botcazou <ebotcazou@adacore.com>
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.
4061 2019-08-01 Michael Meissner <meissner@linux.ibm.com>
4063 * config/rs6000/predicates.md (pcrel_external_address): Update
4066 2019-08-01 Uroš Bizjak <ubizjak@gmail.com>
4069 * config/i386/mmx.md (usadv8qi): New expander.
4071 2019-08-01 Matthew Beliveau <mbelivea@redhat.com>
4074 * c-warn.c (c_do_switch_warnings): Suppress warning for enumerators
4075 with reserved names that are in a system header.
4077 2019-08-01 Uroš Bizjak <ubizjak@gmail.com>
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"
4087 2019-08-01 Richard Biener <rguenther@suse.de>
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.
4094 2019-08-01 Alexander Monakov <amonakov@ispras.ru>
4096 * sort.cc (sort_r_ctx): New struct.
4097 (reorder23): Make templated on context type.
4099 (cmp1): Ditto. Adjust signature.
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.
4111 2019-08-01 Richard Biener <rguenther@suse.de>
4113 * tree-ssa-pre.c (has_abnormal_preds): Remove global var.
4114 (compute_antic): Localize it here.
4116 2019-07-31 Maxim Blinov <maxim.blinov@embecosm.com>
4118 * common/config/riscv/riscv-common.c: Check -march string ends
4121 2019-07-31 Alexander Monakov <amonakov@ispras.ru>
4123 * ipa-devirt.c (type_warning_cmp): Make static.
4124 (decl_warning_cmp): Ditto.
4126 2019-07-31 Peter Bergner <bergner@linux.ibm.com>
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.
4139 2019-07-31 Richard Biener <rguenther@suse.de>
4141 PR tree-optimization/91280
4142 * tree-ssa-structalias.c (get_constraint_for_component_ref):
4143 Decompose MEM_REF manually for offset handling.
4145 2019-07-31 Richard Biener <rguenther@suse.de>
4147 PR tree-optimization/91293
4148 * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands
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>
4156 * config.gcc (hppa*-*-netbsd*): New target.
4157 * config/pa/pa-netbsd.h: New file.
4158 * config/pa/pa32-netbsd.h: New file.
4160 2019-07-31 Jakub Jelinek <jakub@redhat.com>
4162 PR tree-optimization/91201
4163 * config/i386/mmx.md (reduc_plus_scal_v8qi): New expander.
4165 2019-07-31 Andrew Stubbs <ams@codesourcery.com>
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.
4180 2019-07-31 Richard Biener <rguenther@suse.de>
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
4189 * gimple-ssa-evrp-analyze.c
4190 (evrp_range_analyzer::record_ranges_from_stmt): Free unused
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.
4197 2019-07-31 Martin Liska <mliska@suse.cz>
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.
4203 2019-07-31 Richard Biener <rguenther@suse.de>
4205 PR tree-optimization/91178
4206 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
4209 2019-07-31 Jakub Jelinek <jakub@redhat.com>
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
4215 (reduc_plus_scal_<mode>): Improve formatting by introducing
4218 2019-07-31 Sudakshina Das <sudi.das@arm.com>
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.
4232 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_TTEST.
4233 (define_c_enum "unspecv"): Add UNSPECV_TSTART, UNSPECV_TCOMMIT and
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".
4245 2019-07-31 Joel Hutton <Joel.Hutton@arm.com>
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.
4251 2019-07-31 Richard Biener <rguenther@suse.de>
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.
4257 2019-07-31 Jakub Jelinek <jakub@redhat.com>
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.
4265 2019-07-31 Richard Sandiford <richard.sandiford@arm.com>
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.
4285 2019-07-30 Uroš Bizjak <ubizjak@gmail.com>
4287 * config/alpha/alpha.c (alpha_option_override): Quote a C type.
4289 2019-07-30 Wilco Dijkstra <wdijkstr@arm.com>
4291 * config/arm/thumb2.md (thumb2_movsi_insn): Adjust literal offset.
4292 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
4294 2019-07-30 Martin Liska <mliska@suse.cz>
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.
4301 2019-07-30 Richard Biener <rguenther@suse.de>
4303 PR tree-optimization/91257
4304 * bitmap.c (bitmap_ior_and_compl_into): Open-code.
4306 2019-07-30 Martin Liska <mliska@suse.cz>
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.
4315 2019-07-30 Richard Biener <rguenther@suse.de>
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.
4328 2019-07-30 Richard Sandiford <richard.sandiford@arm.com>
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.
4336 2019-07-30 Richard Biener <rguenther@suse.de>
4338 PR tree-optimization/91291
4339 * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Ignore
4342 2019-07-30 Jakub Jelinek <jakub@redhat.com>
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.
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.
4359 2019-07-30 Uroš Bizjak <ubizjak@gmail.com>
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.
4372 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com>
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.
4381 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4384 * config/msp430/msp430.h: Define ADDITIONAL_REGISTER_NAMES.
4386 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
4389 * wide-int.h (generic_wide_int::sext_elt): New function.
4390 * inchash.h (hash::add_wide_int): Use it instead of elt.
4392 2019-07-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4394 * config/arm/arm-builtins.c (acle_builtin_data): Expand VAR1 to
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.
4413 2019-07-29 Richard Biener <rguenther@suse.de>
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
4423 (rpo_elim::eliminate_push_avail): Likewise.
4424 (do_unwind): Likewise.
4425 (do_rpo_vn): Likewise.
4427 2019-07-29 Richard Biener <rguenther@suse.de>
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.
4436 2019-07-29 Martin Liska <mliska@suse.cz>
4438 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not
4439 remove LHS of operator new call. It's handled latter.
4441 2019-07-29 Richard Biener <rguenther@suse.de>
4443 PR tree-optimization/91267
4444 * vr-values.c (vr_values::update_value_range): Add early return
4445 for effectively VARYING lattice entry.
4447 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
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.
4458 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
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.
4468 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
4470 * tree-cfg.c (execute_fixup_cfg): Don't delete stores to write-only
4473 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
4475 * doc/sourcebuild.texi (check-function-bodies): Document.
4477 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
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.
4486 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
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.
4518 2019-07-28 Jan Hubicka <hubicka@ucw.cz>
4521 * ipa-devirt.c (warn_types_mismatch): Compare indentifiers
4522 than INDENTIFIER_POINTER.
4524 2019-07-28 Martin Liska <mliska@suse.cz>
4527 * cgraph.c (symbol_table::create_edge): Always allocate
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
4539 2019-07-28 Alan Modra <amodra@gmail.com>
4541 * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
4544 2019-07-28 Alan Modra <amodra@gmail.com>
4547 * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't
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.
4553 2019-07-28 Alan Modra <amodra@gmail.com>
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.
4566 2019-07-28 Gerald Pfeifer <gerald@pfeifer.com>
4568 * doc/include/gpl_v3.texi (Copying): Use https for www.gnu.org.
4570 2019-07-26 Tamar Christina <tamar.christina@arm.com>
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.
4577 2019-07-26 Tamar Christina <tamar.christina@arm.com>
4579 * convert.c (convert_to_real_1): Move part of conversion code...
4580 * match.pd: ...To here.
4582 2019-07-26 Martin Jambor <mjambor@suse.cz>
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
4589 (inline_call): Pass new_edges to check_speculations.
4590 * ipa-inline.c (add_new_edges_to_heap): Assert edge_callee is not
4592 (speculation_useful_p): Early return true if edge is inlined, remove
4593 later checks for inline_failed.
4595 2019-07-25 Vladimir Makarov <vmakarov@redhat.com>
4597 PR rtl-optimization/91223
4598 * lra-constraints.c (process_alt_operands): Fail for unsuccessful
4599 matching with INOUT operand.
4601 2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
4603 * stmt.c (expand_case): Try to narrow the index type if it's larger
4604 than a word. Tidy up.
4606 2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
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.
4612 2019-07-25 Wilco Dijkstra <wdijkstr@arm.com>
4614 * config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg.
4615 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
4617 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
4619 * ipa-devirt.c (add_type_duplicate): Fix return value.
4621 2019-07-25 Richard Biener <rguenther@suse.de>
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.
4628 2019-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4630 * config/arm/arm.md (SATrev): Change to code attribute.
4631 (*satsi_<SAT:code>): Adjust for the above.
4632 (*satsi_<SAT:code>_shift): Likewise.
4634 2019-07-25 Richard Biener <rguenther@suse.de>
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):
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):
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
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):
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
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 *.
4698 2019-07-25 Martin Liska <mliska@suse.cz>
4699 Dominik Infuhr <dominik.infuehr@theobroma-systems.com>
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):
4716 * tree.h (DECL_IS_OPERATOR_DELETE_P): New.
4717 (DECL_SET_IS_OPERATOR_DELETE): New.
4718 (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): Likewise.
4720 2019-07-25 Martin Liska <mliska@suse.cz>
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.
4745 2019-07-25 Xiong Hu Luo <luoxhu@linux.ibm.com>
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
4762 2019-07-25 Richard Biener <rguenther@suse.de>
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
4769 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4771 * config.gcc (msp430*-*-*): Fix non-GNU style in r273774.
4772 * config/msp430/msp430.h (ENDFILE_SPEC): Fix non-GNU style in
4775 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4777 * config.gcc (msp430*-*-*): Enable initfini_array by default unless
4778 explicitly disabled with --disable-initfini-array.
4780 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
4782 * config/msp430/msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in
4785 2019-07-24 Martin Sebor <msebor@redhat.com>
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
4798 2019-07-24 Martin Sebor <msebor@redhat.com>
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.
4815 2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
4818 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
4820 2019-07-24 Giuliano Belinassi <giuliano.belinassi@usp.br>
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.
4826 2019-07-24 Oliver Browne <oliverbrowne62@gmail.com>
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.
4833 2019-07-24 Eric Botcazou <ebotcazou@adacore.com>
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.
4841 2019-07-24 Claudiu Zissulescu <claziss@synopsys.com>
4843 * config/arc/arc-protos.h (arc_output_function_epilogue): Delete
4845 (arc_compute_frame_size): Millicode is disabled when compiling
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
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
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
4908 (arc600_rtie): New pattern.
4909 (p_return_i): Clean up.
4911 * config/arc/builtins.def (rtie): Only available for non ARC6xx
4913 * config/arc/predicates.md (move_src_operand): Consider lp_count
4916 2019-07-24 Andreas Krebbel <krebbel@linux.ibm.com>
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.
4928 2019-07-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
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.
4935 2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
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
4949 2019-07-23 Iain Sandoe <iain@sandoe.co.uk>
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
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
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
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.
4979 2019-07-23 Martin Sebor <msebor@redhat.com>
4981 * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Revert r273311.
4983 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru>
4985 * gdbinit.in (reload-gdbhooks): New command with an attached doc string.
4986 (rh): New alias for it.
4988 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru>
4990 * gdbhooks.py: Pass replace=True to
4991 gdb.printing.register_pretty_printer.
4993 2019-07-23 Richard Biener <rguenther@suse.de>
4996 * lto-streamer-in.c (input_function): Drop inline-entry markers
4997 that ended up with an unknown location block.
4999 2019-07-23 Richard Biener <rguenther@suse.de>
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.
5005 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
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.
5011 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
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
5018 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
5020 * config/i386/x86-tune-costs.h (znver2_memcpy): Update.
5021 (znver2_costs): Update 256 bit SSE costs and multiplication.
5023 2019-07-23 Jan Beulich <jbeulich@suse.com>
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.
5030 2019-07-23 Martin Liska <mliska@suse.cz>
5032 * dwarf2out.c (gen_producer_string): Canonize -flto=N
5033 to -flto in dwarf producer string.
5035 2019-07-23 Richard Biener <rguenther@suse.de>
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.
5042 2019-07-22 Paul A. Clarke <pc@us.ibm.com>
5044 * doc/extend.texi (Basic PowerPC Built-in Functions Available on all
5045 Configurations): Add documentation for __builtin_mtfsf.
5047 2019-07-22 Ilia Diachkov <ilia.diachkov@optimitech.com>
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=.
5058 2019-07-02 Giuliano Belinassi <giuliano.belinassi@usp.br>
5060 * cgraph.c (dump_graphviz): New function.
5061 * cgraph.h (dump_graphviz): New function.
5062 * symtab.c (dump_graphviz): New function.
5064 2019-07-22 Sylvia Taylor <sylvia.taylor@arm.com>
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.
5072 2019-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
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
5078 2019-07-22 Paul A. Clarke <pc@us.ibm.com>
5080 * config/rs6000/smmintrin.h (_mm_blend_epi16): New.
5081 (_mm_blendv_epi8): New.
5083 2019-07-22 Richard Biener <rguenther@suse.de>
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.
5090 2019-07-22 Jan Beulich <jbeulich@suse.com>
5092 * config/i386/sse.md (ternlogsuffix): New.
5093 (one_cmpl<mode>2): Don't force CONSTM1_RTX into a register when
5095 (<mask_codefor>one_cmpl<mode>2<mask_name>): New.
5097 2019-07-22 Martin Liska <mliska@suse.cz>
5099 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update
5101 * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol.
5103 2019-07-22 Martin Liska <mliska@suse.cz>
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.
5112 2019-07-22 Martin Liska <mliska@suse.cz>
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.
5119 2019-07-22 Claudiu Zissulescu <claziss@synopsys.com>
5121 * config/arc/arc.c (prepare_move_operands): Always use an
5122 intermediate register when storing a TLS symbols.
5124 2019-07-22 Stafford Horne <shorne@gmail.com>
5126 * config/or1k/or1k.c (or1k_expand_compare): Check for int before
5129 2019-07-22 Stafford Horne <shorne@gmail.com>
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'
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
5156 2019-07-22 Stafford Horne <shorne@gmail.com>
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
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.
5170 2019-07-22 Stafford Horne <shorne@gmail.com>
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.
5178 2019-07-21 Iain Sandoe <iain@sandoe.co.uk>
5180 * config/rs6000/rs6000.c (TARGET_NO_PROTOTYPE): Move from here...
5181 * config/rs6000/rs6000-call.c: ... to here.
5183 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
5185 * config/rs6000/predicates.md (offsettable_mem_operand): Allow volatile
5188 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
5190 * config/rs6000/predicates.md (input_operand): Allow volatile memory.
5192 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
5194 * config/rs6000/predicates.md (lwa_operand): Allow volatile memory.
5196 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
5198 * config/rs6000/predicates.md (volatile_mem_operand): Modernize syntax.
5199 (any_memory_operand): New predicate.
5200 (reg_or_mem_operand): Use it.
5202 2019-07-20 Jakub Jelinek <jakub@redhat.com>
5205 * optabs.c (expand_unop): As fallback, expand ~op0 as op0 ^ -1.
5207 2019-07-20 John David Anglin <danglin@gcc.gnu.org>
5209 * config/pa/pa.h (hppa_profile_hook): Delete declaration.
5210 * config/pa/pa-protos.h (hppa_profile_hook): Add declaration.
5212 2019-07-20 Jakub Jelinek <jakub@redhat.com>
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.
5255 * omp-low.c (lower_rec_input_clauses): Don't force simd arrays for
5256 lastprivate non-addressable iterator of a collapse(1) simd.
5258 2019-07-17 Bill Seurer <seurer@linux.vnet.ibm.com>
5260 * config/rs6000/rs6000-call.c (HAVE_AS_GNU_ATTRIBUTE): define value
5263 2019-07-19 Iain Sandoe <iain@sandoe.co.uk>
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
5269 2019-07-19 Bill Seurer <seurer@linux.vnet.ibm.com>
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
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.
5379 2019-07-19 Jeff Law <law@redhat.com>
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.
5386 2019-07-19 Richard Biener <rguenther@suse.de>
5388 PR tree-optimization/91211
5389 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
5390 memset encoding size.
5392 2019-07-19 Uroš Bizjak <ubizjak@gmail.com>
5395 * config/i386/mmx.md (one_cmpl<mode>2): New expander.
5397 2019-07-19 Jan Hubicka <hubicka@ucw.cz>
5400 * ipa-inline.c (recursive_inlining): Fix limits check.
5402 2019-07-19 Richard Biener <rguenther@suse.de>
5404 PR tree-optimization/91200
5405 * tree-ssa-phiopt.c (cond_store_replacement): Check we have
5406 no PHI nodes in middle-bb.
5408 2019-07-19 Richard Sandiford <richard.sandiford@arm.com>
5410 * doc/invoke.texi: Rename the AArch64 +bitperm extension flag
5412 * config/aarch64/aarch64-option-extensions.def: Likewise.
5414 2019-07-19 Jakub Jelinek <jakub@redhat.com>
5417 * function.c (insert_temp_slot_address): Store into the hash table
5418 a copy of address to avoid RTL sharing issues.
5420 2019-07-19 Richard Biener <rguenther@suse.de>
5422 PR tree-optimization/91207
5424 2019-07-17 Richard Biener <rguenther@suse.de>
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
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.
5434 2019-07-18 Uroš Bizjak <ubizjak@gmail.com>
5436 * config/i386/i386.md (*addqi_2_slp): Remove.
5437 (*<code>qi_2_slp): Ditto.
5439 2019-07-18 Michael Meissner <meissner@linux.ibm.com>
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
5447 (TARGET_TOC): Likewise.
5448 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
5450 * config/rs6000/darwin.h (TARGET_HAS_TOC): Rename TARGET_TOC to
5452 (TARGET_TOC): Likewise.
5453 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
5455 * config/rs6000/linux64.h (TARGET_HAS_TOC): Rename TARGET_TOC to
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
5463 (rs6000_emit_move): Likewise.
5464 (TOC_alias_set): Rename TOC alias set static variable from 'set'
5466 (get_TOC_alias_set): Likewise.
5467 (output_toc): Use TARGET_NO_TOC_OR_PCREL instead of
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
5477 (TARGET_TOC): Likewise.
5478 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
5481 2019-07-18 Uroš Bizjak <ubizjak@gmail.com>
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
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.
5499 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com>
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.
5510 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com>
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
5519 (crypto_sha1c): Correct vec select.
5520 (crypto_sha1m): Likewise.
5521 (crypto_sha1p): Likewise.
5523 2019-07-18 Richard Earnshaw <rearnsha@arm.com>
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.
5543 2019-07-18 Bin Cheng <bin.cheng@linux.alibaba.com>
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.
5552 2019-07-18 Richard Sandiford <richard.sandiford@arm.com>
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.
5561 2019-07-18 Richard Biener <rguenther@suse.de>
5563 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Refactor
5564 branches to make code less indented.
5566 2019-07-17 Alexandre Oliva <oliva@adacore.com>
5569 * attribs.c (decls_mismatched_attributes): Simplify the logic
5570 that avoids duplicates and false positives.
5572 2019-07-17 John David Anglin <danglin@gcc.gnu.org>
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.
5581 2019-07-17 Jeff Law <law@redhat.com>
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.
5587 2019-07-17 Uroš Bizjak <ubizjak@gmail.com>
5589 * config/i386/i386.md (*add<dwi>3_doubleword):
5590 Remove redundant constraints.
5591 (*add<mode>_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.
5608 (*and<mode>_1): Ditto.
5610 (*andqi_1_slp): 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.
5621 2019-07-17 Jan Hubicka <hubicka@ucw.cz>
5623 * alias.c (record_component_aliases): Do not simplify pointed-to
5626 2019-07-17 Uroš Bizjak <ubizjak@gmail.com>
5628 * config/i386/i386.md (*andqi_2_maybe_si): Handle potential
5629 partial reg stall on alternative 2.
5631 2019-07-17 Richard Biener <rguenther@suse.de>
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.
5641 2019-07-17 Richard Biener <rguenther@suse.de>
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
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.
5651 2019-07-17 Richard Biener <rguenther@suse.de>
5653 PR tree-optimization/91180
5654 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix offset
5655 computation for memset partial defs.
5657 2019-07-17 Jakub Jelinek <jakub@redhat.com>
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.
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
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.
5685 2019-07-17 Richard Biener <rguenther@suse.de>
5687 PR tree-optimization/91181
5688 * tree-vect-slp.c (vect_build_slp_tree_1): Do not compare
5691 2019-07-16 Uroš Bizjak <ubizjak@gmail.com>
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.
5699 2019-07-16 Jeff Law <law@redhat.com>
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.
5706 2019-07-16 Jakub Jelinek <jakub@redhat.com>
5708 PR rtl-optimization/91164
5709 * dse.c (rest_of_handle_dse): If dead edges have been purged,
5710 invalidate dominance info.
5712 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
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
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.
5732 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
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.
5745 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
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
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.
5764 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
5766 * config/mips/micromips.md (*movep<MOVEP1:mode><MOVEP2:mode>):
5767 Explicitly use <MOVEP1:MODE> for the mode attribute.
5769 2019-07-16 Jan Hubicka <hubicka@ucw.cz>
5772 * ipa-fnsummary.c (analyze_function_body): Skip debug stmts
5774 2019-07-15 Segher Boessenkool <segher@kernel.crashing.org>
5777 * config/rs6000/rs6000.c (rs6000_file_start): Never skip emitting a
5780 2019-07-15 Uroš Bizjak <ubizjak@gmail.com>
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.
5790 2019-07-15 Jan Hubicka <hubicka@ucw.cz>
5792 * tree-ssa-alias.c (aliasing_component_refs_walk): Initialize same_p
5795 2019-07-15 Richard Biener <rguenther@suse.de>
5798 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
5799 node make sure to replace all uses with something valid.
5801 2019-07-15 Kewen Lin <linkw@gcc.gnu.org>
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.
5811 2019-07-14 Uroš Bizjak <ubizjak@gmail.com>
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.
5822 2019-07-14 Vladislav Ivanishin <vlad@ispras.ru>
5824 * gdbhooks.py (DumpFn.invoke): Add explicit casts of return values of
5825 fopen and fclose to their respective types.
5826 (DotFn.invoke): Ditto.
5828 2019-07-14 Jan Hubicka <hubicka@ucw.cz>
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
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
5846 (edge_badness): Likewise.
5847 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Remove.
5849 2019-07-14 Segher Boessenkool <segher@kernel.crashing.org>
5852 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Remove
5853 superfluous "builtin function" phrasing.
5855 2019-07-13 Jan Hubicka <hubicka@ucw.cz>
5857 * tree-ssa-alias.c (component_ref_to_zero_sized_trailing_array_p):
5859 (aliasing_component_refs_walk): Break out from ...
5860 (aliasing_component_refs_p): ... here.
5862 2019-07-13 Segher Boessenkool <segher@kernel.crashing.org>
5865 * config/rs6000/rs6000.c (rs6000_invalid_builtin): Remove superfluous
5866 "builtin function" phrasing.
5868 2019-07-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
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.
5877 2019-07-13 Jakub Jelinek <jakub@redhat.com>
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.
5897 2019-07-12 Martin Sebor <msebor@redhat.com>
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.
5904 2019-07-12 Jan Hubicka <jh@suse.cz>
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.
5911 2019-07-12 Jiangning Liu <jiangning.liu@amperecomputing.com>
5913 PR tree-optimization/89430
5914 * tree-ssa-phiopt.c (cond_store_replacement): Support conditional
5915 store elimination for local variable without address escape.
5917 2019-07-12 Jeff Law <law@redhat.com>
5919 * config/c6x/c6x.c (c6x_section_type): Clear SECTION_NOTYPE
5920 for the ".far" section.
5922 2019-07-12 Richard Biener <rguenther@suse.de>
5924 PR tree-optimization/91145
5925 * tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction
5928 2019-07-12 Alexandre Oliva <oliva@adacore.com>
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.
5934 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
5936 * vector-builder.h (vector_builder::elt): Allow already-supplied
5937 elements to be read back before building is complete.
5939 2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
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.
5946 2019-07-12 Richard Biener <rguenther@suse.de>
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.
5956 2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
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.
5961 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
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.
5974 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
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.
5983 2019-07-12 Jakub Jelinek <jakub@redhat.com>
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):
5992 * omp-low.c (scan_sharing_clauses): Likewise.
5993 * tree-nested.c (convert_nonlocal_omp_clauses,
5994 convert_local_omp_clauses): Likewise.
5996 2019-07-12 Kewen Lin <linkw@gcc.gnu.org>
5998 * cfgrtl.c (print_rtl_with_bb): Emit a hint if the
5999 fallthrough target of current basic block isn't the placed
6002 2019-07-11 Sunil K Pandey <sunil.k.pandey@intel.com>
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.
6014 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org>
6016 * config/rs6000/rs6000-logue.c: Add Modula-2 to comment.
6018 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org>
6020 * config/rs6000/rs6000-logue.c (rs6000_output_function_epilogue):
6023 2019-07-11 Jakub Jelinek <jakub@redhat.com>
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
6033 (ufix_truncv2dfv2si2<mask_name>): Change into ...
6034 (ufix_truncv2dfv2si2): ... this. Remove mask substitution macros.
6035 (ufix_truncv2dfv2si2_mask, ufix_truncv2dfv2si2_mask_1): New
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
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.
6100 2019-07-11 Aldy Hernandez <aldyh@redhat.com>
6102 * tree-vrp.c (intersect_ranges): If we know the intersection is
6103 empty, there is no need to conservatively add anything else to
6106 2019-07-11 Richard Biener <rguenther@suse.de>
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.
6113 2019-07-10 Michael Meissner <meissner@linux.ibm.com>
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
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.
6129 2019-07-10 Iain Sandoe <iain@sandoe.co.uk>
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.
6136 2019-07-10 Richard Sandiford <richard.sandiford@arm.com>
6138 * fold-const.c (fold_relational_const): Fix folding of
6139 vector-to-scalar NE_EXPRs.
6140 (test_vector_folding): Add more tests.
6142 2019-07-10 Richard Sandiford <richard.sandiford@arm.com>
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>.
6152 2019-07-10 Vladimir Makarov <vmakarov@redhat.com>
6155 * lra-constraints.c (process_alt_operands): Don't match user
6156 defined regs only if they are early clobbers.
6158 2019-07-10 Marc Glisse <marc.glisse@inria.fr>
6160 * wide-int.h (wi::lshift): Reject negative values for the fast path.
6162 2019-07-10 Richard Biener <rguenther@suse.de>
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.
6169 2019-07-10 Richard Biener <rguenther@suse.de>
6171 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look at valueized
6172 LHS whenever possible.
6174 2019-07-09 Jan Hubicka <hubicka@ucw.cz>
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
6182 (nonoverlapping_component_refs_p): Use same_type_for_tbaa to match
6183 the types and nonoverlapping_component_refs_p_1 to disambiguate.
6185 2019-07-09 Martin Sebor <msebor@redhat.com>
6187 PR tree-optimization/90989
6188 * tree-ssa-strlen.c (handle_char_store): Constrain a single character
6189 optimization to just single character stores.
6191 2019-07-09 Joern Rennecke <joern.rennecke@riscy-ip.com>
6193 * tree-vect-stmts.c (vectorizable_comparison) <!slp_node>:
6194 Swap operands only once.
6196 2019-07-09 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
6198 * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal
6199 for both call instructions.
6201 2019-07-09 John Darrington <john@darrington.wattle.id.au>
6203 * simplify-rtx.c (simplify_unary_operation_1): Use GET_MODE_PRECISION
6204 rather than GET_MODE_BITSIZE to better handle partial integer modes.
6206 2019-07-09 Michael Meissner <meissner@linux.ibm.com>
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.
6213 2019-07-09 Martin Sebor <msebor@redhat.com>
6216 * auto-profile.c: Change class-key of PODs to struct and others
6218 * basic-block.h: Same.
6219 * bitmap.c (bitmap_alloc): 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.
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.
6248 (make_forwarder_block): Same.
6249 (force_nonfallthru): Same.
6250 (duplicate_block): Same.
6251 (lv_flush_pending_stmts): 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.
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.
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.
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.
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.
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
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.
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.
6386 (df_lr_confluence_n): 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.
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.
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.
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.
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.
6482 * gcc-rich-location.h: Same.
6484 * genattrtab.c (check_attr_test): Same.
6485 (check_attr_value): Same.
6486 (convert_set_attr_alternative): Same.
6487 (convert_set_attr): Same.
6489 (copy_boolean): Same.
6490 (get_attr_value): Same.
6491 (expand_delays): Same.
6492 (make_length_attrs): 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.
6500 (compares_alternatives_p): 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.
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.
6521 * genextract.c (gen_insn): Same.
6522 (VEC_char_to_string): Same.
6523 * genmatch.c (print_operand): Same.
6525 (parser::parse_operation): Same.
6526 (parser::parse_capture): Same.
6527 (parser::parse_c_expr): Same.
6528 (parser::parse_simplify): 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.
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.
6561 (process_define_cond_exec): Same.
6562 (mnemonic_htab_callback): Same.
6563 (gen_mnemonic_attr): Same.
6564 (read_md_rtx): 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.
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.
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.
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.
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.
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.
6788 * ira.c (setup_reg_equiv): Same.
6789 (print_insn_chain): Same.
6791 * loop-doloop.c (doloop_condition_get): 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.
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.
6822 (get_biv_step): Same.
6824 (analyzed_for_bivness_p): Same.
6826 (iv_analyze_biv): Same.
6827 (iv_analyze_expr): Same.
6828 (iv_analyze_def): Same.
6829 (iv_analyze_op): Same.
6831 (iv_analyze_result): 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.
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.
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.
6875 (input_varpool_node): Same.
6878 (input_cgraph_1): 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.
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.
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.
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.
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.
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.
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.
7037 (init_deps_reg_last): 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.
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.
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.
7064 * streamer-hooks.h: Same.
7065 * target-globals.c (save_target_globals): Same.
7066 * target-globals.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.
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.
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.
7090 (print_loops): Same.
7092 (debug_loops): 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.
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.
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.
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.
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.
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.
7315 (stmt_after_inc_pos): Same.
7316 (contains_abnormal_ssa_name_p): Same.
7317 (niter_for_exit): 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.
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.
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.
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.
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.
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.
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.
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.
7646 2019-07-09 Martin Sebor <msebor@redhat.com>
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.
7656 * cfgexpand.c (set_rtl): Same.
7657 (expand_one_stack_var_at): Same.
7661 * config/i386/i386.h: Same.
7662 * df-problems.c (df_print_bb_index): 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.
7672 * dump-context.h: Same.
7674 * dwarf2out.c: Same.
7675 * edit-context.c: Same.
7676 * fibonacci_heap.c (test_union_of_equal_heaps): Same.
7678 * function.c (assign_stack_local): 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):
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.
7716 * hash-set-tests.c (test_set_of_strings): Same.
7718 * hsa-common.h: Same.
7719 * hsa-gen.c (transformable_switch_to_sbr_p): Same.
7720 * input.c (assert_loceq): Same.
7723 * ipa-devirt.c (possible_polymorphic_call_targets_1): Same.
7724 * ipa-fnsummary.h: Same.
7725 * ipa-inline.h: Same.
7727 * ipa-split.c (visit_bb): Same.
7728 * ira-int.h (minmax_set_iter_next): Same.
7729 * loop-invariant.c: Same.
7731 * lra-eliminations.c: 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.
7742 * opts.c (wrap_help): Same.
7744 * predict.c (predict_paths_leading_to_edge): Same.
7745 * pretty-print.h: Same.
7746 * profile-count.h: Same.
7748 * read-rtl-function.c: Same.
7751 * regrename.c: Same.
7752 * regrename.h: Same.
7755 * rtl.h (costs_add_n_insns): Same.
7757 * sched-int.h: Same.
7758 * sel-sched-ir.h: Same.
7760 * sese.h (vec_find): 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.
7793 * wide-int-bitmask.h: Same.
7794 * wide-int.h (decompose): Same.
7796 2019-07-09 Richard Biener <rguenther@suse.de>
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.
7802 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com>
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.
7813 2019-07-09 Richard Biener <rguenther@suse.de>
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):
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.
7825 2019-07-09 Eric Botcazou <ebotcazou@adacore.com>
7827 * ira-emit.c (emit_moves): Skip DEBUG_INSNs when setting the location.
7829 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com>
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.
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.
7850 2019-07-09 Richard Biener <rguenther@suse.de>
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.
7858 2019-07-09 Martin Liska <mliska@suse.cz>
7860 * doc/extend.texi: Document influence on loop
7863 2019-07-09 Martin Liska <mliska@suse.cz>
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.
7869 2019-07-09 Martin Liska <mliska@suse.cz>
7871 * doc/invoke.texi: Add link from -fprofile-dir option.
7872 Use better wording for 'gcno filename'.
7874 2019-07-08 Martin Sebor <msebor@redhat.com>
7878 * gimple-ssa-isolate-paths.c (isolate_path): Add attribute. Update
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.
7888 2019-07-08 Jakub Jelinek <jakub@redhat.com>
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
7896 2019-07-08 Eric Botcazou <ebotcazou@adacore.com>
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.
7906 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
7908 * config/rs6000/rs6000.c (rs6000_machine_from_flags): Ignore
7909 OPTION_MASK_PPC_GFXOPT and OPTION_MASK_PPC_GPOPT for selecting the
7912 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
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
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.
7931 2019-07-08 Robin Dapp <rdapp@linux.ibm.com>
7933 * config/s390/s390.c (s390_shift_truncation_mask): Define.
7934 (TARGET_SHIFT_TRUNCATION_MASK): Define.
7936 2019-07-08 Robin Dapp <rdapp@linux.ibm.com>
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.
7948 2019-07-08 Andrew Waterman <andrew@sifive.com>
7949 Jim Wilson <jimw@sifive.com>
7951 * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): Use operands[1]
7952 bitsize instead of BITS_PER_WORD.
7954 2019-07-08 Martin Liska <mliska@suse.cz>
7956 * collect2.c (defined): Revert to before r254460.
7957 (scan_prog_file): Revert to before r254460.
7959 2019-07-08 Richard Biener <rguenther@suse.de>
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.
7972 2019-07-08 Richard Sandiford <richard.sandiford@arm.com>
7974 * doc/install.texi (bootstrap-Og): Document.
7976 2019-07-08 Richard Sandiford <richard.sandiford@arm.com>
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.
7986 2019-07-07 Jeff Law <law@redhat.com>
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.
7992 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
7994 * config/darwin.c (darwin_override_options): Make a final check on PIC
7997 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
7999 * config/darwin.c (darwin_override_options): Don't jam symbol stubs
8002 2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
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.
8009 2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
8011 * config/mips/mips.c (mips_split_move): Zero-initialize addr
8012 and check whether addr.reg is nonnull before using it.
8014 2019-07-06 Jakub Jelinek <jakub@redhat.com>
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.
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.
8030 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
8032 * config/s390/s390.md (*negabs<FP:mode>2_nocc): Use FP for
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.
8038 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
8040 * config/i386/i386.md (*fop_<X87MODEF:mode>_3_i387)
8041 (l<rounding_insn><MODEF:mode><SWI48:mode>2): Fix ambiguous uses
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.
8054 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
8056 * config/h8300/h8300.md (*push1_h8300hs_<mode>): Explicitly
8057 specify the mode iterator referenced by <mode>, giving...
8058 (*push1_h8300hs_<QHI:mode>): ...this.
8060 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
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.
8076 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
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
8085 2019-07-06 Jakub Jelinek <jakub@redhat.com>
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
8102 (lower_omp_for_scan): Handle worksharing loop composited with simd.
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].
8109 2019-07-05 Iain Sandoe <iain@sandoe.co.uk>
8111 * config/rs6000/rs6000-logue.c: Remove unused code.
8113 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
8115 * tree-ssa-loop-manip.c (create_iv): Add missing guard for gsi_end_p.
8117 2019-07-05 Sam Tebbs <sam.tebbs@arm.com>
8120 * config/aarch64/aarch64.c (aarch64_post_cfi_startproc): Replace thunk
8121 check with a frame laid out check.
8123 2019-07-05 Richard Biener <rguenther@suse.de>
8125 * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize RHS
8126 when comparing against a store with possibly the same value.
8128 2019-07-05 Richard Biener <rguenther@suse.de>
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
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):
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.
8149 2019-07-05 Richard Biener <rguenther@suse.de>
8151 PR tree-optimization/91091
8152 * tree-ssa-sccvn.c (vn_reference_lookup_3): Overlap of
8153 accesses can happen with -fno-strict-aliasing.
8155 2019-07-05 Jan Hubicka <hubicka@ucw.cz>
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.
8163 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
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.
8175 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
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.
8184 2019-07-04 Jakub Jelinek <jakub@redhat.com>
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.
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.
8199 2019-07-04 Jan Hubicka <jh@suse.cz>
8201 * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
8202 Fix check for match in the ref walk.
8204 2019-07-04 Martin Liska <mliska@suse.cz>
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.
8212 2019-07-04 Alexandre Oliva <oliva@adacore.com>
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
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.
8226 2019-07-04 Richard Biener <rguenther@suse.de>
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
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.
8239 2019-07-04 Richard Biener <rguenther@suse.de>
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.
8252 2019-07-04 Jan Hubicka <jh@suse.cz>
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.
8262 2019-07-04 Richard Biener <rguenther@suse.de>
8264 * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr
8266 * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move
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.
8275 2019-07-04 Jakub Jelinek <jakub@redhat.com>
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.
8282 2019-07-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
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
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.
8301 2019-07-04 Jakub Jelinek <jakub@redhat.com>
8303 * omp-low.c (lower_omp_scan): Call lower_omp on stmt's body
8304 in worksharing loop scans.
8306 PR tree-optimization/91074
8307 * omp-low.c (lower_omp_for_scan): Set DECL_GIMPLE_REG_P on cplx
8310 PR rtl-optimization/90756
8311 * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
8314 2019-07-03 Dennis Zhang <dennis.zhang@arm.com>
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
8322 * config/aarch64/aarch64-simd.md: Likewise.
8324 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
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
8330 (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
8333 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
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.
8344 2019-07-03 Michael Meissner <meissner@linux.ibm.com>
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):
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):
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.
8371 2019-07-03 Mark Wielaard <mark@klomp.org>
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
8377 (output_addr_table): Add DWARF5 table header generation here after
8378 checking there are actually any addresses from...
8379 (dwarf2out_finish): ...here.
8381 2019-07-03 Richard Biener <rguenther@suse.de>
8384 * match.pd (vec_perm -> bit_insert): Fix element read from
8387 2019-07-03 Martin Liska <mliska@suse.cz>
8389 * dbgcnt.def (DEBUG_COUNTER): Add match debug counter.
8390 * genmatch.c (dt_simplify::gen_1): Generate dbgcnt
8392 * generic-match-head.c: Include dbgcnt.h.
8393 * gimple-match-head.c: Likewise.
8395 2019-07-03 Martin Liska <mliska@suse.cz>
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.
8406 (gimple_init_gcov_profiler): Rename variables from one_value
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.
8424 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
8426 * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE
8427 if it has the DW_AT_data_member_location attribute.
8429 2019-07-03 Richard Biener <rguenther@suse.de>
8431 * gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR
8434 2019-07-03 Sylvia Taylor <sylvia.taylor@arm.com>
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.
8440 2019-07-03 Martin Liska <mliska@suse.cz>
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
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.
8464 2019-07-03 Martin Liska <mliska@suse.cz>
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
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
8476 (produce_asm_for_decls): Likewise.
8477 * lto-streamer.h (enum lto_section_type): Add LTO_section_lto
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.
8484 2019-07-03 Martin Liska <mliska@suse.cz>
8486 * lra-eliminations.c (eliminate_regs_in_insn): Remove
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
8494 2019-07-03 Martin Liska <mliska@suse.cz>
8496 PR tree-optimization/90892
8497 * builtins.c (inline_expand_builtin_string_cmp): Handle '\0'
8498 in string constants.
8500 2019-07-03 Martin Liska <mliska@suse.cz>
8503 * multiple_target.c (create_dispatcher_calls): Add to comdat
8504 group only if set for ifunc.
8506 2019-07-03 Martin Liska <mliska@suse.cz>
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.
8513 2019-07-03 Martin Liska <mliska@suse.cz>
8515 * common.opt: Add fprofile-note.
8516 * coverage.c (coverage_init): Append the option
8518 * doc/invoke.texi: Document -fprofile-note.
8520 2019-07-03 Jakub Jelinek <jakub@redhat.com>
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.
8533 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SCANTEMP_
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
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.
8570 * gimplify.c (gimplify_scan_omp_clauses): For inscan reductions
8571 on worksharing loop propagate it as shared clause to containing
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
8579 2019-07-02 qing zhao <qing.zhao@oracle.com>
8581 PR preprocessor/90581
8582 * doc/cppopts.texi: Add document for -fmax-include-depth.
8583 * doc/invoke.texi (Preprocessor Options): List -fmax-include-depth.
8585 2019-07-02 Uroš Bizjak <ubizjak@gmail.com>
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.
8607 2019-07-02 Andrew Stubbs <ams@codesourcery.com>
8609 * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn
8610 with inlined save and restore.
8612 2019-07-02 Eric Botcazou <ebotcazou@adacore.com>
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.
8620 2019-07-02 Richard Biener <rguenther@suse.de>
8622 * tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and
8624 * tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
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.
8636 2019-07-02 Jan Hubicka <jh@suse.cz>
8638 * tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten
8641 2019-07-02 Jan Hubicka <jh@suse.cz>
8643 * tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename
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.
8664 2019-07-02 Jan Hubicka <jh@suse.cz>
8666 * tree-inline.c (remap_gimple_stmt): Do not subtitute handled components
8667 to clobber of return value.
8669 2019-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
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.
8674 2019-07-02 Richard Biener <rguenther@suse.de>
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.
8681 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8683 * config/rs6000/rs6000.md (signbit<mode>2_dm): Make this a
8685 (signbit<mode>2): Use that name. Simplify.
8687 2019-07-01 Joern Rennecke <joern.rennecke@riscy-ip.com>
8690 * tree-ssa-phiopt.c (factor_out_conditional_conversion):
8691 Tune heuristic from PR71016 to allow MIN / MAX.
8693 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8695 * config/rs6000/rs6000.md (ieee_128bit_vsx_abs<mode>2): Make this a
8697 (abs<mode>2): Use that name. Simplify.
8699 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8701 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2): Make this a
8703 (neg<mode>2): Use that name. Simplify.
8705 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8707 * config/rs6000/rs6000.md (abs<mode>2_hw): Make this a parameterized
8709 (abs<mode>2): Use that name. Simplify.
8711 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8713 * config/rs6000/rs6000.md (neg<mode>2_hw): Make this a parameterized
8715 (neg<mode>2): Use that name. Simplify.
8717 2019-07-01 Uroš Bizjak <ubizjak@gmail.com>
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.
8725 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8727 * config/rs6000/rs6000.md (extenddf<mode>2): Make this a parameterized
8729 (floatsi<mode>2): Use that name. Simplify.
8731 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8733 * config/rs6000/rs6000.md (extenddf<mode>2_fprs): Make this a
8735 (extenddf<mode>2_vsx): Make this a parameterized name.
8736 (extenddf<mode>2): Use those names. Simplify.
8738 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8740 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Make this a parameterized
8742 (eh_return): Use that name. Simplify.
8744 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8746 * config/rs6000/rs6000.md (ctr<mode>): Make this a parameterized name.
8747 (doloop_end): Use that name. Simplify.
8749 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8751 * config/rs6000/rs6000.md (indirect_jump<mode>_nospec): Make this a
8753 (indirect_jump): Use that name. Simplify.
8755 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8757 * config/rs6000/rs6000.md (abs<mode>2_internal): Make this a
8759 (abs<mode>2): Use that name. Simplify.
8761 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8763 * config/rs6000/rs6000.md (fix_trunc<mode>si2_fprs): Make this a
8765 (fix_trunc<mode>si2): Use that name. Simplify.
8767 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8769 * config/rs6000/rs6000.md (neg<mode>2): Make this a parameterized name.
8770 (allocate_stack): Use that name. Simplify.
8772 2019-07-01 Martin Sebor <msebor@redhat.com>
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.
8784 2019-07-01 Wilco Dijkstra <wdijkstr@arm.com>
8785 John David Anglin <danglin@gcc.gnu.org>
8788 * config/pa/pa.md (builtin_longjmp): Restore hard_frame_pointer_rtx
8789 using saved frame pointer.
8791 2019-07-01 Eric Botcazou <ebotcazou@adacore.com>
8794 * config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last.
8795 Add frame clobber and schedule blockage.
8797 2019-07-01 Sandra Loosemore <sandra@codesourcery.com>
8799 * doc/invoke.texi (Link Options): Further editorial changes to
8800 -flinker-output docs.
8802 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
8804 * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem):
8805 Load both operands of a PLUS into registers separately.
8807 2019-07-01 Andreas Krebbel <krebbel@linux.ibm.com>
8809 * config/s390/vector.md: Fix shift count operand printing.
8811 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
8813 * ira-lives.c (process_bb_node_lives): Use ira_setup_alts.
8815 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
8817 * ira.c (ira_get_dup_out_num): Don't punt for earlyclobbers.
8818 Use recog_data to test for an output operand.
8820 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
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
8825 (ira_get_dup_out_num): Expand comment.
8827 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
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
8834 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
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.
8842 2019-07-01 Martin Liska <mliska@suse.cz>
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
8849 (free_page): Likewise.
8851 2019-07-01 Vladislav Ivanishin <vlad@ispras.ru>
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.
8857 2019-07-01 Richard Biener <rguenther@suse.de>
8859 * tree-ssa-sccvn.c (class pass_fre): Add may_iterate
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.
8865 2019-07-01 Richard Biener <rguenther@suse.de>
8867 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Adjust
8868 TARGET_MEM_REF handling to also handle address-taken ones.
8870 2019-07-01 Hongtao Liu <hongtao.liu@intel.com>
8872 * doc/sourcebuild.texi (Effective-Target Keywords, Other
8873 hardware attributes): Document avx512vp2intersect.
8875 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
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.
8884 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
8886 * config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx
8887 to sse, sse_noavx and avx. Update all uses.
8889 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
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.
8918 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
8920 * expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian
8921 adjustment for bit-fields to all aggregate types.
8923 2019-06-28 Michael Meissner <meissner@linux.ibm.com>
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
8932 (SYMBOL_REF_PCREL_P): Likewise.
8935 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX
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.
8941 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
8943 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
8944 override on extra_headers.
8946 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
8948 * config/darwin-c.c (pop_field_alignment): Quote #pragma options.
8949 * config/darwin-driver.c (darwin_default_min_version): Remove newline
8951 (darwin_driver_init): Likewise.
8953 2019-06-28 Jan Beulich <jbeulich@suse.com>
8955 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
8956 vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>):
8957 Eliminate redundant alternative.
8959 2019-06-28 Jan Beulich <jbeulich@suse.com>
8961 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
8962 vgf2p8affineqb_<mode><mask_name>): Drop % constraint modifier.
8965 2019-06-28 Claudiu Zissulescu <claziss@synopsys.com>
8967 * config/arc/arc.c (arc_rtx_costs): All short instructions are
8968 having a lower cost regardless of the speed option.
8970 2019-06-28 Jan Beulich <jbeulich@suse.com>
8972 * config/i386/sse.md (sse2_cvtpd2pi, sse2_cvttpd2pi): Use
8973 vector_operand plus, on both alternatives, "Bm" constraint.
8975 2019-06-28 Dennis Zhang <dennis.zhang@arm.com>
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
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.
8988 2019-06-27 Ilia Diachkov <ilia.diachkov@optimitech.com>
8990 * doc/install.texi: Document --disable-tm-clone-registry.
8992 2019-06-27 Jakub Jelinek <jakub@redhat.com>
8995 * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT
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.
9003 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
9005 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
9006 user-specified float mode choice for kernel mode code.
9008 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
9010 * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
9013 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
9015 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
9016 use longcall for 64b code.
9018 2019-06-27 Aaron Sawdey <acsawdey@linux.ibm.com>
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
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
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
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
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.
9125 2019-06-27 Bill Schmidt <wschmidt@linux.ibm.com>
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
9132 2019-06-27 David Edelsohn <dje.gcc@gmail.com>
9135 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
9136 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
9138 * config.gcc(rs6000-*-*): Define target_gtfiles.
9140 2019-06-27 Jan Hubicka <jh@suse.cz>
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.
9151 2019-06-27 Martin Liska <mliska@suse.cz>
9153 PR tree-optimization/90974
9154 PR rtl-optimization/90975
9155 PR rtl-optimization/90976
9157 PR tree-optimization/91017
9158 * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove
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
9164 * tree-vect-loop.c (vect_create_epilog_for_reduction):
9165 Remove unused mode1.
9166 * tree-vect-stmts.c (vectorizable_call): Remove dead assignment
9169 2019-06-27 Jakub Jelinek <jakub@redhat.com>
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
9179 2019-06-27 Martin Liska <mliska@suse.cz>
9181 * asan.c (asan_emit_allocas_unpoison): Remove obviously
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):
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.
9219 2019-06-27 Richard Biener <rguenther@suse.de>
9221 * tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS.
9223 2019-06-27 Jun Ma <JunMa@linux.alibaba.com>
9225 PR tree-optimization/89772
9226 * gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in
9227 out-of-bound accesses checking.
9229 2019-06-27 Martin Liska <mliska@suse.cz>
9231 PR tree-optimization/91014
9232 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out
9233 when LHS is NULL_TREE.
9235 2019-06-27 Martin Liska <mliska@suse.cz>
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.
9242 2019-06-27 Kewen Lin <linkw@gcc.gnu.org>
9245 * loop-iv.c (find_simple_exit): Call finite_loop_p to update
9248 2019-06-26 Jeff Law <law@redhat.com>
9250 PR tree-optimization/90883
9251 * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature.
9252 (delete_dead_or_redundant_assignment): Likewise.
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
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
9268 2019-06-26 Uroš Bizjak <ubizjak@gmail.com>
9271 * config/i386/i386.c (ix86_autovectorize_vector_sizes):
9272 Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE.
9274 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
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.
9281 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
9283 * config.gcc (powerpc*-*-linux*): Move target_gtfiles from here..
9284 (powerpc*-*-*) ... to here.
9286 2019-06-26 Jeff Law <law@redhat.com>
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.
9292 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
9294 * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL.
9296 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
9298 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
9300 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
9302 * config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New
9304 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove
9306 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Delete
9309 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
9311 * config/rs6000/rs6000.c: Fix previous commit, it missed some changes.
9313 2019-06-26 Richard Biener <rguenther@suse.de>
9316 * tree-inline.c (remap_ssa_name): Copy SSA range info.
9318 2019-06-26 Richard Biener <rguenther@suse.de>
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.
9329 2019-06-26 Jakub Jelinek <jakub@redhat.com>
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.
9337 2019-06-26 Li Jia He <helijia@linux.ibm.com>
9339 * config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of
9341 * config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI
9344 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
9346 * doc/invoke.texi (Warning Options): Fix some @opindex syntax.
9348 2019-06-26 Martin Liska <mliska@suse.cz>
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
9355 2019-06-26 Martin Liska <mliska@suse.cz>
9357 * bb-reorder.c (connect_better_edge_p): Add missing else
9358 statement in the middle of if-else statements.
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>
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
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.
9410 2019-06-25 Iain Sandoe <iain@sandoe.co.uk>
9412 * config/rs6000/darwin.h (ENDFILE_SPEC): New.
9414 2019-06-25 Bill Seurer <seurer@linux.vnet.ibm.com>
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
9451 (machine_function): Moved to rs6000.h.
9452 (rs6000_stack_t, ALTIVEC_REG_BIT, quad_address_offset_p) Moved to
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
9496 2019-06-25 Martin Liska <mliska@suse.cz>
9498 * hash-table.c (hashtab_chk_error): Move here from ...
9499 * hash-table.h (hashtab_chk_error): ... here.
9501 2019-06-25 Martin Liska <mliska@suse.cz>
9503 PR tree-optimization/90978
9504 * df-scan.c (df_update_entry_block_defs): Remove dead else
9506 (df_update_exit_block_uses): Likewise.
9508 2019-06-25 Kwok Cheung Yeung <kcy@codesourcery.com>
9509 Andrew Stubbs <ams@codesourcery.com>
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.
9515 2019-06-25 Martin Jambor <mjambor@suse.cz>
9518 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
9520 2019-06-25 Richard Biener <rguenther@suse.de>
9522 PR tree-optimization/90930
9523 * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression
9524 into parallel form in the last pass instance.
9526 2019-06-25 Claudiu Zissulescu <claziss@synopsys.com>
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.
9540 2019-06-25 Jozef Lawrynowicz <jozef.l@mittosystems.com>
9542 * config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and
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
9553 2019-06-25 Jan Hubicka <jh@suse.cz>
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.
9558 2019-06-25 Martin Liska <mliska@suse.cz>
9560 PR tree-optimization/90973
9561 * tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval
9562 of prologue and epilogue.
9564 2019-06-24 Jan Hubicka <jh@suse.cz>
9566 * ipa-utils.h (type_with_linkage_p): Verify that type is
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):
9573 * tree-streamer-out.c (pack_ts_type_common_value_fields):
9575 * print-tree.c (print_node): Print cxx-odr-p
9577 * tree.c (need_assembler_name_p): Also check that type
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.
9587 2019-06-24 Richard Biener <rguenther@suse.de>
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.
9593 2019-06-24 Richard Biener <rguenther@suse.de>
9595 PR tree-optimization/90930
9596 PR tree-optimization/90316
9597 * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing
9600 2019-06-24 Martin Sebor <msebor@redhat.com>
9602 * tree-pretty-print.h: Remove unnecessary punctuation characters
9604 * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional.
9606 2019-06-24 Jonathan Wakely <jwakely@redhat.com>
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.
9612 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
9614 * config/rs6000/darwin.h: Handle GCC target pragma.
9616 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
9618 * config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
9620 2019-06-22 Jeff Law <law@redhat.com>
9622 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
9624 2019-06-22 Jan Hubicka <jh@suse.cz>
9626 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not
9627 give up on bitfields; continue searching for different refs
9630 2019-06-21 Jakub Jelinek <jakub@redhat.com>
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.
9638 2019-06-21 Richard Biener <rguenther@suse.de>
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.
9644 2019-06-21 Matthew Beliveau <mbelivea@redhat.com>
9646 PR c++/90875 - added -Wswitch-outside-range option
9647 * doc/invoke.texi (Wswitch-outside-range): Document.
9649 2019-06-21 Jeff Law <law@redhat.com>
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.
9655 2019-06-21 Richard Biener <rguenther@suse.de>
9658 * dwarf2out.c (prune_unused_types_walk): Always consider
9659 function-local extern declarations as used.
9661 2019-06-21 Richard Biener <rguenther@suse.de>
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.
9667 2019-06-21 Jakub Jelinek <jakub@redhat.com>
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.
9684 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
9685 "omp simd array" arrays with one byte elements.
9687 2019-06-20 Uroš Bizjak <ubizjak@gmail.com>
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.
9712 2019-06-20 Richard Earnshaw <rearnsha@arm.com>
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.
9722 2019-06-20 Marek Polacek <polacek@redhat.com>
9724 * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name.
9726 2019-06-20 Michael Meissner <meissner@linux.ibm.com>
9728 * config/rs6000/rs6000.md (isa attribute): Add support for
9729 for a future processor.
9731 2019-06-20 H.J. Lu <hongjiu.lu@intel.com>
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.
9741 2019-06-20 Jan Hubicka <jh@suse.cz>
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.
9747 2019-06-20 Martin Liska <mliska@suse.cz>
9749 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease
9752 2019-06-20 Jakub Jelinek <jakub@redhat.com>
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.
9761 2019-06-20 Alexandre Oliva <oliva@adacore.com>
9763 * config.gcc: Fix ARM --with-fpu checking and error message.
9765 2019-06-19 Marek Polacek <polacek@redhat.com>
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
9771 (attr_noreturn_exclusions): Make it extern.
9772 * attribs.h (get_attribute_namespace): Declare.
9773 * tree-inline.c (function_attribute_inlinable_p): Use
9776 2019-06-19 Martin Sebor <msebor@redhat.com>
9778 PR tree-optimization/90626
9779 * tree-ssa-strlen.c (strxcmp_unequal): Fix typos.
9781 PR tree-optimization/90626
9782 * tree-ssa-strlen.c (strxcmp_unequal): New function.
9783 (handle_builtin_string_cmp): Call it.
9785 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
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
9798 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
9800 * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
9801 in computing the number of options to be moved.
9803 2019-06-19 Maya Rashish <coypu@sdf.org>
9805 * config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition.
9806 (CLEAR_INSN_CACHE) Use it.
9808 2019-06-19 Uroš Bizjak <ubizjak@gmail.com>
9810 * config/i386/i386.md (cmpstrnsi): Remove dead code.
9812 2019-06-19 Wilco Dijkstra <wdijkstr@arm.com>
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
9819 * function.c (expand_function_start): Save hard_frame_pointer_rtx for
9821 * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp
9823 (remove_reg_equal_offset_note): Remove unused function.
9824 * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination
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.
9840 2019-06-19 Jakub Jelinek <jakub@redhat.com>
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
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
9857 * config/i386/sse.md (vec_shl_<mode>): New expander.
9859 * omp-low.c (lower_rec_input_clauses): Handle references properly
9861 (lower_omp_scan): Likewise.
9863 2019-06-19 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
9865 * tree-ssa-address.c (preferred_mem_scale_factor): Handle when
9866 mem_mode is BLKmode.
9868 2019-06-18 Max Filippov <jcmvbkbc@gmail.com>
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.
9875 2019-06-18 Thomas Schwinge <thomas@codesourcery.com>
9878 * omp-low.c (check_omp_nesting_restrictions): Handle
9879 GF_OMP_TARGET_KIND_OACC_DECLARE.
9881 2019-06-18 Uroš Bizjak <ubizjak@gmail.com>
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.
9908 2019-06-18 Jason Merrill <jason@redhat.com>
9910 * tree.c (build_constructor): Add MEM_STAT_DECL.
9912 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
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.
9928 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
9930 * config/aarch64/aarch64-sve.md: Tabify file.
9932 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
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.
9938 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
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.
9948 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
9949 Kugan Vivekanandarajah <kuganv@linaro.org>
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).
9956 2019-06-18 Richard Biener <rguenther@suse.de>
9959 * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
9960 as if optimized away.
9962 2019-06-18 Tom de Vries <tdevries@suse.de>
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>"):
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.
9974 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
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.
9984 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
9986 * config/darwin.c: Strip trailing whitespace.
9988 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
9990 * config/darwin.c (darwin_emit_unwind_label): New default to false.
9991 (darwin_override_options): Set darwin_emit_unwind_label as needed.
9993 2019-06-18 Martin Jambor <mjambor@suse.cz>
9996 * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the
9997 caller does not have flag_ipa_cp set.
9999 2019-06-18 Alejandro Martinez <alejandro.martinezvicente@arm.com>
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.
10013 2019-06-18 Kewen Lin <linkw@gcc.gnu.org>
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.
10025 2019-06-17 Jakub Jelinek <jakub@redhat.com>
10027 * omp-low.c (struct omp_context): Add scan_inclusive field.
10028 (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive
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
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
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
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
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
10058 (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0.
10059 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1.
10061 2019-06-17 Uroš Bizjak <ubizjak@gmail.com>
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.
10069 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
10071 PR bootstrap/90873.
10072 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
10075 2019-06-17 Tom de Vries <tdevries@suse.de>
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
10081 (define_insn "set_softstack_<mode>"): ... this. Use P iterator on
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
10093 2019-06-17 Matthew Green <mrg@eterna.com.au>
10094 Maya Rashish <coypu@sdf.org>
10096 * config.gcc (aarch64*-*-netbsd*): New target.
10097 * config/aarch64/aarch64-netbsd.h: New file.
10098 * config/aarch64/t-aarch64-netbsd: Likewise.
10100 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
10102 * tree-ssa-alias.c (aliasing_component_refs_p): Consider only
10103 the access path from base to first VIEW_CONVERT_EXPR or
10106 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
10108 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate
10109 access path on BIT_FIELD_REFs.
10111 2019-06-17 Martin Liska <mliska@suse.cz>
10114 * ipa-utils.h (odr_type_p): Remove dead code.
10116 2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10118 * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
10119 alternative Solaris 11.4 format.
10120 * configure: Regenerate.
10122 2019-06-17 Tom de Vries <tdevries@suse.de>
10124 * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ...
10125 (define_insn "call_insn_<mode>"): ... this. Use P iterator on
10127 (define_insn "call_value_insn"): Rename to ...
10128 (define_insn "call_value_insn_<mode>"): this. Use P iterator on
10130 (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to
10133 2019-06-16 John David Anglin <danglin@gcc.gnu.org>
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.
10140 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
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.
10148 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
10150 * doc/sourcebuild.texi: Document new effective target keyword
10153 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
10155 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p,
10156 indirect_refs_may_alias_p): Revert accidental commits.
10158 * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays
10159 at the end of structures.
10161 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
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.
10178 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
10180 * config/darwin.opt (prebind, noprebind, seglinkedit,
10181 noseglinkedit): Add RejectNegative.
10183 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
10185 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto
10186 in my previous patch.
10188 2019-06-16 Tom de Vries <tdevries@suse.de>
10190 PR tree-optimization/89376
10191 * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.
10193 2019-06-15 Maya Rashish <coypu@sdf.org>
10195 * doc/invoke.texi (Spec Files): Update location of the
10198 2019-06-15 Gerald Pfeifer <gerald@pfeifer.com>
10200 * doc/extend.texi (Common Function Attributes): Clarify
10201 no_sanitize. Fix grammar.
10203 2019-06-15 Jan Hubicka <hubicka@ucw.cz>
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
10215 2019-06-15 Uroš Bizjak <ubizjak@gmail.com>
10217 * config/i386/i386.md (and<mode>3): Generate zero-extends for
10218 TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))
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.
10226 2019-06-15 Jakub Jelinek <jakub@redhat.com>
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
10234 2019-06-15 Tom de Vries <tdevries@suse.de>
10236 PR tree-optimization/90009
10237 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
10238 Return NULL if bb contains IFN_UNIQUE.
10240 2019-06-14 Segher Boessenkool <segher@kernel.crashing.org>
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,
10248 (isel_reversed_<un>signed_<GPR:mode>): ... this. New define_insn.
10250 2019-06-14 Iain Sandoe <iain@sandoe.co.uk>
10252 * config/darwin.opt: Add RejectNegative where needed, reorder
10253 and add minimal functional descriptions.
10255 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
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.
10265 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
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
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>
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
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.
10293 2019-06-14 Richard Biener <rguenther@suse.de>
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.
10302 2019-06-14 Feng Xue <fxue@os.amperecomputing.com>
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
10313 2019-06-13 Martin Sebor <msebor@redhat.com>
10315 PR tree-optimization/90662
10316 * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
10319 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
10322 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
10323 dbase is not TARGET_MEM_REF.
10325 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
10327 * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
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.
10338 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
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
10344 (ix86_adjust_counter): Ditto.
10346 2019-06-13 Jiufu Guo <guojiufu@linux.ibm.com>
10347 Lijia He <helijia@linux.ibm.com>
10349 PR tree-optimization/77820
10350 * tree-ssa-threadedge.c
10351 (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
10353 (thread_across_edge): Add call to
10354 edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.
10356 2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
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.
10362 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
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.
10369 2019-06-13 Richard Biener <rguenther@suse.de>
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.
10375 2019-06-13 Jakub Jelinek <jakub@redhat.com>
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.
10381 2019-06-13 Richard Biener <rguenther@suse.de>
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.
10390 2019-06-13 Aldy Hernandez <aldyh@redhat.com>
10392 * gimple-loop-versioning.cc (prune_loop_conditions): Use
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.
10404 2019-06-13 Claudiu Zissulescu <claziss@synopsys.com>
10406 * doc/extend.texi (ARC Function Attributes): Update info.
10408 2019-06-13 Feng Xue <fxue@os.amperecomputing.com>
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
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+.
10421 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
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.
10433 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
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
10444 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
10446 * config/aarch64/iterators.md (ADDSUB): Fix typo in comment.
10448 2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu>
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.
10468 2019-06-12 Martin Sebor <msebor@redhat.com>
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.
10475 2019-06-12 Martin Sebor <msebor@redhat.com>
10477 PR tree-optimization/90662
10478 * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
10481 2019-06-12 Tom de Vries <tdevries@suse.de>
10483 PR tree-optimization/90009
10484 * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
10486 2019-06-12 Martin Liska <mliska@suse.cz>
10488 * ggc-common.c (ggc_prune_overhead_list): Do not sanitize
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.
10494 2019-06-12 Aldy Hernandez <aldyh@redhat.com>
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.
10503 2019-06-12 Jakub Jelinek <jakub@redhat.com>
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
10514 (expand_one_var): Pass really_expand through to add_stack_var.
10516 2019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
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.
10523 2019-06-12 Martin Liska <mliska@suse.cz>
10525 * value-prof.c (stream_out_histogram_value): Only first value
10528 2019-06-12 Jakub Jelinek <jakub@redhat.com>
10531 * symtab.c (symtab_node::set_section): Allow being called on aliases
10532 as long as they aren't analyzed yet.
10534 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com>
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.
10540 2019-06-11 Michael Meissner <meissner@linux.ibm.com>
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.
10550 2019-06-11 Jakub Jelinek <jakub@redhat.com>
10553 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
10554 instead of and.u%d.
10556 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
10558 * match.pd (X/[ex]4<Y/[ex]4): Handle conversions.
10560 2019-06-11 Matthew Beliveau <mbelivea@redhat.com>
10562 PR c++/90449 - add -Winaccessible-base option.
10563 * doc/invoke.texi (Winaccessible-base): Document.
10565 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
10567 PR tree-optimization/62041
10568 * fold-const.c (fold_real_zero_addition_p): Handle vectors.
10570 2019-06-11 Jason Merrill <jason@redhat.com>
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
10577 2019-06-11 Jakub Jelinek <jakub@redhat.com>
10580 * trans-mem.c (tm_memopt_compute_available): Add assertion
10581 that blocks is not empty. Formatting fix.
10583 2019-06-11 Martin Liska <mliska@suse.cz>
10586 * hash-table.h: Extend create_gcc, add one parameter
10587 that is passed into hash_table::hash_table.
10589 2019-06-10 Uroš Bizjak <ubizjak@gmail.com>
10591 * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
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.
10628 2019-06-10 Martin Sebor <msebor@redhat.com>
10630 * gimple-fold.c (get_range_strlen): Update comment that didn't
10631 make it into r267503 or related commits.
10633 2019-06-10 Vladislav Ivanishin <vlad@ispras.ru>
10635 * gcov-tool.c (merge_usage, rewrite_usage): Mark with
10636 ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
10638 2019-06-10 Jakub Jelinek <jakub@redhat.com>
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
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
10682 (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
10685 2019-06-10 Martin Liska <mliska@suse.cz>
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
10696 * ipa-utils.c (searchc): Refactor.
10697 * ipa-utils.h: Fix coding style.
10699 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
10701 * config/arc/arc.c (arc_rtx_costs): Update costs.
10703 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
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.
10727 (C0x): New pattern.
10728 (Cax): New pattern.
10730 2019-06-10 Martin Liska <mliska@suse.cz>
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
10738 2019-06-10 Martin Liska <mliska@suse.cz>
10740 * value-prof.c (dump_histogram_value): Change dump format.
10741 (gimple_mod_subtract_transform): Remove legacy comment.
10743 2019-06-10 Martin Liska <mliska@suse.cz>
10745 * value-prof.c (dump_histogram_value): Print histogram values
10748 2019-06-10 Martin Liska <mliska@suse.cz>
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
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.
10772 2019-06-10 Martin Liska <mliska@suse.cz>
10774 * hash-map.h: Pass default value to hash_table ctor.
10775 * hash-table.h: Add default value to call of a ctor.
10777 2019-06-08 Jonathan Wakely <jwakely@redhat.com>
10779 * doc/invoke.texi (C Dialect Options): Minor grammatical change.
10780 (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
10782 2019-06-07 John David Anglin <danglin@gcc.gnu.orig>
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
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.
10798 2019-06-07 Aldy Hernandez <aldyh@redhat.com>
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
10810 * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
10812 * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
10814 2019-06-07 Jakub Jelinek <jakub@redhat.com>
10816 * Makefile.in (genprogerr): Add condmd.
10817 (genprog): Remove it here.
10819 2019-06-07 Andrew Stubbs <ams@codesourcery.com>
10821 * doc/invoke.texi (AMD GCN Options): Add gfx906.
10823 2019-06-07 Richard Biener <rguenther@suse.de>
10826 * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
10827 that appear after user labels.
10829 2019-06-07 Martin Liska <mliska@suse.cz>
10831 * cselib.c (cselib_init): Disable hash table
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
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.
10843 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
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
10865 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
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;
10875 2019-06-07 Richard Sandiford <richard.sandiford@arm.com>
10877 * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
10879 2019-06-07 Martin Liska <mliska@suse.cz>
10881 * doc/invoke.texi: Remove param.
10882 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
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.
10900 2019-06-07 Martin Liska <mliska@suse.cz>
10902 * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
10905 2019-06-07 Martin Liska <mliska@suse.cz>
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):
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.
10939 2019-06-06 Jim Wilson <jimw@sifive.com>
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.
10946 2019-06-06 Martin Sebor <msebor@redhat.com>
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.
10957 2019-06-06 Martin Jambor <mjambor@suse.cz>
10959 * tree-sra.c (build_reconstructed_reference): Drop the alignment
10962 2019-06-06 Martin Jambor <mjambor@suse.cz>
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.
10975 2019-06-06 Andrew Stubbs <ams@codesourcery.com>
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.
10983 2019-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
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
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.
10996 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
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.
11006 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com>
11008 PR rtl-optimization/88751
11009 * ira.c (ira): Use the number of the actually referenced registers
11010 when calculating the threshold.
11012 2019-06-06 Jakub Jelinek <jakub@redhat.com>
11014 * configure: Regenerate.
11016 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
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
11021 (ashrhi3): Likewise.
11022 (lshrhi3): Likewise.
11024 2019-06-06 Martin Liska <mliska@suse.cz>
11026 PR tree-optimization/87954
11027 * match.pd: Simplify mult where both arguments are 0 or 1.
11029 2019-06-06 Richard Biener <rguenther@suse.de>
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
11037 2019-06-06 Richard Biener <rguenther@suse.de>
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
11043 (find_func_aliases): Delay processing of simple enough returns
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.
11052 2019-06-06 Martin Liska <mliska@suse.cz>
11055 * doc/install.texi: Fix HTML headers and
11056 titles for 'Installing GCC' pages.
11058 2019-06-06 Martin Liska <mliska@suse.cz>
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
11069 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
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.
11076 2019-06-05 Martin Sebor <msebor@redhat.com>
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.
11098 2019-06-05 Richard Henderson <rth@twiddle.net>
11100 * config/alpha/alpha.c (direct_return): Move down after
11101 struct machine_function definition; use saved frame_size;
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.
11117 2019-06-05 Eric Botcazou <ebotcazou@adacore.com>
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.
11124 2019-06-05 Jakub Jelinek <jakub@redhat.com>
11127 * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
11128 with VOIDmode inner operands.
11130 2019-06-05 Richard Biener <rguenther@suse.de>
11132 PR middle-end/90726
11133 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
11134 turn an expression graph into a tree.
11136 2019-06-05 Jakub Jelinek <jakub@redhat.com>
11138 * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
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
11146 * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
11147 references, lookup in in hash map MEM_REF operand instead of the
11149 (lower_omp_1): When looking for lastprivate conditional assignments,
11150 handle MEM_REFs with REFERENCE_TYPE operands.
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.
11161 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
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):
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.
11179 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11181 * config/rs6000/constraints.md (define_register_constraint "wp"):
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.
11194 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11196 * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
11197 (define_attr "enabled"): Handle those new isa values.
11199 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
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.
11214 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11216 * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
11218 * config/rs6000/vsx.md (define_mode_attr VSs): Delete.
11219 (rest of file): Adjust.
11221 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11223 * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
11224 (vsx_extract_<mode>_var): Ditto.
11226 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11228 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
11231 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11233 * config/rs6000/constraints.md (define_register_constraint "ww"):
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.
11243 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
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.
11254 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11256 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
11259 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
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".
11265 2019-06-04 Bill Schmidt <wschmidt@linux.ibm.com>
11268 * config/rs6000/altivec.h: Don't #define vector, pixel, bool for
11269 C++ with strict ANSI requirements.
11271 2019-06-04 Marc Glisse <marc.glisse@inria.fr>
11273 * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
11274 computations when step is 1.
11276 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11278 * config/rs6000/constraints.md (define_register_constraint "wf"):
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.
11288 2019-06-04 Andrew Pinski <apinski@marvell.com>
11290 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
11293 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11295 * config/rs6000/constraints.md (define_register_constraint "wd"):
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.
11305 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11307 * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
11308 (rest of file): Adjust.
11310 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
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.
11316 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11318 * config/rs6000/constraints.md (define_register_constraint "ws"):
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.
11328 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11330 * config/rs6000/constraints.md (define_register_constraint "wv"):
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.
11340 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
11342 * config/rs6000/constraints.md (define_register_constraint "wi"):
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.
11353 2019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
11355 * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
11357 * config/aarch64/aarch64.c (aarch64_asm_output_external): Call
11358 default_elf_asm_output_external.
11360 2019-06-04 Martin Liska <mliska@suse.cz>
11362 * ipa-icf.c (INCLUDE_LIST): Remove.
11363 (sem_item_optimizer::execute): Remove call to init_wpa.
11364 * ipa-icf.h (init_wpa): Remove.
11366 2019-06-04 Jakub Jelinek <jakub@redhat.com>
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
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
11387 2019-06-04 Martin Liska <mliska@suse.cz>
11389 * value-prof.c (dump_histogram_value): Fix typo.
11390 (gimple_mod_subtract_transform): Likewise.
11392 2019-06-04 Richard Biener <rguenther@suse.de>
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):
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.
11409 2019-06-04 Richard Biener <rguenther@suse.de>
11411 PR tree-optimization/90738
11413 2019-06-03 Richard Biener <rguenther@suse.de>
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.
11424 2019-06-04 Martin Liska <mliska@suse.cz>
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
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.
11435 2019-06-04 Martin Liska <mliska@suse.cz>
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
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
11451 (sem_item_optimizer::read_section): Remove useless
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
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.
11467 2019-06-04 Alan Modra <amodra@gmail.com>
11470 * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge
11473 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
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
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.
11493 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
11495 * config/rs6000/constraints.md (define_register_constraint "wg"):
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.
11505 2019-06-03 Alan Modra <amodra@gmail.com>
11507 * bb-reorder.c (copy_bb_p): Don't overflow size calculation.
11508 (get_uncond_jump_length): Assert length less than INT_MAX and
11511 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
11513 PR middle-end/64242
11514 * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule
11516 (expand_builtin_nonlocal_goto): Likewise.
11518 2019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
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.
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
11550 (extract_range_from_unary_expr): Same.
11551 (union_helper): Same.
11552 * vr-values.c (get_value_range): Use set_*zero instead of
11554 (vr_values::extract_range_from_binary_expr): Same.
11555 (vr_values::extract_range_basic): Same.
11557 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
11560 * opts.c (parse_and_check_align_values): Allow 4 alignment values.
11562 2019-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11564 * config/aarch64/iterators.md (MAX_OPP): New code attr.
11565 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3):
11567 (aarch64_<su>abd<mode>_3): ... This.
11568 (<sur>sadv16qi): Add TARGET_DOTPROD expansion.
11570 2019-06-03 Richard Biener <rguenther@suse.de>
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.
11581 2019-06-03 Martin Liska <mliska@suse.cz>
11583 * doc/generic.texi: Remove Java Trees.
11585 2019-06-03 Martin Liska <mliska@suse.cz>
11587 * fold-const.c (operand_equal_p): Fix typo as compare_tree_int
11588 returns 0 when operands are equal.
11590 2019-06-03 Richard Biener <rguenther@suse.de>
11592 PR tree-optimization/90716
11593 * tree-loop-distribution.c (destroy_loop): Process blocks in
11596 2019-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11599 * vector-builder.h (vector_builder::count_dups): New method.
11600 * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
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.
11610 2019-06-03 Alejandro Martinez <alejandro.martinezvicente@arm.com>
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.
11617 2019-06-03 Martin Liska <mliska@suse.cz>
11619 * cfg.c (debug): Use TDF_DETAILS for debug and
11620 print edge info only once.
11622 2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org>
11625 * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
11627 2019-06-01 Martin Sebor <msebor@redhat.com>
11629 PR middle-end/90694
11630 * tree-pretty-print.c (dump_generic_node): Add parentheses.
11632 2019-05-31 Jan Hubicka <jh@suse.cz>
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.
11639 2019-05-31 H.J. Lu <hongjiu.lu@intel.com>
11640 Hongtao Liu <hongtao.liu@intel.com>
11643 * config/i386/i386-features.c (rest_of_insert_endbranch): Remove
11644 NOTE_INSN_DELETED_LABEL check.
11646 2019-05-31 Prachi Godbole <prachi.godbole@imgtec.com>
11647 Robert Suchanek <robert.suchanek@mips.com>
11649 * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
11650 and 3rd operands of the fmadd/fmsub/maddv builtin.
11652 2019-05-31 Jakub Jelinek <jakub@redhat.com>
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
11661 (lower_rec_input_clauses): Likewise. Handle lastprivate conditional
11663 (lower_lastprivate_conditional_clauses): Handle lastprivate conditional
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.
11674 * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
11677 2019-05-31 Xiong Hu Luo <luoxhu@linux.ibm.com>
11680 * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
11681 TEX_D32, TEX_D64 or TEX_D128.
11683 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
11685 * match.pd (~(vec?cst1:cst2)): New transformation.
11687 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
11689 * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
11690 ((size_t)(A /[ex] B) CMP C): New transformation.
11692 2019-05-31 Richard Sandiford <richard.sandiford@arm.com>
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.
11710 2019-05-31 Jan Hubicka <jh@suse.cz>
11712 * tree-ssa-alias.c (type_has_components_p): New function.
11713 (aliasing_component_refs_p): Use it.
11715 2019-05-31 Martin Liska <mliska@suse.cz>
11717 * gdbhooks.py: Add const_tree to TreePrinter.
11719 2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
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'.
11726 2019-05-31 Jakub Jelinek <jakub@redhat.com>
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.
11734 2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
11736 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
11738 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
11739 Michael Meissner <meissner@linux.ibm.com>
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
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.
11753 2019-05-30 Jakub Jelinek <jakub@redhat.com>
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
11762 * omp-general.h (struct omp_for_data): Add have_pointer_condtemp
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.
11783 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
11784 Michael Meissner <meissner@linux.ibm.com>
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.
11792 2019-05-30 Sylvia Taylor <sylvia.taylor@arm.com>
11794 * config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
11796 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
11797 Michael Meissner <meissner@linux.ibm.com>
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.
11811 2019-05-30 Sam Tebbs <sam.tebbs@arm.com>
11813 * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
11814 cfun->is_thunk check.
11816 2019-05-30 Jakub Jelinek <jakub@redhat.com>
11818 * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
11821 2019-05-30 Martin Liska <mliska@suse.cz>
11823 * gdbinit.in: Fix 'ptc' command. Add trt
11824 that prints TREE_TYPE($).
11826 2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com>
11827 Alan Modra <amodra@gmail.com>
11829 * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
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.
11855 2019-05-29 Uroš Bizjak <ubizjak@gmail.com>
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>.
11865 2019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp>
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,
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
11878 2019-05-29 Jan Hubicka <jh@suse.cz>
11880 * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
11881 variants are pointer equivalent.
11883 2019-05-29 Alejandro Martinez <alejandro.martinezvicente@arm.com>
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.
11893 2019-05-29 Jakub Jelinek <jakub@redhat.com>
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.
11903 2019-05-29 Sam Tebbs <sam.tebbs@arm.com>
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.
11948 2019-05-29 Jakub Jelinek <jakub@redhat.com>
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.
11958 2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com>
11959 Michael Meissner <meissner@linux.ibm.com>
11961 * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
11963 2019-05-28 Michael Meissner <meissner@linux.ibm.com>
11965 * rtl.h (LABEL_REF_P): New #define.
11967 2019-05-28 John David Anglin <danglin@gcc.gnu.org>
11969 * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
11971 2019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com>
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
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
11989 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise.
11991 2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
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.
12005 2019-05-28 Nathan Sidwell <nathan@acm.org>
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.
12016 2019-05-28 Martin Liska <mliska@suse.cz>
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.
12026 2019-05-28 Martin Liska <mliska@suse.cz>
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.
12033 2019-05-27 Jakub Jelinek <jakub@redhat.com>
12035 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
12036 on sections construct.
12037 * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
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.
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.
12048 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
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.
12072 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
12074 * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
12075 and DW_OP_GNU_const_index opcodes.
12077 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
12079 * config/i386/i386.h (STACK_SIZE_MODE): Define.
12081 2019-05-27 Richard Biener <rguenther@suse.de>
12083 PR tree-optimization/90637
12084 * tree-ssa-sink.c (statement_sink_location): Honor the
12085 computed sink location for single-uses.
12087 2019-05-27 Richard Biener <rguenther@suse.de>
12089 PR middle-end/90610
12090 * match.pd (vec_perm): Avoid clobbering op0 when not generating
12093 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
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.
12122 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
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.
12139 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
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.
12177 2019-05-26 Gerald Pfeifer <gerald@pfeifer.com>
12179 * doc/invoke.texi (Link Options): Many editorial changes around
12182 2019-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12184 * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
12185 pre-Solaris 11 referene and most Studio compiler details.
12187 2019-05-24 John David Anglin <danglin@gcc.gnu.org>
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.
12195 2019-05-24 Jakub Jelinek <jakub@redhat.com>
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
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
12214 * omp-general.c (omp_extract_for_data): Initialize it.
12215 * omp-low.c (struct omp_context): Add lastprivate_conditional_map
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
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_
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
12242 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
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.
12248 2019-05-24 Jason Merrill <jason@redhat.com>
12251 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
12253 2019-05-24 Richard Biener <rguenther@suse.de>
12256 * tree-loop-distribution.c (struct partition): Add location
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.
12265 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
12267 * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
12270 2019-05-24 Matthew Malcomson <matthew.malcomson@arm.com>
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.
12280 2019-05-24 Jakub Jelinek <jakub@redhat.com>
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
12288 2019-05-23 Iain Sandoe <iain@sandoe.co.uk>
12290 * config/i386/darwin.h: Reject -mfentry*.
12291 * doc/sourcebuild.texi: Document mfentry target support.
12293 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
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.
12304 2019-05-23 Uroš Bizjak <ubizjak@gmail.com>
12307 * config/i386/i386.c (gen_rtx_cost):
12308 Use ix86_tune_cost instead of ix86_cost.
12310 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
12311 Michael Meissner <meissner@linux.ibm.com>
12312 Segher Boessenkool <segher@kernel.crashing.org>
12314 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
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.
12327 2019-05-23 Jan Hubicka <jh@suse.cz>
12328 Martin Liska <mliska@suse.cz>
12330 PR tree-optimization/90576
12331 * tree-ssa-alias.c (compare_sizes): Remove dead calls to
12333 (aliasing_component_refs_p): Fix three way size compare conditional;
12334 give up earlier in case we can not decide on equivalence.
12336 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
12337 Michael Meissner <meissner@linux.ibm.com>
12338 Segher Boessenkool <segher@kernel.crashing.org>
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
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
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.
12366 2019-05-23 Martin Liska <mliska@suse.cz>
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 &.
12373 2019-05-23 Jonathan Wakely <jwakely@redhat.com>
12376 * doc/extend.texi (Function Names): Add missing word.
12378 2019-05-23 Richard Biener <rguenther@suse.de>
12380 PR tree-optimization/88440
12381 * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
12383 * tree-loop-distribution.c (generate_memset_builtin): Fold the
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.
12391 2019-05-23 Jakub Jelinek <jakub@redhat.com>
12394 * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
12397 2019-05-23 Martin Liska <mliska@suse.cz>
12400 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
12401 expression similarly to gimplify_decl_expr.
12403 2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12405 * cse.c (cse_dump_path): s/dump_file/f.
12407 2019-05-22 David Malcolm <dmalcolm@redhat.com>
12410 * diagnostic-format-json.cc: Include "selftest.h".
12411 (json_from_expanded_location): Only add "file" key for non-NULL
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
12427 2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com>
12428 Andrew Stubbs <amd@codesourcery.com>
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.
12448 2019-05-22 Andrew Stubbs <ams@codesourcery.com>
12450 * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
12452 2019-05-22 Jason Merrill <jason@redhat.com>
12454 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
12456 2019-05-22 H.J. Lu <hongjiu.lu@intel.com>
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.
12472 2019-05-22 Uroš Bizjak <ubizjak@gmail.com>
12474 * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
12476 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com>
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.
12502 2019-05-22 Richard Biener <rguenther@suse.de>
12504 * alias.c (ao_ref_from_mem): Move stack-slot sharing
12506 * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
12508 2019-05-22 Martin Liska <mliska@suse.cz>
12511 * doc/extend.texi: Document the change.
12513 2019-05-22 Richard Biener <rguenther@suse.de>
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.
12521 2019-05-22 Richard Biener <rguenther@suse.de>
12523 * gimple-fold.c (arith_code_with_undefined_signed_overflow):
12525 (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
12528 2019-05-22 Alan Modra <amodra@gmail.com>
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
12536 (rs6000_output_function_prologue): Emit .machine as necessary.
12538 2019-05-22 Hans-Peter Nilsson <hp@axis.com>
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.
12544 * function.c (assign_parm_setup_block): Raise alignment of
12545 stacked parameter only for STRICT_ALIGNMENT targets.
12547 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
12549 * config/rs6000/constraints.md (define_register_constraint "wz"):
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.
12558 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
12560 * config/rs6000/constraints.md (define_register_constraint "wl"):
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.
12569 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
12571 * config/rs6000/constraints.md (define_register_constraint "wm"):
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.
12580 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
12582 * config/rs6000/constraints.md (define_register_constraint "wk"):
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.
12591 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
12593 * config/rs6000/constraints.md (define_register_constraint "wj"):
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".
12601 * config/rs6000/vsx.md: Ditto.
12602 * doc/md.texi (Machine Constraints): Adjust.
12604 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
12606 * config/rs6000/constraints.md (define_register_constraint "wh"):
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.
12615 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
12618 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
12619 Avoid calling gen_lowpart with CONST operand.
12621 2019-05-21 Alexandre Oliva <aoliva@redhat.com>
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.
12628 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
12630 * config/i386/sse.md (VF1_AVX2): New mode iterator.
12631 (signbit<mode>2): New expander
12633 2019-05-21 James Clarke <jrtc27@jrtc27.com>
12636 * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
12637 instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
12639 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
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.
12645 2019-05-21 Alan Modra <amodra@gmail.com>
12648 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
12649 power9 direct move cost.
12651 2019-05-21 Richard Biener <rguenther@suse.de>
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.
12660 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
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.
12674 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
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
12682 2019-05-21 Martin Liska <mliska@suse.cz>
12684 * config/rs6000/driver-rs6000.c (elf_platform): Do not use
12686 * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
12687 (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
12689 * config/rs6000/rs6000.c (rs6000_option_override_internal):
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.
12698 2019-05-20 Jakub Jelinek <jakub@redhat.com>
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
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
12715 2019-05-20 Marc Glisse <marc.glisse@inria.fr>
12717 PR rtl-optimization/43147
12718 * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
12719 IX86_BUILTIN_SHUFPD.
12721 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
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.
12727 2019-05-20 Richard Biener <rguenther@suse.de>
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.
12734 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
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.
12741 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12743 * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
12745 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12747 * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
12748 (LIBLSAN_EARLY_SPEC): Likewise.
12749 * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
12751 2019-05-20 Martin Liska <mliska@suse.cz>
12753 * config/i386/i386.c (ix86_libc_has_fast_function):
12754 Add ATTRIBUTE_UNUSED for the argument.
12756 2019-05-20 Richard Biener <rguenther@suse.de>
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
12762 * fold-const.c (fold_vec_perm): Export.
12763 (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
12764 (match.pd): ...here.
12766 2019-05-20 Jakub Jelinek <jakub@redhat.com>
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
12776 (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
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
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
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.
12797 2019-05-20 Martin Liska <mliska@suse.cz>
12799 * targhooks.c (default_libc_has_fast_function): New function.
12800 * targhooks.h (default_libc_has_fast_function): Likewise.
12802 2019-05-20 Martin Liska <mliska@suse.cz>
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.
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.
12816 2019-05-20 Martin Liska <mliska@suse.cz>
12818 * profile-count.c: Add vertical spacing in order
12819 to separate functions.
12820 * profile-count.h: Likewise.
12822 2019-05-20 Martin Liska <mliska@suse.cz>
12824 * profile-count.h: Do not use full qualified
12826 * profile-count.c (profile_count::to_frequency): Likewise.
12828 2019-05-20 Martin Liska <mliska@suse.cz>
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.
12834 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
12836 * config/rs6000/constraints.md (define_register_constraint "wH"):
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.
12848 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
12850 * config/rs6000/constraints.md (define_register_constraint "wy"):
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.
12862 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
12864 * config/rs6000/constraints.md (define_register_constraint "wu"):
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",
12872 (define_mode_attr Fa): Delete.
12873 * config/rs6000/vsx.md: Ditto.
12874 * doc/md.texi (Machine Constraints): Adjust.
12876 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
12878 * config/rs6000/constraints.md (define_register_constraint "wJ"):
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.
12890 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
12892 * config/rs6000/constraints.md (define_register_constraint "wb"):
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.
12902 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
12904 * config/rs6000/constraints.md (define_register_constraint "wo"):
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.
12914 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
12916 * config/darwin-c.c (darwin_register_objc_includes): Do not
12917 prepend the sysroot when building gnu-runtime header search
12920 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
12922 * config/darwin.c (darwin_file_end): Use switch_to_section ()
12923 instead of direct output of the asm.
12925 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
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.
12933 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
12935 * config/rs6000/rs6000.md (isa): New attribute.
12936 (enabled): New attribute.
12938 2019-05-17 Max Filippov <jcmvbkbc@gmail.com>
12940 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
12941 assemble_start_function and assemble_end_function.
12943 2019-05-17 Thomas Schwinge <thomas@codesourcery.com>
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.
12950 PR middle-end/89433
12951 * omp-general.c (oacc_build_routine_dims): Move some of its
12953 (oacc_verify_routine_clauses): ... this new function.
12954 * omp-general.h (oacc_verify_routine_clauses): New prototype.
12956 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
12958 * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
12959 formating of picbase labels to match other ports.
12961 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
12963 * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
12964 in the generated code.
12966 2019-05-16 Martin Sebor <msebor@redhat.com>
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.
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.
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
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.
13068 2019-05-16 Martin Sebor <msebor@redhat.com>
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.
13083 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
13085 * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
13086 TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
13089 2019-05-17 H.J. Lu <hongjiu.lu@intel.com>
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
13096 (*mmx_uavgv8qi3): Likewise.
13098 2019-05-17 Richard Biener <rguenther@suse.de>
13100 * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
13101 VEC_PERM_EXPR as __VEC_PERM with -gimple.
13103 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com>
13105 * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
13106 vec_sldw insn pattern.
13108 2019-05-17 Richard Biener <rguenther@suse.de>
13110 * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
13112 2019-05-17 Martin Liska <mliska@suse.cz>
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.
13119 2019-05-16 Jakub Jelinek <jakub@redhat.com>
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.
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
13132 (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
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
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.
13142 2019-05-16 Richard Biener <rguenther@suse.de>
13144 * tree-affine.c (expr_to_aff_combination): New function split
13146 (tree_to_aff_combination): ... here.
13147 (aff_combination_expand): Avoid building a GENERIC tree.
13149 2019-05-16 Max Filippov <jcmvbkbc@gmail.com>
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):
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):
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.
13187 2019-05-16 Jan Hubicka <hubicka@ucw.cz>
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.
13195 2019-05-16 Martin Liska <mliska@suse.cz>
13198 * multiple_target.c (expand_target_clones): Do not allow
13199 target_clones being used with a symbol that is an alias.
13201 2019-05-16 Vladislav Ivanishin <vlad@ispras.ru>
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).
13208 2019-05-16 Jakub Jelinek <jakub@redhat.com>
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
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.
13223 * lto-streamer.h (LTO_major_version): Bump to 9.
13225 2019-05-16 Jun Ma <JunMa@linux.alibaba.com>
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
13231 (use_internal_fn): Pass internal function call to
13232 shrink_wrap_one_built_in_call_with_conds.
13234 2019-05-15 Jakub Jelinek <jakub@redhat.com>
13236 * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
13238 * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
13239 safelen_int and set loop->dont_vectorize.
13241 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13244 * config/i386/i386-builtin.def: Enable MMX intrinsics with
13246 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
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__
13253 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
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.
13288 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
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.
13296 2019-05-15 Uroš Bizjak <ubizjak@gmail.com>
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.
13310 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13313 * config/i386/sse.md (abs<mode>2): Add SSE emulation.
13315 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13318 * config/i386/sse.md (ssse3_palignrdi): Changed to
13319 define_insn_and_split to support SSE emulation.
13321 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13324 * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
13326 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13329 * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
13330 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
13333 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13336 * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
13337 or TARGET_MMX_WITH_SSE.
13338 (*ssse3_pmulhrswv4hi3): Add SSE emulation.
13340 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13343 * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
13345 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13348 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
13349 Changed to define_insn_and_split to support SSE emulation.
13351 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13354 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
13355 Changed to define_insn_and_split to support SSE emulation.
13357 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13360 * config/i386/mmx.md (mmx_<emms>): Renamed to ...
13361 (*mmx_<emms>): This.
13362 (mmx_<emms>): New expander.
13364 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13367 * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
13369 (*sse2_umulv1siv1di3): Add SSE2 emulation.
13371 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13374 * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
13376 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13379 * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
13381 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13384 * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
13385 TARGET_MMX_WITH_SSE.
13386 (*mmx_uavgv4hi3): Add SSE emulation.
13388 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13391 * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
13392 and TARGET_MMX_WITH_SSE.
13393 (*mmx_uavgv8qi3): Add SSE emulation.
13395 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13398 * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
13399 maskmovdqu for __MMX_WITH_SSE__.
13401 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
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.
13408 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13411 * config/i386/mmx.md (mmx_pmovmskb): Changed to
13412 define_insn_and_split to support SSE emulation.
13414 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
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.
13425 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13428 * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
13429 TARGET_MMX_WITH_SSE.
13430 (*mmx_pinsrw): Add SSE emulation.
13432 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13435 * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
13437 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13440 * config/i386/sse.md (sse_cvtpi2ps): Changed to
13441 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
13444 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13447 * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
13448 (sse_cvttps2pi): Likewise.
13450 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
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.
13459 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
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.
13467 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
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
13474 (mmx_gt<mode>3): Likewise.
13476 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13479 * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
13480 TARGET_MMX_WITH_SSE. Add SSE support.
13482 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
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.
13491 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
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.
13500 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
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.
13506 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
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
13514 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13517 * config/i386/mmx.md (mmx_mulv4hi3): Also allow
13518 TARGET_MMX_WITH_SSE.
13520 (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE
13523 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
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.
13534 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13537 * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
13538 * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
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.
13548 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
13549 Uros Bizjak <ubizjak@gmail.com>
13552 * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
13554 (ix86_split_mmx_pack): Likewise.
13555 * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
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.
13570 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
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.
13580 2019-05-15 Martin Liska <mliska@suse.cz>
13582 PR middle-end/90478
13583 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
13584 Check for overflow.
13586 2019-05-15 Richard Biener <rguenther@suse.de>
13588 * tree-into-ssa.c (pass_build_ssa::execute): Run
13589 update_address_taken before going into SSA.
13591 2019-05-15 Richard Biener <rguenther@suse.de>
13593 * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
13594 as __BIT_FIELD_REF with type with -gimple.
13596 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru>
13598 * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
13599 semantically equivalent branches (left over after prior refactorings).
13601 2019-05-15 Richard Biener <rguenther@suse.de>
13603 PR tree-optimization/88828
13604 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
13607 2019-05-14 Richard Biener <rguenther@suse.de>
13609 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
13610 as __VIEW_CONVERT with -gimple.
13612 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
13615 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
13618 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
13620 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
13621 define_split to become a define_insn_and_split.
13623 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
13625 * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
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.
13632 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
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]*
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.
13657 2019-05-14 Uroš Bizjak <ubizjak@gmail.com>
13659 * config/i386/i386.md (any_div): New code iterator.
13660 (paired_mod): New code attribute.
13661 (sgnprefix): Handle DIV and UDIV RTXes.
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.
13679 2019-05-14 Richard Biener <rguenther@suse.de>
13680 H.J. Lu <hongjiu.lu@intel.com>
13682 PR tree-optimization/88828
13683 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
13684 permuting in a single non-constant element not extracted
13687 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
13689 * internal-fn.def (SIGNBIT): New.
13690 * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
13692 (signbitv4sf2): Likewise.
13694 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com>
13697 * config/mips/mips.c (mips_split_move): Skip forward SRC into
13698 next insn when the SRC reg is dead.
13700 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com>
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.
13712 2019-05-13 Nathan Sidwell <nathan@acm.org>
13714 * gcc.c (execute): Simplify cond-expr into if. Reformat comment.
13715 (run_attempt): Reformat line break.
13717 2019-05-13 David Edelsohn <dje.gcc@gmail.com>
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.
13724 2019-05-13 Uroš Bizjak <ubizjak@gmail.com>
13727 * configure.ac (--enable-frame-pointer):
13728 Disable by default for cygwin and mingw.
13729 * configure: Regenerate.
13731 2019-05-13 Nathan Sidwell <nathan@acm.org>
13733 * dwarf2out.c (breakout_comdat_types): Move comment to correct
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.
13739 2019-05-13 Richard Biener <rguenther@suse.de>
13741 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
13743 (vect_build_slp_tree_1): Likewise.
13745 2019-05-13 Richard Biener <rguenther@suse.de>
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
13751 * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
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.
13757 2019-05-13 Richard Biener <rguenther@suse.de>
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.
13764 2019-05-13 Martin Liska <mliska@suse.cz>
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.
13770 2019-05-13 Martin Liska <mliska@suse.cz>
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.
13778 2019-05-13 Martin Liska <mliska@suse.cz>
13780 PR gcov-profile/90380
13781 * gcov.c (enum loop_type): Remove the enum and
13783 (handle_cycle): Assert that we should not reach
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
13789 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
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.
13799 2019-05-12 Richard Sandiford <richard.sandiford@arm.com>
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.
13815 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
13817 * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
13818 is given, print the state of the EH "save world" computation for
13821 2019-05-11 Jakub Jelinek <jakub@redhat.com>
13824 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
13825 EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
13827 2019-05-11 Uroš Bizjak <ubizjak@gmail.com>
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.
13833 2019-05-10 Richard Biener <rguenther@suse.de>
13835 * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
13836 (do_rpo_vn): Initialize next_value_id.
13838 2019-05-10 Martin Liska <mliska@suse.cz>
13840 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
13843 2019-05-10 Jakub Jelinek <jakub@redhat.com>
13845 PR tree-optimization/90385
13846 * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
13847 arguments of the exit phis.
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
13853 (copy_tree_body_r): Likewise.
13854 (copy_fn): Set id.do_not_fold to true.
13856 2019-05-10 Martin Liska <mliska@suse.cz>
13858 * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
13859 Reapply changes from r269790.
13861 2019-05-10 Martin Liska <mliska@suse.cz>
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):
13869 * tree-switch-conversion.h (struct jump_table_cluster):
13872 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org>
13874 * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
13876 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com>
13878 * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
13880 2019-05-09 Alexander Monakov <amonakov@ispras.ru>
13882 PR rtl-optimization/88879
13883 * sel-sched.c (sel_target_adjust_priority): Remove assert.
13885 2019-05-09 Richard Earnshaw <rearnsha@arm.com>
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.
13897 2019-05-09 Martin Liska <mliska@suse.cz>
13899 * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
13900 and MAX_EXPR in GIMPLE FE format.
13902 2019-05-09 Martin Liska <mliska@suse.cz>
13904 * tree-cfg.c (dump_function_to_file): Dump entry BB count.
13905 * gimple-pretty-print.c (dump_gimple_bb_header):
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):
13917 * predict.c (get_hot_bb_threshold): Set from the new param.
13918 (set_hot_bb_threshold): New.
13920 2019-05-09 Richard Biener <rguenther@suse.de>
13922 PR tree-optimization/90395
13923 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
13924 rewrite vector stores that throw internally.
13926 2019-05-09 Thomas Schwinge <thomas@codesourcery.com>
13928 * cif-code.def (CHKP): Remove.
13931 * configure.ac (--enable-frame-pointer): Disable by default for
13933 * configure: Regenerate.
13935 2019-05-09 Alan Modra <amodra@gmail.com>
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
13951 (movsi_internal1): Don't disparage vector alternatives.
13952 (mov<mode>_internal): Likewise, excepting alternative that
13954 * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
13955 we <- b alternative.
13957 2019-05-08 Jakub Jelinek <jakub@redhat.com>
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
13973 * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
13974 Perform variable life analysis to select variables that really need
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.
13980 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com>
13981 Richard Earnshaw <rearnsha@arm.com>
13984 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
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
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.
14000 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
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
14011 (struct ainc_cost_data, struct iv_ca): Promote type of member to
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.
14018 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
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.
14030 2019-05-08 Jakub Jelinek <jakub@redhat.com>
14032 PR tree-optimization/90356
14033 * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
14035 2019-05-07 Wei Xiao <wei3.xiao@intel.com>
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
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
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
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.
14069 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org>
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.
14083 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
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
14091 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
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.
14097 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com>
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.
14107 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
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.
14116 2019-05-07 Richard Biener <rguenther@suse.de>
14118 * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
14119 not specified still compute a comp_vectype for invariant
14122 2019-05-07 Richard Biener <rguenther@suse.de>
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
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.
14132 2019-05-07 Martin Liska <mliska@suse.cz>
14134 * bitmap.c (bitmap_register): Come up with
14135 alloc_descriptor_max_uid and assign it for
14137 (register_overhead): Use get_descriptor as
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.
14148 2019-05-07 Richard Biener <rguenther@suse.de>
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.
14154 2019-05-07 Richard Biener <rguenther@suse.de>
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.
14173 2019-05-07 Jan Hubicka <hubicka@ucw.cz>
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.
14179 2019-05-07 Richard Biener <rguenther@suse.de>
14182 * lto-wrapper.c (debug_objcopy): Use the original filename
14183 including archive offset for the filename used for -save-temps.
14185 2019-05-07 Li Jia He <helijia@linux.ibm.com>
14187 * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
14190 2019-05-06 H.J. Lu <hongjiu.lu@intel.com>
14191 Hongtao Liu <hongtao.liu@intel.com>
14195 * config/i386/i386-expand.c (ix86_expand_sse_comi_round):
14196 Modified, original implementation isn't correct.
14198 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
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
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):
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
14220 (REGISTER_NAMES): Adjust.
14221 (ADDITIONAL_REGISTER_NAMES): Adjust.
14222 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
14224 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
14226 * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
14228 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
14229 (DWARF_FRAME_REGISTERS): Adjust.
14230 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
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
14245 (rs6000_dbx_register_number): Adjust.
14247 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
14249 * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
14251 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
14253 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
14254 FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
14256 2019-05-06 Jakub Jelinek <jakub@redhat.com>
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
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
14277 (pass_store_merging::process_store): Likewise.
14279 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
14282 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
14283 handling of V1TImode.
14285 2019-05-06 Uroš Bizjak <ubizjak@gmail.com>
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.
14298 2019-05-06 Martin Liska <mliska@suse.cz>
14300 * config.gcc: Append to target_gtfiles and fix indentation.
14302 2019-05-06 Richard Biener <rguenther@suse.de>
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.
14309 2019-05-06 Richard Biener <rguenther@suse.de>
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
14316 2019-05-06 Richard Biener <rguenther@suse.de>
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.
14326 2019-05-06 Richard Biener <rguenther@suse.de>
14328 * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
14330 2019-05-06 Richard Biener <rguenther@suse.de>
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
14339 2019-05-06 Martin Liska <mliska@suse.cz>
14342 * config/i386/i386-options.c (ix86_option_override_internal): Error only
14343 when -mabi is selected to a non-default version.
14345 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com>
14346 Martin Liska <mliska@suse.cz>
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.
14360 2019-05-06 Martin Liska <mliska@suse.cz>
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
14372 * config/i386/i386.c: Split content of the file
14373 into newly introduced files.
14374 * config/i386/i386.h: Declare common variables
14376 * config/i386/t-i386: Define dependencies for new files.
14378 2019-05-03 Richard Earnshaw <rearnsha@arm.com>
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.
14388 2019-05-03 Marc Glisse <marc.glisse@inria.fr>
14390 PR tree-optimization/90269
14391 * tree-loop-distribution.c (find_seed_stmts_for_distribution):
14394 2019-05-03 Martin Liska <mliska@suse.cz>
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.
14419 2019-05-03 Richard Biener <rguenther@suse.de>
14421 PR tree-optimization/90316
14422 * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
14425 2019-05-03 Richard Biener <rguenther@suse.de>
14427 * tree-vect-stmts.c (get_group_load_store_type): Avoid
14428 peeling for gaps by loading only lower halves of vectors
14430 (vectorizable_load): Likewise.
14432 2019-05-03 Richard Biener <rguenther@suse.de>
14434 PR middle-end/89518
14435 * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
14437 2019-05-03 Richard Biener <rguenther@suse.de>
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.
14443 2019-05-03 Richard Biener <rguenther@suse.de>
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
14451 2019-05-03 Jakub Jelinek <jakub@redhat.com>
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
14458 * opts-global.c (decode_options): Adjust finish_option caller, call
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.
14465 2019-05-03 Richard Biener <rguenther@suse.de>
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.
14472 2019-05-03 Richard Biener <rguenther@suse.de>
14474 * passes.c (execute_function_todo): Remove dead code.
14476 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
14478 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
14479 the internal register number, for any "real" register.
14481 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
14483 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
14484 correct numbers for TFHAR, TFIAR, TEXASR.
14486 2019-05-02 Richard Biener <rguenther@suse.de>
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.
14493 2019-05-02 Richard Biener <rguenther@suse.de>
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.
14499 2019-05-02 Richard Biener <rguenther@suse.de>
14501 PR tree-optimization/90273
14502 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
14503 useless debug stmts.
14505 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com>
14507 * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
14509 * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
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
14518 2019-05-02 Martin Liska <mliska@suse.cz>
14520 * cgraphclones.c: Call valid_attribute_p with 1 for
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):
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.
14534 2019-05-02 Martin Liska <mliska@suse.cz>
14536 * gcc.c (process_command): Add dummy file only
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
14542 (common_handle_option): Factor out content of OPT__help_
14544 * opts.h (finish_options): Add new argument.
14546 2019-05-02 Martin Liska <mliska@suse.cz>
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.
14554 2019-05-01 Jeff Law <law@redhat.com>
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.
14560 2019-04-30 Andrew Waterman <andrew@sifive.com>
14561 Jim Wilson <jimw@sifive.com>
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.
14577 2019-04-30 Nathan Sidwell <nathan@acm.org>
14579 * tree.h (MARK_TS_EXP): New.
14581 2019-04-30 Martin Liska <mliska@suse.cz>
14583 * opts.c (enable_warning_as_error): Provide hints
14584 for unknown options.
14586 2019-04-30 Martin Liska <mliska@suse.cz>
14589 * doc/invoke.texi: Add missing dash for gas-locview-support
14590 and gno-as-locview-support.
14592 2019-04-30 Jakub Jelinek <jakub@redhat.com>
14595 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
14596 whitespace at the start of target attribute string.
14598 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14601 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
14602 Define __ARM_FEATURE_ATOMICS.
14604 2019-04-30 Martin Liska <mliska@suse.cz>
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.
14611 2019-04-30 Martin Liska <mliska@suse.cz>
14613 * config/i386/i386.c (ix86_builtin_reciprocal): Cast
14614 DECL_FUNCTION_CODE into ix86_builtins enum before
14615 the switch statement.
14617 2019-04-30 Jakub Jelinek <jakub@redhat.com>
14619 PR tree-optimization/89475
14620 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
14623 2019-04-30 Martin Liska <mliska@suse.cz>
14625 PR translation/90274
14626 * opts.c (print_filtered_help): Wrap string in _(...).
14628 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com>
14630 PR tree-optimization/90240
14632 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
14634 PR tree-optimization/90078
14635 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
14636 checks for infinite_cost overflow.
14638 2019-04-29 Jeff Law <law@redhat.com>
14640 * passes.def: Move -Wrestrict pass after copy propagation.
14642 2019-04-29 Maya Rashish <coypu@sdf.org>
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*.
14648 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru>
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.
14654 2019-04-29 Richard Biener <rguenther@suse.de>
14656 PR tree-optimization/90278
14657 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
14658 EH on comparison simplification.
14660 2019-04-29 Jason Merrill <jason@redhat.com>
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.
14666 2019-04-29 Richard Sandiford <richard.sandiford@arm.com>
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.
14674 2019-04-29 Jakub Jelinek <jakub@redhat.com>
14676 PR rtl-optimization/90257
14677 * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
14681 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
14685 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
14688 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
14691 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
14693 * lra-spills.c (lra_final_code_change): Remove useless move insns.
14695 2019-04-29 Richard Biener <rguenther@suse.de>
14697 * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
14700 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org>
14702 * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h,
14703 varasm.h, and netbsd-protos.h.
14705 2019-04-27 Uroš Bizjak <ubizjak@gmail.com>
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.
14713 2019-04-27 Martin Liska <mliska@suse.cz>
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.
14720 2019-04-26 Jim Wilson <jimw@sifive.com>
14722 * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
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.
14734 2018-04-26 Eugene Sharygin <eush@ispras.ru>
14736 * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
14739 2019-04-26 Richard Sandiford <richard.sandiford@arm.com>
14741 * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
14742 commentary about the encoding of precision.
14744 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org>
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.
14750 2019-04-25 Uroš Bizjak <ubizjak@gmail.com>
14752 * doc/extend.texi (vector_size): Add missing comma after @xref.
14754 2019-04-25 Jakub Jelinek <jakub@redhat.com>
14756 * BASE-VER: Set to 10.0.0.
14758 2019-04-25 Richard Biener <rguenther@suse.de>
14760 PR middle-end/89765
14761 * gimplify.c (gimplify_expr): Avoid turning a lvalue
14762 VIEW_CONVERT_EXPR into one operating on an rvalue.
14764 2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
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.
14779 2019-04-25 Richard Biener <rguenther@suse.de>
14781 * tree-pass.h (make_pass_phi_only_cprop): Remove.
14782 * timevar.def (TV_TREE_PHI_CPROP): Likewise.
14784 2019-04-24 Jeff Law <law@redhat.com>
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.
14793 2019-04-24 Richard Biener <rguenther@suse.de>
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.
14799 2019-04-25 Richard Biener <rguenther@suse.de>
14801 PR middle-end/90194
14802 * match.pd: Add pattern to simplify view-conversion of an
14805 2019-04-24 Clement Chigot <clement.chigot@atos.net>
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.
14812 2019-04-24 Jakub Jelinek <jakub@redhat.com>
14815 * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
14816 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
14818 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
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.
14827 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com>
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.
14833 2019-04-24 Jakub Jelinek <jakub@redhat.com>
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.
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.
14843 PR tree-optimization/90211
14844 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
14845 which are not SSA_NAMEs.
14847 2018-04-23 Sudakshina Das <sudi.das@arm.com>
14849 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
14851 (aarch64_file_end_indicate_exec_stack): Add gnu note section.
14853 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
14855 PR rtl-optimization/87979
14856 * modulo-sched.c (sms_schedule): Start ii value "mii" should
14859 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
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
14866 2019-04-23 Richard Biener <rguenther@suse.de>
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.
14874 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14875 Bernd Edlinger <bernd.edlinger@hotmail.de>
14876 Jakub Jelinek <jakub@redhat.com>
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
14883 (arm_valid_target_attribute_rec): Handle general-regs-only.
14884 * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
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.
14894 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
14896 PR tree-optimization/90078
14897 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
14898 checks for infinite_cost overflow.
14900 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
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.
14908 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
14912 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
14915 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
14918 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
14920 * lra-spills.c (lra_final_code_change): Remove useless move insns.
14922 2019-04-21 Iain Sandoe <iain@sandoe.co.uk>
14924 * config/rs6000/rs6000.md (group_end_nop): Emit insn register
14925 names using operand format, rather than hard-wired.
14926 (speculation_barrier): Likewise.
14928 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org>
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.
14934 2019-04-19 Jakub Jelinek <jakub@redhat.com>
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.
14940 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org>
14942 PR translation/90118
14943 * config/aarch64/aarch64.c (aarch64_override_options_internal):
14944 Add missing space before %<.
14946 2019-04-18 Peter Bergner <bergner@linux.ibm.com>
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.
14952 2019-04-18 Martin Sebor <msebor@redhat.com>
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.
14959 2019-04-18 Jan Hubicka <hubicka@ucw.cz>
14962 * ipa-inline.c (flatten_function): New parameter UPDATE.
14963 (ipa_inline, early_inliner): Use it.
14965 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
14967 * fold-const.c (int_const_binop): Return early on failure.
14969 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
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.
14976 2019-04-18 Richard Biener <rguenther@suse.de>
14979 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
14981 (remove_forwarder_block): ... here.
14982 (remove_forwarder_block_with_phi): Also move debug stmts here.
14984 2019-04-18 Jakub Jelinek <jakub@redhat.com>
14986 PR translation/79183
14987 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
14988 inform where appropriate.
14990 2019-04-18 Richard Biener <rguenther@suse.de>
14992 * tree.c (get_qualified_type): Put found type variants at the
14993 head of the variant list.
14995 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org>
14997 * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
14999 2019-04-17 Hongtao Liu <hongtao.liu@intel.com>
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.
15008 2019-04-17 Peter Bergner <bergner@linux.ibm.com>
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.
15014 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
15016 * auto-inc-dec.c (attempt_change): Set the alignment of the
15017 temporary memory to that of the original.
15019 2019-04-17 Joao Moreira <jmoreira@suse.de>
15021 * targhooks.c (default_print_patchable_function_entry): Emit
15022 __patchable_function_entries section with writable flags to allow
15023 relocation resolution.
15025 2019-04-17 Jonny Grant <jg@jguk.org>
15027 * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
15029 2019-04-17 Jakub Jelinek <jakub@redhat.com>
15031 PR middle-end/90095
15032 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
15033 on lowpart SUBREGs.
15035 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com>
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.
15042 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
15045 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
15047 (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
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
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.
15078 2019-04-17 Jakub Jelinek <jakub@redhat.com>
15081 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
15082 whitespace at the start of target attribute string.
15084 2019-04-16 Pat Haugen <pthaugen@us.ibm.com>
15087 * config/rs6000/power9.md: Add store forwarding bypass.
15089 2019-04-16 Alexandre Oliva <aoliva@redhat.com>
15092 * valtrack.c (dead_debug_insert_temp): Reset debug references
15093 to the return value of a call being removed.
15095 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
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.
15106 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
15108 * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
15109 (sibcall_value_insn): Likewise.
15110 * config/arc/constraints.md (Rs5): Remove.
15112 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
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.
15143 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
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.
15151 2019-04-16 Kito Cheng <kito.cheng@gmail.com>
15152 Shiva Chen <shiva0217@gmail.com>
15154 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
15155 code gen with large shift amount.
15157 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
15159 * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
15162 2019-04-16 Jakub Jelinek <jakub@redhat.com>
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.
15173 PR rtl-optimization/90082
15174 * dce.c (can_delete_call): New function.
15175 (deletable_insn_p, mark_insn): Use it.
15177 PR tree-optimization/90090
15178 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
15180 (is_division_by_square): Likewise. Formatting fix.
15182 2019-04-16 Richard Biener <rguenther@suse.de>
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.
15188 2019-04-15 Jeff Law <law@redhat.com>
15190 * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
15191 size and alignment as unsigned.
15193 2019-04-15 Richard Biener <rguenther@suse.de>
15196 * tree-loop-distribution.c (destroy_loop): Preserve correct
15199 2019-04-15 Richard Biener <rguenther@suse.de>
15201 PR tree-optimization/90071
15202 * tree-ssa-reassoc.c (init_range_entry): Do not pick up
15203 abnormal operands from def stmts.
15205 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org>
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.
15214 2019-04-15 Richard Biener <rguenther@suse.de>
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
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
15231 2019-04-15 Martin Jambor <mjambor@suse.cz>
15234 * cgraph.c (clone_of_p): Loop over clone chain for each step in
15237 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
15239 * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
15241 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
15242 Kito Cheng <kito.cheng@gmail.com>
15243 Shiva Chen <shiva0217@gmail.com>
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
15254 (nds32_group_tls_insn): Ditto.
15255 (nds32_group_float_insns): Ditto.
15256 * config/nds32/nds32.md (tls_le): New.
15259 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com>
15261 * configure: Add nds32 target for dwarf2 debug_line checking.
15262 * configure.ac: Regenerated.
15264 2019-04-14 Jan Hubicka <hubicka@ucw.cz>
15267 * ipa-devirt.c (skip_in_fields_list_p): New.
15268 (odr_types_equivalent_p): Use it.
15270 2019-04-13 Jakub Jelinek <jakub@redhat.com>
15273 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
15274 instead of strncmp when checking for thumb and arm. Formatting fixes.
15276 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
15278 * doc/install.texi: Document --with-target-system-zlib.
15280 2019-04-12 Martin Sebor <msebor@redhat.com>
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.
15292 2019-04-12 Jakub Jelinek <jakub@redhat.com>
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.
15301 * config/mips/loongson-mmiintrin.h: Fix up #error message.
15303 2019-04-12 Jan Hubicka <hubicka@ucw.cz>
15305 * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
15306 * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
15308 2019-04-12 Martin Liska <mliska@suse.cz>
15310 PR middle-end/89970
15311 * multiple_target.c (create_dispatcher_calls): Wrap ifunc
15313 (separate_attrs): Handle multiple 'default's.
15314 (expand_target_clones): Rework error handling code.
15316 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
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.
15324 2019-04-12 Jakub Jelinek <jakub@redhat.com>
15327 * config/tilepro/tilepro.c (tilepro_print_operand): Use just
15328 "invalid %%t operand" in output_operand_lossage message.
15330 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
15332 * config/s390/predicates.md (permute_pattern_operand): New
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
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.
15346 2019-04-12 Jakub Jelinek <jakub@redhat.com>
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.
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.
15360 2018-04-11 Steve Ellcey <sellcey@marvell.com>
15362 PR rtl-optimization/87763
15363 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
15366 2019-04-11 Tom de Vries <tdevries@suse.de>
15368 * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
15369 max macro using statement expression.
15371 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
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.
15379 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org>
15382 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
15384 2019-04-11 Jakub Jelinek <jakub@redhat.com>
15386 PR rtl-optimization/89965
15387 * dce.c (sp_based_mem_offset): New function.
15388 (find_call_stack_args): Use sp_based_mem_offset.
15390 2019-04-11 Jonathan Wakely <jwakely@redhat.com>
15392 * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
15394 2019-04-11 Richard Biener <rguenther@suse.de>
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
15406 2019-04-11 Richard Biener <rguenther@suse.de>
15408 PR tree-optimization/90018
15409 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
15410 Test both SLP and interleaving variants.
15412 2019-04-11 Robin Dapp <rdapp@linux.ibm.com>
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.
15426 2018-04-10 Steve Ellcey <sellcey@marvell.com>
15428 PR rtl-optimization/87763
15429 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
15431 * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
15433 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
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.
15440 2019-04-10 Jonathan Wakely <jwakely@redhat.com>
15442 * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
15443 "Although" in -fipa-icf documentation.
15445 * doc/invoke.texi (Debugging Options): Explicitly state the semantics
15446 of using multiple -g options.
15448 2019-04-10 Martin Liska <mliska@suse.cz>
15450 PR gcov-profile/89959
15451 * doc/gcov.texi: Make documentation of -x option
15454 2019-04-10 Richard Biener <rguenther@suse.de>
15456 * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
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.
15465 2019-04-10 Richard Earnshaw <rearnsha@arm.com>
15468 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
15469 obsolete reference to N.
15471 2019-04-10 Jakub Jelinek <jakub@redhat.com>
15473 PR middle-end/90025
15474 * expr.c (store_expr): Set properly size on the MEM passed to
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
15484 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
15487 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
15488 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
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.
15494 2019-04-09 Jakub Jelinek <jakub@redhat.com>
15496 PR translation/90011
15497 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
15499 * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
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.
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
15514 2019-04-09 Martin Liska <mliska@suse.cz>
15516 * Makefile.in: Use GENERATOR_CFLAGS for all generators.
15517 * doc/install.texi: Document the new config.
15519 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
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.
15526 2019-04-09 Jakub Jelinek <jakub@redhat.com>
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.
15533 2019-04-08 wu yuan <wuyuan5@huawei.com>
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.
15539 2019-04-08 Richard Biener <rguenther@suse.de>
15541 PR tree-optimization/90006
15542 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
15545 2019-04-08 Andrea Corallo <andrea.corallo@arm.com>
15548 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
15550 (fma_root_node): Likewise.
15551 (func_fma_steering): Likewise.
15553 2019-04-08 Jakub Jelinek <jakub@redhat.com>
15555 PR rtl-optimization/89865
15556 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
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.
15565 2019-04-08 Martin Liska <mliska@suse.cz>
15567 PR gcov-profile/89961
15568 * doc/gcov.texi: Document data_file.
15569 * gcov.c (generate_results): Add data_info into JSON output.
15571 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
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.
15582 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
15585 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
15588 2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
15591 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
15592 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
15594 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com>
15596 * sched-deps.c (sched_macro_fuse_insns): Check return value of
15597 targetm.fixed_condition_code_regs.
15599 2019-04-05 Richard Biener <rguenther@suse.de>
15603 * tree-cfgcleanup.c (remove_forwarder_block): Always move
15604 debug bind stmts but reset them if they are not valid at the
15607 2019-04-05 Martin Liska <mliska@suse.cz>
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):
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.
15646 2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
15648 PR tree-optimization/89956
15649 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
15650 multiple negates of the same value.
15652 2019-04-04 Martin Sebor <msebor@redhat.com>
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.
15661 2019-04-04 Martin Sebor <msebor@redhat.com>
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.
15667 2019-04-04 Jeff Law <law@redhat.com>
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.
15674 2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
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
15686 2019-04-03 qing zhao <qing.zhao@oracle.com>
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.
15695 2019-04-03 Jeff Law <law@redhat.com>
15697 PR rtl-optimization/81025
15698 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
15700 2019-04-03 Richard Biener <rguenther@suse.de>
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.
15710 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com>
15712 * config/s390/s390.c (s390_legitimate_address_p): Reject long
15713 displacement addresses for vector mode operands.
15715 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com>
15717 * config/arc/arc.c (GMASK_LEN): Define.
15718 (arc_restore_callee_saves): Restore first blink when
15721 2019-04-03 Sudakshina Das <sudi.das@arm.com>
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.
15727 2019-04-03 Richard Biener <rguenther@suse.de>
15730 * lto-wrapper.c (run_gcc): Avoid implicit rules making
15731 the all target phony.
15733 2019-04-02 Uroš Bizjak <ubizjak@gmail.com>
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.
15746 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
15748 PR rtl-optimization/84206
15749 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
15750 iterating over loop headers.
15752 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
15754 PR rtl-optimization/85876
15755 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
15756 beyond the original fence.
15758 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com>
15760 * config.gcc: Mark spu* targets as deprecated/obsolete.
15762 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
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"):
15778 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15780 * config/s390/s390-builtin-types.def: New builtin function type
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
15792 ("vec_vstrs<mode>"): New insn definition.
15794 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15796 * config/s390/s390-builtin-types.def: Add new builtin function
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
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
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.
15811 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
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.
15818 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
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.
15826 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
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
15838 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
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
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.
15849 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
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__.
15855 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15857 * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
15859 (SFSI): New mode attribute.
15860 ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
15861 ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
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.
15868 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
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
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"):
15882 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
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.
15888 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15890 * config/s390/s390.md ("*popcountdi_arch13_cc")
15891 ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
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.
15900 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
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.
15918 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
15920 * common/config/s390/s390-common.c (processor_flags_table): New
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
15932 * config/s390/s390.opt: Support arch13 as processor type in
15933 command line options.
15935 2019-04-02 Martin Liska <mliska@suse.cz>
15937 PR translation/89912
15938 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
15939 Fix param description of graphite-max-arrays-per-scop.
15941 2019-04-02 Eric Botcazou <ebotcazou@adacore.com>
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.
15947 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
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.
15953 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
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.
15960 2019-04-01 Vladimir Makarov <vmakarov@redhat.com>
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.
15966 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
15968 PR rtl-optimization/87273
15969 * sel-sched-ir.c (merge_fences): Remove assert.
15971 2019-04-01 Richard Biener <rguenther@suse.de>
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.
15983 2019-04-01 Martin Liska <mliska@suse.cz>
15986 * opt-suggestions.c (option_proposer::build_option_suggestions):
15987 Add variant without any argument in order to provide better
15990 2019-04-01 Richard Biener <rguenther@suse.de>
15993 * gimple.c: Include langhooks.h.
15994 (gimple_get_alias_set): Treat enumeral types as the underlying
15997 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org>
15998 Eric Botcazou <ebotcazou@adacore.com>
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
16005 2019-03-29 Jim Wilson <jimw@sifive.com>
16007 * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
16008 Clear MASK_RVC and then set if C subset supported.
16010 2019-03-29 Jakub Jelinek <jakub@redhat.com>
16013 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
16014 non-addressable complit into its initializer if it is volatile.
16016 2019-03-29 Roman Zhuykov <zhroma@ispras.ru>
16018 * opts-common.c (integral_argument): Set errno properly in one case.
16020 2019-03-29 Martin Liska <mliska@suse.cz>
16022 * doc/invoke.texi: Remove -Wchkp from documentation.
16024 2019-03-29 Martin Liska <mliska@suse.cz>
16026 * dbgcnt.c (print_limit_reach): New function.
16029 2019-03-29 Martin Liska <mliska@suse.cz>
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.
16035 2019-03-29 Jakub Jelinek <jakub@redhat.com>
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).
16041 2019-03-28 Jakub Jelinek <jakub@redhat.com>
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.
16053 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
16056 * config/i386/i386.md (RMW operation with LEA peephole):
16057 Use LEAMODE mode attribute instead of SWI mode iterator for
16060 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
16063 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
16064 Also process XEXP (src, 0) of a shift insn.
16066 2019-03-28 David Malcolm <dmalcolm@redhat.com>
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.
16072 2019-03-28 Jakub Jelinek <jakub@redhat.com>
16074 * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
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
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.
16088 2019-03-28 Jonathan Wakely <jwakely@redhat.com>
16091 * gengtype.h (create_nested_ptr_option): Fix parameter names to match
16094 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl>
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.
16101 2019-03-27 Andrew Stubbs <ams@codesourcery.com>
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.
16107 2019-03-27 Peter Bergner <bergner@linux.ibm.com>
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.
16115 2019-03-27 Jeff Law <law@redhat.com>
16117 PR rtl-optimization/87761
16118 PR rtl-optimization/89826
16119 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
16121 (pass_cprop_hardreg::execute): Call df_analyze after adding the
16122 note problem to get REG_DEAD/REG_UNUSED notes updated.
16124 2019-03-27 Richard Biener <rguenther@suse.de>
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
16134 2019-03-27 Alan Modra <amodra@gmail.com>
16136 * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
16138 * config/rs6000/darwin.h: Likewise.
16139 * config/rs6000/rs6000.c: Likewise.
16141 2019-03-27 Alan Modra <amodra@gmail.com>
16143 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
16144 assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting.
16146 2019-03-26 Andrew Waterman <andrew@sifive.com>
16147 Jim Wilson <jimw@sifive.com>
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
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
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.
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.
16175 2019-03-26 Uroš Bizjak <ubizjak@gmail.com>
16178 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
16179 Also process XEXP (src, 0) of a shift insn.
16181 2019-03-26 Richard Biener <rguenther@suse.de>
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.
16190 2019-03-26 Jakub Jelinek <jakub@redhat.com>
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.
16197 2019-03-26 Jason Merrill <jason@redhat.com>
16198 Jakub Jelinek <jakub@redhat.com>
16200 * mem-stats.h (mem_alloc_description::unregister_descriptor): New
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.
16207 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
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.
16214 2019-03-26 Alan Modra <amodra@gmail.com>
16216 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
16217 rs6000_vector_mem init. Correct wI and wJ comment.
16219 2019-03-25 Alexander Monakov <amonakov@ispras.ru>
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.
16226 2019-03-25 Martin Sebor <msebor@redhat.com>
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.
16233 2019-03-25 Johan Karlsson <johan.karlsson@enea.com>
16236 * dwarf2out.c (premark_used_variables): New function.
16237 (prune_unused_types_walk): Do not mark not premarked external
16239 (prune_unused_types): Call premark_used_variables.
16241 2019-03-25 Vladimir Makarov <vmakarov@redhat.com>
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
16248 2019-03-25 Martin Sebor <msebor@redhat.com>
16250 * doc/extend.texi (Common Type Attributes): Document vector_size.
16251 (Common Variable Attributes): Mention size constraint. Correct
16253 (Vector Extensions): Use @dfn when defining bas type. Clarify
16254 base type and size constraints.
16256 2019-03-25 Richard Biener <rguenther@suse.de>
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.
16262 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de>
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.
16269 2019-03-25 Richard Biener <rguenther@suse.de>
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.
16278 2019-03-25 Richard Biener <rguenther@suse.de>
16280 PR tree-optimization/89802
16281 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
16282 move EH data to folded stmt.
16284 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
16286 * config/s390/s390-builtin-types.def: Remove few unused types and
16287 fix sort order for others.
16289 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
16291 * config/s390/s390-c.c (s390_fn_types_compatible): Print the
16292 expected and found types with -mdebug during builtin matching.
16294 2019-03-25 Richard Biener <rguenther@suse.de>
16296 PR middle-end/89790
16297 * fold-const.c (operand_equal_p): Revert last change with
16300 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org>
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.
16306 2019-03-24 Jeff Law <law@redhat.com>
16308 * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
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
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
16319 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org>
16321 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
16324 2019-03-22 Andrew Pinski <apinski@marvell.com>
16326 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
16327 attrribute for uxtw.
16329 2019-03-26 Jeff Law <law@redhat.com>
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.
16338 2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
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.
16344 2019-03-22 Jakub Jelinek <jakub@redhat.com>
16347 * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
16349 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
16351 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
16353 2019-03-22 Jakub Jelinek <jakub@redhat.com>
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.
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.
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.
16431 2019-03-21 Martin Sebor <msebor@redhat.com>
16433 PR tree-optimization/89350
16434 * builtins.c (compute_objsize): Also ignore offsets whose upper
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.
16452 2019-03-21 Jan Hubicka <hubicka@ucw.cz>
16453 Jakub Jelinek <jakub@redhat.com>
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).
16463 2019-03-21 Jakub Jelinek <jakub@redhat.com>
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
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.
16484 2019-03-21 Richard Biener <rguenther@suse.de>
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
16490 * fold-const.c (operand_equal_p): Likewise.
16492 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com>
16495 * config/s390/s390.c (global_not_special_regno_p): Move to make it
16497 (s390_optimize_register_info): Use global_not_special_regno_p to
16498 check for global regs.
16500 2019-03-20 Jakub Jelinek <jakub@redhat.com>
16503 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
16504 update this_alternative nor this_alternative_set.
16506 2019-03-19 Jim Wilson <jimw@sifive.com>
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
16512 (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
16514 2019-03-19 Jakub Jelinek <jakub@redhat.com>
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.
16521 2019-03-19 Martin Sebor <msebor@redhat.com>
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.
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.
16531 2019-03-19 Martin Liska <mliska@suse.cz>
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.
16537 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org>
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.
16544 2019-03-19 Jakub Jelinek <jakub@redhat.com>
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.
16551 2019-03-19 Richard Biener <rguenther@suse.de>
16554 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
16556 2019-03-19 Jan Hubicka <hubicka@ucw.cz>
16560 * tree.c (free_lang_data_in_decl): Do not free context of C++
16563 2019-03-19 Jakub Jelinek <jakub@redhat.com>
16566 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
16567 subs for the first alternative except when operands[3] is 1.
16570 * gimplify.c (gimplify_asm_expr): For output argument with
16571 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
16574 2019-03-19 Eric Botcazou <ebotcazou@adacore.com>
16576 PR rtl-optimization/89753
16577 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
16578 explicit unrolling factor even more robust.
16580 2019-03-19 Jakub Jelinek <jakub@redhat.com>
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.
16587 2019-03-18 Martin Sebor <msebor@redhat.com>
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.
16593 2019-03-18 Richard Biener <rguenther@suse.de>
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.
16601 2019-03-18 Andrew Stubbs <ams@codesourcery.com>
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.
16615 2019-03-18 Richard Sandiford <richard.sandiford@arm.com>
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.
16621 2019-03-18 Martin Jambor <mjambor@suse.cz>
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.
16627 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com>
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.
16634 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
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
16648 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
16650 * config/arc/arc.md (tst_movb): Fix constraint.
16652 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
16654 * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
16656 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
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
16665 (ADJUST_REG_ALLOC_ORDER): Define.
16666 (HONOR_REG_ALLOC_ORDER): Likewise.
16668 2019-03-18 Richard Biener <rguenther@suse.de>
16671 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
16672 loads and stores a bit more.
16674 2019-03-18 Richard Biener <rguenther@suse.de>
16677 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
16678 load pessimization to stores as well.
16680 2019-03-18 Andrey Belevantsev <abel@ispras.ru>
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.
16686 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org>
16688 PR rtl-optimization/89721
16689 * lra-constraints (invariant_p): Return false if side_effects_p holds.
16691 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org>
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
16706 2019-03-15 Alexandre Oliva <aoliva@redhat.com>
16710 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
16713 2019-03-15 Jakub Jelinek <jakub@redhat.com>
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.
16721 * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
16722 SIGN_EXTEND and ZERO_EXTEND.
16724 2019-03-14 Jason Merrill <jason@redhat.com>
16725 Jakub Jelinek <jakub@redhat.com>
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.
16734 2019-03-15 H.J. Lu <hongjiu.lu@intel.com>
16737 * config/i386/i386.c (remove_partial_avx_dependency): Handle
16738 REG_EH_REGION note.
16740 2019-03-14 Martin Liska <mliska@suse.cz>
16743 * doc/invoke.texi: Remove -fdump-class-hierarchy option.
16745 2019-03-14 Richard Biener <rguenther@suse.de>
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.
16752 2019-03-14 Richard Biener <rguenther@suse.de>
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.
16766 2019-03-14 Jakub Jelinek <jakub@redhat.com>
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.
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.
16778 2019-03-14 Richard Biener <rguenther@suse.de>
16780 PR tree-optimization/89710
16781 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
16784 2019-03-14 Martin Liska <mliska@suse.cz>
16786 * coverage.c (coverage_begin_function): Stream also
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
16796 (read_graph_file): Read end_column.
16798 2019-03-14 Richard Biener <rguenther@suse.de>
16800 PR middle-end/89698
16801 * fold-const.c (operand_equal_p): For INDIRECT_REF check
16802 that the access types are similar.
16804 2019-03-14 Jakub Jelinek <jakub@redhat.com>
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}.
16812 2019-03-14 H.J. Lu <hongjiu.lu@intel.com>
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
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.
16835 2019-03-13 Vladimir Makarov <vmakarov@redhat.com>
16838 * lra-constraints.c (inherit_in_ebb): Update
16839 potential_reload_hard_regs along with live_hard_regs.
16841 2019-03-13 Jakub Jelinek <jakub@redhat.com>
16844 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
16846 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
16848 2019-03-13 Martin Sebor <msebor@redhat.com>
16850 PR tree-optimization/89662
16851 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
16854 2019-03-13 Richard Biener <rguenther@suse.de>
16856 PR middle-end/89677
16857 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
16858 throw FP expressions at tree-affine.
16860 2019-03-14 Richard Biener <rguenther@suse.de>
16862 * tree-pretty-print.c (dump_generic_node): For -gimple properly
16863 dump negative integer constants using _Literal (type) -num.
16865 2019-03-13 Jakub Jelinek <jakub@redhat.com>
16867 * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
16868 nonlocal_value member.
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.
16874 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
16876 * config/s390/s390.c (s390_option_override_internal): Use more
16877 aggressive inlining parameters.
16879 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
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.
16903 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
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.
16913 2019-03-12 Martin Liska <mliska@suse.cz>
16915 * config/i386/i386.c: Reword an error message.
16917 2019-03-12 Martin Jambor <mjambor@suse.cz>
16919 * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
16920 terminate with newline.
16922 2019-03-12 Jakub Jelinek <jakub@redhat.com>
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
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.
16937 2019-03-12 Richard Biener <rguenther@suse.de>
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.
16943 2019-03-11 Jakub Jelinek <jakub@redhat.com>
16945 PR middle-end/89655
16947 * vr-values.c (vr_values::update_value_range): If
16948 old_vr->varying_p (), don't update it, make new_vr also VARYING
16951 2019-03-11 Martin Liska <mliska@suse.cz>
16953 * config/aarch64/aarch64.c (aarch64_override_options_internal):
16954 Fix double string quoting.
16956 2019-03-11 Martin Liska <mliska@suse.cz>
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.
16973 2019-03-11 Martin Liska <mliska@suse.cz>
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):
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.
17113 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com>
17115 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
17116 only on the else branch.
17118 2019-03-11 Martin Liska <mliska@suse.cz>
17120 * gcov.c (output_intermediate_json_line): Print function
17122 (output_json_intermediate_file): Add new argument.
17123 * doc/gcov.texi: Document the change.
17125 2019-03-11 Eric Botcazou <ebotcazou@adacore.com>
17127 PR rtl-optimization/89588
17128 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
17129 explicit unrolling factor more robust.
17131 2019-03-11 Richard Biener <rguenther@suse.de>
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.
17141 2019-03-10 Uroš Bizjak <ubizjak@gmail.com>
17144 * config/i386/sse.md (*vec_extractv2di_0_sse):
17145 Add (=r,x) alternative and corresponding splitter.
17147 2019-03-10 Martin Jambor <mjambor@suse.cz>
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
17158 2019-03-09 Jakub Jelinek <jakub@redhat.com>
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.
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
17183 * config/i386/i386.opt (prefer_vector_width, instrument_return):
17185 * config/rx/rx.opt (nofpu): Remove trailing spaces from description
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.
17192 2019-03-08 David Malcolm <dmalcolm@redhat.com>
17195 * config/i386/i386.c (ix86_set_current_function): Make "sorry"
17196 messages more amenable to translation, and improve wording.
17198 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com>
17200 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
17201 ud- and du-chains between phases.
17203 2019-03-08 Richard Sandiford <richard.sandiford@arm.com>
17206 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
17207 instead of POLY_INT_CST.
17209 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
17211 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
17214 2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
17219 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
17220 (_mm_storeu_si64): Ditto.
17222 2019-03-08 Martin Liska <mliska@suse.cz>
17225 * config/i386/i386.c (ix86_option_override_internal): Disable
17226 jump tables when retpolines are used.
17228 2019-03-08 Jan Hubicka <hubicka@ucw.cz>
17231 * ipa-split.c (execute_split_functions): Do not split
17232 'noinline' or 'section' function.
17234 2019-03-08 Jakub Jelinek <jakub@redhat.com>
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.
17242 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
17243 from diagnostics. Formatting fixes.
17246 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
17247 warn_odr diagnostics.
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
17253 * attribs.c (handle_dll_attribute): Likewise.
17254 * config/avr/avr-devices.c (avr_texinfo): Likewise.
17256 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
17257 warning_at or inform messages in G_() if there is no ?:.
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.
17267 2019-03-08 Richard Biener <rguenther@suse.de>
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
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.
17278 2019-03-08 Jakub Jelinek <jakub@redhat.com>
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.
17285 2019-03-07 Jakub Jelinek <jakub@redhat.com>
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.
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.
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.
17317 2019-03-07 Martin Jambor <mjambor@suse.cz>
17320 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
17321 for extern inline functions.
17323 2019-03-07 Martin Jambor <mjambor@suse.cz>
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.
17332 2019-03-07 Martin Liska <mliska@suse.cz>
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.
17339 2019-01-25 Jason Merrill <jason@redhat.com>
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.
17345 2019-04-07 Richard Biener <rguenther@suse.de>
17347 PR middle-end/89618
17348 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
17349 * tree-inline.c (copy_loops): Simplify.
17351 2019-03-07 Martin Liska <mliska@suse.cz>
17353 * dwarf2out.c (add_AT_vms_delta): Revert function removal.
17355 2019-03-07 Richard Biener <rguenther@suse.de>
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
17362 (dom_opt_dom_walker::before_dom_children): Re-iterate over
17363 stmts created by folding.
17365 2019-03-07 Jakub Jelinek <jakub@redhat.com>
17368 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
17371 2019-03-06 Peter Bergner <bergner@linux.ibm.com>
17373 PR rtl-optimization/88845
17374 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
17376 * lra.c (remove_scratches_1): New function.
17377 (remove_scratches): Use it.
17378 (lra_emit_move): Likewise.
17380 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com>
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.
17388 2019-03-06 Martin Liska <mliska@suse.cz>
17390 PR gcov-profile/89577
17391 * doc/gcov.texi: Prefer to use --coverage.
17392 * doc/sourcebuild.texi: Likewise.
17394 2019-03-02 Jason Merrill <jason@redhat.com>
17396 PR c++/86485 - -Wmaybe-unused with empty class ?:
17397 * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
17399 2019-03-05 Jakub Jelinek <jakub@redhat.com>
17402 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
17405 PR middle-end/89590
17406 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
17407 exactly one argument.
17409 2019-03-05 Jakub Jelinek <jakub@redhat.com>
17410 Richard Sandiford <richard.sandiford@arm.com>
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).
17416 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com>
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.
17424 2019-03-05 Richard Biener <rguenther@suse.de>
17426 PR tree-optimization/89594
17427 * tree-if-conv.c (pass_if_conversion::execute): Handle
17428 case where .LOOP_VECTORIZED_FUNCTION was removed.
17430 2019-03-05 Jakub Jelinek <jakub@redhat.com>
17433 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
17434 instead alloca it only when needed with the needed size.
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.
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.
17447 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com>
17449 PR tree-optimization/89437
17450 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
17452 2019-03-04 Richard Biener <rguenther@suse.de>
17454 PR middle-end/89572
17455 * tree-scalar-evolution.c: (get_loop_exit_condition): Use
17458 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com>
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.
17468 2019-03-02 Jakub Jelinek <jakub@redhat.com>
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.
17478 2019-03-01 Kito Cheng <kito.cheng@gmail.com>
17479 Monk Chiang <sh.chiang04@gmail.com>
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.
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
17518 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org>
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.
17524 2019-03-01 Alexander Monakov <amonakov@ispras.ru>
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.
17530 2019-03-01 Tamar Christina <tamar.christina@arm.com>
17533 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
17534 rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
17536 2019-03-01 Richard Sandiford <richard.sandiford@arm.com>
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.
17543 2019-03-01 Richard Biener <rguenther@suse.de>
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.
17550 2019-03-01 Jakub Jelinek <jakub@redhat.com>
17552 PR middle-end/89503
17553 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
17554 on DECL_P and EXPR_P.
17556 2019-03-01 Richard Biener <rguenther@suse.de>
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
17566 (cleanup_tree_cfg): Get and pass down SSA update flags.
17568 2019-03-01 Jakub Jelinek <jakub@redhat.com>
17571 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
17572 early_lto_debug argument.
17574 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
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.
17580 2019-02-28 Marek Polacek <polacek@redhat.com>
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
17588 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
17591 * tree.c (find_atomic_core_type): Move ahead in file.
17592 (check_base_type): Correctly compare alignments of atomic types.
17594 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
17597 * config/i386/i386.c (get_builtin_code_for_version): Identify
17598 Westmere from PCLMUL, instead of AES.
17600 2019-02-28 Jakub Jelinek <jakub@redhat.com>
17603 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
17604 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
17607 2019-02-28 Tamar Christina <tamar.christina@arm.com>
17610 * config/aarch64/aarch64-option-extensions.def: Document it.
17611 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
17614 2019-02-28 Jakub Jelinek <jakub@redhat.com>
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.
17621 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
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.
17628 2019-02-27 Jakub Jelinek <jakub@redhat.com>
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
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.
17643 2019-02-27 Richard Biener <rguenther@suse.de>
17646 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
17648 2019-02-27 Richard Biener <rguenther@suse.de>
17650 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
17653 2019-02-27 Richard Biener <rguenther@suse.de>
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.
17661 2019-02-27 Richard Biener <rguenther@suse.de>
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.
17668 2019-02-27 Martin Jambor <mjambor@suse.cz>
17669 Martin Sebor <msebor@redhat.com>
17671 * doc/invoke.texi (Warning Options): Reword description of
17672 -Wno-absolute-value.
17674 2019-02-27 Jakub Jelinek <jakub@redhat.com>
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
17686 2018-02-26 Steve Ellcey <sellcey@marvell.com>
17688 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
17690 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
17692 2019-02-26 Jakub Jelinek <jakub@redhat.com>
17695 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
17696 with types other than sizetype/ssizetype.
17698 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
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.
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.
17724 2019-02-26 Jakub Jelinek <jakub@redhat.com>
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.
17735 2019-02-26 Martin Liska <mliska@suse.cz>
17737 * alloc-pool.h (struct pool_usage): Remove extra
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.
17751 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
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].
17759 2019-02-26 Jeff Law <law@redhat.com>
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.
17765 2019-02-26 Richard Biener <rguenther@suse.de>
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
17772 2019-02-26 Richard Biener <rguenther@suse.de>
17774 PR tree-optimization/89489
17775 * tree-parloops.c (create_loop_fn): Copy over last_clique.
17777 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
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.
17784 2019-02-26 Jakub Jelinek <jakub@redhat.com>
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.
17792 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
17795 * doc/extend.texi (Variadic Pointer Args): New section.
17797 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
17798 Martin Sebor <msebor@gmail.com>
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).
17808 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
17810 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
17811 (_mm_cvtpd_ps): Likewise.
17812 (_mm_cvttpd_epi32): Likewise.
17815 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
17816 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
17819 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
17821 2019-02-25 Tamar Christina <tamar.christina@arm.com>
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
17843 2019-02-25 Tamar Christina <tamar.christina@arm.com>
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):
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.
17864 2019-02-25 Tamar Christina <tamar.christina@arm.com>
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):
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.
17884 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
17886 PR rtl-optimization/86096
17887 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
17888 comparing mw_order values.
17890 2019-02-25 Jakub Jelinek <jakub@redhat.com>
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
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.
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.
17914 2019-02-24 Jakub Jelinek <jakub@redhat.com>
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.
17925 2019-02-23 Martin Sebor <msebor@redhat.com>
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.
17932 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
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.
17942 2019-02-22 Martin Sebor <msebor@redhat.com>
17944 * doc/extend.texi (Other Builtins): Add
17945 __builtin_is_constant_evaluated.
17947 2019-02-22 Richard Biener <rguenther@suse.de>
17949 PR tree-optimization/87609
17950 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
17952 2019-02-22 Jeff Law <law@redhat.com>
17954 PR rtl-optimization/87761
17955 * config/mips/mips.md: Add new combiner pattern to recognize
17956 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
17958 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
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.
17975 2019-02-22 Martin Sebor <msebor@redhat.com>
17977 PR tree-optimization/88993
17978 PR tree-optimization/88853
17979 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
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.
17986 2019-02-22 Martin Sebor <msebor@redhat.com>
17989 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
17990 unreachable subexpressions.
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>
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):
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.
18012 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
18014 PR middle-end/85598
18015 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
18018 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
18021 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
18022 (PTA_SKYLAKE): Add PTA_AES.
18023 (PTA_GOLDMONT): Likewise.
18025 2019-02-22 Sudakshina Das <sudi.das@arm.com>
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.
18031 2019-02-22 Richard Biener <rguenther@suse.de>
18033 PR tree-optimization/89440
18034 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
18035 not necessary assert.
18037 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
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.
18045 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
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.
18053 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
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.
18059 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
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.
18068 2019-02-22 Richard Biener <rguenther@suse.de>
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.
18082 2019-02-22 Richard Biener <rguenther@suse.de>
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).
18093 2019-02-21 Martin Sebor <msebor@redhat.com>
18095 * doc/extend.texi (__clear_cache): Correct signature.
18097 2019-02-21 Ian Lance Taylor <iant@golang.org>
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.
18106 2019-02-21 Jakub Jelinek <jakub@redhat.com>
18109 * builtins.c (fold_builtin_arith_overflow): If first two args are
18110 INTEGER_CSTs, set intres and ovfres to constants rather than calls
18113 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
18116 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
18117 error for -mindirect-branch/-mfunction-return with incompatible
18120 2019-02-21 Jakub Jelinek <jakub@redhat.com>
18123 * constraints.md (q): Remove.
18124 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
18127 2019-02-21 Martin Jambor <mjambor@suse.cz>
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.
18137 2019-02-20 Jakub Jelinek <jakub@redhat.com>
18139 PR middle-end/89412
18140 * expr.c (expand_assignment): If result is a MEM, use change_address
18141 instead of simplify_gen_subreg.
18143 2019-02-20 Jakub Jelinek <jakub@redhat.com>
18144 David Malcolm <dmalcolm@redhat.com>
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.
18151 2019-02-20 Jakub Jelinek <jakub@redhat.com>
18153 PR middle-end/88074
18154 PR middle-end/89415
18155 * toplev.c (do_compile): Double the emin/emax exponents to workaround
18158 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
18161 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
18162 TARGET_SSE in addition to TARGET_SSE_MATH.
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.
18169 2019-02-20 David Malcolm <dmalcolm@redhat.com>
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.
18178 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
18181 * lra-constraints.c(uses_hard_regs_p): Fix handling of
18182 paradoxical SUBREGS.
18184 2019-02-20 Li Jia He <helijia@linux.ibm.com>
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
18192 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
18194 * config/gcn/gcn.c (print_operand): Fix typo.
18196 2019-02-19 Richard Biener <rguenther@suse.de>
18198 PR middle-end/88074
18199 * toplev.c (do_compile): Initialize mpfr's exponent range
18200 based on available float modes.
18202 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
18204 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
18205 as long as the epilogue isn't completed.
18207 2019-02-18 Martin Sebor <msebor@redhat.com>
18209 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
18210 __has_cpp_attribute, and __has_include.
18212 2019-02-18 Martin Sebor <msebor@redhat.com>
18214 * doc/invoke.texi (-Wreturn-type): Correct and expand.
18216 2019-02-18 Martin Sebor <msebor@redhat.com>
18218 PR middle-end/89294
18219 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
18221 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
18223 2019-02-18 Richard Biener <rguenther@suse.de>
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.
18229 2019-02-18 Jakub Jelinek <jakub@redhat.com>
18232 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
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].
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].
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.
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
18263 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
18266 2019-02-18 Martin Jambor <mjambor@suse.cz>
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
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.
18277 2019-02-18 Martin Liska <mliska@suse.cz>
18280 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
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
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.
18307 2019-02-18 Martin Liska <mliska@suse.cz>
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
18317 2019-02-17 Alan Modra <amodra@gmail.com>
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.
18324 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
18327 * config/i386/sse.md (ssedoublemode): Remove V4HI.
18328 (PMULHRSW): Likewise.
18329 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
18331 (ssse3_pmulhrswv4hi3): New expander.
18333 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
18335 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
18336 MMX. Add isa attribute.
18338 2019-02-16 Jakub Jelinek <jakub@redhat.com>
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.
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.
18358 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
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.
18366 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
18368 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
18369 the base address on 64-bit strict-alignment platforms.
18371 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
18373 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
18375 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
18377 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
18379 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
18381 PR rtl-optimization/88308
18382 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
18383 on copied instruction.
18385 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
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
18398 (output_branch): Adjust threshold for long branch instruction.
18399 * config/visium/visium.md (cpu): Move around.
18400 (length): Adjust for the GR6.
18402 2019-02-15 Richard Biener <rguenther@suse.de>
18403 Jakub Jelinek <jakub@redhat.com>
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.
18411 2019-02-15 Jakub Jelinek <jakub@redhat.com>
18414 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
18416 * opth-gen.awk: Likewise.
18418 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
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.
18425 2019-02-14 Jakub Jelinek <jakub@redhat.com>
18427 PR rtl-optimization/89354
18428 * combine.c (make_extraction): Punt if extraction_mode is narrower
18431 2019-02-14 Maya Rashish <coypu@sdf.org>
18433 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
18434 * config/netbsd-d.c: New file.
18435 * config/t-netbsd: Add netbsd-d.o
18437 2018-02-14 Steve Ellcey <sellcey@marvell.com>
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.
18444 2019-02-14 Tamar Christina <tamar.christina@arm.com>
18447 * config/arm/iterators.md (ANY64): Add V4HF.
18449 2019-02-14 Martin Liska <mliska@suse.cz>
18451 PR rtl-optimization/89242
18452 * dce.c (delete_unmarked_insns): Call free_dominance_info we
18453 process a transformation.
18455 2019-02-14 Jakub Jelinek <jakub@redhat.com>
18457 PR tree-optimization/89314
18458 * fold-const.c (fold_binary_loc): Cast strlen argument to
18459 const char * before dereferencing it. Formatting fixes.
18461 PR middle-end/89284
18462 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
18464 2019-02-13 Ian Lance Taylor <iant@golang.org>
18466 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
18467 and set current index for other optimizations.
18469 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
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.
18481 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
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.
18489 2019-02-13 Tamar Christina <tamar.christina@arm.com>
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.
18497 2019-02-13 Martin Liska <mliska@suse.cz>
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
18504 * cgraph.h (struct cgraph_thunk_info): Remove
18505 add_pointer_bounds_args.
18506 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
18508 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
18510 * config/i386/i386.c (ix86_function_arg_advance): Remove
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
18528 * tree-inline.h (struct copy_body_data): Likewise.
18529 * varpool.c (varpool_node::dump): Likewise.
18531 2019-02-13 Jakub Jelinek <jakub@redhat.com>
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.
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.
18544 * config/i386/predicates.md (x86_64_immediate_operand): Allow
18545 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
18548 2019-02-13 Martin Liska <mliska@suse.cz>
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.
18555 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
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):
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.
18571 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
18573 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
18574 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
18576 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
18579 * config/i386/i386.md (*movoi_internal_avx): Revert revision
18580 268678 and revision 268657.
18581 (*movti_internal): Likewise.
18583 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
18586 * config/s390/s390.c (s390_decompose_address): Update comment.
18587 (s390_check_qrst_address): Reject invalid address forms after
18590 2019-02-12 Martin Liska <mliska@suse.cz>
18593 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
18594 we need default values of funct_state for a function that
18597 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
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.
18602 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
18603 (*movdi_insn_sp32): Likewise.
18604 (*movdi_insn_sp64): Likewise.
18606 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
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.
18613 2019-02-12 Richard Biener <rguenther@suse.de>
18615 PR tree-optimization/89253
18616 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
18617 duplicate the loop.
18619 2019-02-11 David Malcolm <dmalcolm@redhat.com>
18622 * input.c (selftest::test_line_offset_overflow): New selftest.
18623 (selftest::input_c_tests): Call it.
18625 2019-02-11 Martin Sebor <msebor@redhat.com>
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.
18638 2019-02-11 Martin Sebor <msebor@redhat.com>
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.
18646 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
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.
18652 2019-02-11 Alan Modra <amodra@gmail.com>
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.
18676 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18678 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
18680 * configure: Regenerate.
18682 2019-02-11 Jakub Jelinek <jakub@redhat.com>
18685 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
18688 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
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.
18695 2019-02-11 Martin Liska <mliska@suse.cz>
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.
18710 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
18712 * config/nds32/nds32.md (call_internal, call_value_internal,
18713 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
18715 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
18717 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
18720 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
18722 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
18725 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
18727 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
18729 2019-02-10 Jakub Jelinek <jakub@redhat.com>
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.
18735 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
18738 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
18741 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
18743 * config/nds32/nds32.md (trap): New pattern.
18745 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
18747 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
18750 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
18752 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
18755 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
18757 * ipa-visibility.c (localize_node): Also do not localize
18758 LDPR_PREVAILING_DEF_IRONLY_EXP.
18760 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
18763 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
18764 instead of type_with_linkage.
18766 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
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.
18773 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
18775 * config/rs6000/rs6000-string.c (expand_compare_loop,
18776 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
18779 2019-02-09 Jakub Jelinek <jakub@redhat.com>
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.
18786 2019-02-09 Alan Modra <amodra@gmail.com>
18789 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
18790 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
18793 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
18795 PR middle-end/88560
18796 * lra-constraints.c (process_alt_operands): Don't increase reject
18797 for memory when offset memory is required.
18799 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
18801 * config/s390/vector.md: Implement vector copysign.
18803 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
18805 * expr.c (expand_constructor): Correct indentations.
18807 2019-02-08 Richard Biener <rguenther@suse.de>
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.
18818 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
18820 * config/s390/constraints.md (jdd): New constraint.
18822 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
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.
18829 2019-02-08 Jakub Jelinek <jakub@redhat.com>
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.
18836 2019-02-08 Richard Biener <rguenther@suse.de>
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.
18844 2019-02-08 Jakub Jelinek <jakub@redhat.com>
18846 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
18849 2019-02-07 David Malcolm <dmalcolm@redhat.com>
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
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
18862 * tree-vectorizer.h (class auto_purge_vect_location): New class.
18864 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
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
18874 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
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.
18881 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
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
18888 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
18889 a new vector type with the alignment of the scalar memory operand.
18891 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
18892 Jakub Jelinek <jakub@redhat.com>
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
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.
18904 2019-02-07 Tamar Christina <tamar.christina@arm.com>
18906 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
18907 Make it a C initializer.
18909 2019-02-07 Tamar Christina <tamar.christina@arm.com>
18912 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
18914 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18916 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
18917 Use neon_dot<q> for type.
18918 (neon_<sup>dot_lane<vsi2qi>): Likewise.
18920 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
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.
18927 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
18929 PR rtl-optimization/89225
18930 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
18933 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
18935 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
18936 after restoring registers saved to allocate the frame on Windows.
18938 2019-02-06 Richard Biener <rguenther@suse.de>
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):
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.
18959 2019-02-06 Jakub Jelinek <jakub@redhat.com>
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.
18967 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
18970 * config/s390/s390.md: Remove load and test FP splitter.
18972 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
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.
18982 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
18985 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
18986 for the long branch case.
18988 2019-02-05 Jakub Jelinek <jakub@redhat.com>
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.
18997 PR rtl-optimization/89195
18998 * combine.c (make_extraction): For MEMs, don't extract bytes outside
18999 of the original MEM.
19001 2019-02-05 Martin Liska <mliska@suse.cz>
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.
19009 2019-02-05 Jakub Jelinek <jakub@redhat.com>
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).
19015 2019-02-05 Richard Biener <rguenther@suse.de>
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.
19023 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
19026 * doc/extend.texi (Vector Extensions): Add an example of using vector
19027 types together with x86 intrinsics.
19029 2019-02-04 Alan Modra <amodra@gmail.com>
19031 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
19032 str[] size to 160, and comment.
19034 2019-02-04 Alan Modra <amodra@gmail.com>
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.
19046 2019-02-04 Martin Liska <mliska@suse.cz>
19049 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
19050 out when ipa_fn_summaries does not contain entry for callee.
19052 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
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.
19068 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
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".
19073 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
19075 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
19076 into consideration.
19078 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
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.
19085 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
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.
19095 2019-02-03 Richard Biener <rguenther@suse.de>
19098 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
19101 2019-02-02 Jakub Jelinek <jakub@redhat.com>
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.
19108 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
19110 * combine.c (try_combine): Do not print "Can't combine" messages unless
19111 printing failed combination attempts.
19113 2019-02-01 Martin Jambor <mjambor@suse.cz>
19116 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
19117 segment and global segment variables before making them static.
19119 2019-02-01 Martin Jambor <mjambor@suse.cz>
19121 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
19122 missed optimization dump with dump_enabled_p.
19124 2019-02-01 Richard Biener <rguenther@suse.de>
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.
19135 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
19137 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
19139 2019-02-01 Jakub Jelinek <jakub@redhat.com>
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.
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.
19153 2019-02-01 Richard Biener <rguenth@suse.de>
19155 PR rtl-optimization/88593
19156 * mode-switching.c (optimize_mode_switching): Free dominators before
19157 calling cleanup_cfg.
19159 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
19161 PR tree-optimization/88932
19162 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
19164 2019-01-31 Jakub Jelinek <jakub@redhat.com>
19166 PR middle-end/89137
19167 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
19168 bogus clang warning.
19170 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
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.
19178 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
19180 PR tree-optimization/89008
19181 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
19182 process anything of the form X * 0.
19184 2019-01-31 Richard Biener <rguenther@suse.de>
19186 PR tree-optimization/89135
19187 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
19188 with abnormal preds.
19190 2019-01-31 Jakub Jelinek <jakub@redhat.com>
19193 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
19194 always_inline callees into no_sanitize_address callers.
19196 2019-01-31 Richard Biener <rguenther@suse.de>
19198 PR rtl-optimization/89115
19199 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
19201 2019-01-30 Martin Sebor <msebor@redhat.com>
19204 * doc/extend.texi (cast to a union): Correct and expand.
19206 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
19208 PR rtl-optimization/87246
19209 * lra-constraints.c (simplify_operand_subreg): Reload memory
19210 in subreg if the address became invalid.
19212 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
19215 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
19216 Disable for little-endian.
19218 2019-01-30 Richard Biener <rguenther@suse.de>
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
19226 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
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
19233 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
19235 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
19237 2019-01-30 Richard Biener <rguenther@suse.de>
19239 PR tree-optimization/89111
19240 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
19241 canonicalization to appropriately sized access types.
19243 2019-01-30 Jakub Jelinek <jakub@redhat.com>
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.
19250 2019-01-30 Ulrich Drepper <drepper@redhat.com>
19252 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
19255 2019-01-29 Martin Sebor <msebor@redhat.com>
19258 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
19260 2019-01-29 Jakub Jelinek <jakub@redhat.com>
19264 * omp-simd-clone.c (simd_clone_clauses_extract)
19265 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
19266 OMP_CLAUSE_ALIGNED_ALIGNMENT.
19268 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
19270 * config.gcc: Force .init_array for ARC.
19272 2019-01-29 Richard Biener <rguenther@suse.de>
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.
19280 2019-01-28 Jakub Jelinek <jakub@redhat.com>
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
19288 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
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.
19294 2019-01-28 Jakub Jelinek <jakub@redhat.com>
19297 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
19298 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
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.
19312 2019-01-28 Richard Biener <rguenther@suse.de>
19315 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
19318 2019-01-28 Richard Biener <rguenther@suse.de>
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.
19328 2019-01-27 Jakub Jelinek <jakub@redhat.com>
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.
19339 2019-01-26 Martin Jambor <mjambor@suse.cz>
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
19347 * tree-cfgcleanup.c: Include cgraph.h.
19348 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
19350 * ipa-prop.c: Include tree-cfgcleanup.h.
19351 (ipcp_transform_function): Call
19352 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
19354 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
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.
19362 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
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.
19372 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
19374 PR middle-end/89037
19375 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
19376 instead of accessing TREE_INT_CST_ELT directly.
19378 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
19380 * doc/sourcebuild.texi (Environment attributes): Add fenv and
19381 fenv_exceptions description.
19383 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
19385 PR rtl-optimization/87763
19386 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
19387 Allow SUBREG when matching CC_NZmode compare.
19389 2019-01-25 Richard Biener <rguenther@suse.de>
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.
19395 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
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.
19401 2019-01-25 Richard Biener <rguenther@suse.de>
19403 PR tree-optimization/86865
19404 * graphite-scop-detection.c (scop_detection::can_represent_loop):
19405 Reject non-do-while loops.
19407 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
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):
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):
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
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
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
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
19478 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
19479 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
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.
19513 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
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.
19523 2019-01-24 Jakub Jelinek <jakub@redhat.com>
19526 * config/i386/i386.c (ix86_pic_register_p): Return true for
19527 UNSPEC_SET_GOT too.
19529 PR tree-optimization/88964
19530 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
19531 punt if HONOR_SNANS (chrec).
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.
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.
19544 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
19547 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
19548 force the alignment of m_val.
19550 2019-01-24 Richard Biener <rguenther@suse.de>
19553 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
19554 When in "legacy" debug mode make sure to reset self-origins.
19556 2019-01-24 Martin Liska <mliska@suse.cz>
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.
19564 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
19566 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
19567 * vr-values.c (find_case_label_ranges): Fix a comment typo.
19569 2019-01-23 Xuepeng Guo <xuepeng.guo@intel.com>
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
19579 * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
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
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.
19600 2019-01-23 Bin Cheng <bin.cheng@arm.com>
19601 Steve Ellcey <sellcey@marvell.com>
19604 * recog.c (address_operand): Return false on wrong mode for address.
19605 (constrain_operands): Check for mode with 'p' constraint.
19607 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
19610 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
19611 Disparage MMX alternative.
19612 (sse2_cvtpd2pi): Ditto.
19613 (sse2_cvttpd2pi): Ditto.
19615 2019-01-23 David Malcolm <dmalcolm@redhat.com>
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.
19622 2019-01-23 Jakub Jelinek <jakub@redhat.com>
19625 * doc/extend.texi: Document break and continue behavior in
19626 statement expressions.
19628 2019-01-23 Richard Biener <rguenther@suse.de>
19630 PR tree-optimization/89008
19631 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
19632 not leave another stray operand.
19634 2019-01-23 Jakub Jelinek <jakub@redhat.com>
19636 * BASE-VER: Bump to 9.0.1.
19638 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
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.
19644 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
19646 * config/arc/atomic.md: Add operand to DMB instruction.
19648 2019-01-23 Jakub Jelinek <jakub@redhat.com>
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.
19655 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
19657 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
19659 2019-01-22 Jakub Jelinek <jakub@redhat.com>
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.
19666 PR middle-end/88968
19667 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
19668 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
19671 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
19672 Disable for little endian.
19674 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
19677 * config/arm/arm.c (arm_needs_double_word_align): Check
19678 DECL_BIT_FIELD_TYPE.
19680 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
19681 H.J. Lu <hongjiu.lu@intel.com>
19684 * config/i386/i386-builtin.def: Add mask2 to all builtin
19685 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
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
19700 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
19702 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
19705 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
19708 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
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.
19718 2019-01-22 Richard Biener <rguenther@suse.de>
19720 PR tree-optimization/88862
19721 * graphite-scop-detection.c
19722 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
19724 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
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.
19731 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
19733 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
19734 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
19736 2019-01-22 Jakub Jelinek <jakub@redhat.com>
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.
19743 PR rtl-optimization/88904
19744 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
19745 any nonequal registers before processing BB_END (b).
19748 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
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.
19754 PR rtl-optimization/49429
19756 PR rtl-optimization/86334
19758 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
19759 addressable from here...
19760 (emit_block_op_via_libcall): ... to here.
19762 2019-01-22 Richard Biener <rguenther@suse.de>
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
19770 2019-01-22 Alan Modra <amodra@gmail.com>
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,
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.
19797 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
19800 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
19801 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
19803 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
19805 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
19806 string contents as hash_map keys.
19808 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
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.
19818 2019-01-21 Richard Biener <rguenther@suse.de>
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.
19825 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
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.
19848 2019-01-20 Martin Jambor <mjambor@suse.cz>
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
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
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.
19888 2019-01-19 Jakub Jelinek <jakub@redhat.com>
19890 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
19891 outside of #if CHECKING_P code.
19893 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
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.
19904 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
19907 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
19910 2019-01-18 Richard Biener <rguenther@suse.de>
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
19917 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
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.
19936 2019-01-18 Martin Liska <mliska@suse.cz>
19938 * params.def: Fix comment.
19939 * tree-profile.c (gimple_init_gcov_profiler): Bump function
19941 (gimple_gen_ic_func_profiler): Likewise.
19943 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
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.
19958 2019-01-18 Jakub Jelinek <jakub@redhat.com>
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.
19969 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
19972 * doc/install.texi (with-multilib-list): Document for aarch64.
19974 2019-01-18 Jakub Jelinek <jakub@redhat.com>
19977 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
19978 (("..."))) with ("...").
19980 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
19982 * doc/extend.texi (Built-in Functions for Memory Model Aware
19983 Atomic Operations): Document atomic fetch and nand.
19985 2019-01-18 Martin Liska <mliska@suse.cz>
19986 Richard Biener <rguenther@suse.de>
19988 PR middle-end/88587
19989 * cgraph.h (create_version_clone_with_body): Add new argument
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
19997 (expand_target_clones): Do not call valid_attribute_p, it must
19999 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
20002 2019-01-17 Jakub Jelinek <jakub@redhat.com>
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.
20009 2019-01-17 Martin Sebor <msebor@redhat.com>
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.
20015 2018-01-17 Steve Ellcey <sellcey@cavium.com>
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
20031 2019-01-17 Martin Sebor <msebor@redhat.com>
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
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.
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>
20053 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
20055 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
20057 * doc/sourcebuild.texi: Document dg-require-effective-target
20058 llvm_binutils and offload_gcn.
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>
20065 * doc/sourcebuild.texi: Document dg-required-effective-target
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>
20075 * config.gcc: Add amdgcn*-*-amdhsa configuration.
20076 * configure.ac: Check for dlopen.
20077 * configure: Regenerate.
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>
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.
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>
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.
20113 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
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.
20120 2019-01-17 Tamar Christina <tamar.christina@arm.com>
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.
20127 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20129 * config/aarch64/aarch64.c (ares_tunings): Define.
20130 * config/aarch64/aarch64-cores.def (ares): Use the above.
20132 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
20136 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
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
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.
20193 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
20197 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
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.
20207 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
20211 2018-12-15 Jakub Jelinek <jakub@redhat.com>
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.
20218 2019-01-17 Richard Biener <rguenther@suse.de>
20221 * dwarf2out.c (want_pubnames): Never generate pubnames sections
20222 and friends for the LTO part of debug info.
20224 2019-01-17 Jakub Jelinek <jakub@redhat.com>
20226 PR tree-optimization/86214
20227 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
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.
20235 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
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.
20243 2019-01-16 David Malcolm <dmalcolm@redhat.com>
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
20251 2019-01-16 Tamar Christina <tamar.christina@arm.com>
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
20260 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
20262 * config/alpha/alpha.c (alpha_gimplify_va_arg):
20263 Handle split indirect COMPLEX_TYPE arguments.
20265 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
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
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.
20294 2019-01-16 Tamar Christina <tamar.christina@arm.com>
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.
20303 2019-01-16 Martin Liska <mliska@suse.cz>
20305 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
20307 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
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.
20314 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
20316 * godump.c (go_output_typedef): When outputting a typedef, refer
20317 to the underlying type by its name and not its structure.
20319 2019-01-15 David Malcolm <dmalcolm@redhat.com>
20322 * tree.c (build_function_type): Assert that arg_types is not
20325 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
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.
20335 2019-01-15 Richard Biener <rguenther@suse.de>
20338 * dwarf2out.c (gen_member_die): Do not generate inheritance
20341 2019-01-15 Richard Biener <rguenther@suse.de>
20343 PR tree-optimization/88855
20344 * tree-if-conv.c (combine_blocks): Collect
20345 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
20347 2019-01-15 Tom de Vries <tdevries@suse.de>
20350 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
20351 lhs == NULL_TREE for gang-level reduction.
20353 2019-01-15 Richard Biener <rguenther@suse.de>
20354 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
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.
20361 2019-01-15 Jakub Jelinek <jakub@redhat.com>
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.
20370 2019-01-14 Andi Kleen <ak@linux.intel.com>
20372 * Makefile.in: Lower autofdo sampling rate by 10x.
20373 * Makefile.tpl: Dito.
20375 2019-01-14 Tom Honermann <tom@honermann.net>
20377 * defaults.h: Define CHAR8_TYPE.
20379 2019-01-14 Martin Sebor <msebor@redhat.com>
20382 * doc/extend.texi (Darwin Format Checks): Clarify.
20384 2019-01-14 Richard Biener <rguenther@suse.de>
20386 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
20387 whether we are in (simplify ...) or (match ...) context.
20389 2019-01-14 Jakub Jelinek <jakub@redhat.com>
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.
20403 2019-01-12 Tom de Vries <tdevries@suse.de>
20405 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
20406 vector length using -fopenacc-dim.
20408 2019-01-12 Tom de Vries <tdevries@suse.de>
20410 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
20411 lengths into account.
20413 2019-01-12 Svante Signell <svante.signell@gmail.com>
20415 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
20416 (TARGET_CAN_SPLIT_STACK): Define.
20417 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
20419 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
20421 * params.def (inline-unit-growth): Set to 40.
20423 2019-01-12 Jakub Jelinek <jakub@redhat.com>
20425 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
20427 2019-01-12 Tom de Vries <tdevries@suse.de>
20429 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
20430 region calling vector-partitionable routine, set default_vector_length
20433 2019-01-12 Tom de Vries <tdevries@suse.de>
20435 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
20436 variable default_vector_length.
20438 2019-01-12 Tom de Vries <tdevries@suse.de>
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
20445 2019-01-12 Tom de Vries <tdevries@suse.de>
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
20454 * target.def (validate_dims): Add used parameter in DEFHOOK.
20455 * targhooks.h (default_goacc_validate_dims): Add used parameter.
20457 2019-01-11 Jakub Jelinek <jakub@redhat.com>
20459 PR middle-end/85956
20461 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
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.
20468 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
20470 PR rtl-optimization/87305
20472 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
20473 for little endian pseudos used as paradoxical subreg.
20475 2019-01-11 Jakub Jelinek <jakub@redhat.com>
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.
20482 2019-01-11 Alan Modra <amodra@gmail.com>
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.
20491 2019-01-11 Jakub Jelinek <jakub@redhat.com>
20493 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
20495 2019-01-11 Steve Ellcey <sellcey@marvell.com>
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
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
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.
20542 2019-01-11 Steve Ellcey <sellcey@marvell.com>
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.
20554 2019-01-11 Jakub Jelinek <jakub@redhat.com>
20557 * passes.c (finish_optimization_passes): Call print_combine_total_stats
20558 inside of pass_combine_1 dump rather than pass_profile_1.
20560 2019-01-11 Tom de Vries <tdevries@suse.de>
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
20568 2019-01-11 Tom de Vries <tdevries@suse.de>
20570 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
20572 2019-01-11 Jan Beulich <jbeulich@suse.com>
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
20580 2019-01-10 Jakub Jelinek <jakub@redhat.com>
20583 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
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".
20592 2019-01-10 Tamar Christina <tamar.christina@arm.com>
20594 * config/aarch64/aarch64-builtins.c
20595 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
20596 (aarch64_init_simd_builtins): ...Here
20598 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
20600 PR rtl-optimization/87305
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.
20607 2019-01-10 Richard Biener <rguenther@suse.de>
20609 PR tree-optimization/88792
20610 * tree-ssa-pre.c (get_representative_for): Do not return a
20613 2019-01-10 Jakub Jelinek <jakub@redhat.com>
20615 PR middle-end/84877
20617 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
20618 (assign_parm_setup_block): Do the argument slot realignment here
20621 2019-01-10 Stefan Agner <stefan@agner.ch>
20624 * config/arm/arm.c (arm_option_override_internal): Force
20625 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
20627 2019-01-10 Jakub Jelinek <jakub@redhat.com>
20630 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
20633 2019-01-10 Tamar Christina <tamar.christina@arm.com>
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.
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.
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>):
20715 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
20716 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
20718 2019-01-10 Tamar Christina <tamar.christina@arm.com>
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):
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.
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.
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.
20819 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
20821 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
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.
20836 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
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.
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.
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.
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.
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.
20945 * reload.c: Likewise.
20946 * reload1.c: Likewise.
20947 * reorg.c: Likewise.
20948 * resource.c: Likewise.
20949 * rtl.def: 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.
20992 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
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.
21003 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
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.
21033 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
21034 James Clarke <jrtc27@jrtc27.com>
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.
21123 2018-01-09 Sudakshina Das <sudi.das@arm.com>
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.
21132 2018-01-09 Sudakshina Das <sudi.das@arm.com>
21133 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
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
21139 * config/aarch64/aarch64-bti-insert.c: New file.
21140 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
21142 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
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.
21149 2018-01-09 Sudakshina Das <sudi.das@arm.com>
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.
21162 2018-01-09 Sudakshina Das <sudi.das@arm.com>
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.
21172 2018-01-09 Sudakshina Das <sudi.das@arm.com>
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.
21183 2018-01-09 Sudakshina Das <sudi.das@arm.com>
21185 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
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.
21191 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
21193 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
21194 (xorsign<mode>3): Likewise.
21196 2019-01-09 Jelinek <jakub@redhat.com>
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.
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.
21206 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
21208 * doc/invoke.texi (-Os): Remove trailing spaces.
21209 (-finline-functions): Remove reference to -O2.
21211 2019-01-08 Jakub Jelinek <jakub@redhat.com>
21213 PR rtl-optimization/79593
21214 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
21216 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
21217 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
21219 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
21222 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
21226 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
21227 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
21229 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
21232 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
21233 ix86_avx_u128_mode_entry.
21235 2019-01-08 Martin Liska <mliska@suse.cz>
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.
21242 2019-01-08 Richard Biener <rguenther@suse.de>
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.
21251 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
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.
21274 2019-01-08 Alan Modra <amodra@gmail.com>
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.
21286 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
21288 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
21289 optimization for masked stores.
21291 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
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.
21299 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
21302 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
21303 unsigned_p. Handle signed and unsigned overflow correction as
21305 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
21307 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
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
21328 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
21330 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
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.
21338 2019-01-07 Richard Biener <rguenther@suse.de>
21340 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
21341 of tree_operand_hash.
21343 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
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.
21351 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
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, ... }.
21361 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
21363 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
21364 with x86_64-pc-linux-gnu.
21366 2019-01-07 Tom de Vries <tdevries@suse.de>
21369 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
21371 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
21374 2019-01-07 Jakub Jelinek <jakub@redhat.com>
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.
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.
21387 PR tree-optimization/88676
21388 * tree-ssa-phiopt.c (two_value_replacement): New function.
21389 (tree_ssa_phiopt_worker): Call it.
21392 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
21393 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
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.
21410 2019-01-07 Tom de Vries <tdevries@suse.de>
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
21427 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
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.
21440 2019-01-07 Tom de Vries <tdevries@suse.de>
21443 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
21446 2019-01-07 Tom de Vries <tdevries@suse.de>
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.
21464 2019-01-07 Tom de Vries <tdevries@suse.de>
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
21471 2019-01-07 Tom de Vries <tdevries@suse.de>
21473 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
21474 as late as possible.
21476 2019-01-07 Tom de Vries <tdevries@suse.de>
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.
21484 2019-01-07 Tom de Vries <tdevries@suse.de>
21486 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
21488 2019-01-07 Tom de Vries <tdevries@suse.de>
21490 * omp-offload.c (oacc_get_min_dim): New function.
21491 * omp-offload.h (oacc_get_min_dim): Declare.
21493 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
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.
21499 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
21503 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
21505 * ipa-inline.c (edge_badness): Use inlined_time instead of
21506 inline_summaries->get.
21508 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
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.
21515 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
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.
21525 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
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
21535 * ipa-inline.c (can_inline_edge_by_limits_p,
21536 want_inline_small_function_p): Use new parameters.
21538 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
21540 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
21542 2019-01-05 Jakub Jelinek <jakub@redhat.com>
21544 PR middle-end/82564
21546 * expr.c (expand_assignment): For calls returning VLA structures
21547 if to_rtx is not a MEM, force it into a stack temporary.
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.
21559 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
21561 * params.def (hot-bb-count-ws-permille): Set to 990.
21563 2019-01-04 Martin Sebor <msebor@redhat.com>
21566 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
21569 2019-01-04 Martin Sebor <msebor@redhat.com>
21572 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
21574 2019-01-04 Jakub Jelinek <jakub@redhat.com>
21576 * gdbinit.in: Turn off pagination for the skip commands, restore
21577 it to previous state afterwards.
21579 2019-01-04 Jakub Jelinek <jakub@redhat.com>
21582 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
21583 of GET_MODE (opN) as modes of the libcall arguments.
21585 2019-01-04 Jan Beulich <jbeulich@suse.com>
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
21616 2019-01-03 Martin Sebor <msebor@redhat.com>
21618 PR tree-optimization/88659
21619 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
21621 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
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.
21627 2019-01-03 Tom de Vries <tdevries@suse.de>
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
21632 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
21634 2019-01-03 Tom de Vries <tdevries@suse.de>
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.
21641 2019-01-03 Tom de Vries <tdevries@suse.de>
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.
21647 2019-01-03 Tom de Vries <tdevries@suse.de>
21649 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
21650 factored out of ...
21651 (nvptx_goacc_validate_dims): ... here.
21653 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
21655 PR tree-optimization/85574
21656 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
21658 (struct ssa_equip_hash_traits): Declare.
21659 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
21661 2019-01-03 Jakub Jelinek <jakub@redhat.com>
21664 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
21665 change it to qualified_type.
21667 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
21669 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
21670 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
21672 2019-01-02 Martin Sebor <msebor@redhat.com>
21673 Jeff Law <law@redhat.com>
21675 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
21676 (get_range_strlen_tree): Update appropriately.
21678 * gimple-fold.h (get_range_strlen): Drop unused last argument.
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.
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
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.
21704 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
21707 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
21708 false at WPA time when body was removed.
21710 2019-01-02 Martin Liska <mliska@suse.cz>
21712 PR tree-optimization/88650
21713 * predict.c (set_even_probabilities): Calculate probability
21714 remainer only when really used.
21716 2019-01-02 Richard Biener <rguenther@suse.de>
21718 PR middle-end/88651
21719 * tree-data-ref.c (analyze_subscript_affine_affine): Use
21720 widest_ints when mangling max_stmt_execution results.
21722 2019-01-02 Richard Biener <rguenther@suse.de>
21724 PR tree-optimization/88621
21725 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
21726 bitfields when canoncalizing.
21728 2019-01-02 Richard Biener <rguenther@suse.de>
21731 * config/i386/x86-tune-costs.h (intel_cost): Adjust
21732 cost of cheap SSE instruction.
21734 2019-01-02 Richard Biener <rguenther@suse.de>
21737 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
21738 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
21740 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
21741 set after UIDs before splitting them.
21743 2019-01-01 Martin Sebor <msebor@redhat.com>
21744 Jeff Law <law@redhat.com>
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.
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
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.
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.
21780 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
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.
21790 2019-01-01 Jakub Jelinek <jakub@redhat.com>
21792 Update copyright years.
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.
21807 Copyright (C) 2019 Free Software Foundation, Inc.
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.