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