i386: Add mask2 to builtin_description
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2019-01-22  Hongtao Liu  <hongtao.liu@intel.com>
2             H.J. Lu  <hongjiu.lu@intel.com>
3
4         PR target/88909
5         * config/i386/i386-builtin.def: Add mask2 to all builtin
6         initializations.  Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
7         SPECIAL_ARGS.
8         * config/i386/i386.c (BDESC): Add mask2 to the definition.
9         (BDESC_FIRST): Likewise.
10         (define_builtin): Add an argument for mask2.  Updated to handle
11         both ix86_isa_flags and ix86_isa_flags2.
12         (define_builtin_const): Likewise.
13         (define_builtin_pure): Likewise.
14         (define_builtin2): Deleted.
15         (define_builtin_const2): Likewise.
16         (builtin_description): Add a member, mask2.
17         (bdesc_*): Add mask2 to builtin initializations.
18         (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
19         def_builtin_const and def_builtin_pure.  Remove SPECIAL_ARGS2
20         support.
21         (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
22
23 2019-01-22  H.J. Lu  <hongjiu.lu@intel.com>
24
25         PR target/88954
26         * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
27         noplt attribute.
28
29 2019-01-22  Richard Earnshaw  <rearnsha@arm.com>
30
31         PR target/88469
32         * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
33         alignment is dominated by a bitfield with 64-bit aligned base type.
34         (arm_function_arg): Emit a warning if the alignment has changed since
35         earlier GCC releases.
36         (arm_function_arg_boundary): Likewise.
37         (arm_setup_incoming_varargs): Likewise.
38
39 2019-01-22  Richard Biener  <rguenther@suse.de>
40
41         PR tree-optimization/88862
42         * graphite-scop-detection.c
43         (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
44
45 2019-01-22  Andrew Stubbs  <ams@codesourcery.com>
46
47         * doc/extend.tex (AMD GCN Function Attributes): New section.
48         * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
49         * doc/invoke.texi (AMD GCN Options): New section.
50         * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
51
52 2019-01-22  Eric Botcazou  <ebotcazou@adacore.com>
53
54         * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
55         register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
56
57 2019-01-22  Jakub Jelinek  <jakub@redhat.com>
58
59         PR tree-optimization/88044
60         * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
61         is false in the first iteration, but !every_iteration, return false
62         instead of true with niter->niter zero.
63
64         PR rtl-optimization/88904
65         * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
66         any nonequal registers before processing BB_END (b).
67
68         PR target/88905
69         * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
70         GET_MODE (op0).
71         (expand_binop_directly, expand_doubleword_clz,
72         expand_doubleword_popcount, expand_ctz, expand_ffs,
73         expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
74
75         PR rtl-optimization/49429
76         PR target/49454
77         PR rtl-optimization/86334
78         PR target/88906
79         * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
80         addressable from here...
81         (emit_block_op_via_libcall): ... to here.
82
83 2019-01-22  Richard Biener  <rguenther@suse.de>
84
85         * tree-vect-loop.c (vect_analyze_loop_operations): Use
86         auto_vec for cost vector to fix memleak.
87         (vectorize_fold_left_reduction): Properly gather SLP defs.
88         (vectorizable_comparison): Do not swap operands to properly
89         gather SLP defs.
90
91 2019-01-22  Alan Modra  <amodra@gmail.com>
92
93         PR target/88614
94         * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
95         stays a reg.  Allow a const_int.
96         * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
97         * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
98         (IS_NOMARK_TLSGETADDR): Define.
99         * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
100         (rs6000_output_tlsargs): New function.
101         (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
102         __tls_get_addr call takes an arg.
103         (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
104         * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
105         delete split..
106         (call_value_nonlocal_sysv): ..or here, delete split.
107         (tls_gdld_nomark): Delete.
108         (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
109         predicate.  Call rs6000_output_tlsargs.  Adjust length to suit.
110         (call_value_nonlocal_sysv): Likewise.
111         (call_value_nonlocal_sysv_secure): Likewise.
112         (call_value_nonlocal_aix): Likewise.
113         (call_value_indirect_aix): Likewise.
114         (call_value_indirect_elfv2): Likewise.
115         (call_value_local32, call_value_local64): Disable for no-mark tls.
116         (call_value_local_aix): Likewise.
117
118 2019-01-21  Uroš Bizjak  <ubizjak@gmail.com>
119
120         PR target/88938
121         * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
122         case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
123
124 2019-01-21  Michael Ploujnikov  <michael.ploujnikov@oracle.com>
125
126         * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
127         string contents as hash_map keys.
128
129 2019-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
130
131         PR c/88928
132         * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
133         for rvalue context.  Handle rvalues correctly.  Use min_align_of_type
134         instead of TYPE_ALIGN.
135         (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
136         Use min_align_of_type instead of TYPE_ALIGN_UNIT.  Check for NULL
137         pointer from TYPE_STUB_DECL.
138
139 2019-01-21  Richard Biener  <rguenther@suse.de>
140
141         PR tree-optimization/88934
142         * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
143         at the possibly non-constant operand.
144         (vect_get_constant_vectors): Adjust.
145
146 2019-01-21  H.J. Lu  <hongjiu.lu@intel.com>
147
148         PR target/71659
149         * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
150         * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
151         instead of _X86INTRIN_H_INCLUDED.
152         * onfig/i386/clwbintrin.h: Likewise.
153         * config/i386/pkuintrin.h: Likewise.
154         * config/i386/prfchwintrin.h: Likewise.
155         * config/i386/rdseedintrin.h: Likewise.
156         * config/i386/wbnoinvdintrin.h: Likewise.
157         * config/i386/xsavecintrin.h: Likewise.
158         * config/i386/xsavesintrin.h: Likewise.
159         * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
160         * config/i386/xsaveintrin.h: Likewise.
161         * config/i386/xsaveoptintrin.h: Likewise.
162         * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
163         <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
164         <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
165         <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
166         <wbnoinvdintrin.h> and <pkuintrin.h> to ...
167         * config/i386/immintrin.h: Here.
168
169 2019-01-20  Martin Jambor  <mjambor@suse.cz>
170
171         PR ipa/87615
172         * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
173         with aa_walk_budget.
174         * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
175         aa_walk_budget_p parameter.
176         * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi.  Limit AA
177         walk.  Updated all callers.
178         (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
179         (eliminated_by_inlining_prob): New parameter fbi, pass it on to
180         unmodified_parm.
181         (will_be_nonconstant_expr_predicate): New parameter fbi, removed
182         parameter info.  Extract info from fbi.  Pass fbi to recursive calls
183         and to unmodified_parm.
184         (phi_result_unknown_predicate): New parameter fbi, removed parameter
185         info, updated call to will_be_nonconstant_expr_predicate.
186         (param_change_prob): New parameter fbi, limit AA walking.
187         (analyze_function_body): Initialize aa_walk_budget in fbi.  Update
188         calls to various above functions.
189         * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
190         parameter.  Use it to limit AA walking.
191         * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
192         fbi, limit AA walk.
193         (detect_type_change): New parameter fbi, pass it on to
194         detect_type_change_from_memory_writes.
195         (detect_type_change_ssa): Likewise.
196         (aa_overwalked): Removed.
197         (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
198         accordingly, adjust to the neew AA limiting scheme.
199         (parm_ref_data_preserved_p): Likewise.
200         (ipa_compute_jump_functions_for_edge): Adjust call to
201         get_dynamic_type.
202         (ipa_analyze_call_uses): Likewise.
203         (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
204         (ipa_analyze_node): Initialize aa_walk_budget.
205         (ipcp_transform_function): Likewise.
206         * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
207         to get_dynamic_type.
208
209 2019-01-19  Jakub Jelinek  <jakub@redhat.com>
210
211         * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
212         outside of #if CHECKING_P code.
213
214 2019-01-19  Richard Sandiford  <richard.sandiford@arm.com>
215
216         * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
217         New function, split out from...
218         (loop_versioning::analyze_stride): ...here.
219         (loop_versioning::find_per_loop_multiplication): Use gassign.
220         (loop_versioning::analyze_term_using_scevs): Return a success code.
221         (loop_versioning::analyze_arbitrary_term): New function.
222         (loop_versioning::analyze_address_fragment): Use
223         analyze_arbitrary_term if all else fails.
224
225 2019-01-18  Segher Boessenkool  <segher@kernel.crashing.org>
226
227         PR target/88892
228         * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
229         operands.
230
231 2019-01-18  Richard Biener  <rguenther@suse.de>
232
233         PR tree-optimization/88903
234         * tree-vect-stmts.c (vectorizable_shift): Verify we see all
235         scalar stmts a SLP shift amount is composed of when detecting
236         shifts by scalars.
237
238 2019-01-18  Richard Earnshaw  <rearnsha@arm.com>
239
240         PR target/88799
241         * config/arm/arm-cpus.in (mp): New feature.
242         (sec): New feature.
243         (fgroup ARMv7ve): Add mp and sec features.
244         (arch armv7-a): Add options to allow mp and sec extensions.
245         (cpu generic-armv7-a): Add options to allow mp and sec extensions.
246         (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
247         extenstions to the base architecture.
248         (cpu cortex-a8): Add sec extension to the base architecture.
249         (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
250         * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
251         variants down to the base v7-a varaint.
252         * config/arm/t-multilib (v7_a_arch_variants): New variable.
253         * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
254         of permitted extensions for -march=armv7-a and for
255         -mcpu=generic-armv7-a.
256
257 2019-01-18  Martin Liska  <mliska@suse.cz>
258
259         * params.def: Fix comment.
260         * tree-profile.c (gimple_init_gcov_profiler): Bump function
261         name.
262         (gimple_gen_ic_func_profiler): Likewise.
263
264 2019-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
265
266         * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
267         * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
268         and put in error checks for stack protector guard options.
269         (aarch64_stack_protect_guard): New.
270         (TARGET_STACK_PROTECT_GUARD): Define.
271         * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
272         (reg_stack_protect_address<mode>): New.
273         (stack_protect_set): Adjust for SSP_GLOBAL.
274         (stack_protect_test): Likewise.
275         * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
276         (-mstack-protector-guard): Likewise.
277         (-mstack-protector-guard-offset): Likewise.
278
279 2019-01-18  Jakub Jelinek  <jakub@redhat.com>
280
281         PR tree-optimization/86214
282         * tree-inline.h (struct copy_body_data): Add
283         add_clobbers_to_eh_landing_pads member.
284         * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
285         (copy_edges_for_bb): Call it if EH edge destination is <
286         id->add_clobbers_to_eh_landing_pads.  Fix a comment typo.
287         (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
288         if flag_stack_reuse != SR_NONE and clear it afterwards.
289
290 2019-01-18  Christophe Lyon  <christophe.lyon@linaro.org>
291
292         PR target/85596
293         * doc/install.texi (with-multilib-list): Document for aarch64.
294
295 2019-01-18  Jakub Jelinek  <jakub@redhat.com>
296
297         PR target/88734
298         * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
299         (("..."))) with ("...").
300
301 2019-01-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
302
303         * doc/extend.texi (Built-in Functions for Memory Model Aware
304         Atomic Operations): Document atomic fetch and nand.
305
306 2019-01-18  Martin Liska  <mliska@suse.cz>
307             Richard Biener  <rguenther@suse.de>
308
309         PR middle-end/88587
310         * cgraph.h (create_version_clone_with_body): Add new argument
311         with attributes.
312         * cgraphclones.c (cgraph_node::create_version_clone): Add
313         DECL_ATTRIBUTES to a newly created decl.  And call
314         valid_attribute_p so that proper cl_target_optimization_node
315         is set for the newly created declaration.
316         * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
317         for declaration.
318         (expand_target_clones): Do not call valid_attribute_p, it must
319         be already done.
320         * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
321         vector types.
322
323 2019-01-17  Jakub Jelinek  <jakub@redhat.com>
324
325         PR target/88734
326         * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
327         (("..."))) with ("...").  Use arch=armv8.2-a+sha3 instead of
328         arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
329
330 2019-01-17  Martin Sebor  <msebor@redhat.com>
331
332         PR middle-end/88273
333         * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
334         Handle anti-ranges the same as no range at all.
335
336 2018-01-17  Steve Ellcey  <sellcey@cavium.com>
337
338         * config/aarch64/aarch64.c (cgraph.h): New include.
339         (intl.h): New include.
340         (supported_simd_type): New function.
341         (currently_supported_simd_type): Ditto.
342         (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
343         (aarch64_simd_clone_adjust): Ditto.
344         (aarch64_simd_clone_usable): Ditto.
345         (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
346         (TARGET_SIMD_CLONE_ADJUST): Ditto.
347         (TARGET_SIMD_CLONE_USABLE): Ditto.
348         * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
349         * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
350         call.
351
352 2019-01-17  Martin Sebor  <msebor@redhat.com>
353
354         PR tree-optimization/88800
355         * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
356         NO_WARNING bit here.  Avoid folding out-of-bounds calls.
357         * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
358         redundant argument.  Add new argument and issue diagnostics under
359         its control.  Detect out-of-bounds access even with warnings
360         disabled.
361         (check_bounds_or_overlap): Change return type.  Add argument.
362         (wrestrict_dom_walker::check_call): Adjust.
363         * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
364         * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
365         check_bounds_or_overlap's return value.
366         (handle_builtin_stxncpy): Same.
367         (handle_builtin_strcat): Same.
368
369 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
370             Kwok Cheung Yeung  <kcy@codesourcery.com>
371             Julian Brown  <julian@codesourcery.com>
372             Tom de Vries  <tom@codesourcery.com>
373
374         * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
375
376 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
377
378         * doc/sourcebuild.texi: Document dg-require-effective-target
379         llvm_binutils and offload_gcn.
380
381 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
382             Kwok Cheung Yeung  <kcy@codesourcery.com>
383             Julian Brown  <julian@codesourcery.com>
384             Tom de Vries  <tom@codesourcery.com>
385
386         * doc/sourcebuild.texi: Document dg-required-effective-target
387         exceptions.
388
389 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
390             Kwok Cheung Yeung  <kcy@codesourcery.com>
391             Julian Brown  <julian@codesourcery.com>
392             Tom de Vries  <tom@codesourcery.com>
393             Jan Hubicka  <hubicka@ucw.cz>
394             Martin Jambor  <mjambor@suse.cz>
395
396         * config.gcc: Add amdgcn*-*-amdhsa configuration.
397         * configure.ac: Check for dlopen.
398         * configure: Regenerate.
399
400 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
401             Kwok Cheung Yeung  <kcy@codesourcery.com>
402             Julian Brown  <julian@codesourcery.com>
403             Tom de Vries  <tom@codesourcery.com>
404             Jan Hubicka  <hubicka@ucw.cz>
405             Martin Jambor  <mjambor@suse.cz>
406
407         * common/config/gcn/gcn-common.c: New file.
408         * config/gcn/driver-gcn.c: New file.
409         * config/gcn/gcn-builtins.def: New file.
410         * config/gcn/gcn-hsa.h: New file.
411         * config/gcn/gcn-modes.def: New file.
412         * config/gcn/gcn-opts.h: New file.
413         * config/gcn/gcn-passes.def: New file.
414         * config/gcn/gcn-protos.h: New file.
415         * config/gcn/gcn-run.c: New file.
416         * config/gcn/gcn-tree.c: New file.
417         * config/gcn/gcn.c: New file.
418         * config/gcn/gcn.h: New file.
419         * config/gcn/gcn.opt: New file.
420         * config/gcn/t-gcn-hsa: New file.
421
422 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
423             Kwok Cheung Yeung  <kcy@codesourcery.com>
424             Julian Brown  <julian@codesourcery.com>
425             Tom de Vries  <tom@codesourcery.com>
426             Jan Hubicka  <hubicka@ucw.cz>
427             Martin Jambor  <mjambor@suse.cz>
428
429         * config/gcn/constraints.md: New file.
430         * config/gcn/gcn-valu.md: New file.
431         * config/gcn/gcn.md: New file.
432         * config/gcn/predicates.md: New file.
433
434 2019-01-17  Eric Botcazou  <ebotcazou@adacore.com>
435
436         * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
437         flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
438         (stmt_uses_0_or_null_in_undefined_way): Likewise.
439         * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
440
441 2019-01-17  Tamar Christina  <tamar.christina@arm.com>
442
443         PR target/88851
444         * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
445         * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
446         it and document registers.
447
448 2019-01-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
449
450         * config/aarch64/aarch64.c (ares_tunings): Define.
451         * config/aarch64/aarch64-cores.def (ares): Use the above.
452
453 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
454
455         PR target/88794
456         Revert:
457         2018-11-06  Wei Xiao  <wei3.xiao@intel.com>
458
459         * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
460         (_mm512_fixupimm_round_pd): Update parameters and builtin.
461         (_mm512_maskz_fixupimm_round_pd): Ditto.
462         (_mm512_fixupimm_round_ps): Ditto.
463         (_mm512_maskz_fixupimm_round_ps): Ditto.
464         (_mm_fixupimm_round_sd): Ditto.
465         (_mm_maskz_fixupimm_round_sd): Ditto.
466         (_mm_fixupimm_round_ss): Ditto.
467         (_mm_maskz_fixupimm_round_ss): Ditto.
468         (_mm512_fixupimm_pd): Ditto.
469         (_mm512_maskz_fixupimm_pd): Ditto.
470         (_mm512_fixupimm_ps): Ditto.
471         (_mm512_maskz_fixupimm_ps): Ditto.
472         (_mm_fixupimm_sd): Ditto.
473         (_mm_maskz_fixupimm_sd): Ditto.
474         (_mm_fixupimm_ss): Ditto.
475         (_mm_maskz_fixupimm_ss): Ditto.
476         (_mm512_mask_fixupimm_round_pd): Update builtin.
477         (_mm512_mask_fixupimm_round_ps): Ditto.
478         (_mm_mask_fixupimm_round_sd): Ditto.
479         (_mm_mask_fixupimm_round_ss): Ditto.
480         (_mm512_mask_fixupimm_pd): Ditto.
481         (_mm512_mask_fixupimm_ps): Ditto.
482         (_mm_mask_fixupimm_sd): Ditto.
483         (_mm_mask_fixupimm_ss): Ditto.
484         * config/i386/avx512vlintrin.h:
485         (_mm256_fixupimm_pd): Update parameters and builtin.
486         (_mm256_maskz_fixupimm_pd): Ditto.
487         (_mm256_fixupimm_ps): Ditto.
488         (_mm256_maskz_fixupimm_ps): Ditto.
489         (_mm_fixupimm_pd): Ditto.
490         (_mm_maskz_fixupimm_pd): Ditto.
491         (_mm_fixupimm_ps): Ditto.
492         (_mm_maskz_fixupimm_ps): Ditto.
493         (_mm256_mask_fixupimm_pd): Update builtin.
494         (_mm256_mask_fixupimm_ps): Ditto.
495         (_mm_mask_fixupimm_pd): Ditto.
496         (_mm_mask_fixupimm_ps): Ditto.
497         * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
498         * config/i386/i386-builtin.def: Update builtin definitions.
499         * config/i386/i386.c: Handle new builtin types and remove useless ones.
500         * config/i386/sse.md: Update VFIXUPIMM* patterns.
501         (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
502         (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
503         (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
504         (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
505         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
506         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
507         * config/i386/subst.md:
508         (round_saeonly_sd_mask_operand4): Add new subst_attr.
509         (round_saeonly_sd_mask_op4): Ditto.
510         (round_saeonly_expand_operand5): Ditto.
511         (round_saeonly_expand): Update.
512
513 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
514
515         PR target/88794
516         Revert:
517         2018-11-12  Wei Xiao  <wei3.xiao@intel.com>
518
519         * config/i386/sse.md: Combine VFIXUPIMM* patterns
520         (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
521         (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
522         (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
523         (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
524         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
525         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
526
527 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
528
529         PR target/88794
530         Revert:
531         2018-12-15  Jakub Jelinek  <jakub@redhat.com>
532
533         PR target/88489
534         * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
535         (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
536         instead of UNSPEC_FIXUPIMM.
537
538 2019-01-17  Richard Biener  <rguenther@suse.de>
539
540         PR lto/86736
541         * dwarf2out.c (want_pubnames): Never generate pubnames sections
542         and friends for the LTO part of debug info.
543
544 2019-01-17  Jakub Jelinek  <jakub@redhat.com>
545
546         PR tree-optimization/86214
547         * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
548         if x == y.
549
550         PR rtl-optimization/88870
551         * dce.c (deletable_insn_p): Never delete const/pure calls that can
552         throw if we can't alter the cfg or delete dead exceptions.
553         (mark_insn): Don't call find_call_stack_args for such calls.
554
555 2019-01-17  Kewen Lin  <linkw@gcc.gnu.org>
556
557         * doc/extend.texi: Add four new prototypes for vec_ld and seven new
558         prototypes for vec_st.
559         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
560         for scalar address type variants of altivec_vec_ld/altivec_vec_st,
561         mainly on signed/unsigned long long and double.
562
563 2019-01-16  David Malcolm  <dmalcolm@redhat.com>
564
565         PR target/88861
566         * combine.c (delete_noop_moves): Convert to "bool" return,
567         returning true if any edges are eliminated.
568         (combine_instructions): Also return true if delete_noop_moves
569         returns true.
570
571 2019-01-16  Tamar Christina  <tamar.christina@arm.com>
572
573         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
574         correct max nunits for endian swap.
575         (aarch64_expand_fcmla_builtin): Correct subreg code.
576         * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
577         aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
578         lane endianness.
579
580 2019-01-16  Uroš Bizjak  <ubizjak@gmail.com>
581
582         * config/alpha/alpha.c (alpha_gimplify_va_arg):
583         Handle split indirect COMPLEX_TYPE arguments.
584
585 2019-01-16  Richard Earnshaw  <rearnsha@arm.com>
586
587         PR target/86891
588         * config/aarch64/aarch64-modes.def: Add comment about how the carry
589         bit is set by add and compare.
590         (CC_ADC): New CC_MODE.
591         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
592         to cache the code and mode of X.  Adjust the shape of a CC_Cmode
593         comparison.  Add detection for CC_ADCmode.
594         (aarch64_get_condition_code_1): Update code support for CC_Cmode.  Add
595         CC_ADCmode.
596         * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
597         (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
598         (add<mode>3_compareC_cconly_imm): Delete.  Merge into...
599         (add<mode>3_compareC_cconly): ... this.  Restructure the comparison
600         to eliminate the need for zero-extending the operands.
601         (add<mode>3_compareC_imm): Delete.  Merge into ...
602         (add<mode>3_compareC): ... this.  Restructure the comparison to
603         eliminate the need for zero-extending the operands.
604         (add<mode>3_carryin): Use LTU for the overflow detection.
605         (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
606         Reexpress comparison for overflow.
607         (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
608         (add<mode>3_carryinC): Likewise.
609         (add<mode>3_carryinV): Use LTU for carry between partials.
610         * config/aarch64/predicates.md (aarch64_carry_operation): Update
611         handling of CC_Cmode and add CC_ADCmode.
612         (aarch64_borrow_operation): Likewise.
613
614 2019-01-16  Tamar Christina  <tamar.christina@arm.com>
615
616         * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
617         * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
618         * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
619         neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
620
621 2019-01-16  Martin Liska  <mliska@suse.cz>
622
623         * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
624         for GCC driver.
625         * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
626         a new argument.
627         * gcc.c (add_sysrooted_hdrs_prefix): New function.
628         (path_prefix_reset): Move up in the source file.
629         (find_fortran_preinclude_file): Make complex search for the
630         fortran header files.
631
632 2019-01-15  Nikhil Benesch  <nikhil.benesch@gmail.com>
633
634         * godump.c (go_output_typedef): When outputting a typedef, refer
635         to the underlying type by its name and not its structure.
636
637 2019-01-15  David Malcolm  <dmalcolm@redhat.com>
638
639         PR c++/88795
640         * tree.c (build_function_type): Assert that arg_types is not
641         error_mark_node.
642
643 2019-01-15  Richard Sandiford  <richard.sandiford@arm.com>
644
645         PR inline-asm/52813
646         * doc/extend.texi: Document that listing the stack pointer in the
647         clobber list of an asm is a deprecated feature.
648         * common.opt (Wdeprecated): Moved from c-family/c.opt.
649         * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
650         warning instead of an error for clobbers of the stack pointer.
651         Add a note explaining why.
652
653 2019-01-15  Richard Biener  <rguenther@suse.de>
654
655         PR debug/88046
656         * dwarf2out.c (gen_member_die): Do not generate inheritance
657         DIEs late.
658
659 2019-01-15  Richard Biener  <rguenther@suse.de>
660
661         PR tree-optimization/88855
662         * tree-if-conv.c (combine_blocks): Collect
663         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
664
665 2019-01-15  Tom de Vries  <tdevries@suse.de>
666
667         PR target/80547
668         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
669         lhs == NULL_TREE for gang-level reduction.
670
671 2019-01-15  Richard Biener  <rguenther@suse.de>
672             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
673
674         PR ipa/88788
675         * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
676         return true if SSA_NAME is already marked in visited bitmap.
677         (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
678
679 2019-01-15  Jakub Jelinek  <jakub@redhat.com>
680
681         PR tree-optimization/88775
682         * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
683         equal == 0 equality pointer comparisons some more if compared in
684         integral types and either one points to an automatic var and the
685         other to a global, or we can prove at least one points to the middle
686         or both point to start or both point to end.
687
688 2019-01-14  Andi Kleen  <ak@linux.intel.com>
689
690         * Makefile.in: Lower autofdo sampling rate by 10x.
691         * Makefile.tpl: Dito.
692
693 2019-01-14  Tom Honermann  <tom@honermann.net>
694
695         * defaults.h: Define CHAR8_TYPE.
696
697 2019-01-14  Martin Sebor  <msebor@redhat.com>
698
699         PR target/88638
700         * doc/extend.texi (Darwin Format Checks): Clarify.
701
702 2019-01-14  Richard Biener  <rguenther@suse.de>
703
704         * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
705         whether we are in (simplify ...) or (match ...) context.
706
707 2019-01-14  Jakub Jelinek  <jakub@redhat.com>
708
709         PR rtl-optimization/88796
710         * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
711         * cfgexpand.c (stack_protect_prologue): Initialize
712         crtl->stack_protect_guard_decl.
713         * function.c (stack_protect_epilogue): Use it instead of calling
714         targetm.stack_protect_guard again.
715         * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
716         MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
717         crtl->stack_protect_guard_decl.
718         * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
719         on the returned MEM_EXPR.
720
721 2019-01-12  Tom de Vries  <tdevries@suse.de>
722
723         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
724         vector length using -fopenacc-dim.
725
726 2019-01-12  Tom de Vries  <tdevries@suse.de>
727
728         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
729         lengths into account.
730
731 2019-01-12  Svante Signell  <svante.signell@gmail.com>
732
733         * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
734         (TARGET_CAN_SPLIT_STACK): Define.
735         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
736
737 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
738
739         * params.def (inline-unit-growth): Set to 40.
740
741 2019-01-12  Jakub Jelinek  <jakub@redhat.com>
742
743         * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
744
745 2019-01-12  Tom de Vries  <tdevries@suse.de>
746
747         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
748         region calling vector-partitionable routine, set default_vector_length
749         to WARP_SIZE.
750
751 2019-01-12  Tom de Vries  <tdevries@suse.de>
752
753         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
754         variable default_vector_length.
755
756 2019-01-12  Tom de Vries  <tdevries@suse.de>
757
758         PR middle-end/88703
759         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
760         from oacc_default_dims, as oacc_validate_dims would do it, and apply
761         dimensions limits.
762
763 2019-01-12  Tom de Vries  <tdevries@suse.de>
764
765         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
766         (nvptx_goacc_validate_dims): Add used parameter.
767         * doc/tm.texi: Regenerate.
768         * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
769         argument to call to targetm.goacc.validate_dims.
770         (default_goacc_validate_dims): Add used
771         parameter.
772         * target.def (validate_dims): Add used parameter in DEFHOOK.
773         * targhooks.h (default_goacc_validate_dims): Add used parameter.
774
775 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
776
777         PR middle-end/85956
778         PR lto/88733
779         * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
780         field.
781         * tree-inline.c (remap_type_1): Formatting fix.  If TYPE_MAX_VALUE of
782         ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
783         a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
784         * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
785
786 2019-01-11  Vladimir Makarov  <vmakarov@redhat.com>
787
788         PR rtl-optimization/87305
789         * lra-assigns.c
790         (setup_live_pseudos_and_spill_after_risky_transforms): Add code
791         for little endian pseudos used as paradoxical subreg.
792
793 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
794
795         PR tree-optimization/88693
796         * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
797         for STRING_CSTs that don't contain any NUL characters in the first
798         TREE_STRING_LENGTH bytes.
799
800 2019-01-11  Alan Modra  <amodra@gmail.com>
801
802         PR 88777
803         PR 88614
804         * genattrtab.c (min_fn): Don't translate values.
805         (min_attr_value): Return INT_MAX when the value can't be calculated.
806         Return minimum among any values that can be calculated.
807         (max_attr_value): Adjust.
808
809 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
810
811         * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
812
813 2019-01-11  Steve Ellcey  <sellcey@marvell.com>
814
815         * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
816         (aarch64_hard_regno_call_part_clobbered): Add insn argument.
817         (aarch64_return_call_with_max_clobbers): New function.
818         (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
819         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
820         argument.
821         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
822         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
823         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
824         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
825         * cselib.c (cselib_process_insn): Add argument to
826         targetm.hard_regno_call_part_clobbered call.
827         * ira-conflicts.c (ira_build_conflicts): Ditto.
828         * ira-costs.c (ira_tune_allocno_costs): Ditto.
829         * lra-constraints.c (inherit_reload_reg): Ditto.
830         * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
831         * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
832         argument.  Call targetm.return_call_with_max_clobbers.
833         Add argument to targetm.hard_regno_call_part_clobbered call.
834         (calls_have_same_clobbers_p): New function.
835         (process_bb_lives): Add call_insn and last_call_insn variables.
836         Pass call_insn to check_pseudos_live_through_calls.
837         Modify if stmt to check targetm.return_call_with_max_clobbers.
838         Update setting of flush variable.
839         (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
840         to false.
841         * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
842         * regcprop.c (copyprop_hardreg_forward_1): Add argument to
843         targetm.hard_regno_call_part_clobbered call.
844         * reginfo.c (choose_hard_reg_mode): Ditto.
845         * regrename.c (check_new_reg_p): Ditto.
846         * reload.c (find_equiv_reg): Ditto.
847         * reload1.c (emit_reload_insns): Ditto.
848         * sched-deps.c (deps_analyze_insn): Ditto.
849         * sel-sched.c (init_regs_for_mode): Ditto.
850         (mark_unavailable_hard_regs): Ditto.
851         * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
852         * target.def (hard_regno_call_part_clobbered): Add insn argument.
853         (return_call_with_max_clobbers): New target function.
854         * doc/tm.texi: Regenerate.
855         * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
856         * hooks.c (hook_bool_uint_mode_false): Change to
857         hook_bool_insn_uint_mode_false.
858         * hooks.h (hook_bool_uint_mode_false): Ditto.
859
860 2019-01-11  Steve Ellcey  <sellcey@marvell.com>
861
862         * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
863         (aarch64_remove_extra_call_preserved_regs): New function.
864         (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
865         * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
866         * doc/tm.texi: Regenerate.
867         * final.c (get_call_reg_set_usage): Call new hook.
868         * target.def (remove_extra_call_preserved_regs): New hook.
869         * targhooks.c (default_remove_extra_call_preserved_regs): New function.
870         * targhooks.h (default_remove_extra_call_preserved_regs): New function.
871
872 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
873
874         PR bootstrap/88714
875         * passes.c (finish_optimization_passes): Call print_combine_total_stats
876         inside of pass_combine_1 dump rather than pass_profile_1.
877
878 2019-01-11  Tom de Vries  <tdevries@suse.de>
879
880         * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
881         (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
882         (PTX_NUM_PER_WORKER_BARRIERS): Define.
883         (nvptx_apply_dim_limits): Prevent vector_length 64 and
884         num_workers 16.
885
886 2019-01-11  Tom de Vries  <tdevries@suse.de>
887
888         * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
889
890 2019-01-11  Jan Beulich  <jbeulich@suse.com>
891
892         * config/i386/i386.md (rex64suffix): Add L suffix for SI.
893         * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
894         sse2_cvtsi2sd): Add {l}.
895         (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
896         syntax.
897
898 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
899
900         PR target/88785
901         * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
902         define_expand.
903         (*float<floatunssuffix>v2div2sf2): New define_insn.
904         (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
905         (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
906         (*float<floatunssuffix>v2div2sf2_mask_1): Replace
907         subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
908         match_operands with "const0_operand" "C".
909
910 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
911
912         * config/aarch64/aarch64-builtins.c
913         (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
914         (aarch64_init_simd_builtins): ...Here
915
916 2019-01-10  Vladimir Makarov  <vmakarov@redhat.com>
917
918         PR rtl-optimization/87305
919         * lra-assigns.c
920         (setup_live_pseudos_and_spill_after_risky_transforms): Check
921         allocation for big endian pseudos used as paradoxical subregs and
922         spill them if it is wrong.
923         * lra-constraints.c (lra_constraints): Add a comment.
924
925 2019-01-10  Richard Biener  <rguenther@suse.de>
926
927         PR tree-optimization/88792
928         * tree-ssa-pre.c (get_representative_for): Do not return a
929         value-number here.
930
931 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
932
933         PR middle-end/84877
934         PR bootstrap/88450
935         * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
936         (assign_parm_setup_block): Do the argument slot realignment here
937         instead.
938
939 2019-01-10  Stefan Agner  <stefan@agner.ch>
940
941         PR target/88648
942         * config/arm/arm.c (arm_option_override_internal): Force
943         opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
944
945 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
946
947         PR c/88568
948         * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
949         DECL_EXTERNAL.
950
951 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
952
953         * config/arm/arm-builtins.c
954         (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
955         (MAC_LANE_PAIR_QUALIFIERS): New.
956         (arm_expand_builtin_args): Use it.
957         (arm_expand_builtin_1): Likewise.
958         * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
959         * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
960         * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
961         * config/arm/arm_neon.h:
962         (vcadd_rot90_f16): New.
963         (vcaddq_rot90_f16): New.
964         (vcadd_rot270_f16): New.
965         (vcaddq_rot270_f16): New.
966         (vcmla_f16): New.
967         (vcmlaq_f16): New.
968         (vcmla_lane_f16): New.
969         (vcmla_laneq_f16): New.
970         (vcmlaq_lane_f16): New.
971         (vcmlaq_laneq_f16): New.
972         (vcmla_rot90_f16): New.
973         (vcmlaq_rot90_f16): New.
974         (vcmla_rot90_lane_f16): New.
975         (vcmla_rot90_laneq_f16): New.
976         (vcmlaq_rot90_lane_f16): New.
977         (vcmlaq_rot90_laneq_f16): New.
978         (vcmla_rot180_f16): New.
979         (vcmlaq_rot180_f16): New.
980         (vcmla_rot180_lane_f16): New.
981         (vcmla_rot180_laneq_f16): New.
982         (vcmlaq_rot180_lane_f16): New.
983         (vcmlaq_rot180_laneq_f16): New.
984         (vcmla_rot270_f16): New.
985         (vcmlaq_rot270_f16): New.
986         (vcmla_rot270_lane_f16): New.
987         (vcmla_rot270_laneq_f16): New.
988         (vcmlaq_rot270_lane_f16): New.
989         (vcmlaq_rot270_laneq_f16): New.
990         (vcadd_rot90_f32): New.
991         (vcaddq_rot90_f32): New.
992         (vcadd_rot270_f32): New.
993         (vcaddq_rot270_f32): New.
994         (vcmla_f32): New.
995         (vcmlaq_f32): New.
996         (vcmla_lane_f32): New.
997         (vcmla_laneq_f32): New.
998         (vcmlaq_lane_f32): New.
999         (vcmlaq_laneq_f32): New.
1000         (vcmla_rot90_f32): New.
1001         (vcmlaq_rot90_f32): New.
1002         (vcmla_rot90_lane_f32): New.
1003         (vcmla_rot90_laneq_f32): New.
1004         (vcmlaq_rot90_lane_f32): New.
1005         (vcmlaq_rot90_laneq_f32): New.
1006         (vcmla_rot180_f32): New.
1007         (vcmlaq_rot180_f32): New.
1008         (vcmla_rot180_lane_f32): New.
1009         (vcmla_rot180_laneq_f32): New.
1010         (vcmlaq_rot180_lane_f32): New.
1011         (vcmlaq_rot180_laneq_f32): New.
1012         (vcmla_rot270_f32): New.
1013         (vcmlaq_rot270_f32): New.
1014         (vcmla_rot270_lane_f32): New.
1015         (vcmla_rot270_laneq_f32): New.
1016         (vcmlaq_rot270_lane_f32): New.
1017         (vcmlaq_rot270_laneq_f32): New.
1018         * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
1019         vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
1020         vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
1021         vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
1022         * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
1023         neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
1024         * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
1025         * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
1026         (arm_option_reconfigure_globals): Use them.
1027         * config/arm/iterators.md (VDF, VQ_HSF): New.
1028         (VCADD, VCMLA): New.
1029         (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
1030         * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
1031         * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
1032         UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
1033
1034 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
1035
1036         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
1037         (emit-rtl.h): Include.
1038         (TYPES_QUADOP_LANE_PAIR): New.
1039         (aarch64_simd_expand_args): Use it.
1040         (aarch64_simd_expand_builtin): Likewise.
1041         (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
1042         (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
1043         AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
1044         aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
1045         (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
1046         (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
1047         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
1048         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
1049         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
1050         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
1051         * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
1052         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
1053         * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
1054         fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
1055         fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
1056         fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
1057         * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
1058         aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
1059         aarch64_fcmla<rot><mode>): New.
1060         * config/aarch64/arm_neon.h:
1061         (vcadd_rot90_f16): New.
1062         (vcaddq_rot90_f16): New.
1063         (vcadd_rot270_f16): New.
1064         (vcaddq_rot270_f16): New.
1065         (vcmla_f16): New.
1066         (vcmlaq_f16): New.
1067         (vcmla_lane_f16): New.
1068         (vcmla_laneq_f16): New.
1069         (vcmlaq_lane_f16): New.
1070         (vcmlaq_rot90_lane_f16): New.
1071         (vcmla_rot90_laneq_f16): New.
1072         (vcmla_rot90_lane_f16): New.
1073         (vcmlaq_rot90_f16): New.
1074         (vcmla_rot90_f16): New.
1075         (vcmlaq_laneq_f16): New.
1076         (vcmla_rot180_laneq_f16): New.
1077         (vcmla_rot180_lane_f16): New.
1078         (vcmlaq_rot180_f16): New.
1079         (vcmla_rot180_f16): New.
1080         (vcmlaq_rot90_laneq_f16): New.
1081         (vcmlaq_rot270_laneq_f16): New.
1082         (vcmlaq_rot270_lane_f16): New.
1083         (vcmla_rot270_laneq_f16): New.
1084         (vcmlaq_rot270_f16): New.
1085         (vcmla_rot270_f16): New.
1086         (vcmlaq_rot180_laneq_f16): New.
1087         (vcmlaq_rot180_lane_f16): New.
1088         (vcmla_rot270_lane_f16): New.
1089         (vcadd_rot90_f32): New.
1090         (vcaddq_rot90_f32): New.
1091         (vcaddq_rot90_f64): New.
1092         (vcadd_rot270_f32): New.
1093         (vcaddq_rot270_f32): New.
1094         (vcaddq_rot270_f64): New.
1095         (vcmla_f32): New.
1096         (vcmlaq_f32): New.
1097         (vcmlaq_f64): New.
1098         (vcmla_lane_f32): New.
1099         (vcmla_laneq_f32): New.
1100         (vcmlaq_lane_f32): New.
1101         (vcmlaq_laneq_f32): New.
1102         (vcmla_rot90_f32): New.
1103         (vcmlaq_rot90_f32): New.
1104         (vcmlaq_rot90_f64): New.
1105         (vcmla_rot90_lane_f32): New.
1106         (vcmla_rot90_laneq_f32): New.
1107         (vcmlaq_rot90_lane_f32): New.
1108         (vcmlaq_rot90_laneq_f32): New.
1109         (vcmla_rot180_f32): New.
1110         (vcmlaq_rot180_f32): New.
1111         (vcmlaq_rot180_f64): New.
1112         (vcmla_rot180_lane_f32): New.
1113         (vcmla_rot180_laneq_f32): New.
1114         (vcmlaq_rot180_lane_f32): New.
1115         (vcmlaq_rot180_laneq_f32): New.
1116         (vcmla_rot270_f32): New.
1117         (vcmlaq_rot270_f32): New.
1118         (vcmlaq_rot270_f64): New.
1119         (vcmla_rot270_lane_f32): New.
1120         (vcmla_rot270_laneq_f32): New.
1121         (vcmlaq_rot270_lane_f32): New.
1122         (vcmlaq_rot270_laneq_f32): New.
1123         * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
1124         * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
1125         UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
1126         (FCADD, FCMLA): New.
1127         (rot): New.
1128         * config/arm/types.md (neon_fcadd, neon_fcmla): New.
1129
1130 2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
1131
1132         PR other/16615
1133
1134         * config/pa/pa.c: Change "can not" to "cannot".
1135         * gimple-ssa-evrp-analyze.c: Likewise.
1136         * ipa-icf.c: Likewise.
1137         * ipa-polymorphic-call.c: Likewise.
1138         * ipa-pure-const.c: Likewise.
1139         * lra-constraints.c: Likewise.
1140         * lra-remat.c: Likewise.
1141         * reload1.c: Likewise.
1142         * reorg.c: Likewise.
1143         * tree-ssa-uninit.c: Likewise.
1144
1145 2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
1146
1147         PR other/16615
1148
1149         * Makefile.in: Mechanically replace "can not" with "cannot".
1150         * alias.c: Likewise.
1151         * builtins.c: Likewise.
1152         * calls.c: Likewise.
1153         * cgraph.c: Likewise.
1154         * cgraph.h: Likewise.
1155         * cgraphclones.c: Likewise.
1156         * cgraphunit.c: Likewise.
1157         * combine-stack-adj.c: Likewise.
1158         * combine.c: Likewise.
1159         * common/config/i386/i386-common.c: Likewise.
1160         * config/aarch64/aarch64.c: Likewise.
1161         * config/alpha/sync.md: Likewise.
1162         * config/arc/arc.c: Likewise.
1163         * config/arc/predicates.md: Likewise.
1164         * config/arm/arm-c.c: Likewise.
1165         * config/arm/arm.c: Likewise.
1166         * config/arm/arm.h: Likewise.
1167         * config/arm/arm.md: Likewise.
1168         * config/arm/cortex-r4f.md: Likewise.
1169         * config/csky/csky.c: Likewise.
1170         * config/csky/csky.h: Likewise.
1171         * config/darwin-f.c: Likewise.
1172         * config/epiphany/epiphany.md: Likewise.
1173         * config/i386/i386.c: Likewise.
1174         * config/i386/sol2.h: Likewise.
1175         * config/m68k/m68k.c: Likewise.
1176         * config/mcore/mcore.h: Likewise.
1177         * config/microblaze/microblaze.md: Likewise.
1178         * config/mips/20kc.md: Likewise.
1179         * config/mips/sb1.md: Likewise.
1180         * config/nds32/nds32.c: Likewise.
1181         * config/nds32/predicates.md: Likewise.
1182         * config/pa/pa.c: Likewise.
1183         * config/rs6000/e300c2c3.md: Likewise.
1184         * config/rs6000/rs6000.c: Likewise.
1185         * config/s390/s390.h: Likewise.
1186         * config/sh/sh.c: Likewise.
1187         * config/sh/sh.md: Likewise.
1188         * config/spu/vmx2spu.h: Likewise.
1189         * cprop.c: Likewise.
1190         * dbxout.c: Likewise.
1191         * df-scan.c: Likewise.
1192         * doc/cfg.texi: Likewise.
1193         * doc/extend.texi: Likewise.
1194         * doc/fragments.texi: Likewise.
1195         * doc/gty.texi: Likewise.
1196         * doc/invoke.texi: Likewise.
1197         * doc/lto.texi: Likewise.
1198         * doc/md.texi: Likewise.
1199         * doc/objc.texi: Likewise.
1200         * doc/rtl.texi: Likewise.
1201         * doc/tm.texi: Likewise.
1202         * dse.c: Likewise.
1203         * emit-rtl.c: Likewise.
1204         * emit-rtl.h: Likewise.
1205         * except.c: Likewise.
1206         * expmed.c: Likewise.
1207         * expr.c: Likewise.
1208         * fold-const.c: Likewise.
1209         * genautomata.c: Likewise.
1210         * gimple-fold.c: Likewise.
1211         * hard-reg-set.h: Likewise.
1212         * ifcvt.c: Likewise.
1213         * ipa-comdats.c: Likewise.
1214         * ipa-cp.c: Likewise.
1215         * ipa-devirt.c: Likewise.
1216         * ipa-fnsummary.c: Likewise.
1217         * ipa-icf.c: Likewise.
1218         * ipa-inline-transform.c: Likewise.
1219         * ipa-inline.c: Likewise.
1220         * ipa-polymorphic-call.c: Likewise.
1221         * ipa-profile.c: Likewise.
1222         * ipa-prop.c: Likewise.
1223         * ipa-pure-const.c: Likewise.
1224         * ipa-reference.c: Likewise.
1225         * ipa-split.c: Likewise.
1226         * ipa-visibility.c: Likewise.
1227         * ipa.c: Likewise.
1228         * ira-build.c: Likewise.
1229         * ira-color.c: Likewise.
1230         * ira-conflicts.c: Likewise.
1231         * ira-costs.c: Likewise.
1232         * ira-int.h: Likewise.
1233         * ira-lives.c: Likewise.
1234         * ira.c: Likewise.
1235         * ira.h: Likewise.
1236         * loop-invariant.c: Likewise.
1237         * loop-unroll.c: Likewise.
1238         * lower-subreg.c: Likewise.
1239         * lra-assigns.c: Likewise.
1240         * lra-constraints.c: Likewise.
1241         * lra-eliminations.c: Likewise.
1242         * lra-lives.c: Likewise.
1243         * lra-remat.c: Likewise.
1244         * lra-spills.c: Likewise.
1245         * lra.c: Likewise.
1246         * lto-cgraph.c: Likewise.
1247         * lto-streamer-out.c: Likewise.
1248         * postreload-gcse.c: Likewise.
1249         * predict.c: Likewise.
1250         * profile-count.h: Likewise.
1251         * profile.c: Likewise.
1252         * recog.c: Likewise.
1253         * ree.c: Likewise.
1254         * reload.c: Likewise.
1255         * reload1.c: Likewise.
1256         * reorg.c: Likewise.
1257         * resource.c: Likewise.
1258         * rtl.def: Likewise.
1259         * rtl.h: Likewise.
1260         * rtlanal.c: Likewise.
1261         * sched-deps.c: Likewise.
1262         * sched-ebb.c: Likewise.
1263         * sched-rgn.c: Likewise.
1264         * sel-sched-ir.c: Likewise.
1265         * sel-sched.c: Likewise.
1266         * shrink-wrap.c: Likewise.
1267         * simplify-rtx.c: Likewise.
1268         * symtab.c: Likewise.
1269         * target.def: Likewise.
1270         * toplev.c: Likewise.
1271         * tree-call-cdce.c: Likewise.
1272         * tree-cfg.c: Likewise.
1273         * tree-complex.c: Likewise.
1274         * tree-core.h: Likewise.
1275         * tree-eh.c: Likewise.
1276         * tree-inline.c: Likewise.
1277         * tree-loop-distribution.c: Likewise.
1278         * tree-nrv.c: Likewise.
1279         * tree-profile.c: Likewise.
1280         * tree-sra.c: Likewise.
1281         * tree-ssa-alias.c: Likewise.
1282         * tree-ssa-dce.c: Likewise.
1283         * tree-ssa-dom.c: Likewise.
1284         * tree-ssa-forwprop.c: Likewise.
1285         * tree-ssa-loop-im.c: Likewise.
1286         * tree-ssa-loop-ivcanon.c: Likewise.
1287         * tree-ssa-loop-ivopts.c: Likewise.
1288         * tree-ssa-loop-niter.c: Likewise.
1289         * tree-ssa-phionlycprop.c: Likewise.
1290         * tree-ssa-phiopt.c: Likewise.
1291         * tree-ssa-propagate.c: Likewise.
1292         * tree-ssa-threadedge.c: Likewise.
1293         * tree-ssa-threadupdate.c: Likewise.
1294         * tree-ssa-uninit.c: Likewise.
1295         * tree-ssanames.c: Likewise.
1296         * tree-streamer-out.c: Likewise.
1297         * tree.c: Likewise.
1298         * tree.h: Likewise.
1299         * vr-values.c: Likewise.
1300
1301 2019-01-09  Uroš Bizjak  <ubizjak@gmail.com>
1302
1303         * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
1304         (ix86_split_xorsign): Ditto.
1305         * config/i386/i386.c (ix86_expand_xorsign): New function.
1306         (ix86_split_xorsign): Ditto.
1307         * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
1308         (xorsign<mode>3): New expander.
1309         (xorsign<mode>3_1): New insn_and_split pattern.
1310         * config/i386/sse.md (xorsign<mode>3): New expander.
1311
1312 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
1313
1314         * config/sparc/sparc.md (*tablejump_sp32): Merge into...
1315         (*tablejump_sp64): Likewise.
1316         (*tablejump<P:mode>): ...this.
1317         (*call_address_sp32): Merge into...
1318         (*call_address_sp64): Likewise.
1319         (*call_address<P:mode>): ...this.
1320         (*call_symbolic_sp32): Merge into...
1321         (*call_symbolic_sp64): Likewise.
1322         (*call_symbolic<P:mode>): ...this.
1323         (call_value): Remove constraint and add predicate.
1324         (*call_value_address_sp32): Merge into...
1325         (*call_value_address_sp64): Likewise.
1326         (*call_value_address<P:mode>): ...this.
1327         (*call_value_symbolic_sp32): Merge into...
1328         (*call_value_symbolic_sp64): Likewise.
1329         (*call_value_symbolic<P:mode>): ...this.
1330         (*sibcall_symbolic_sp32): Merge into...
1331         (*sibcall_symbolic_sp64): Likewise.
1332         (*sibcall_symbolic<P:mode>): ...this.
1333         (sibcall_value): Remove constraint and add predicate.
1334         (*sibcall_value_symbolic_sp32): Merge into...
1335         (*sibcall_value_symbolic_sp64): Likewise.
1336         (*sibcall_value_symbolic<P:mode>): ...this.
1337         (window_save): Minor tweak.
1338         (*branch_sp32): Merge into...
1339         (*branch_sp64): Likewise.
1340         (*branch<P:mode>): ...this.
1341
1342 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
1343             James Clarke  <jrtc27@jrtc27.com>
1344
1345         PR target/84010
1346         * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
1347         consistently in TLS address generation and adjust code to the renaming
1348         of patterns.  Mark calls to __tls_get_addr as const.
1349         * config/sparc/sparc.md (tgd_hi22): Turn into...
1350         (tgd_hi22<P:mode>): ...this and use Pmode throughout.
1351         (tgd_lo10): Turn into...
1352         (tgd_lo10<P:mode>): ...this and use Pmode throughout.
1353         (tgd_add32): Merge into...
1354         (tgd_add64): Likewise.
1355         (tgd_add<P:mode>): ...this and use Pmode throughout.
1356         (tldm_hi22): Turn into...
1357         (tldm_hi22<P:mode>): ...this and use Pmode throughout.
1358         (tldm_lo10): Turn into...
1359         (tldm_lo10<P:mode>): ...this and use Pmode throughout.
1360         (tldm_add32): Merge into...
1361         (tldm_add64): Likewise.
1362         (tldm_add<P:mode>): ...this and use Pmode throughout.
1363         (tldm_call32): Merge into...
1364         (tldm_call64): Likewise.
1365         (tldm_call<P:mode>): ...this and use Pmode throughout.
1366         (tldo_hix22): Turn into...
1367         (tldo_hix22<P:mode>): ...this and use Pmode throughout.
1368         (tldo_lox10): Turn into...
1369         (tldo_lox10<P:mode>): ...this and use Pmode throughout.
1370         (tldo_add32): Merge into...
1371         (tldo_add64): Likewise.
1372         (tldo_add<P:mode>): ...this and use Pmode throughout.
1373         (tie_hi22): Turn into...
1374         (tie_hi22<P:mode>): ...this and use Pmode throughout.
1375         (tie_lo10): Turn into...
1376         (tie_lo10<P:mode>): ...this and use Pmode throughout.
1377         (tie_ld64): Use DImode throughout.
1378         (tie_add32): Merge into...
1379         (tie_add64): Likewise.
1380         (tie_add<P:mode>): ...this and use Pmode throughout.
1381         (tle_hix22_sp32): Merge into...
1382         (tle_hix22_sp64): Likewise.
1383         (tle_hix22<P:mode>): ...this and use Pmode throughout.
1384         (tle_lox22_sp32): Merge into...
1385         (tle_lox22_sp64): Likewise.
1386         (tle_lox22<P:mode>): ...this and use Pmode throughout.
1387         (*tldo_ldub_sp32): Merge into...
1388         (*tldo_ldub_sp64): Likewise.
1389         (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
1390         (*tldo_ldub1_sp32): Merge into...
1391         (*tldo_ldub1_sp64): Likewise.
1392         (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
1393         (*tldo_ldub2_sp32): Merge into...
1394         (*tldo_ldub2_sp64): Likewise.
1395         (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
1396         (*tldo_ldsb1_sp32): Merge into...
1397         (*tldo_ldsb1_sp64): Likewise.
1398         (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
1399         (*tldo_ldsb2_sp32): Merge into...
1400         (*tldo_ldsb2_sp64): Likewise.
1401         (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
1402         (*tldo_ldub3_sp64): Use DImode throughout.
1403         (*tldo_ldsb3_sp64): Likewise.
1404         (*tldo_lduh_sp32): Merge into...
1405         (*tldo_lduh_sp64): Likewise.
1406         (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
1407         (*tldo_lduh1_sp32): Merge into...
1408         (*tldo_lduh1_sp64): Likewise.
1409         (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
1410         (*tldo_ldsh1_sp32): Merge into...
1411         (*tldo_ldsh1_sp64): Likewise.
1412         (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
1413         (*tldo_lduh2_sp64): Use DImode throughout.
1414         (*tldo_ldsh2_sp64): Likewise.
1415         (*tldo_lduw_sp32): Merge into...
1416         (*tldo_lduw_sp64): Likewise.
1417         (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
1418         (*tldo_lduw1_sp64): Use DImode throughout.
1419         (*tldo_ldsw1_sp64): Likewise.
1420         (*tldo_ldx_sp64): Likewise.
1421         (*tldo_stb_sp32): Merge into...
1422         (*tldo_stb_sp64): Likewise.
1423         (*tldo_stb<P:mode>): ...this and use Pmode throughout.
1424         (*tldo_sth_sp32): Merge into...
1425         (*tldo_sth_sp64): Likewise.
1426         (*tldo_sth<P:mode>): ...this and use Pmode throughout.
1427         (*tldo_stw_sp32): Merge into...
1428         (*tldo_stw_sp64): Likewise.
1429         (*tldo_stw<P:mode>): ...this and use Pmode throughout.
1430         (*tldo_stx_sp64): Use DImode throughout.
1431
1432 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
1433
1434         * config/aarch64/aarch64.c (aarch64_override_options): Add case to
1435         check configure option to set BTI and Return Address Signing.
1436         * configure.ac: Add --enable-standard-branch-protection and
1437         --disable-standard-branch-protection.
1438         * configure: Regenerated.
1439         * doc/install.texi: Document the same.
1440
1441 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
1442             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1443
1444         * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
1445         * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
1446         * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
1447         if bti is enabled.
1448         * config/aarch64/aarch64-bti-insert.c: New file.
1449         * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
1450         pass.
1451         * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
1452         new bti pass.
1453         * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
1454         UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
1455         (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
1456         * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
1457
1458 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
1459
1460         * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
1461         * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
1462         Disable bti for -mbranch-protection=none.
1463         (aarch64_handle_standard_branch_protection): Enable bti for
1464         -mbranch-protection=standard.
1465         (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
1466         -mbranch-protection.
1467         (aarch64_bti_enabled): Check if bti is enabled.
1468         * config/aarch64/aarch64.opt: Declare target variable.
1469         * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
1470
1471 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
1472
1473         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
1474         epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
1475         (aarch64_expand_epilogue): Likewise.
1476         (aarch64_output_mi_thunk): Likewise
1477         * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
1478         TAILCALL_ADDR_REGS to x16 and x17.
1479         * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
1480
1481 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
1482
1483         * config/aarch64/aarch64-option-extensions.def: Define
1484         AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
1485         * gcc/config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
1486         (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
1487         (AARCH64_FL_PREDRES): New.
1488         (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
1489         AARCH64_FL_PREDRES by default.
1490         * gcc/doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
1491
1492 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
1493
1494         * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
1495         ARMv8.5-A.
1496         * gcc/config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
1497         (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
1498         * gcc/doc/invoke.texi: Document ARMv8.5-A.
1499
1500 2019-01-09  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
1501
1502         * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
1503         (xorsign<mode>3): Likewise.
1504
1505 2019-01-09  Jelinek  <jakub@redhat.com>
1506
1507         PR middle-end/88758
1508         * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
1509         vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
1510
1511         PR rtl-optimization/88331
1512         * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
1513         not currently_expanding_to_rtl.
1514
1515 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
1516
1517         * doc/invoke.texi (-Os): Remove trailing spaces.
1518         (-finline-functions): Remove reference to -O2.
1519
1520 2019-01-08  Jakub Jelinek  <jakub@redhat.com>
1521
1522         PR rtl-optimization/79593
1523         * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
1524
1525         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
1526         UNSPEC_FUSION_GPR to its argument.  Formatting fixes.
1527
1528 2019-01-08  Eric Botcazou  <ebotcazou@adacore.com>
1529
1530         PR bootstrap/88721
1531         * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
1532         to -1 on entry.
1533
1534         PR debug/88723
1535         * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
1536         UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
1537
1538 2019-01-08  H.J. Lu  <hongjiu.lu@intel.com>
1539
1540         PR target/88717
1541         * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
1542         ix86_avx_u128_mode_entry.
1543
1544 2019-01-08  Martin Liska  <mliska@suse.cz>
1545
1546         PR tree-optimization/88753
1547         * tree-switch-conversion.c (switch_conversion::build_one_array):
1548         Come up with local variable constructor.  Convert first to
1549         type of constructor values.
1550
1551 2019-01-08  Richard Biener  <rguenther@suse.de>
1552
1553         PR tree-optimization/86554
1554         * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
1555         rpo_avail): Move earlier.
1556         (visit_nary_op): When value-numbering to expressions
1557         with different overflow behavior make sure there's an
1558         available expression on the path.
1559
1560 2019-01-08  Sam Tebbs  <sam.tebbs@arm.com>
1561
1562         * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
1563         aarch64_parse_branch_protection,
1564         struct aarch64_branch_protect_type,
1565         aarch64_handle_no_branch_protection,
1566         aarch64_handle_standard_branch_protection,
1567         aarch64_validate_mbranch_protection,
1568         aarch64_handle_pac_ret_protection,
1569         aarch64_handle_attr_branch_protection,
1570         accepted_branch_protection_string,
1571         aarch64_pac_ret_subtypes,
1572         aarch64_branch_protect_types,
1573         aarch64_handle_pac_ret_leaf): Define.
1574         (aarch64_override_options_after_change_1, aarch64_override_options):
1575         Add check for accepted_branch_protection_string.
1576         (aarch64_option_save): Save accepted_branch_protection_string.
1577         (aarch64_option_restore): Save accepted_branch_protection_string.
1578         * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
1579         * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
1580         msign-return-address.
1581         * doc/invoke.texi: Add mbranch-protection.
1582
1583 2019-01-08  Alan Modra  <amodra@gmail.com>
1584
1585         PR target/88614
1586         * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
1587         Delete "unknownp" parameter.  Adjust callers.  Handle
1588         CONST_INT, PLUS, MINUS, and MULT.
1589         (attr_value_aligned): Renamed from or_attr_value.
1590         (min_attr_value): Return INT_MIN for unhandled rtl case..
1591         (min_fn): ..and translate to INT_MAX here.
1592         (write_length_unit_log): Modify to cope without "unknown".
1593         (write_attr_value): Handle IF_THEN_ELSE.
1594
1595 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
1596
1597         * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
1598         optimization for masked stores.
1599
1600 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
1601
1602         PR middle-end/88567
1603         * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
1604         output vector directly to duplicate_and_interleave instead of
1605         going through a temporary.  Postpone insertion of ctor_seq to
1606         the end of the loop.
1607
1608 2019-01-07  Richard Earnshaw  <rearnsha@arm.com>
1609
1610         PR target/86891
1611         * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
1612         unsigned_p.  Handle signed and unsigned overflow correction as
1613         required.
1614         * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
1615         prototype.
1616         * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
1617         for operand 2.
1618         (add<mode>3_compareV_imm): Make this callable for expanding.
1619         (subv<GPI:mode>4): Use register_operand for operand 1.  Use
1620         aarch64_plus_operand for operand 2.
1621         (subv<GPI:mode>_insn): New insn pattern.
1622         (subv<GPI:mode>_imm): Likewise.
1623         (negv<GPI:mode>3): New expand pattern.
1624         (negv<GPI:mode>_insn): New insn pattern.
1625         (negv<GPI:mode>_cmp_only): Likewise.
1626         (cmpv<GPI:mode>_insn): Likewise.
1627         (subvti4): Use register_operand for operand 1.  Update call to
1628         aarch64_expand_subvti.
1629         (usubvti4): Likewise.
1630         (negvti3): New expand pattern.
1631         (negdi_carryout): New insn pattern.
1632         (negvdi_carryinV): New insn pattern.
1633         (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
1634         version the named version.
1635         (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
1636         operands.
1637         (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
1638         patterns.
1639         (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
1640         patterns.
1641         (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
1642         (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
1643         (sub<mode>3_carryinCV): Delete.
1644         (sub<GPI:mode>3_carryinV): New expand pattern.
1645         sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
1646
1647 2019-01-07  Richard Biener  <rguenther@suse.de>
1648
1649         * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
1650         of tree_operand_hash.
1651
1652 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
1653
1654         PR tree-optimization/88598
1655         * tree.h (single_nonzero_element): Declare.
1656         * tree.c (single_nonzero_element): New function.
1657         * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
1658         if I is the only nonzero element of CST.
1659
1660 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
1661
1662         PR tree-optimization/88598
1663         * tree.h (initializer_each_zero_or_onep): Declare.
1664         * tree.c (initializer_each_zero_or_onep): New function.
1665         (signed_or_unsigned_type_for): Handle float types too.
1666         (unsigned_type_for, signed_type_for): Update comments accordingly.
1667         * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
1668         x & { 0 or -1, 0 or -1, ... }.
1669
1670 2019-01-07  Jonathan Wakely  <jwakely@redhat.com>
1671
1672         * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
1673         with x86_64-pc-linux-gnu.
1674
1675 2019-01-07  Tom de Vries  <tdevries@suse.de>
1676
1677         PR target/85486
1678         * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
1679         function.
1680         (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
1681         routines.
1682
1683 2019-01-07  Jakub Jelinek  <jakub@redhat.com>
1684
1685         * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
1686         V_256_512 iterator instead of V_512 and TARGET_AVX instead of
1687         TARGET_AVX512F as condition.
1688
1689         PR debug/88723
1690         * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
1691         const_not_ok_for_debug_p target hook.
1692         (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
1693         on UNSPEC and subexpressions thereof if all subexpressions of the
1694         UNSPEC are CONSTANT_P.
1695
1696         PR tree-optimization/88676
1697         * tree-ssa-phiopt.c (two_value_replacement): New function.
1698         (tree_ssa_phiopt_worker): Call it.
1699
1700         PR sanitizer/88619
1701         * cfgexpand.c (expand_stack_vars): Only align prev_offset to
1702         ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
1703
1704         PR c++/85052
1705         * tree-vect-generic.c: Include insn-config.h and recog.h.
1706         (expand_vector_piecewise): Add defaulted ret_type argument,
1707         if non-NULL, use that in preference to type for the result type.
1708         (expand_vector_parallel): Formatting fix.
1709         (do_vec_conversion, do_vec_narrowing_conversion,
1710         expand_vector_conversion): New functions.
1711         (expand_vector_operations_1): Call expand_vector_conversion
1712         for VEC_CONVERT ifn calls.
1713         * internal-fn.def (VEC_CONVERT): New internal function.
1714         * internal-fn.c (expand_VEC_CONVERT): New function.
1715         * fold-const-call.c (fold_const_vec_convert): New function.
1716         (fold_const_call): Use it for CFN_VEC_CONVERT.
1717         * doc/extend.texi (__builtin_convertvector): Document.
1718
1719 2019-01-07  Tom de Vries  <tdevries@suse.de>
1720
1721         * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
1722         * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
1723         vector_red_partition, vector_red_sym): New global variables.
1724         (nvptx_option_override): Initialize vector_red_sym.
1725         (nvptx_declare_function_name): Restore red_partition register.
1726         (nvptx_file_end): Emit code to declare the vector reduction variables.
1727         (nvptx_output_red_partition): New function.
1728         (nvptx_expand_shared_addr): Add vector argument. Use it to handle
1729         large vector reductions.
1730         (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
1731         (nvptx_init_builtins): Add VECTOR_ADDR.
1732         (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
1733         Handle nvptx_expand_shared_addr.
1734         (nvptx_get_shared_red_addr): Add vector argument and handle large
1735         vectors.
1736         (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
1737         large vectors.
1738         (nvptx_goacc_reduction_init): Likewise.
1739         (nvptx_goacc_reduction_fini): Likewise.
1740         (nvptx_goacc_reduction_teardown): Likewise.
1741         (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
1742         init,fini,teardown}.
1743         (nvptx_init_axis_predicate): Initialize vector_red_partition.
1744         (nvptx_set_current_function): Init vector_red_partition.
1745         * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
1746         (nvptx_red_partition): New insn.
1747         * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
1748
1749 2019-01-07  Tom de Vries  <tdevries@suse.de>
1750
1751         PR target/85381
1752         * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
1753         empty loops.
1754
1755 2019-01-07  Tom de Vries  <tdevries@suse.de>
1756
1757         * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
1758         (nvptx_option_override): Init oacc_bcast_partition.
1759         (nvptx_init_oacc_workers): New function.
1760         (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
1761         (nvptx_needs_shared_bcast): New function.
1762         (nvptx_find_par): Generalize to enable vectors to use shared-memory
1763         to propagate state.
1764         (nvptx_shared_propagate): Initialize vector bcast partition and
1765         synchronization state.
1766         (nvptx_single):  Generalize to enable vectors to use shared-memory
1767         to propagate state.
1768         (nvptx_process_pars): Likewise.
1769         (nvptx_set_current_function): Initialize oacc_broadcast_partition.
1770         * config/nvptx/nvptx.h (struct machine_function): Add
1771         bcast_partition and sync_bar members.
1772
1773 2019-01-07  Tom de Vries  <tdevries@suse.de>
1774
1775         * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
1776         (nvptx_apply_dim_limits): New function.
1777         (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
1778         PTX_WARP_SIZE.
1779
1780 2019-01-07  Tom de Vries  <tdevries@suse.de>
1781
1782         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
1783         as late as possible.
1784
1785 2019-01-07  Tom de Vries  <tdevries@suse.de>
1786
1787         * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
1788         (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
1789         (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
1790         (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
1791         PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
1792
1793 2019-01-07  Tom de Vries  <tdevries@suse.de>
1794
1795         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
1796
1797 2019-01-07  Tom de Vries  <tdevries@suse.de>
1798
1799         * omp-offload.c (oacc_get_min_dim): New function.
1800         * omp-offload.h (oacc_get_min_dim): Declare.
1801
1802 2018-12-26  Mateusz B  <mateuszb@poczta.onet.pl>
1803
1804         PR target/88521
1805         * config/i386/i386.c (function_value_ms_64): Return small sturct in
1806         AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
1807
1808 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
1809
1810         PR tree-opt/86020
1811         Revert:
1812         2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
1813         
1814         * ipa-inline.c (edge_badness): Use inlined_time instead of
1815         inline_summaries->get.
1816
1817 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
1818
1819         * opts.c (enable_fdo_optimizations): Enable
1820         version-loops-for-strides, loop-interchange, unrol-and-jam
1821         and tree-loop-distribution.
1822         * invoke.texi: Document newly enabled options.
1823
1824 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
1825
1826         * doc/invoke.texi (max-inline-insns-small): New parameters.
1827         * ipa-inline.c (want_early_inline_function_p): simplify.
1828         (want_inline_small_function_p): Fix pasto from previous patch;
1829         use max-inline-insns-small bound.
1830         * params.def (max-inline-insns-small): New param.
1831         * ipa-fnsummary.c (analyze_function_body): Initialize time/size
1832         variables correctly.
1833
1834 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
1835
1836         * doc/invoke.texi: Document max-inline-insns-size,
1837         uninlined-function-insns, uninlined-function-time,
1838         uninlined-thunk-insns and uninlined-thunk-time.
1839         * params.def: Add max-inline-insns-size,
1840         uninlined-function-insns, uninlined-function-time,
1841         uninlined-thunk-insns and uninlined-thunk-time.
1842         * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
1843         new parameters.
1844         * ipa-inline.c (can_inline_edge_by_limits_p,
1845         want_inline_small_function_p): Use new parameters.
1846
1847 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
1848
1849         * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
1850
1851 2019-01-05  Jakub Jelinek  <jakub@redhat.com>
1852
1853         PR middle-end/82564
1854         PR target/88620
1855         * expr.c (expand_assignment): For calls returning VLA structures
1856         if to_rtx is not a MEM, force it into a stack temporary.
1857
1858         PR debug/88635
1859         * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
1860         SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
1861         Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
1862         subexpressions of both operands.
1863         (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
1864         subrtxes are CONSTANT_P.
1865         * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
1866         2018-11-09 changes.
1867
1868 2019-01-04  Jan Hubicka  <hubicka@ucw.cz>
1869
1870         * params.def (hot-bb-count-ws-permille): Set to 990.
1871
1872 2019-01-04  Martin Sebor  <msebor@redhat.com>
1873
1874         PR c/88546
1875         * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
1876         leaf.
1877
1878 2019-01-04  Martin Sebor  <msebor@redhat.com>
1879
1880         PR c/88363
1881         * doc/extend.texi (attribute alloc_align, alloc_size): Update.
1882
1883 2019-01-04  Jakub Jelinek  <jakub@redhat.com>
1884
1885         * gdbinit.in: Turn off pagination for the skip commands, restore
1886         it to previous state afterwards.
1887
1888 2019-01-04  Sam Tebbs  <sam.tebbs@arm.com>
1889
1890         PR gcc/87763
1891         * gcc.target/aarch64/combine_bfxil.c: Change scan-assembler-times bfxil
1892         count to 18.
1893
1894 2019-01-04  Jakub Jelinek  <jakub@redhat.com>
1895
1896         PR target/88594
1897         * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
1898         of GET_MODE (opN) as modes of the libcall arguments.
1899
1900 2019-01-04  Jan Beulich  <jbeulich@suse.com>
1901
1902         * config/i386/sse.md
1903         (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
1904         <avx512>_cmp<mode>3<mask_scalar_merge_name>,
1905         <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
1906         <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
1907         avx512f_vmcmp<mode>3<round_saeonly_name>,
1908         avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
1909         avx512f_maskcmp<mode>3,
1910         <avx512>_cvt<ssemodesuffix>2mask<mode>,
1911         <avx512>_cvt<ssemodesuffix>2mask<mode>,
1912         *<avx512>_cvtmask2<ssemodesuffix><mode>,
1913         *<avx512>_cvtmask2<ssemodesuffix><mode>,
1914         <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
1915         <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
1916         <avx512>_gt<mode>3<mask_scalar_merge_name>,
1917         <avx512>_gt<mode>3<mask_scalar_merge_name>,
1918         <avx512>_testm<mode>3<mask_scalar_merge_name>,
1919         <avx512>_testnm<mode>3<mask_scalar_merge_name>,
1920         *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
1921         *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
1922         *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
1923         *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
1924         avx512cd_maskb_vec_dup<mode>,
1925         avx512cd_maskw_vec_dup<mode>,
1926         avx512dq_fpclass<mode><mask_scalar_merge_name>,
1927         avx512dq_vmfpclass<mode>,
1928         avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
1929         instead of =Yk.
1930
1931 2019-01-03  Martin Sebor  <msebor@redhat.com>
1932
1933         PR tree-optimization/88659
1934         * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
1935
1936 2019-01-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
1937
1938         * config/rs6000/rs6000-string.c (expand_block_move): Don't use
1939         unaligned vsx and avoid lxvd2x/stxvd2x.
1940         (gen_lvx_v4si_move): New function.
1941
1942 2019-01-03  Tom de Vries  <tdevries@suse.de>
1943
1944         * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
1945         (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
1946         function.
1947         * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
1948
1949 2019-01-03  Tom de Vries  <tdevries@suse.de>
1950
1951         * config/nvptx/nvptx.c (struct offload_attrs): New.
1952         (populate_offload_attrs): New function.  Factor mask extraction out of
1953         nvptx_reorg.  Add extraction of dimensions.
1954         (nvptx_reorg): Use populate_offload_attrs.
1955
1956 2019-01-03  Tom de Vries  <tdevries@suse.de>
1957
1958         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
1959         cases for oacc_min_dims_p and routine_p.  Add asserts for
1960         oacc_default_dims_p and offload_region_p.
1961
1962 2019-01-03  Tom de Vries  <tdevries@suse.de>
1963
1964         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
1965         factored out of ...
1966         (nvptx_goacc_validate_dims): ... here.
1967
1968 2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
1969
1970         PR tree-optimization/85574
1971         * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
1972         structure.
1973         (struct ssa_equip_hash_traits): Declare.
1974         (val_ssa_equiv): Use custom hash traits using operand_equal_p.
1975
1976 2019-01-03  Jakub Jelinek  <jakub@redhat.com>
1977
1978         PR debug/88644
1979         * dwarf2out.c (modified_type_die): If type is equal to sizetype,
1980         change it to qualified_type.
1981
1982 2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
1983
1984         * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
1985         (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
1986
1987 2019-01-02  Martin Sebor  <msebor@redhat.com>
1988             Jeff Law  <law@redhat.com>
1989
1990         * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
1991         (get_range_strlen_tree): Update appropriately.
1992         (get_range_strlen)
1993         * gimple-fold.h (get_range_strlen): Drop unused last argument.
1994
1995         * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
1996         rather than set_range_info.
1997         * tree-ssa-strlen.c (set_strlen_range): Extracted from
1998         maybe_set_strlen_range.  Handle potentially boundary crossing
1999         cases more conservatively.
2000         (maybe_set_strlen_range): Parts refactored into set_strlen_range.
2001         Call set_strlen_range.
2002         * tree-ssa-strlen.h (set_strlen_range): Add prototype.
2003
2004         PR middle-end/88663
2005         * gimple-fold.c (get_range_strlen): Update prototype to no longer
2006         need the flexp argument.
2007         (get_range_strlen_tree): Drop flexp argument.  Drop flexp argument
2008         from calls to get_range_strlen.  Update comments.  Just update
2009         VAL for an unterminated const char array and let the reset of the
2010         code handle it normally.  No longer try to set *flexp.  Adjust
2011         return value.
2012         (get_range_strlen): Update for the new get_range_strlen API.
2013         (get_maxval_strlen): Similarly.
2014         (gimple_fold_builtin_strlen): Handle update meaning of return value
2015         from get_range_strlen.
2016         * gimple-ssa-sprintf.c (get_string_length): Update for the new
2017         get_range_strlen API.
2018
2019 2019-01-02  Jan Hubicka  <hubicka@ucw.cz>
2020
2021         PR lto/88130
2022         * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
2023         false at WPA time when body was removed.
2024
2025 2019-01-02  Martin Liska  <mliska@suse.cz>
2026
2027         PR tree-optimization/88650
2028         * predict.c (set_even_probabilities): Calculate probability
2029         remainer only when really used.
2030
2031 2019-01-02  Richard Biener  <rguenther@suse.de>
2032
2033         PR middle-end/88651
2034         * tree-data-ref.c (analyze_subscript_affine_affine): Use
2035         widest_ints when mangling max_stmt_execution results.
2036
2037 2019-01-02  Richard Biener  <rguenther@suse.de>
2038
2039         PR tree-optimization/88621
2040         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
2041         bitfields when canoncalizing.
2042
2043 2019-01-02  Richard Biener  <rguenther@suse.de>
2044
2045         PR target/87545
2046         * config/i386/x86-tune-costs.h (intel_cost): Adjust
2047         cost of cheap SSE instruction.
2048
2049 2019-01-02  Richard Biener  <rguenther@suse.de>
2050
2051         PR ipa/85574
2052         * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
2053         * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
2054         function.
2055         (sem_item_optimizer::do_congruence_step_f): Sort the congruence
2056         set after UIDs before splitting them.
2057
2058 2019-01-01  Martin Sebor  <msebor@redhat.com>
2059             Jeff Law  <law@redhat.com>
2060
2061         * gimple-fold.c (get_range_strlen_tree): Record if the computed
2062         length is optimistic.  If it is, then arrange to compute the
2063         conservative length as well.
2064
2065         * gimple-fold.h (get_range_strlen): Update prototype.
2066         * builtins.c (check_access): Update call to get_range_strlen to use
2067         c_strlen_data pointer.   Change various variable accesses to instead
2068         pull data from the c_strlen_data structure.
2069         (check_strncat_sizes, expand_builtin_strncat): Likewise.
2070         * calls.c (maybe_warn_nonstring_arg): Likewise.
2071         * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise.  Reset
2072         minimum length if maximum lengh is unknown.
2073         * gimple-ssa-sprintf.c (get_string_length): Likewise.  Drop code
2074         that used c_strlen, it's no longer needed.  Restructure slightly.
2075         (format_string): Set unlikely range appropriately.
2076         * gimple-fold.c (get_range_strlen): Update comments.  Fix minor
2077         formatting issues.
2078         (get_range_strlen):  Accept c_strlen_data pointer for external
2079         call sites as well.  Pass through to call to internal get_range_strlen.
2080         Adjust minlen, maxlen and maxbound as needed.
2081         (get_maxval_strlen): Update comments.
2082         (gimple_fold_builtin_strlen):  Update call to get_range_strlen
2083         to use c_strlen_data pointer.  Change variable accesses to instead
2084         use c_strlen_data data members.
2085
2086         * gimple-fold.c (get_range_strlen): Update prototype.
2087         (get_range_strlen_tree): Update prototype.  Drop minlen/maxlen
2088         local variables.  Use pdata to return information to caller.
2089         Update calls to get_range_strlen.  Update pdata->maxbound.
2090         (get_range_strlen -- static version): Similarly.
2091         (get_range_strlen -- extern version): Update for internal
2092         get_range_strlen API change.  Convert to external data format.
2093         (get_maxval_strlen): Similarly.
2094
2095 2019-01-01  Jan Hubicka  <hubicka@ucw.cz>
2096
2097         * coverage.c (get_coverage_counts): Use current_function_decl.
2098         * profile.c (read_thunk_profile): New function.
2099         (branch_prob): Add THUNK parameter.
2100         * tree-profile.c (tree_profiling): Handle thunks.
2101         * value-prof.c (init_node_map): Handle thunks.
2102         * value-prof.h (branch_prob): Upate prototype.
2103         (read_thunk_profile): Declare.
2104
2105 2019-01-01  Jakub Jelinek  <jakub@redhat.com>
2106
2107         Update copyright years.
2108
2109         * gcc.c (process_command): Update copyright notice dates.
2110         * gcov-dump.c (print_version): Ditto.
2111         * gcov.c (print_version): Ditto.
2112         * gcov-tool.c (print_version): Ditto.
2113         * gengtype.c (create_file): Ditto.
2114         * doc/cpp.texi: Bump @copying's copyright year.
2115         * doc/cppinternals.texi: Ditto.
2116         * doc/gcc.texi: Ditto.
2117         * doc/gccint.texi: Ditto.
2118         * doc/gcov.texi: Ditto.
2119         * doc/install.texi: Ditto.
2120         * doc/invoke.texi: Ditto.
2121 \f
2122 Copyright (C) 2019 Free Software Foundation, Inc.
2123
2124 Copying and distribution of this file, with or without modification,
2125 are permitted in any medium without royalty provided the copyright
2126 notice and this notice are preserved.