* gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
[official-gcc.git] / gcc / ChangeLog
blobd5dde3f90d1d1694439fdd5484abc77f84e954f4
1 2019-01-17  Eric Botcazou  <ebotcazou@adacore.com>
3         * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
4         flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
5         (stmt_uses_0_or_null_in_undefined_way): Likewise.
6         * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
8 2019-01-17  Tamar Christina  <tamar.christina@arm.com>
10         PR target/88851
11         * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
12         * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
13         it and document registers.
15 2019-01-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17         * config/aarch64/aarch64.c (ares_tunings): Define.
18         * config/aarch64/aarch64-cores.def (ares): Use the above.
20 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
22         PR target/88794
23         Revert:
24         2018-11-06  Wei Xiao  <wei3.xiao@intel.com>
26         * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
27         (_mm512_fixupimm_round_pd): Update parameters and builtin.
28         (_mm512_maskz_fixupimm_round_pd): Ditto.
29         (_mm512_fixupimm_round_ps): Ditto.
30         (_mm512_maskz_fixupimm_round_ps): Ditto.
31         (_mm_fixupimm_round_sd): Ditto.
32         (_mm_maskz_fixupimm_round_sd): Ditto.
33         (_mm_fixupimm_round_ss): Ditto.
34         (_mm_maskz_fixupimm_round_ss): Ditto.
35         (_mm512_fixupimm_pd): Ditto.
36         (_mm512_maskz_fixupimm_pd): Ditto.
37         (_mm512_fixupimm_ps): Ditto.
38         (_mm512_maskz_fixupimm_ps): Ditto.
39         (_mm_fixupimm_sd): Ditto.
40         (_mm_maskz_fixupimm_sd): Ditto.
41         (_mm_fixupimm_ss): Ditto.
42         (_mm_maskz_fixupimm_ss): Ditto.
43         (_mm512_mask_fixupimm_round_pd): Update builtin.
44         (_mm512_mask_fixupimm_round_ps): Ditto.
45         (_mm_mask_fixupimm_round_sd): Ditto.
46         (_mm_mask_fixupimm_round_ss): Ditto.
47         (_mm512_mask_fixupimm_pd): Ditto.
48         (_mm512_mask_fixupimm_ps): Ditto.
49         (_mm_mask_fixupimm_sd): Ditto.
50         (_mm_mask_fixupimm_ss): Ditto.
51         * config/i386/avx512vlintrin.h:
52         (_mm256_fixupimm_pd): Update parameters and builtin.
53         (_mm256_maskz_fixupimm_pd): Ditto.
54         (_mm256_fixupimm_ps): Ditto.
55         (_mm256_maskz_fixupimm_ps): Ditto.
56         (_mm_fixupimm_pd): Ditto.
57         (_mm_maskz_fixupimm_pd): Ditto.
58         (_mm_fixupimm_ps): Ditto.
59         (_mm_maskz_fixupimm_ps): Ditto.
60         (_mm256_mask_fixupimm_pd): Update builtin.
61         (_mm256_mask_fixupimm_ps): Ditto.
62         (_mm_mask_fixupimm_pd): Ditto.
63         (_mm_mask_fixupimm_ps): Ditto.
64         * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
65         * config/i386/i386-builtin.def: Update builtin definitions.
66         * config/i386/i386.c: Handle new builtin types and remove useless ones.
67         * config/i386/sse.md: Update VFIXUPIMM* patterns.
68         (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
69         (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
70         (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
71         (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
72         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
73         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
74         * config/i386/subst.md:
75         (round_saeonly_sd_mask_operand4): Add new subst_attr.
76         (round_saeonly_sd_mask_op4): Ditto.
77         (round_saeonly_expand_operand5): Ditto.
78         (round_saeonly_expand): Update.
80 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
82         PR target/88794
83         Revert:
84         2018-11-12  Wei Xiao  <wei3.xiao@intel.com>
86         * config/i386/sse.md: Combine VFIXUPIMM* patterns
87         (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
88         (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
89         (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
90         (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
91         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
92         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
94 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
96         PR target/88794
97         Revert:
98         2018-12-15  Jakub Jelinek  <jakub@redhat.com>
100         PR target/88489
101         * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
102         (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
103         instead of UNSPEC_FIXUPIMM.
105 2019-01-17  Richard Biener  <rguenther@suse.de>
107         PR lto/86736
108         * dwarf2out.c (want_pubnames): Never generate pubnames sections
109         and friends for the LTO part of debug info.
111 2019-01-17  Jakub Jelinek  <jakub@redhat.com>
113         PR tree-optimization/86214
114         * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
115         if x == y.
117         PR rtl-optimization/88870
118         * dce.c (deletable_insn_p): Never delete const/pure calls that can
119         throw if we can't alter the cfg or delete dead exceptions.
120         (mark_insn): Don't call find_call_stack_args for such calls.
122 2019-01-17  Kewen Lin  <linkw@gcc.gnu.org>
124         * doc/extend.texi: Add four new prototypes for vec_ld and seven new
125         prototypes for vec_st.
126         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
127         for scalar address type variants of altivec_vec_ld/altivec_vec_st,
128         mainly on signed/unsigned long long and double.
130 2019-01-16  David Malcolm  <dmalcolm@redhat.com>
132         PR target/88861
133         * combine.c (delete_noop_moves): Convert to "bool" return,
134         returning true if any edges are eliminated.
135         (combine_instructions): Also return true if delete_noop_moves
136         returns true.
138 2019-01-16  Tamar Christina  <tamar.christina@arm.com>
140         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
141         correct max nunits for endian swap.
142         (aarch64_expand_fcmla_builtin): Correct subreg code.
143         * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
144         aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
145         lane endianness.
147 2019-01-16  Uroš Bizjak  <ubizjak@gmail.com>
149         * config/alpha/alpha.c (alpha_gimplify_va_arg):
150         Handle split indirect COMPLEX_TYPE arguments.
152 2019-01-16  Richard Earnshaw  <rearnsha@arm.com>
154         PR target/86891
155         * config/aarch64/aarch64-modes.def: Add comment about how the carry
156         bit is set by add and compare.
157         (CC_ADC): New CC_MODE.
158         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
159         to cache the code and mode of X.  Adjust the shape of a CC_Cmode
160         comparison.  Add detection for CC_ADCmode.
161         (aarch64_get_condition_code_1): Update code support for CC_Cmode.  Add
162         CC_ADCmode.
163         * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
164         (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
165         (add<mode>3_compareC_cconly_imm): Delete.  Merge into...
166         (add<mode>3_compareC_cconly): ... this.  Restructure the comparison
167         to eliminate the need for zero-extending the operands.
168         (add<mode>3_compareC_imm): Delete.  Merge into ...
169         (add<mode>3_compareC): ... this.  Restructure the comparison to
170         eliminate the need for zero-extending the operands.
171         (add<mode>3_carryin): Use LTU for the overflow detection.
172         (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
173         Reexpress comparison for overflow.
174         (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
175         (add<mode>3_carryinC): Likewise.
176         (add<mode>3_carryinV): Use LTU for carry between partials.
177         * config/aarch64/predicates.md (aarch64_carry_operation): Update
178         handling of CC_Cmode and add CC_ADCmode.
179         (aarch64_borrow_operation): Likewise.
181 2019-01-16  Tamar Christina  <tamar.christina@arm.com>
183         * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
184         * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
185         * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
186         neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
188 2019-01-16  Martin Liska  <mliska@suse.cz>
190         * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
191         for GCC driver.
192         * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
193         a new argument.
194         * gcc.c (add_sysrooted_hdrs_prefix): New function.
195         (path_prefix_reset): Move up in the source file.
196         (find_fortran_preinclude_file): Make complex search for the
197         fortran header files.
199 2019-01-15  Nikhil Benesch  <nikhil.benesch@gmail.com>
201         * godump.c (go_output_typedef): When outputting a typedef, refer
202         to the underlying type by its name and not its structure.
204 2019-01-15  David Malcolm  <dmalcolm@redhat.com>
206         PR c++/88795
207         * tree.c (build_function_type): Assert that arg_types is not
208         error_mark_node.
210 2019-01-15  Richard Sandiford  <richard.sandiford@arm.com>
212         PR inline-asm/52813
213         * doc/extend.texi: Document that listing the stack pointer in the
214         clobber list of an asm is a deprecated feature.
215         * common.opt (Wdeprecated): Moved from c-family/c.opt.
216         * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
217         warning instead of an error for clobbers of the stack pointer.
218         Add a note explaining why.
220 2019-01-15  Richard Biener  <rguenther@suse.de>
222         PR debug/88046
223         * dwarf2out.c (gen_member_die): Do not generate inheritance
224         DIEs late.
226 2019-01-15  Richard Biener  <rguenther@suse.de>
228         PR tree-optimization/88855
229         * tree-if-conv.c (combine_blocks): Collect
230         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
232 2019-01-15  Tom de Vries  <tdevries@suse.de>
234         PR target/80547
235         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
236         lhs == NULL_TREE for gang-level reduction.
238 2019-01-15  Richard Biener  <rguenther@suse.de>
239             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
241         PR ipa/88788
242         * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
243         return true if SSA_NAME is already marked in visited bitmap.
244         (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
246 2019-01-15  Jakub Jelinek  <jakub@redhat.com>
248         PR tree-optimization/88775
249         * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
250         equal == 0 equality pointer comparisons some more if compared in
251         integral types and either one points to an automatic var and the
252         other to a global, or we can prove at least one points to the middle
253         or both point to start or both point to end.
255 2019-01-14  Andi Kleen  <ak@linux.intel.com>
257         * Makefile.in: Lower autofdo sampling rate by 10x.
258         * Makefile.tpl: Dito.
260 2019-01-14  Tom Honermann  <tom@honermann.net>
262         * defaults.h: Define CHAR8_TYPE.
264 2019-01-14  Martin Sebor  <msebor@redhat.com>
266         PR target/88638
267         * doc/extend.texi (Darwin Format Checks): Clarify.
269 2019-01-14  Richard Biener  <rguenther@suse.de>
271         * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
272         whether we are in (simplify ...) or (match ...) context.
274 2019-01-14  Jakub Jelinek  <jakub@redhat.com>
276         PR rtl-optimization/88796
277         * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
278         * cfgexpand.c (stack_protect_prologue): Initialize
279         crtl->stack_protect_guard_decl.
280         * function.c (stack_protect_epilogue): Use it instead of calling
281         targetm.stack_protect_guard again.
282         * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
283         MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
284         crtl->stack_protect_guard_decl.
285         * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
286         on the returned MEM_EXPR.
288 2019-01-12  Tom de Vries  <tdevries@suse.de>
290         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
291         vector length using -fopenacc-dim.
293 2019-01-12  Tom de Vries  <tdevries@suse.de>
295         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
296         lengths into account.
298 2019-01-12  Svante Signell  <svante.signell@gmail.com>
300         * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
301         (TARGET_CAN_SPLIT_STACK): Define.
302         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
304 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
306         * params.def (inline-unit-growth): Set to 40.
308 2019-01-12  Jakub Jelinek  <jakub@redhat.com>
310         * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
312 2019-01-12  Tom de Vries  <tdevries@suse.de>
314         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
315         region calling vector-partitionable routine, set default_vector_length
316         to WARP_SIZE.
318 2019-01-12  Tom de Vries  <tdevries@suse.de>
320         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
321         variable default_vector_length.
323 2019-01-12  Tom de Vries  <tdevries@suse.de>
325         PR middle-end/88703
326         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
327         from oacc_default_dims, as oacc_validate_dims would do it, and apply
328         dimensions limits.
330 2019-01-12  Tom de Vries  <tdevries@suse.de>
332         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
333         (nvptx_goacc_validate_dims): Add used parameter.
334         * doc/tm.texi: Regenerate.
335         * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
336         argument to call to targetm.goacc.validate_dims.
337         (default_goacc_validate_dims): Add used
338         parameter.
339         * target.def (validate_dims): Add used parameter in DEFHOOK.
340         * targhooks.h (default_goacc_validate_dims): Add used parameter.
342 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
344         PR middle-end/85956
345         PR lto/88733
346         * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
347         field.
348         * tree-inline.c (remap_type_1): Formatting fix.  If TYPE_MAX_VALUE of
349         ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
350         a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
351         * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
353 2019-01-11  Vladimir Makarov  <vmakarov@redhat.com>
355         PR rtl-optimization/87305
356         * lra-assigns.c
357         (setup_live_pseudos_and_spill_after_risky_transforms): Add code
358         for little endian pseudos used as paradoxical subreg.
360 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
362         PR tree-optimization/88693
363         * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
364         for STRING_CSTs that don't contain any NUL characters in the first
365         TREE_STRING_LENGTH bytes.
367 2019-01-11  Alan Modra  <amodra@gmail.com>
369         PR 88777
370         PR 88614
371         * genattrtab.c (min_fn): Don't translate values.
372         (min_attr_value): Return INT_MAX when the value can't be calculated.
373         Return minimum among any values that can be calculated.
374         (max_attr_value): Adjust.
376 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
378         * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
380 2019-01-11  Steve Ellcey  <sellcey@marvell.com>
382         * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
383         (aarch64_hard_regno_call_part_clobbered): Add insn argument.
384         (aarch64_return_call_with_max_clobbers): New function.
385         (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
386         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
387         argument.
388         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
389         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
390         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
391         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
392         * cselib.c (cselib_process_insn): Add argument to
393         targetm.hard_regno_call_part_clobbered call.
394         * ira-conflicts.c (ira_build_conflicts): Ditto.
395         * ira-costs.c (ira_tune_allocno_costs): Ditto.
396         * lra-constraints.c (inherit_reload_reg): Ditto.
397         * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
398         * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
399         argument.  Call targetm.return_call_with_max_clobbers.
400         Add argument to targetm.hard_regno_call_part_clobbered call.
401         (calls_have_same_clobbers_p): New function.
402         (process_bb_lives): Add call_insn and last_call_insn variables.
403         Pass call_insn to check_pseudos_live_through_calls.
404         Modify if stmt to check targetm.return_call_with_max_clobbers.
405         Update setting of flush variable.
406         (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
407         to false.
408         * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
409         * regcprop.c (copyprop_hardreg_forward_1): Add argument to
410         targetm.hard_regno_call_part_clobbered call.
411         * reginfo.c (choose_hard_reg_mode): Ditto.
412         * regrename.c (check_new_reg_p): Ditto.
413         * reload.c (find_equiv_reg): Ditto.
414         * reload1.c (emit_reload_insns): Ditto.
415         * sched-deps.c (deps_analyze_insn): Ditto.
416         * sel-sched.c (init_regs_for_mode): Ditto.
417         (mark_unavailable_hard_regs): Ditto.
418         * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
419         * target.def (hard_regno_call_part_clobbered): Add insn argument.
420         (return_call_with_max_clobbers): New target function.
421         * doc/tm.texi: Regenerate.
422         * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
423         * hooks.c (hook_bool_uint_mode_false): Change to
424         hook_bool_insn_uint_mode_false.
425         * hooks.h (hook_bool_uint_mode_false): Ditto.
427 2019-01-11  Steve Ellcey  <sellcey@marvell.com>
429         * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
430         (aarch64_remove_extra_call_preserved_regs): New function.
431         (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
432         * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
433         * doc/tm.texi: Regenerate.
434         * final.c (get_call_reg_set_usage): Call new hook.
435         * target.def (remove_extra_call_preserved_regs): New hook.
436         * targhooks.c (default_remove_extra_call_preserved_regs): New function.
437         * targhooks.h (default_remove_extra_call_preserved_regs): New function.
439 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
441         PR bootstrap/88714
442         * passes.c (finish_optimization_passes): Call print_combine_total_stats
443         inside of pass_combine_1 dump rather than pass_profile_1.
445 2019-01-11  Tom de Vries  <tdevries@suse.de>
447         * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
448         (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
449         (PTX_NUM_PER_WORKER_BARRIERS): Define.
450         (nvptx_apply_dim_limits): Prevent vector_length 64 and
451         num_workers 16.
453 2019-01-11  Tom de Vries  <tdevries@suse.de>
455         * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
457 2019-01-11  Jan Beulich  <jbeulich@suse.com>
459         * config/i386/i386.md (rex64suffix): Add L suffix for SI.
460         * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
461         sse2_cvtsi2sd): Add {l}.
462         (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
463         syntax.
465 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
467         PR target/88785
468         * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
469         define_expand.
470         (*float<floatunssuffix>v2div2sf2): New define_insn.
471         (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
472         (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
473         (*float<floatunssuffix>v2div2sf2_mask_1): Replace
474         subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
475         match_operands with "const0_operand" "C".
477 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
479         * config/aarch64/aarch64-builtins.c
480         (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
481         (aarch64_init_simd_builtins): ...Here
483 2019-01-10  Vladimir Makarov  <vmakarov@redhat.com>
485         PR rtl-optimization/87305
486         * lra-assigns.c
487         (setup_live_pseudos_and_spill_after_risky_transforms): Check
488         allocation for big endian pseudos used as paradoxical subregs and
489         spill them if it is wrong.
490         * lra-constraints.c (lra_constraints): Add a comment.
492 2019-01-10  Richard Biener  <rguenther@suse.de>
494         PR tree-optimization/88792
495         * tree-ssa-pre.c (get_representative_for): Do not return a
496         value-number here.
498 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
500         PR middle-end/84877
501         PR bootstrap/88450
502         * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
503         (assign_parm_setup_block): Do the argument slot realignment here
504         instead.
506 2019-01-10  Stefan Agner  <stefan@agner.ch>
508         PR target/88648
509         * config/arm/arm.c (arm_option_override_internal): Force
510         opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
512 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
514         PR c/88568
515         * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
516         DECL_EXTERNAL.
518 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
520         * config/arm/arm-builtins.c
521         (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
522         (MAC_LANE_PAIR_QUALIFIERS): New.
523         (arm_expand_builtin_args): Use it.
524         (arm_expand_builtin_1): Likewise.
525         * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
526         * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
527         * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
528         * config/arm/arm_neon.h:
529         (vcadd_rot90_f16): New.
530         (vcaddq_rot90_f16): New.
531         (vcadd_rot270_f16): New.
532         (vcaddq_rot270_f16): New.
533         (vcmla_f16): New.
534         (vcmlaq_f16): New.
535         (vcmla_lane_f16): New.
536         (vcmla_laneq_f16): New.
537         (vcmlaq_lane_f16): New.
538         (vcmlaq_laneq_f16): New.
539         (vcmla_rot90_f16): New.
540         (vcmlaq_rot90_f16): New.
541         (vcmla_rot90_lane_f16): New.
542         (vcmla_rot90_laneq_f16): New.
543         (vcmlaq_rot90_lane_f16): New.
544         (vcmlaq_rot90_laneq_f16): New.
545         (vcmla_rot180_f16): New.
546         (vcmlaq_rot180_f16): New.
547         (vcmla_rot180_lane_f16): New.
548         (vcmla_rot180_laneq_f16): New.
549         (vcmlaq_rot180_lane_f16): New.
550         (vcmlaq_rot180_laneq_f16): New.
551         (vcmla_rot270_f16): New.
552         (vcmlaq_rot270_f16): New.
553         (vcmla_rot270_lane_f16): New.
554         (vcmla_rot270_laneq_f16): New.
555         (vcmlaq_rot270_lane_f16): New.
556         (vcmlaq_rot270_laneq_f16): New.
557         (vcadd_rot90_f32): New.
558         (vcaddq_rot90_f32): New.
559         (vcadd_rot270_f32): New.
560         (vcaddq_rot270_f32): New.
561         (vcmla_f32): New.
562         (vcmlaq_f32): New.
563         (vcmla_lane_f32): New.
564         (vcmla_laneq_f32): New.
565         (vcmlaq_lane_f32): New.
566         (vcmlaq_laneq_f32): New.
567         (vcmla_rot90_f32): New.
568         (vcmlaq_rot90_f32): New.
569         (vcmla_rot90_lane_f32): New.
570         (vcmla_rot90_laneq_f32): New.
571         (vcmlaq_rot90_lane_f32): New.
572         (vcmlaq_rot90_laneq_f32): New.
573         (vcmla_rot180_f32): New.
574         (vcmlaq_rot180_f32): New.
575         (vcmla_rot180_lane_f32): New.
576         (vcmla_rot180_laneq_f32): New.
577         (vcmlaq_rot180_lane_f32): New.
578         (vcmlaq_rot180_laneq_f32): New.
579         (vcmla_rot270_f32): New.
580         (vcmlaq_rot270_f32): New.
581         (vcmla_rot270_lane_f32): New.
582         (vcmla_rot270_laneq_f32): New.
583         (vcmlaq_rot270_lane_f32): New.
584         (vcmlaq_rot270_laneq_f32): New.
585         * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
586         vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
587         vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
588         vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
589         * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
590         neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
591         * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
592         * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
593         (arm_option_reconfigure_globals): Use them.
594         * config/arm/iterators.md (VDF, VQ_HSF): New.
595         (VCADD, VCMLA): New.
596         (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
597         * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
598         * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
599         UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
601 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
603         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
604         (emit-rtl.h): Include.
605         (TYPES_QUADOP_LANE_PAIR): New.
606         (aarch64_simd_expand_args): Use it.
607         (aarch64_simd_expand_builtin): Likewise.
608         (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
609         (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
610         AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
611         aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
612         (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
613         (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
614         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
615         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
616         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
617         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
618         * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
619         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
620         * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
621         fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
622         fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
623         fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
624         * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
625         aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
626         aarch64_fcmla<rot><mode>): New.
627         * config/aarch64/arm_neon.h:
628         (vcadd_rot90_f16): New.
629         (vcaddq_rot90_f16): New.
630         (vcadd_rot270_f16): New.
631         (vcaddq_rot270_f16): New.
632         (vcmla_f16): New.
633         (vcmlaq_f16): New.
634         (vcmla_lane_f16): New.
635         (vcmla_laneq_f16): New.
636         (vcmlaq_lane_f16): New.
637         (vcmlaq_rot90_lane_f16): New.
638         (vcmla_rot90_laneq_f16): New.
639         (vcmla_rot90_lane_f16): New.
640         (vcmlaq_rot90_f16): New.
641         (vcmla_rot90_f16): New.
642         (vcmlaq_laneq_f16): New.
643         (vcmla_rot180_laneq_f16): New.
644         (vcmla_rot180_lane_f16): New.
645         (vcmlaq_rot180_f16): New.
646         (vcmla_rot180_f16): New.
647         (vcmlaq_rot90_laneq_f16): New.
648         (vcmlaq_rot270_laneq_f16): New.
649         (vcmlaq_rot270_lane_f16): New.
650         (vcmla_rot270_laneq_f16): New.
651         (vcmlaq_rot270_f16): New.
652         (vcmla_rot270_f16): New.
653         (vcmlaq_rot180_laneq_f16): New.
654         (vcmlaq_rot180_lane_f16): New.
655         (vcmla_rot270_lane_f16): New.
656         (vcadd_rot90_f32): New.
657         (vcaddq_rot90_f32): New.
658         (vcaddq_rot90_f64): New.
659         (vcadd_rot270_f32): New.
660         (vcaddq_rot270_f32): New.
661         (vcaddq_rot270_f64): New.
662         (vcmla_f32): New.
663         (vcmlaq_f32): New.
664         (vcmlaq_f64): New.
665         (vcmla_lane_f32): New.
666         (vcmla_laneq_f32): New.
667         (vcmlaq_lane_f32): New.
668         (vcmlaq_laneq_f32): New.
669         (vcmla_rot90_f32): New.
670         (vcmlaq_rot90_f32): New.
671         (vcmlaq_rot90_f64): New.
672         (vcmla_rot90_lane_f32): New.
673         (vcmla_rot90_laneq_f32): New.
674         (vcmlaq_rot90_lane_f32): New.
675         (vcmlaq_rot90_laneq_f32): New.
676         (vcmla_rot180_f32): New.
677         (vcmlaq_rot180_f32): New.
678         (vcmlaq_rot180_f64): New.
679         (vcmla_rot180_lane_f32): New.
680         (vcmla_rot180_laneq_f32): New.
681         (vcmlaq_rot180_lane_f32): New.
682         (vcmlaq_rot180_laneq_f32): New.
683         (vcmla_rot270_f32): New.
684         (vcmlaq_rot270_f32): New.
685         (vcmlaq_rot270_f64): New.
686         (vcmla_rot270_lane_f32): New.
687         (vcmla_rot270_laneq_f32): New.
688         (vcmlaq_rot270_lane_f32): New.
689         (vcmlaq_rot270_laneq_f32): New.
690         * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
691         * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
692         UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
693         (FCADD, FCMLA): New.
694         (rot): New.
695         * config/arm/types.md (neon_fcadd, neon_fcmla): New.
697 2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
699         PR other/16615
701         * config/pa/pa.c: Change "can not" to "cannot".
702         * gimple-ssa-evrp-analyze.c: Likewise.
703         * ipa-icf.c: Likewise.
704         * ipa-polymorphic-call.c: Likewise.
705         * ipa-pure-const.c: Likewise.
706         * lra-constraints.c: Likewise.
707         * lra-remat.c: Likewise.
708         * reload1.c: Likewise.
709         * reorg.c: Likewise.
710         * tree-ssa-uninit.c: Likewise.
712 2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
714         PR other/16615
716         * Makefile.in: Mechanically replace "can not" with "cannot".
717         * alias.c: Likewise.
718         * builtins.c: Likewise.
719         * calls.c: Likewise.
720         * cgraph.c: Likewise.
721         * cgraph.h: Likewise.
722         * cgraphclones.c: Likewise.
723         * cgraphunit.c: Likewise.
724         * combine-stack-adj.c: Likewise.
725         * combine.c: Likewise.
726         * common/config/i386/i386-common.c: Likewise.
727         * config/aarch64/aarch64.c: Likewise.
728         * config/alpha/sync.md: Likewise.
729         * config/arc/arc.c: Likewise.
730         * config/arc/predicates.md: Likewise.
731         * config/arm/arm-c.c: Likewise.
732         * config/arm/arm.c: Likewise.
733         * config/arm/arm.h: Likewise.
734         * config/arm/arm.md: Likewise.
735         * config/arm/cortex-r4f.md: Likewise.
736         * config/csky/csky.c: Likewise.
737         * config/csky/csky.h: Likewise.
738         * config/darwin-f.c: Likewise.
739         * config/epiphany/epiphany.md: Likewise.
740         * config/i386/i386.c: Likewise.
741         * config/i386/sol2.h: Likewise.
742         * config/m68k/m68k.c: Likewise.
743         * config/mcore/mcore.h: Likewise.
744         * config/microblaze/microblaze.md: Likewise.
745         * config/mips/20kc.md: Likewise.
746         * config/mips/sb1.md: Likewise.
747         * config/nds32/nds32.c: Likewise.
748         * config/nds32/predicates.md: Likewise.
749         * config/pa/pa.c: Likewise.
750         * config/rs6000/e300c2c3.md: Likewise.
751         * config/rs6000/rs6000.c: Likewise.
752         * config/s390/s390.h: Likewise.
753         * config/sh/sh.c: Likewise.
754         * config/sh/sh.md: Likewise.
755         * config/spu/vmx2spu.h: Likewise.
756         * cprop.c: Likewise.
757         * dbxout.c: Likewise.
758         * df-scan.c: Likewise.
759         * doc/cfg.texi: Likewise.
760         * doc/extend.texi: Likewise.
761         * doc/fragments.texi: Likewise.
762         * doc/gty.texi: Likewise.
763         * doc/invoke.texi: Likewise.
764         * doc/lto.texi: Likewise.
765         * doc/md.texi: Likewise.
766         * doc/objc.texi: Likewise.
767         * doc/rtl.texi: Likewise.
768         * doc/tm.texi: Likewise.
769         * dse.c: Likewise.
770         * emit-rtl.c: Likewise.
771         * emit-rtl.h: Likewise.
772         * except.c: Likewise.
773         * expmed.c: Likewise.
774         * expr.c: Likewise.
775         * fold-const.c: Likewise.
776         * genautomata.c: Likewise.
777         * gimple-fold.c: Likewise.
778         * hard-reg-set.h: Likewise.
779         * ifcvt.c: Likewise.
780         * ipa-comdats.c: Likewise.
781         * ipa-cp.c: Likewise.
782         * ipa-devirt.c: Likewise.
783         * ipa-fnsummary.c: Likewise.
784         * ipa-icf.c: Likewise.
785         * ipa-inline-transform.c: Likewise.
786         * ipa-inline.c: Likewise.
787         * ipa-polymorphic-call.c: Likewise.
788         * ipa-profile.c: Likewise.
789         * ipa-prop.c: Likewise.
790         * ipa-pure-const.c: Likewise.
791         * ipa-reference.c: Likewise.
792         * ipa-split.c: Likewise.
793         * ipa-visibility.c: Likewise.
794         * ipa.c: Likewise.
795         * ira-build.c: Likewise.
796         * ira-color.c: Likewise.
797         * ira-conflicts.c: Likewise.
798         * ira-costs.c: Likewise.
799         * ira-int.h: Likewise.
800         * ira-lives.c: Likewise.
801         * ira.c: Likewise.
802         * ira.h: Likewise.
803         * loop-invariant.c: Likewise.
804         * loop-unroll.c: Likewise.
805         * lower-subreg.c: Likewise.
806         * lra-assigns.c: Likewise.
807         * lra-constraints.c: Likewise.
808         * lra-eliminations.c: Likewise.
809         * lra-lives.c: Likewise.
810         * lra-remat.c: Likewise.
811         * lra-spills.c: Likewise.
812         * lra.c: Likewise.
813         * lto-cgraph.c: Likewise.
814         * lto-streamer-out.c: Likewise.
815         * postreload-gcse.c: Likewise.
816         * predict.c: Likewise.
817         * profile-count.h: Likewise.
818         * profile.c: Likewise.
819         * recog.c: Likewise.
820         * ree.c: Likewise.
821         * reload.c: Likewise.
822         * reload1.c: Likewise.
823         * reorg.c: Likewise.
824         * resource.c: Likewise.
825         * rtl.def: Likewise.
826         * rtl.h: Likewise.
827         * rtlanal.c: Likewise.
828         * sched-deps.c: Likewise.
829         * sched-ebb.c: Likewise.
830         * sched-rgn.c: Likewise.
831         * sel-sched-ir.c: Likewise.
832         * sel-sched.c: Likewise.
833         * shrink-wrap.c: Likewise.
834         * simplify-rtx.c: Likewise.
835         * symtab.c: Likewise.
836         * target.def: Likewise.
837         * toplev.c: Likewise.
838         * tree-call-cdce.c: Likewise.
839         * tree-cfg.c: Likewise.
840         * tree-complex.c: Likewise.
841         * tree-core.h: Likewise.
842         * tree-eh.c: Likewise.
843         * tree-inline.c: Likewise.
844         * tree-loop-distribution.c: Likewise.
845         * tree-nrv.c: Likewise.
846         * tree-profile.c: Likewise.
847         * tree-sra.c: Likewise.
848         * tree-ssa-alias.c: Likewise.
849         * tree-ssa-dce.c: Likewise.
850         * tree-ssa-dom.c: Likewise.
851         * tree-ssa-forwprop.c: Likewise.
852         * tree-ssa-loop-im.c: Likewise.
853         * tree-ssa-loop-ivcanon.c: Likewise.
854         * tree-ssa-loop-ivopts.c: Likewise.
855         * tree-ssa-loop-niter.c: Likewise.
856         * tree-ssa-phionlycprop.c: Likewise.
857         * tree-ssa-phiopt.c: Likewise.
858         * tree-ssa-propagate.c: Likewise.
859         * tree-ssa-threadedge.c: Likewise.
860         * tree-ssa-threadupdate.c: Likewise.
861         * tree-ssa-uninit.c: Likewise.
862         * tree-ssanames.c: Likewise.
863         * tree-streamer-out.c: Likewise.
864         * tree.c: Likewise.
865         * tree.h: Likewise.
866         * vr-values.c: Likewise.
868 2019-01-09  Uroš Bizjak  <ubizjak@gmail.com>
870         * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
871         (ix86_split_xorsign): Ditto.
872         * config/i386/i386.c (ix86_expand_xorsign): New function.
873         (ix86_split_xorsign): Ditto.
874         * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
875         (xorsign<mode>3): New expander.
876         (xorsign<mode>3_1): New insn_and_split pattern.
877         * config/i386/sse.md (xorsign<mode>3): New expander.
879 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
881         * config/sparc/sparc.md (*tablejump_sp32): Merge into...
882         (*tablejump_sp64): Likewise.
883         (*tablejump<P:mode>): ...this.
884         (*call_address_sp32): Merge into...
885         (*call_address_sp64): Likewise.
886         (*call_address<P:mode>): ...this.
887         (*call_symbolic_sp32): Merge into...
888         (*call_symbolic_sp64): Likewise.
889         (*call_symbolic<P:mode>): ...this.
890         (call_value): Remove constraint and add predicate.
891         (*call_value_address_sp32): Merge into...
892         (*call_value_address_sp64): Likewise.
893         (*call_value_address<P:mode>): ...this.
894         (*call_value_symbolic_sp32): Merge into...
895         (*call_value_symbolic_sp64): Likewise.
896         (*call_value_symbolic<P:mode>): ...this.
897         (*sibcall_symbolic_sp32): Merge into...
898         (*sibcall_symbolic_sp64): Likewise.
899         (*sibcall_symbolic<P:mode>): ...this.
900         (sibcall_value): Remove constraint and add predicate.
901         (*sibcall_value_symbolic_sp32): Merge into...
902         (*sibcall_value_symbolic_sp64): Likewise.
903         (*sibcall_value_symbolic<P:mode>): ...this.
904         (window_save): Minor tweak.
905         (*branch_sp32): Merge into...
906         (*branch_sp64): Likewise.
907         (*branch<P:mode>): ...this.
909 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
910             James Clarke  <jrtc27@jrtc27.com>
912         PR target/84010
913         * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
914         consistently in TLS address generation and adjust code to the renaming
915         of patterns.  Mark calls to __tls_get_addr as const.
916         * config/sparc/sparc.md (tgd_hi22): Turn into...
917         (tgd_hi22<P:mode>): ...this and use Pmode throughout.
918         (tgd_lo10): Turn into...
919         (tgd_lo10<P:mode>): ...this and use Pmode throughout.
920         (tgd_add32): Merge into...
921         (tgd_add64): Likewise.
922         (tgd_add<P:mode>): ...this and use Pmode throughout.
923         (tldm_hi22): Turn into...
924         (tldm_hi22<P:mode>): ...this and use Pmode throughout.
925         (tldm_lo10): Turn into...
926         (tldm_lo10<P:mode>): ...this and use Pmode throughout.
927         (tldm_add32): Merge into...
928         (tldm_add64): Likewise.
929         (tldm_add<P:mode>): ...this and use Pmode throughout.
930         (tldm_call32): Merge into...
931         (tldm_call64): Likewise.
932         (tldm_call<P:mode>): ...this and use Pmode throughout.
933         (tldo_hix22): Turn into...
934         (tldo_hix22<P:mode>): ...this and use Pmode throughout.
935         (tldo_lox10): Turn into...
936         (tldo_lox10<P:mode>): ...this and use Pmode throughout.
937         (tldo_add32): Merge into...
938         (tldo_add64): Likewise.
939         (tldo_add<P:mode>): ...this and use Pmode throughout.
940         (tie_hi22): Turn into...
941         (tie_hi22<P:mode>): ...this and use Pmode throughout.
942         (tie_lo10): Turn into...
943         (tie_lo10<P:mode>): ...this and use Pmode throughout.
944         (tie_ld64): Use DImode throughout.
945         (tie_add32): Merge into...
946         (tie_add64): Likewise.
947         (tie_add<P:mode>): ...this and use Pmode throughout.
948         (tle_hix22_sp32): Merge into...
949         (tle_hix22_sp64): Likewise.
950         (tle_hix22<P:mode>): ...this and use Pmode throughout.
951         (tle_lox22_sp32): Merge into...
952         (tle_lox22_sp64): Likewise.
953         (tle_lox22<P:mode>): ...this and use Pmode throughout.
954         (*tldo_ldub_sp32): Merge into...
955         (*tldo_ldub_sp64): Likewise.
956         (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
957         (*tldo_ldub1_sp32): Merge into...
958         (*tldo_ldub1_sp64): Likewise.
959         (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
960         (*tldo_ldub2_sp32): Merge into...
961         (*tldo_ldub2_sp64): Likewise.
962         (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
963         (*tldo_ldsb1_sp32): Merge into...
964         (*tldo_ldsb1_sp64): Likewise.
965         (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
966         (*tldo_ldsb2_sp32): Merge into...
967         (*tldo_ldsb2_sp64): Likewise.
968         (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
969         (*tldo_ldub3_sp64): Use DImode throughout.
970         (*tldo_ldsb3_sp64): Likewise.
971         (*tldo_lduh_sp32): Merge into...
972         (*tldo_lduh_sp64): Likewise.
973         (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
974         (*tldo_lduh1_sp32): Merge into...
975         (*tldo_lduh1_sp64): Likewise.
976         (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
977         (*tldo_ldsh1_sp32): Merge into...
978         (*tldo_ldsh1_sp64): Likewise.
979         (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
980         (*tldo_lduh2_sp64): Use DImode throughout.
981         (*tldo_ldsh2_sp64): Likewise.
982         (*tldo_lduw_sp32): Merge into...
983         (*tldo_lduw_sp64): Likewise.
984         (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
985         (*tldo_lduw1_sp64): Use DImode throughout.
986         (*tldo_ldsw1_sp64): Likewise.
987         (*tldo_ldx_sp64): Likewise.
988         (*tldo_stb_sp32): Merge into...
989         (*tldo_stb_sp64): Likewise.
990         (*tldo_stb<P:mode>): ...this and use Pmode throughout.
991         (*tldo_sth_sp32): Merge into...
992         (*tldo_sth_sp64): Likewise.
993         (*tldo_sth<P:mode>): ...this and use Pmode throughout.
994         (*tldo_stw_sp32): Merge into...
995         (*tldo_stw_sp64): Likewise.
996         (*tldo_stw<P:mode>): ...this and use Pmode throughout.
997         (*tldo_stx_sp64): Use DImode throughout.
999 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
1001         * config/aarch64/aarch64.c (aarch64_override_options): Add case to
1002         check configure option to set BTI and Return Address Signing.
1003         * configure.ac: Add --enable-standard-branch-protection and
1004         --disable-standard-branch-protection.
1005         * configure: Regenerated.
1006         * doc/install.texi: Document the same.
1008 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
1009             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1011         * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
1012         * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
1013         * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
1014         if bti is enabled.
1015         * config/aarch64/aarch64-bti-insert.c: New file.
1016         * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
1017         pass.
1018         * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
1019         new bti pass.
1020         * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
1021         UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
1022         (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
1023         * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
1025 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
1027         * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
1028         * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
1029         Disable bti for -mbranch-protection=none.
1030         (aarch64_handle_standard_branch_protection): Enable bti for
1031         -mbranch-protection=standard.
1032         (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
1033         -mbranch-protection.
1034         (aarch64_bti_enabled): Check if bti is enabled.
1035         * config/aarch64/aarch64.opt: Declare target variable.
1036         * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
1038 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
1040         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
1041         epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
1042         (aarch64_expand_epilogue): Likewise.
1043         (aarch64_output_mi_thunk): Likewise
1044         * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
1045         TAILCALL_ADDR_REGS to x16 and x17.
1046         * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
1048 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
1050         * config/aarch64/aarch64-option-extensions.def: Define
1051         AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
1052         * gcc/config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
1053         (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
1054         (AARCH64_FL_PREDRES): New.
1055         (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
1056         AARCH64_FL_PREDRES by default.
1057         * gcc/doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
1059 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
1061         * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
1062         ARMv8.5-A.
1063         * gcc/config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
1064         (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
1065         * gcc/doc/invoke.texi: Document ARMv8.5-A.
1067 2019-01-09  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
1069         * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
1070         (xorsign<mode>3): Likewise.
1072 2019-01-09  Jelinek  <jakub@redhat.com>
1074         PR middle-end/88758
1075         * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
1076         vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
1078         PR rtl-optimization/88331
1079         * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
1080         not currently_expanding_to_rtl.
1082 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
1084         * doc/invoke.texi (-Os): Remove trailing spaces.
1085         (-finline-functions): Remove reference to -O2.
1087 2019-01-08  Jakub Jelinek  <jakub@redhat.com>
1089         PR rtl-optimization/79593
1090         * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
1092         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
1093         UNSPEC_FUSION_GPR to its argument.  Formatting fixes.
1095 2019-01-08  Eric Botcazou  <ebotcazou@adacore.com>
1097         PR bootstrap/88721
1098         * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
1099         to -1 on entry.
1101         PR debug/88723
1102         * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
1103         UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
1105 2019-01-08  H.J. Lu  <hongjiu.lu@intel.com>
1107         PR target/88717
1108         * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
1109         ix86_avx_u128_mode_entry.
1111 2019-01-08  Martin Liska  <mliska@suse.cz>
1113         PR tree-optimization/88753
1114         * tree-switch-conversion.c (switch_conversion::build_one_array):
1115         Come up with local variable constructor.  Convert first to
1116         type of constructor values.
1118 2019-01-08  Richard Biener  <rguenther@suse.de>
1120         PR tree-optimization/86554
1121         * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
1122         rpo_avail): Move earlier.
1123         (visit_nary_op): When value-numbering to expressions
1124         with different overflow behavior make sure there's an
1125         available expression on the path.
1127 2019-01-08  Sam Tebbs  <sam.tebbs@arm.com>
1129         * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
1130         aarch64_parse_branch_protection,
1131         struct aarch64_branch_protect_type,
1132         aarch64_handle_no_branch_protection,
1133         aarch64_handle_standard_branch_protection,
1134         aarch64_validate_mbranch_protection,
1135         aarch64_handle_pac_ret_protection,
1136         aarch64_handle_attr_branch_protection,
1137         accepted_branch_protection_string,
1138         aarch64_pac_ret_subtypes,
1139         aarch64_branch_protect_types,
1140         aarch64_handle_pac_ret_leaf): Define.
1141         (aarch64_override_options_after_change_1, aarch64_override_options):
1142         Add check for accepted_branch_protection_string.
1143         (aarch64_option_save): Save accepted_branch_protection_string.
1144         (aarch64_option_restore): Save accepted_branch_protection_string.
1145         * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
1146         * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
1147         msign-return-address.
1148         * doc/invoke.texi: Add mbranch-protection.
1150 2019-01-08  Alan Modra  <amodra@gmail.com>
1152         PR target/88614
1153         * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
1154         Delete "unknownp" parameter.  Adjust callers.  Handle
1155         CONST_INT, PLUS, MINUS, and MULT.
1156         (attr_value_aligned): Renamed from or_attr_value.
1157         (min_attr_value): Return INT_MIN for unhandled rtl case..
1158         (min_fn): ..and translate to INT_MAX here.
1159         (write_length_unit_log): Modify to cope without "unknown".
1160         (write_attr_value): Handle IF_THEN_ELSE.
1162 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
1164         * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
1165         optimization for masked stores.
1167 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
1169         PR middle-end/88567
1170         * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
1171         output vector directly to duplicate_and_interleave instead of
1172         going through a temporary.  Postpone insertion of ctor_seq to
1173         the end of the loop.
1175 2019-01-07  Richard Earnshaw  <rearnsha@arm.com>
1177         PR target/86891
1178         * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
1179         unsigned_p.  Handle signed and unsigned overflow correction as
1180         required.
1181         * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
1182         prototype.
1183         * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
1184         for operand 2.
1185         (add<mode>3_compareV_imm): Make this callable for expanding.
1186         (subv<GPI:mode>4): Use register_operand for operand 1.  Use
1187         aarch64_plus_operand for operand 2.
1188         (subv<GPI:mode>_insn): New insn pattern.
1189         (subv<GPI:mode>_imm): Likewise.
1190         (negv<GPI:mode>3): New expand pattern.
1191         (negv<GPI:mode>_insn): New insn pattern.
1192         (negv<GPI:mode>_cmp_only): Likewise.
1193         (cmpv<GPI:mode>_insn): Likewise.
1194         (subvti4): Use register_operand for operand 1.  Update call to
1195         aarch64_expand_subvti.
1196         (usubvti4): Likewise.
1197         (negvti3): New expand pattern.
1198         (negdi_carryout): New insn pattern.
1199         (negvdi_carryinV): New insn pattern.
1200         (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
1201         version the named version.
1202         (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
1203         operands.
1204         (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
1205         patterns.
1206         (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
1207         patterns.
1208         (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
1209         (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
1210         (sub<mode>3_carryinCV): Delete.
1211         (sub<GPI:mode>3_carryinV): New expand pattern.
1212         sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
1214 2019-01-07  Richard Biener  <rguenther@suse.de>
1216         * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
1217         of tree_operand_hash.
1219 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
1221         PR tree-optimization/88598
1222         * tree.h (single_nonzero_element): Declare.
1223         * tree.c (single_nonzero_element): New function.
1224         * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
1225         if I is the only nonzero element of CST.
1227 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
1229         PR tree-optimization/88598
1230         * tree.h (initializer_each_zero_or_onep): Declare.
1231         * tree.c (initializer_each_zero_or_onep): New function.
1232         (signed_or_unsigned_type_for): Handle float types too.
1233         (unsigned_type_for, signed_type_for): Update comments accordingly.
1234         * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
1235         x & { 0 or -1, 0 or -1, ... }.
1237 2019-01-07  Jonathan Wakely  <jwakely@redhat.com>
1239         * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
1240         with x86_64-pc-linux-gnu.
1242 2019-01-07  Tom de Vries  <tdevries@suse.de>
1244         PR target/85486
1245         * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
1246         function.
1247         (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
1248         routines.
1250 2019-01-07  Jakub Jelinek  <jakub@redhat.com>
1252         * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
1253         V_256_512 iterator instead of V_512 and TARGET_AVX instead of
1254         TARGET_AVX512F as condition.
1256         PR debug/88723
1257         * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
1258         const_not_ok_for_debug_p target hook.
1259         (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
1260         on UNSPEC and subexpressions thereof if all subexpressions of the
1261         UNSPEC are CONSTANT_P.
1263         PR tree-optimization/88676
1264         * tree-ssa-phiopt.c (two_value_replacement): New function.
1265         (tree_ssa_phiopt_worker): Call it.
1267         PR sanitizer/88619
1268         * cfgexpand.c (expand_stack_vars): Only align prev_offset to
1269         ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
1271         PR c++/85052
1272         * tree-vect-generic.c: Include insn-config.h and recog.h.
1273         (expand_vector_piecewise): Add defaulted ret_type argument,
1274         if non-NULL, use that in preference to type for the result type.
1275         (expand_vector_parallel): Formatting fix.
1276         (do_vec_conversion, do_vec_narrowing_conversion,
1277         expand_vector_conversion): New functions.
1278         (expand_vector_operations_1): Call expand_vector_conversion
1279         for VEC_CONVERT ifn calls.
1280         * internal-fn.def (VEC_CONVERT): New internal function.
1281         * internal-fn.c (expand_VEC_CONVERT): New function.
1282         * fold-const-call.c (fold_const_vec_convert): New function.
1283         (fold_const_call): Use it for CFN_VEC_CONVERT.
1284         * doc/extend.texi (__builtin_convertvector): Document.
1286 2019-01-07  Tom de Vries  <tdevries@suse.de>
1288         * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
1289         * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
1290         vector_red_partition, vector_red_sym): New global variables.
1291         (nvptx_option_override): Initialize vector_red_sym.
1292         (nvptx_declare_function_name): Restore red_partition register.
1293         (nvptx_file_end): Emit code to declare the vector reduction variables.
1294         (nvptx_output_red_partition): New function.
1295         (nvptx_expand_shared_addr): Add vector argument. Use it to handle
1296         large vector reductions.
1297         (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
1298         (nvptx_init_builtins): Add VECTOR_ADDR.
1299         (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
1300         Handle nvptx_expand_shared_addr.
1301         (nvptx_get_shared_red_addr): Add vector argument and handle large
1302         vectors.
1303         (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
1304         large vectors.
1305         (nvptx_goacc_reduction_init): Likewise.
1306         (nvptx_goacc_reduction_fini): Likewise.
1307         (nvptx_goacc_reduction_teardown): Likewise.
1308         (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
1309         init,fini,teardown}.
1310         (nvptx_init_axis_predicate): Initialize vector_red_partition.
1311         (nvptx_set_current_function): Init vector_red_partition.
1312         * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
1313         (nvptx_red_partition): New insn.
1314         * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
1316 2019-01-07  Tom de Vries  <tdevries@suse.de>
1318         PR target/85381
1319         * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
1320         empty loops.
1322 2019-01-07  Tom de Vries  <tdevries@suse.de>
1324         * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
1325         (nvptx_option_override): Init oacc_bcast_partition.
1326         (nvptx_init_oacc_workers): New function.
1327         (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
1328         (nvptx_needs_shared_bcast): New function.
1329         (nvptx_find_par): Generalize to enable vectors to use shared-memory
1330         to propagate state.
1331         (nvptx_shared_propagate): Initialize vector bcast partition and
1332         synchronization state.
1333         (nvptx_single):  Generalize to enable vectors to use shared-memory
1334         to propagate state.
1335         (nvptx_process_pars): Likewise.
1336         (nvptx_set_current_function): Initialize oacc_broadcast_partition.
1337         * config/nvptx/nvptx.h (struct machine_function): Add
1338         bcast_partition and sync_bar members.
1340 2019-01-07  Tom de Vries  <tdevries@suse.de>
1342         * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
1343         (nvptx_apply_dim_limits): New function.
1344         (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
1345         PTX_WARP_SIZE.
1347 2019-01-07  Tom de Vries  <tdevries@suse.de>
1349         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
1350         as late as possible.
1352 2019-01-07  Tom de Vries  <tdevries@suse.de>
1354         * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
1355         (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
1356         (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
1357         (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
1358         PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
1360 2019-01-07  Tom de Vries  <tdevries@suse.de>
1362         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
1364 2019-01-07  Tom de Vries  <tdevries@suse.de>
1366         * omp-offload.c (oacc_get_min_dim): New function.
1367         * omp-offload.h (oacc_get_min_dim): Declare.
1369 2018-12-26  Mateusz B  <mateuszb@poczta.onet.pl>
1371         PR target/88521
1372         * config/i386/i386.c (function_value_ms_64): Return small sturct in
1373         AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
1375 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
1377         PR tree-opt/86020
1378         Revert:
1379         2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
1380         
1381         * ipa-inline.c (edge_badness): Use inlined_time instead of
1382         inline_summaries->get.
1384 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
1386         * opts.c (enable_fdo_optimizations): Enable
1387         version-loops-for-strides, loop-interchange, unrol-and-jam
1388         and tree-loop-distribution.
1389         * invoke.texi: Document newly enabled options.
1391 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
1393         * doc/invoke.texi (max-inline-insns-small): New parameters.
1394         * ipa-inline.c (want_early_inline_function_p): simplify.
1395         (want_inline_small_function_p): Fix pasto from previous patch;
1396         use max-inline-insns-small bound.
1397         * params.def (max-inline-insns-small): New param.
1398         * ipa-fnsummary.c (analyze_function_body): Initialize time/size
1399         variables correctly.
1401 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
1403         * doc/invoke.texi: Document max-inline-insns-size,
1404         uninlined-function-insns, uninlined-function-time,
1405         uninlined-thunk-insns and uninlined-thunk-time.
1406         * params.def: Add max-inline-insns-size,
1407         uninlined-function-insns, uninlined-function-time,
1408         uninlined-thunk-insns and uninlined-thunk-time.
1409         * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
1410         new parameters.
1411         * ipa-inline.c (can_inline_edge_by_limits_p,
1412         want_inline_small_function_p): Use new parameters.
1414 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
1416         * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
1418 2019-01-05  Jakub Jelinek  <jakub@redhat.com>
1420         PR middle-end/82564
1421         PR target/88620
1422         * expr.c (expand_assignment): For calls returning VLA structures
1423         if to_rtx is not a MEM, force it into a stack temporary.
1425         PR debug/88635
1426         * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
1427         SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
1428         Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
1429         subexpressions of both operands.
1430         (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
1431         subrtxes are CONSTANT_P.
1432         * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
1433         2018-11-09 changes.
1435 2019-01-04  Jan Hubicka  <hubicka@ucw.cz>
1437         * params.def (hot-bb-count-ws-permille): Set to 990.
1439 2019-01-04  Martin Sebor  <msebor@redhat.com>
1441         PR c/88546
1442         * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
1443         leaf.
1445 2019-01-04  Martin Sebor  <msebor@redhat.com>
1447         PR c/88363
1448         * doc/extend.texi (attribute alloc_align, alloc_size): Update.
1450 2019-01-04  Jakub Jelinek  <jakub@redhat.com>
1452         * gdbinit.in: Turn off pagination for the skip commands, restore
1453         it to previous state afterwards.
1455 2019-01-04  Sam Tebbs  <sam.tebbs@arm.com>
1457         PR gcc/87763
1458         * gcc.target/aarch64/combine_bfxil.c: Change scan-assembler-times bfxil
1459         count to 18.
1461 2019-01-04  Jakub Jelinek  <jakub@redhat.com>
1463         PR target/88594
1464         * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
1465         of GET_MODE (opN) as modes of the libcall arguments.
1467 2019-01-04  Jan Beulich  <jbeulich@suse.com>
1469         * config/i386/sse.md
1470         (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
1471         <avx512>_cmp<mode>3<mask_scalar_merge_name>,
1472         <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
1473         <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
1474         avx512f_vmcmp<mode>3<round_saeonly_name>,
1475         avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
1476         avx512f_maskcmp<mode>3,
1477         <avx512>_cvt<ssemodesuffix>2mask<mode>,
1478         <avx512>_cvt<ssemodesuffix>2mask<mode>,
1479         *<avx512>_cvtmask2<ssemodesuffix><mode>,
1480         *<avx512>_cvtmask2<ssemodesuffix><mode>,
1481         <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
1482         <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
1483         <avx512>_gt<mode>3<mask_scalar_merge_name>,
1484         <avx512>_gt<mode>3<mask_scalar_merge_name>,
1485         <avx512>_testm<mode>3<mask_scalar_merge_name>,
1486         <avx512>_testnm<mode>3<mask_scalar_merge_name>,
1487         *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
1488         *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
1489         *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
1490         *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
1491         avx512cd_maskb_vec_dup<mode>,
1492         avx512cd_maskw_vec_dup<mode>,
1493         avx512dq_fpclass<mode><mask_scalar_merge_name>,
1494         avx512dq_vmfpclass<mode>,
1495         avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
1496         instead of =Yk.
1498 2019-01-03  Martin Sebor  <msebor@redhat.com>
1500         PR tree-optimization/88659
1501         * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
1503 2019-01-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
1505         * config/rs6000/rs6000-string.c (expand_block_move): Don't use
1506         unaligned vsx and avoid lxvd2x/stxvd2x.
1507         (gen_lvx_v4si_move): New function.
1509 2019-01-03  Tom de Vries  <tdevries@suse.de>
1511         * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
1512         (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
1513         function.
1514         * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
1516 2019-01-03  Tom de Vries  <tdevries@suse.de>
1518         * config/nvptx/nvptx.c (struct offload_attrs): New.
1519         (populate_offload_attrs): New function.  Factor mask extraction out of
1520         nvptx_reorg.  Add extraction of dimensions.
1521         (nvptx_reorg): Use populate_offload_attrs.
1523 2019-01-03  Tom de Vries  <tdevries@suse.de>
1525         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
1526         cases for oacc_min_dims_p and routine_p.  Add asserts for
1527         oacc_default_dims_p and offload_region_p.
1529 2019-01-03  Tom de Vries  <tdevries@suse.de>
1531         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
1532         factored out of ...
1533         (nvptx_goacc_validate_dims): ... here.
1535 2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
1537         PR tree-optimization/85574
1538         * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
1539         structure.
1540         (struct ssa_equip_hash_traits): Declare.
1541         (val_ssa_equiv): Use custom hash traits using operand_equal_p.
1543 2019-01-03  Jakub Jelinek  <jakub@redhat.com>
1545         PR debug/88644
1546         * dwarf2out.c (modified_type_die): If type is equal to sizetype,
1547         change it to qualified_type.
1549 2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
1551         * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
1552         (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
1554 2019-01-02  Martin Sebor  <msebor@redhat.com>
1555             Jeff Law  <law@redhat.com>
1557         * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
1558         (get_range_strlen_tree): Update appropriately.
1559         (get_range_strlen)
1560         * gimple-fold.h (get_range_strlen): Drop unused last argument.
1562         * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
1563         rather than set_range_info.
1564         * tree-ssa-strlen.c (set_strlen_range): Extracted from
1565         maybe_set_strlen_range.  Handle potentially boundary crossing
1566         cases more conservatively.
1567         (maybe_set_strlen_range): Parts refactored into set_strlen_range.
1568         Call set_strlen_range.
1569         * tree-ssa-strlen.h (set_strlen_range): Add prototype.
1571         PR middle-end/88663
1572         * gimple-fold.c (get_range_strlen): Update prototype to no longer
1573         need the flexp argument.
1574         (get_range_strlen_tree): Drop flexp argument.  Drop flexp argument
1575         from calls to get_range_strlen.  Update comments.  Just update
1576         VAL for an unterminated const char array and let the reset of the
1577         code handle it normally.  No longer try to set *flexp.  Adjust
1578         return value.
1579         (get_range_strlen): Update for the new get_range_strlen API.
1580         (get_maxval_strlen): Similarly.
1581         (gimple_fold_builtin_strlen): Handle update meaning of return value
1582         from get_range_strlen.
1583         * gimple-ssa-sprintf.c (get_string_length): Update for the new
1584         get_range_strlen API.
1586 2019-01-02  Jan Hubicka  <hubicka@ucw.cz>
1588         PR lto/88130
1589         * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
1590         false at WPA time when body was removed.
1592 2019-01-02  Martin Liska  <mliska@suse.cz>
1594         PR tree-optimization/88650
1595         * predict.c (set_even_probabilities): Calculate probability
1596         remainer only when really used.
1598 2019-01-02  Richard Biener  <rguenther@suse.de>
1600         PR middle-end/88651
1601         * tree-data-ref.c (analyze_subscript_affine_affine): Use
1602         widest_ints when mangling max_stmt_execution results.
1604 2019-01-02  Richard Biener  <rguenther@suse.de>
1606         PR tree-optimization/88621
1607         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
1608         bitfields when canoncalizing.
1610 2019-01-02  Richard Biener  <rguenther@suse.de>
1612         PR target/87545
1613         * config/i386/x86-tune-costs.h (intel_cost): Adjust
1614         cost of cheap SSE instruction.
1616 2019-01-02  Richard Biener  <rguenther@suse.de>
1618         PR ipa/85574
1619         * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
1620         * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
1621         function.
1622         (sem_item_optimizer::do_congruence_step_f): Sort the congruence
1623         set after UIDs before splitting them.
1625 2019-01-01  Martin Sebor  <msebor@redhat.com>
1626             Jeff Law  <law@redhat.com>
1628         * gimple-fold.c (get_range_strlen_tree): Record if the computed
1629         length is optimistic.  If it is, then arrange to compute the
1630         conservative length as well.
1632         * gimple-fold.h (get_range_strlen): Update prototype.
1633         * builtins.c (check_access): Update call to get_range_strlen to use
1634         c_strlen_data pointer.   Change various variable accesses to instead
1635         pull data from the c_strlen_data structure.
1636         (check_strncat_sizes, expand_builtin_strncat): Likewise.
1637         * calls.c (maybe_warn_nonstring_arg): Likewise.
1638         * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise.  Reset
1639         minimum length if maximum lengh is unknown.
1640         * gimple-ssa-sprintf.c (get_string_length): Likewise.  Drop code
1641         that used c_strlen, it's no longer needed.  Restructure slightly.
1642         (format_string): Set unlikely range appropriately.
1643         * gimple-fold.c (get_range_strlen): Update comments.  Fix minor
1644         formatting issues.
1645         (get_range_strlen):  Accept c_strlen_data pointer for external
1646         call sites as well.  Pass through to call to internal get_range_strlen.
1647         Adjust minlen, maxlen and maxbound as needed.
1648         (get_maxval_strlen): Update comments.
1649         (gimple_fold_builtin_strlen):  Update call to get_range_strlen
1650         to use c_strlen_data pointer.  Change variable accesses to instead
1651         use c_strlen_data data members.
1653         * gimple-fold.c (get_range_strlen): Update prototype.
1654         (get_range_strlen_tree): Update prototype.  Drop minlen/maxlen
1655         local variables.  Use pdata to return information to caller.
1656         Update calls to get_range_strlen.  Update pdata->maxbound.
1657         (get_range_strlen -- static version): Similarly.
1658         (get_range_strlen -- extern version): Update for internal
1659         get_range_strlen API change.  Convert to external data format.
1660         (get_maxval_strlen): Similarly.
1662 2019-01-01  Jan Hubicka  <hubicka@ucw.cz>
1664         * coverage.c (get_coverage_counts): Use current_function_decl.
1665         * profile.c (read_thunk_profile): New function.
1666         (branch_prob): Add THUNK parameter.
1667         * tree-profile.c (tree_profiling): Handle thunks.
1668         * value-prof.c (init_node_map): Handle thunks.
1669         * value-prof.h (branch_prob): Upate prototype.
1670         (read_thunk_profile): Declare.
1672 2019-01-01  Jakub Jelinek  <jakub@redhat.com>
1674         Update copyright years.
1676         * gcc.c (process_command): Update copyright notice dates.
1677         * gcov-dump.c (print_version): Ditto.
1678         * gcov.c (print_version): Ditto.
1679         * gcov-tool.c (print_version): Ditto.
1680         * gengtype.c (create_file): Ditto.
1681         * doc/cpp.texi: Bump @copying's copyright year.
1682         * doc/cppinternals.texi: Ditto.
1683         * doc/gcc.texi: Ditto.
1684         * doc/gccint.texi: Ditto.
1685         * doc/gcov.texi: Ditto.
1686         * doc/install.texi: Ditto.
1687         * doc/invoke.texi: Ditto.
1689 Copyright (C) 2019 Free Software Foundation, Inc.
1691 Copying and distribution of this file, with or without modification,
1692 are permitted in any medium without royalty provided the copyright
1693 notice and this notice are preserved.