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