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