aarch64.c (aarch64_simd_call_p): New function.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2019-01-11  Steve Ellcey  <sellcey@marvell.com>
2
3         * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
4         (aarch64_hard_regno_call_part_clobbered): Add insn argument.
5         (aarch64_return_call_with_max_clobbers): New function.
6         (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
7         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
8         argument.
9         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
10         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
11         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
12         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
13         * cselib.c (cselib_process_insn): Add argument to
14         targetm.hard_regno_call_part_clobbered call.
15         * ira-conflicts.c (ira_build_conflicts): Ditto.
16         * ira-costs.c (ira_tune_allocno_costs): Ditto.
17         * lra-constraints.c (inherit_reload_reg): Ditto.
18         * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
19         * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
20         argument.  Call targetm.return_call_with_max_clobbers.
21         Add argument to targetm.hard_regno_call_part_clobbered call.
22         (calls_have_same_clobbers_p): New function.
23         (process_bb_lives): Add call_insn and last_call_insn variables.
24         Pass call_insn to check_pseudos_live_through_calls.
25         Modify if stmt to check targetm.return_call_with_max_clobbers.
26         Update setting of flush variable.
27         (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
28         to false.
29         * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
30         * regcprop.c (copyprop_hardreg_forward_1): Add argument to
31         targetm.hard_regno_call_part_clobbered call.
32         * reginfo.c (choose_hard_reg_mode): Ditto.
33         * regrename.c (check_new_reg_p): Ditto.
34         * reload.c (find_equiv_reg): Ditto.
35         * reload1.c (emit_reload_insns): Ditto.
36         * sched-deps.c (deps_analyze_insn): Ditto.
37         * sel-sched.c (init_regs_for_mode): Ditto.
38         (mark_unavailable_hard_regs): Ditto.
39         * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
40         * target.def (hard_regno_call_part_clobbered): Add insn argument.
41         (return_call_with_max_clobbers): New target function.
42         * doc/tm.texi: Regenerate.
43         * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
44         * hooks.c (hook_bool_uint_mode_false): Change to
45         hook_bool_insn_uint_mode_false.
46         * hooks.h (hook_bool_uint_mode_false): Ditto.
47
48 2019-01-11  Steve Ellcey  <sellcey@marvell.com>
49
50         * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
51         (aarch64_remove_extra_call_preserved_regs): New function.
52         (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
53         * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
54         * doc/tm.texi: Regenerate.
55         * final.c (get_call_reg_set_usage): Call new hook.
56         * target.def (remove_extra_call_preserved_regs): New hook.
57         * targhooks.c (default_remove_extra_call_preserved_regs): New function.
58         * targhooks.h (default_remove_extra_call_preserved_regs): New function.
59
60 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
61
62         PR bootstrap/88714
63         * passes.c (finish_optimization_passes): Call print_combine_total_stats
64         inside of pass_combine_1 dump rather than pass_profile_1.
65
66 2019-01-11  Tom de Vries  <tdevries@suse.de>
67
68         * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
69         (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
70         (PTX_NUM_PER_WORKER_BARRIERS): Define.
71         (nvptx_apply_dim_limits): Prevent vector_length 64 and
72         num_workers 16.
73
74 2019-01-11  Tom de Vries  <tdevries@suse.de>
75
76         * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
77
78 2019-01-11  Jan Beulich  <jbeulich@suse.com>
79
80         * config/i386/i386.md (rex64suffix): Add L suffix for SI.
81         * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
82         sse2_cvtsi2sd): Add {l}.
83         (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
84         syntax.
85
86 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
87
88         PR target/88785
89         * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
90         define_expand.
91         (*float<floatunssuffix>v2div2sf2): New define_insn.
92         (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
93         (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
94         (*float<floatunssuffix>v2div2sf2_mask_1): Replace
95         subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
96         match_operands with "const0_operand" "C".
97
98 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
99
100         * config/aarch64/aarch64-builtins.c
101         (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
102         (aarch64_init_simd_builtins): ...Here
103
104 2019-01-10  Vladimir Makarov  <vmakarov@redhat.com>
105
106         PR rtl-optimization/87305
107         * lra-assigns.c
108         (setup_live_pseudos_and_spill_after_risky_transforms): Check
109         allocation for big endian pseudos used as paradoxical subregs and
110         spill them if it is wrong.
111         * lra-constraints.c (lra_constraints): Add a comment.
112
113 2019-01-10  Richard Biener  <rguenther@suse.de>
114
115         PR tree-optimization/88792
116         * tree-ssa-pre.c (get_representative_for): Do not return a
117         value-number here.
118
119 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
120
121         PR middle-end/84877
122         PR bootstrap/88450
123         * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
124         (assign_parm_setup_block): Do the argument slot realignment here
125         instead.
126
127 2019-01-10  Stefan Agner  <stefan@agner.ch>
128
129         PR target/88648
130         * config/arm/arm.c (arm_option_override_internal): Force
131         opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
132
133 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
134
135         PR c/88568
136         * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
137         DECL_EXTERNAL.
138
139 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
140
141         * config/arm/arm-builtins.c
142         (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
143         (MAC_LANE_PAIR_QUALIFIERS): New.
144         (arm_expand_builtin_args): Use it.
145         (arm_expand_builtin_1): Likewise.
146         * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
147         * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
148         * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
149         * config/arm/arm_neon.h:
150         (vcadd_rot90_f16): New.
151         (vcaddq_rot90_f16): New.
152         (vcadd_rot270_f16): New.
153         (vcaddq_rot270_f16): New.
154         (vcmla_f16): New.
155         (vcmlaq_f16): New.
156         (vcmla_lane_f16): New.
157         (vcmla_laneq_f16): New.
158         (vcmlaq_lane_f16): New.
159         (vcmlaq_laneq_f16): New.
160         (vcmla_rot90_f16): New.
161         (vcmlaq_rot90_f16): New.
162         (vcmla_rot90_lane_f16): New.
163         (vcmla_rot90_laneq_f16): New.
164         (vcmlaq_rot90_lane_f16): New.
165         (vcmlaq_rot90_laneq_f16): New.
166         (vcmla_rot180_f16): New.
167         (vcmlaq_rot180_f16): New.
168         (vcmla_rot180_lane_f16): New.
169         (vcmla_rot180_laneq_f16): New.
170         (vcmlaq_rot180_lane_f16): New.
171         (vcmlaq_rot180_laneq_f16): New.
172         (vcmla_rot270_f16): New.
173         (vcmlaq_rot270_f16): New.
174         (vcmla_rot270_lane_f16): New.
175         (vcmla_rot270_laneq_f16): New.
176         (vcmlaq_rot270_lane_f16): New.
177         (vcmlaq_rot270_laneq_f16): New.
178         (vcadd_rot90_f32): New.
179         (vcaddq_rot90_f32): New.
180         (vcadd_rot270_f32): New.
181         (vcaddq_rot270_f32): New.
182         (vcmla_f32): New.
183         (vcmlaq_f32): New.
184         (vcmla_lane_f32): New.
185         (vcmla_laneq_f32): New.
186         (vcmlaq_lane_f32): New.
187         (vcmlaq_laneq_f32): New.
188         (vcmla_rot90_f32): New.
189         (vcmlaq_rot90_f32): New.
190         (vcmla_rot90_lane_f32): New.
191         (vcmla_rot90_laneq_f32): New.
192         (vcmlaq_rot90_lane_f32): New.
193         (vcmlaq_rot90_laneq_f32): New.
194         (vcmla_rot180_f32): New.
195         (vcmlaq_rot180_f32): New.
196         (vcmla_rot180_lane_f32): New.
197         (vcmla_rot180_laneq_f32): New.
198         (vcmlaq_rot180_lane_f32): New.
199         (vcmlaq_rot180_laneq_f32): New.
200         (vcmla_rot270_f32): New.
201         (vcmlaq_rot270_f32): New.
202         (vcmla_rot270_lane_f32): New.
203         (vcmla_rot270_laneq_f32): New.
204         (vcmlaq_rot270_lane_f32): New.
205         (vcmlaq_rot270_laneq_f32): New.
206         * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
207         vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
208         vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
209         vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
210         * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
211         neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
212         * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
213         * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
214         (arm_option_reconfigure_globals): Use them.
215         * config/arm/iterators.md (VDF, VQ_HSF): New.
216         (VCADD, VCMLA): New.
217         (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
218         * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
219         * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
220         UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
221
222 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
223
224         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
225         (emit-rtl.h): Include.
226         (TYPES_QUADOP_LANE_PAIR): New.
227         (aarch64_simd_expand_args): Use it.
228         (aarch64_simd_expand_builtin): Likewise.
229         (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
230         (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
231         AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
232         aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
233         (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
234         (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
235         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
236         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
237         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
238         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
239         * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
240         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
241         * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
242         fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
243         fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
244         fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
245         * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
246         aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
247         aarch64_fcmla<rot><mode>): New.
248         * config/aarch64/arm_neon.h:
249         (vcadd_rot90_f16): New.
250         (vcaddq_rot90_f16): New.
251         (vcadd_rot270_f16): New.
252         (vcaddq_rot270_f16): New.
253         (vcmla_f16): New.
254         (vcmlaq_f16): New.
255         (vcmla_lane_f16): New.
256         (vcmla_laneq_f16): New.
257         (vcmlaq_lane_f16): New.
258         (vcmlaq_rot90_lane_f16): New.
259         (vcmla_rot90_laneq_f16): New.
260         (vcmla_rot90_lane_f16): New.
261         (vcmlaq_rot90_f16): New.
262         (vcmla_rot90_f16): New.
263         (vcmlaq_laneq_f16): New.
264         (vcmla_rot180_laneq_f16): New.
265         (vcmla_rot180_lane_f16): New.
266         (vcmlaq_rot180_f16): New.
267         (vcmla_rot180_f16): New.
268         (vcmlaq_rot90_laneq_f16): New.
269         (vcmlaq_rot270_laneq_f16): New.
270         (vcmlaq_rot270_lane_f16): New.
271         (vcmla_rot270_laneq_f16): New.
272         (vcmlaq_rot270_f16): New.
273         (vcmla_rot270_f16): New.
274         (vcmlaq_rot180_laneq_f16): New.
275         (vcmlaq_rot180_lane_f16): New.
276         (vcmla_rot270_lane_f16): New.
277         (vcadd_rot90_f32): New.
278         (vcaddq_rot90_f32): New.
279         (vcaddq_rot90_f64): New.
280         (vcadd_rot270_f32): New.
281         (vcaddq_rot270_f32): New.
282         (vcaddq_rot270_f64): New.
283         (vcmla_f32): New.
284         (vcmlaq_f32): New.
285         (vcmlaq_f64): New.
286         (vcmla_lane_f32): New.
287         (vcmla_laneq_f32): New.
288         (vcmlaq_lane_f32): New.
289         (vcmlaq_laneq_f32): New.
290         (vcmla_rot90_f32): New.
291         (vcmlaq_rot90_f32): New.
292         (vcmlaq_rot90_f64): New.
293         (vcmla_rot90_lane_f32): New.
294         (vcmla_rot90_laneq_f32): New.
295         (vcmlaq_rot90_lane_f32): New.
296         (vcmlaq_rot90_laneq_f32): New.
297         (vcmla_rot180_f32): New.
298         (vcmlaq_rot180_f32): New.
299         (vcmlaq_rot180_f64): New.
300         (vcmla_rot180_lane_f32): New.
301         (vcmla_rot180_laneq_f32): New.
302         (vcmlaq_rot180_lane_f32): New.
303         (vcmlaq_rot180_laneq_f32): New.
304         (vcmla_rot270_f32): New.
305         (vcmlaq_rot270_f32): New.
306         (vcmlaq_rot270_f64): New.
307         (vcmla_rot270_lane_f32): New.
308         (vcmla_rot270_laneq_f32): New.
309         (vcmlaq_rot270_lane_f32): New.
310         (vcmlaq_rot270_laneq_f32): New.
311         * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
312         * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
313         UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
314         (FCADD, FCMLA): New.
315         (rot): New.
316         * config/arm/types.md (neon_fcadd, neon_fcmla): New.
317
318 2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
319
320         PR other/16615
321
322         * config/pa/pa.c: Change "can not" to "cannot".
323         * gimple-ssa-evrp-analyze.c: Likewise.
324         * ipa-icf.c: Likewise.
325         * ipa-polymorphic-call.c: Likewise.
326         * ipa-pure-const.c: Likewise.
327         * lra-constraints.c: Likewise.
328         * lra-remat.c: Likewise.
329         * reload1.c: Likewise.
330         * reorg.c: Likewise.
331         * tree-ssa-uninit.c: Likewise.
332
333 2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
334
335         PR other/16615
336
337         * Makefile.in: Mechanically replace "can not" with "cannot".
338         * alias.c: Likewise.
339         * builtins.c: Likewise.
340         * calls.c: Likewise.
341         * cgraph.c: Likewise.
342         * cgraph.h: Likewise.
343         * cgraphclones.c: Likewise.
344         * cgraphunit.c: Likewise.
345         * combine-stack-adj.c: Likewise.
346         * combine.c: Likewise.
347         * common/config/i386/i386-common.c: Likewise.
348         * config/aarch64/aarch64.c: Likewise.
349         * config/alpha/sync.md: Likewise.
350         * config/arc/arc.c: Likewise.
351         * config/arc/predicates.md: Likewise.
352         * config/arm/arm-c.c: Likewise.
353         * config/arm/arm.c: Likewise.
354         * config/arm/arm.h: Likewise.
355         * config/arm/arm.md: Likewise.
356         * config/arm/cortex-r4f.md: Likewise.
357         * config/csky/csky.c: Likewise.
358         * config/csky/csky.h: Likewise.
359         * config/darwin-f.c: Likewise.
360         * config/epiphany/epiphany.md: Likewise.
361         * config/i386/i386.c: Likewise.
362         * config/i386/sol2.h: Likewise.
363         * config/m68k/m68k.c: Likewise.
364         * config/mcore/mcore.h: Likewise.
365         * config/microblaze/microblaze.md: Likewise.
366         * config/mips/20kc.md: Likewise.
367         * config/mips/sb1.md: Likewise.
368         * config/nds32/nds32.c: Likewise.
369         * config/nds32/predicates.md: Likewise.
370         * config/pa/pa.c: Likewise.
371         * config/rs6000/e300c2c3.md: Likewise.
372         * config/rs6000/rs6000.c: Likewise.
373         * config/s390/s390.h: Likewise.
374         * config/sh/sh.c: Likewise.
375         * config/sh/sh.md: Likewise.
376         * config/spu/vmx2spu.h: Likewise.
377         * cprop.c: Likewise.
378         * dbxout.c: Likewise.
379         * df-scan.c: Likewise.
380         * doc/cfg.texi: Likewise.
381         * doc/extend.texi: Likewise.
382         * doc/fragments.texi: Likewise.
383         * doc/gty.texi: Likewise.
384         * doc/invoke.texi: Likewise.
385         * doc/lto.texi: Likewise.
386         * doc/md.texi: Likewise.
387         * doc/objc.texi: Likewise.
388         * doc/rtl.texi: Likewise.
389         * doc/tm.texi: Likewise.
390         * dse.c: Likewise.
391         * emit-rtl.c: Likewise.
392         * emit-rtl.h: Likewise.
393         * except.c: Likewise.
394         * expmed.c: Likewise.
395         * expr.c: Likewise.
396         * fold-const.c: Likewise.
397         * genautomata.c: Likewise.
398         * gimple-fold.c: Likewise.
399         * hard-reg-set.h: Likewise.
400         * ifcvt.c: Likewise.
401         * ipa-comdats.c: Likewise.
402         * ipa-cp.c: Likewise.
403         * ipa-devirt.c: Likewise.
404         * ipa-fnsummary.c: Likewise.
405         * ipa-icf.c: Likewise.
406         * ipa-inline-transform.c: Likewise.
407         * ipa-inline.c: Likewise.
408         * ipa-polymorphic-call.c: Likewise.
409         * ipa-profile.c: Likewise.
410         * ipa-prop.c: Likewise.
411         * ipa-pure-const.c: Likewise.
412         * ipa-reference.c: Likewise.
413         * ipa-split.c: Likewise.
414         * ipa-visibility.c: Likewise.
415         * ipa.c: Likewise.
416         * ira-build.c: Likewise.
417         * ira-color.c: Likewise.
418         * ira-conflicts.c: Likewise.
419         * ira-costs.c: Likewise.
420         * ira-int.h: Likewise.
421         * ira-lives.c: Likewise.
422         * ira.c: Likewise.
423         * ira.h: Likewise.
424         * loop-invariant.c: Likewise.
425         * loop-unroll.c: Likewise.
426         * lower-subreg.c: Likewise.
427         * lra-assigns.c: Likewise.
428         * lra-constraints.c: Likewise.
429         * lra-eliminations.c: Likewise.
430         * lra-lives.c: Likewise.
431         * lra-remat.c: Likewise.
432         * lra-spills.c: Likewise.
433         * lra.c: Likewise.
434         * lto-cgraph.c: Likewise.
435         * lto-streamer-out.c: Likewise.
436         * postreload-gcse.c: Likewise.
437         * predict.c: Likewise.
438         * profile-count.h: Likewise.
439         * profile.c: Likewise.
440         * recog.c: Likewise.
441         * ree.c: Likewise.
442         * reload.c: Likewise.
443         * reload1.c: Likewise.
444         * reorg.c: Likewise.
445         * resource.c: Likewise.
446         * rtl.def: Likewise.
447         * rtl.h: Likewise.
448         * rtlanal.c: Likewise.
449         * sched-deps.c: Likewise.
450         * sched-ebb.c: Likewise.
451         * sched-rgn.c: Likewise.
452         * sel-sched-ir.c: Likewise.
453         * sel-sched.c: Likewise.
454         * shrink-wrap.c: Likewise.
455         * simplify-rtx.c: Likewise.
456         * symtab.c: Likewise.
457         * target.def: Likewise.
458         * toplev.c: Likewise.
459         * tree-call-cdce.c: Likewise.
460         * tree-cfg.c: Likewise.
461         * tree-complex.c: Likewise.
462         * tree-core.h: Likewise.
463         * tree-eh.c: Likewise.
464         * tree-inline.c: Likewise.
465         * tree-loop-distribution.c: Likewise.
466         * tree-nrv.c: Likewise.
467         * tree-profile.c: Likewise.
468         * tree-sra.c: Likewise.
469         * tree-ssa-alias.c: Likewise.
470         * tree-ssa-dce.c: Likewise.
471         * tree-ssa-dom.c: Likewise.
472         * tree-ssa-forwprop.c: Likewise.
473         * tree-ssa-loop-im.c: Likewise.
474         * tree-ssa-loop-ivcanon.c: Likewise.
475         * tree-ssa-loop-ivopts.c: Likewise.
476         * tree-ssa-loop-niter.c: Likewise.
477         * tree-ssa-phionlycprop.c: Likewise.
478         * tree-ssa-phiopt.c: Likewise.
479         * tree-ssa-propagate.c: Likewise.
480         * tree-ssa-threadedge.c: Likewise.
481         * tree-ssa-threadupdate.c: Likewise.
482         * tree-ssa-uninit.c: Likewise.
483         * tree-ssanames.c: Likewise.
484         * tree-streamer-out.c: Likewise.
485         * tree.c: Likewise.
486         * tree.h: Likewise.
487         * vr-values.c: Likewise.
488
489 2019-01-09  UroÅ¡ Bizjak  <ubizjak@gmail.com>
490
491         * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
492         (ix86_split_xorsign): Ditto.
493         * config/i386/i386.c (ix86_expand_xorsign): New function.
494         (ix86_split_xorsign): Ditto.
495         * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
496         (xorsign<mode>3): New expander.
497         (xorsign<mode>3_1): New insn_and_split pattern.
498         * config/i386/sse.md (xorsign<mode>3): New expander.
499
500 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
501
502         * config/sparc/sparc.md (*tablejump_sp32): Merge into...
503         (*tablejump_sp64): Likewise.
504         (*tablejump<P:mode>): ...this.
505         (*call_address_sp32): Merge into...
506         (*call_address_sp64): Likewise.
507         (*call_address<P:mode>): ...this.
508         (*call_symbolic_sp32): Merge into...
509         (*call_symbolic_sp64): Likewise.
510         (*call_symbolic<P:mode>): ...this.
511         (call_value): Remove constraint and add predicate.
512         (*call_value_address_sp32): Merge into...
513         (*call_value_address_sp64): Likewise.
514         (*call_value_address<P:mode>): ...this.
515         (*call_value_symbolic_sp32): Merge into...
516         (*call_value_symbolic_sp64): Likewise.
517         (*call_value_symbolic<P:mode>): ...this.
518         (*sibcall_symbolic_sp32): Merge into...
519         (*sibcall_symbolic_sp64): Likewise.
520         (*sibcall_symbolic<P:mode>): ...this.
521         (sibcall_value): Remove constraint and add predicate.
522         (*sibcall_value_symbolic_sp32): Merge into...
523         (*sibcall_value_symbolic_sp64): Likewise.
524         (*sibcall_value_symbolic<P:mode>): ...this.
525         (window_save): Minor tweak.
526         (*branch_sp32): Merge into...
527         (*branch_sp64): Likewise.
528         (*branch<P:mode>): ...this.
529
530 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
531             James Clarke  <jrtc27@jrtc27.com>
532
533         PR target/84010
534         * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
535         consistently in TLS address generation and adjust code to the renaming
536         of patterns.  Mark calls to __tls_get_addr as const.
537         * config/sparc/sparc.md (tgd_hi22): Turn into...
538         (tgd_hi22<P:mode>): ...this and use Pmode throughout.
539         (tgd_lo10): Turn into...
540         (tgd_lo10<P:mode>): ...this and use Pmode throughout.
541         (tgd_add32): Merge into...
542         (tgd_add64): Likewise.
543         (tgd_add<P:mode>): ...this and use Pmode throughout.
544         (tldm_hi22): Turn into...
545         (tldm_hi22<P:mode>): ...this and use Pmode throughout.
546         (tldm_lo10): Turn into...
547         (tldm_lo10<P:mode>): ...this and use Pmode throughout.
548         (tldm_add32): Merge into...
549         (tldm_add64): Likewise.
550         (tldm_add<P:mode>): ...this and use Pmode throughout.
551         (tldm_call32): Merge into...
552         (tldm_call64): Likewise.
553         (tldm_call<P:mode>): ...this and use Pmode throughout.
554         (tldo_hix22): Turn into...
555         (tldo_hix22<P:mode>): ...this and use Pmode throughout.
556         (tldo_lox10): Turn into...
557         (tldo_lox10<P:mode>): ...this and use Pmode throughout.
558         (tldo_add32): Merge into...
559         (tldo_add64): Likewise.
560         (tldo_add<P:mode>): ...this and use Pmode throughout.
561         (tie_hi22): Turn into...
562         (tie_hi22<P:mode>): ...this and use Pmode throughout.
563         (tie_lo10): Turn into...
564         (tie_lo10<P:mode>): ...this and use Pmode throughout.
565         (tie_ld64): Use DImode throughout.
566         (tie_add32): Merge into...
567         (tie_add64): Likewise.
568         (tie_add<P:mode>): ...this and use Pmode throughout.
569         (tle_hix22_sp32): Merge into...
570         (tle_hix22_sp64): Likewise.
571         (tle_hix22<P:mode>): ...this and use Pmode throughout.
572         (tle_lox22_sp32): Merge into...
573         (tle_lox22_sp64): Likewise.
574         (tle_lox22<P:mode>): ...this and use Pmode throughout.
575         (*tldo_ldub_sp32): Merge into...
576         (*tldo_ldub_sp64): Likewise.
577         (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
578         (*tldo_ldub1_sp32): Merge into...
579         (*tldo_ldub1_sp64): Likewise.
580         (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
581         (*tldo_ldub2_sp32): Merge into...
582         (*tldo_ldub2_sp64): Likewise.
583         (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
584         (*tldo_ldsb1_sp32): Merge into...
585         (*tldo_ldsb1_sp64): Likewise.
586         (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
587         (*tldo_ldsb2_sp32): Merge into...
588         (*tldo_ldsb2_sp64): Likewise.
589         (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
590         (*tldo_ldub3_sp64): Use DImode throughout.
591         (*tldo_ldsb3_sp64): Likewise.
592         (*tldo_lduh_sp32): Merge into...
593         (*tldo_lduh_sp64): Likewise.
594         (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
595         (*tldo_lduh1_sp32): Merge into...
596         (*tldo_lduh1_sp64): Likewise.
597         (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
598         (*tldo_ldsh1_sp32): Merge into...
599         (*tldo_ldsh1_sp64): Likewise.
600         (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
601         (*tldo_lduh2_sp64): Use DImode throughout.
602         (*tldo_ldsh2_sp64): Likewise.
603         (*tldo_lduw_sp32): Merge into...
604         (*tldo_lduw_sp64): Likewise.
605         (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
606         (*tldo_lduw1_sp64): Use DImode throughout.
607         (*tldo_ldsw1_sp64): Likewise.
608         (*tldo_ldx_sp64): Likewise.
609         (*tldo_stb_sp32): Merge into...
610         (*tldo_stb_sp64): Likewise.
611         (*tldo_stb<P:mode>): ...this and use Pmode throughout.
612         (*tldo_sth_sp32): Merge into...
613         (*tldo_sth_sp64): Likewise.
614         (*tldo_sth<P:mode>): ...this and use Pmode throughout.
615         (*tldo_stw_sp32): Merge into...
616         (*tldo_stw_sp64): Likewise.
617         (*tldo_stw<P:mode>): ...this and use Pmode throughout.
618         (*tldo_stx_sp64): Use DImode throughout.
619
620 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
621
622         * config/aarch64/aarch64.c (aarch64_override_options): Add case to
623         check configure option to set BTI and Return Address Signing.
624         * configure.ac: Add --enable-standard-branch-protection and
625         --disable-standard-branch-protection.
626         * configure: Regenerated.
627         * doc/install.texi: Document the same.
628
629 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
630             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
631
632         * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
633         * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
634         * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
635         if bti is enabled.
636         * config/aarch64/aarch64-bti-insert.c: New file.
637         * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
638         pass.
639         * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
640         new bti pass.
641         * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
642         UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
643         (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
644         * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
645
646 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
647
648         * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
649         * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
650         Disable bti for -mbranch-protection=none.
651         (aarch64_handle_standard_branch_protection): Enable bti for
652         -mbranch-protection=standard.
653         (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
654         -mbranch-protection.
655         (aarch64_bti_enabled): Check if bti is enabled.
656         * config/aarch64/aarch64.opt: Declare target variable.
657         * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
658
659 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
660
661         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
662         epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
663         (aarch64_expand_epilogue): Likewise.
664         (aarch64_output_mi_thunk): Likewise
665         * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
666         TAILCALL_ADDR_REGS to x16 and x17.
667         * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
668
669 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
670
671         * config/aarch64/aarch64-option-extensions.def: Define
672         AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
673         * gcc/config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
674         (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
675         (AARCH64_FL_PREDRES): New.
676         (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
677         AARCH64_FL_PREDRES by default.
678         * gcc/doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
679
680 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
681
682         * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
683         ARMv8.5-A.
684         * gcc/config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
685         (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
686         * gcc/doc/invoke.texi: Document ARMv8.5-A.
687
688 2019-01-09  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
689
690         * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
691         (xorsign<mode>3): Likewise.
692
693 2019-01-09  Jelinek  <jakub@redhat.com>
694
695         PR middle-end/88758
696         * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
697         vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
698
699         PR rtl-optimization/88331
700         * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
701         not currently_expanding_to_rtl.
702
703 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
704
705         * doc/invoke.texi (-Os): Remove trailing spaces.
706         (-finline-functions): Remove reference to -O2.
707
708 2019-01-08  Jakub Jelinek  <jakub@redhat.com>
709
710         PR rtl-optimization/79593
711         * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
712
713         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
714         UNSPEC_FUSION_GPR to its argument.  Formatting fixes.
715
716 2019-01-08  Eric Botcazou  <ebotcazou@adacore.com>
717
718         PR bootstrap/88721
719         * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
720         to -1 on entry.
721
722         PR debug/88723
723         * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
724         UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
725
726 2019-01-08  H.J. Lu  <hongjiu.lu@intel.com>
727
728         PR target/88717
729         * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
730         ix86_avx_u128_mode_entry.
731
732 2019-01-08  Martin Liska  <mliska@suse.cz>
733
734         PR tree-optimization/88753
735         * tree-switch-conversion.c (switch_conversion::build_one_array):
736         Come up with local variable constructor.  Convert first to
737         type of constructor values.
738
739 2019-01-08  Richard Biener  <rguenther@suse.de>
740
741         PR tree-optimization/86554
742         * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
743         rpo_avail): Move earlier.
744         (visit_nary_op): When value-numbering to expressions
745         with different overflow behavior make sure there's an
746         available expression on the path.
747
748 2019-01-08  Sam Tebbs  <sam.tebbs@arm.com>
749
750         * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
751         aarch64_parse_branch_protection,
752         struct aarch64_branch_protect_type,
753         aarch64_handle_no_branch_protection,
754         aarch64_handle_standard_branch_protection,
755         aarch64_validate_mbranch_protection,
756         aarch64_handle_pac_ret_protection,
757         aarch64_handle_attr_branch_protection,
758         accepted_branch_protection_string,
759         aarch64_pac_ret_subtypes,
760         aarch64_branch_protect_types,
761         aarch64_handle_pac_ret_leaf): Define.
762         (aarch64_override_options_after_change_1, aarch64_override_options):
763         Add check for accepted_branch_protection_string.
764         (aarch64_option_save): Save accepted_branch_protection_string.
765         (aarch64_option_restore): Save accepted_branch_protection_string.
766         * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
767         * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
768         msign-return-address.
769         * doc/invoke.texi: Add mbranch-protection.
770
771 2019-01-08  Alan Modra  <amodra@gmail.com>
772
773         PR target/88614
774         * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
775         Delete "unknownp" parameter.  Adjust callers.  Handle
776         CONST_INT, PLUS, MINUS, and MULT.
777         (attr_value_aligned): Renamed from or_attr_value.
778         (min_attr_value): Return INT_MIN for unhandled rtl case..
779         (min_fn): ..and translate to INT_MAX here.
780         (write_length_unit_log): Modify to cope without "unknown".
781         (write_attr_value): Handle IF_THEN_ELSE.
782
783 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
784
785         * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
786         optimization for masked stores.
787
788 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
789
790         PR middle-end/88567
791         * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
792         output vector directly to duplicate_and_interleave instead of
793         going through a temporary.  Postpone insertion of ctor_seq to
794         the end of the loop.
795
796 2019-01-07  Richard Earnshaw  <rearnsha@arm.com>
797
798         PR target/86891
799         * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
800         unsigned_p.  Handle signed and unsigned overflow correction as
801         required.
802         * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
803         prototype.
804         * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
805         for operand 2.
806         (add<mode>3_compareV_imm): Make this callable for expanding.
807         (subv<GPI:mode>4): Use register_operand for operand 1.  Use
808         aarch64_plus_operand for operand 2.
809         (subv<GPI:mode>_insn): New insn pattern.
810         (subv<GPI:mode>_imm): Likewise.
811         (negv<GPI:mode>3): New expand pattern.
812         (negv<GPI:mode>_insn): New insn pattern.
813         (negv<GPI:mode>_cmp_only): Likewise.
814         (cmpv<GPI:mode>_insn): Likewise.
815         (subvti4): Use register_operand for operand 1.  Update call to
816         aarch64_expand_subvti.
817         (usubvti4): Likewise.
818         (negvti3): New expand pattern.
819         (negdi_carryout): New insn pattern.
820         (negvdi_carryinV): New insn pattern.
821         (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
822         version the named version.
823         (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
824         operands.
825         (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
826         patterns.
827         (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
828         patterns.
829         (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
830         (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
831         (sub<mode>3_carryinCV): Delete.
832         (sub<GPI:mode>3_carryinV): New expand pattern.
833         sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
834
835 2019-01-07  Richard Biener  <rguenther@suse.de>
836
837         * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
838         of tree_operand_hash.
839
840 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
841
842         PR tree-optimization/88598
843         * tree.h (single_nonzero_element): Declare.
844         * tree.c (single_nonzero_element): New function.
845         * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
846         if I is the only nonzero element of CST.
847
848 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
849
850         PR tree-optimization/88598
851         * tree.h (initializer_each_zero_or_onep): Declare.
852         * tree.c (initializer_each_zero_or_onep): New function.
853         (signed_or_unsigned_type_for): Handle float types too.
854         (unsigned_type_for, signed_type_for): Update comments accordingly.
855         * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
856         x & { 0 or -1, 0 or -1, ... }.
857
858 2019-01-07  Jonathan Wakely  <jwakely@redhat.com>
859
860         * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
861         with x86_64-pc-linux-gnu.
862
863 2019-01-07  Tom de Vries  <tdevries@suse.de>
864
865         PR target/85486
866         * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
867         function.
868         (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
869         routines.
870
871 2019-01-07  Jakub Jelinek  <jakub@redhat.com>
872
873         * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
874         V_256_512 iterator instead of V_512 and TARGET_AVX instead of
875         TARGET_AVX512F as condition.
876
877         PR debug/88723
878         * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
879         const_not_ok_for_debug_p target hook.
880         (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
881         on UNSPEC and subexpressions thereof if all subexpressions of the
882         UNSPEC are CONSTANT_P.
883
884         PR tree-optimization/88676
885         * tree-ssa-phiopt.c (two_value_replacement): New function.
886         (tree_ssa_phiopt_worker): Call it.
887
888         PR sanitizer/88619
889         * cfgexpand.c (expand_stack_vars): Only align prev_offset to
890         ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
891
892         PR c++/85052
893         * tree-vect-generic.c: Include insn-config.h and recog.h.
894         (expand_vector_piecewise): Add defaulted ret_type argument,
895         if non-NULL, use that in preference to type for the result type.
896         (expand_vector_parallel): Formatting fix.
897         (do_vec_conversion, do_vec_narrowing_conversion,
898         expand_vector_conversion): New functions.
899         (expand_vector_operations_1): Call expand_vector_conversion
900         for VEC_CONVERT ifn calls.
901         * internal-fn.def (VEC_CONVERT): New internal function.
902         * internal-fn.c (expand_VEC_CONVERT): New function.
903         * fold-const-call.c (fold_const_vec_convert): New function.
904         (fold_const_call): Use it for CFN_VEC_CONVERT.
905         * doc/extend.texi (__builtin_convertvector): Document.
906
907 2019-01-07  Tom de Vries  <tdevries@suse.de>
908
909         * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
910         * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
911         vector_red_partition, vector_red_sym): New global variables.
912         (nvptx_option_override): Initialize vector_red_sym.
913         (nvptx_declare_function_name): Restore red_partition register.
914         (nvptx_file_end): Emit code to declare the vector reduction variables.
915         (nvptx_output_red_partition): New function.
916         (nvptx_expand_shared_addr): Add vector argument. Use it to handle
917         large vector reductions.
918         (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
919         (nvptx_init_builtins): Add VECTOR_ADDR.
920         (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
921         Handle nvptx_expand_shared_addr.
922         (nvptx_get_shared_red_addr): Add vector argument and handle large
923         vectors.
924         (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
925         large vectors.
926         (nvptx_goacc_reduction_init): Likewise.
927         (nvptx_goacc_reduction_fini): Likewise.
928         (nvptx_goacc_reduction_teardown): Likewise.
929         (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
930         init,fini,teardown}.
931         (nvptx_init_axis_predicate): Initialize vector_red_partition.
932         (nvptx_set_current_function): Init vector_red_partition.
933         * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
934         (nvptx_red_partition): New insn.
935         * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
936
937 2019-01-07  Tom de Vries  <tdevries@suse.de>
938
939         PR target/85381
940         * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
941         empty loops.
942
943 2019-01-07  Tom de Vries  <tdevries@suse.de>
944
945         * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
946         (nvptx_option_override): Init oacc_bcast_partition.
947         (nvptx_init_oacc_workers): New function.
948         (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
949         (nvptx_needs_shared_bcast): New function.
950         (nvptx_find_par): Generalize to enable vectors to use shared-memory
951         to propagate state.
952         (nvptx_shared_propagate): Initialize vector bcast partition and
953         synchronization state.
954         (nvptx_single):  Generalize to enable vectors to use shared-memory
955         to propagate state.
956         (nvptx_process_pars): Likewise.
957         (nvptx_set_current_function): Initialize oacc_broadcast_partition.
958         * config/nvptx/nvptx.h (struct machine_function): Add
959         bcast_partition and sync_bar members.
960
961 2019-01-07  Tom de Vries  <tdevries@suse.de>
962
963         * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
964         (nvptx_apply_dim_limits): New function.
965         (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
966         PTX_WARP_SIZE.
967
968 2019-01-07  Tom de Vries  <tdevries@suse.de>
969
970         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
971         as late as possible.
972
973 2019-01-07  Tom de Vries  <tdevries@suse.de>
974
975         * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
976         (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
977         (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
978         (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
979         PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
980
981 2019-01-07  Tom de Vries  <tdevries@suse.de>
982
983         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
984
985 2019-01-07  Tom de Vries  <tdevries@suse.de>
986
987         * omp-offload.c (oacc_get_min_dim): New function.
988         * omp-offload.h (oacc_get_min_dim): Declare.
989
990 2018-12-26  Mateusz B  <mateuszb@poczta.onet.pl>
991
992         PR target/88521
993         * config/i386/i386.c (function_value_ms_64): Return small sturct in
994         AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
995
996 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
997
998         PR tree-opt/86020
999         Revert:
1000         2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
1001         
1002         * ipa-inline.c (edge_badness): Use inlined_time instead of
1003         inline_summaries->get.
1004
1005 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
1006
1007         * opts.c (enable_fdo_optimizations): Enable
1008         version-loops-for-strides, loop-interchange, unrol-and-jam
1009         and tree-loop-distribution.
1010         * invoke.texi: Document newly enabled options.
1011
1012 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
1013
1014         * doc/invoke.texi (max-inline-insns-small): New parameters.
1015         * ipa-inline.c (want_early_inline_function_p): simplify.
1016         (want_inline_small_function_p): Fix pasto from previous patch;
1017         use max-inline-insns-small bound.
1018         * params.def (max-inline-insns-small): New param.
1019         * ipa-fnsummary.c (analyze_function_body): Initialize time/size
1020         variables correctly.
1021
1022 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
1023
1024         * doc/invoke.texi: Document max-inline-insns-size,
1025         uninlined-function-insns, uninlined-function-time,
1026         uninlined-thunk-insns and uninlined-thunk-time.
1027         * params.def: Add max-inline-insns-size,
1028         uninlined-function-insns, uninlined-function-time,
1029         uninlined-thunk-insns and uninlined-thunk-time.
1030         * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
1031         new parameters.
1032         * ipa-inline.c (can_inline_edge_by_limits_p,
1033         want_inline_small_function_p): Use new parameters.
1034
1035 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
1036
1037         * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
1038
1039 2019-01-05  Jakub Jelinek  <jakub@redhat.com>
1040
1041         PR middle-end/82564
1042         PR target/88620
1043         * expr.c (expand_assignment): For calls returning VLA structures
1044         if to_rtx is not a MEM, force it into a stack temporary.
1045
1046         PR debug/88635
1047         * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
1048         SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
1049         Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
1050         subexpressions of both operands.
1051         (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
1052         subrtxes are CONSTANT_P.
1053         * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
1054         2018-11-09 changes.
1055
1056 2019-01-04  Jan Hubicka  <hubicka@ucw.cz>
1057
1058         * params.def (hot-bb-count-ws-permille): Set to 990.
1059
1060 2019-01-04  Martin Sebor  <msebor@redhat.com>
1061
1062         PR c/88546
1063         * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
1064         leaf.
1065
1066 2019-01-04  Martin Sebor  <msebor@redhat.com>
1067
1068         PR c/88363
1069         * doc/extend.texi (attribute alloc_align, alloc_size): Update.
1070
1071 2019-01-04  Jakub Jelinek  <jakub@redhat.com>
1072
1073         * gdbinit.in: Turn off pagination for the skip commands, restore
1074         it to previous state afterwards.
1075
1076 2019-01-04  Sam Tebbs  <sam.tebbs@arm.com>
1077
1078         PR gcc/87763
1079         * gcc.target/aarch64/combine_bfxil.c: Change scan-assembler-times bfxil
1080         count to 18.
1081
1082 2019-01-04  Jakub Jelinek  <jakub@redhat.com>
1083
1084         PR target/88594
1085         * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
1086         of GET_MODE (opN) as modes of the libcall arguments.
1087
1088 2019-01-04  Jan Beulich  <jbeulich@suse.com>
1089
1090         * config/i386/sse.md
1091         (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
1092         <avx512>_cmp<mode>3<mask_scalar_merge_name>,
1093         <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
1094         <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
1095         avx512f_vmcmp<mode>3<round_saeonly_name>,
1096         avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
1097         avx512f_maskcmp<mode>3,
1098         <avx512>_cvt<ssemodesuffix>2mask<mode>,
1099         <avx512>_cvt<ssemodesuffix>2mask<mode>,
1100         *<avx512>_cvtmask2<ssemodesuffix><mode>,
1101         *<avx512>_cvtmask2<ssemodesuffix><mode>,
1102         <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
1103         <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
1104         <avx512>_gt<mode>3<mask_scalar_merge_name>,
1105         <avx512>_gt<mode>3<mask_scalar_merge_name>,
1106         <avx512>_testm<mode>3<mask_scalar_merge_name>,
1107         <avx512>_testnm<mode>3<mask_scalar_merge_name>,
1108         *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
1109         *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
1110         *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
1111         *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
1112         avx512cd_maskb_vec_dup<mode>,
1113         avx512cd_maskw_vec_dup<mode>,
1114         avx512dq_fpclass<mode><mask_scalar_merge_name>,
1115         avx512dq_vmfpclass<mode>,
1116         avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
1117         instead of =Yk.
1118
1119 2019-01-03  Martin Sebor  <msebor@redhat.com>
1120
1121         PR tree-optimization/88659
1122         * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
1123
1124 2019-01-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
1125
1126         * config/rs6000/rs6000-string.c (expand_block_move): Don't use
1127         unaligned vsx and avoid lxvd2x/stxvd2x.
1128         (gen_lvx_v4si_move): New function.
1129
1130 2019-01-03  Tom de Vries  <tdevries@suse.de>
1131
1132         * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
1133         (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
1134         function.
1135         * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
1136
1137 2019-01-03  Tom de Vries  <tdevries@suse.de>
1138
1139         * config/nvptx/nvptx.c (struct offload_attrs): New.
1140         (populate_offload_attrs): New function.  Factor mask extraction out of
1141         nvptx_reorg.  Add extraction of dimensions.
1142         (nvptx_reorg): Use populate_offload_attrs.
1143
1144 2019-01-03  Tom de Vries  <tdevries@suse.de>
1145
1146         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
1147         cases for oacc_min_dims_p and routine_p.  Add asserts for
1148         oacc_default_dims_p and offload_region_p.
1149
1150 2019-01-03  Tom de Vries  <tdevries@suse.de>
1151
1152         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
1153         factored out of ...
1154         (nvptx_goacc_validate_dims): ... here.
1155
1156 2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
1157
1158         PR tree-optimization/85574
1159         * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
1160         structure.
1161         (struct ssa_equip_hash_traits): Declare.
1162         (val_ssa_equiv): Use custom hash traits using operand_equal_p.
1163
1164 2019-01-03  Jakub Jelinek  <jakub@redhat.com>
1165
1166         PR debug/88644
1167         * dwarf2out.c (modified_type_die): If type is equal to sizetype,
1168         change it to qualified_type.
1169
1170 2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
1171
1172         * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
1173         (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
1174
1175 2019-01-02  Martin Sebor  <msebor@redhat.com>
1176             Jeff Law  <law@redhat.com>
1177
1178         * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
1179         (get_range_strlen_tree): Update appropriately.
1180         (get_range_strlen)
1181         * gimple-fold.h (get_range_strlen): Drop unused last argument.
1182
1183         * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
1184         rather than set_range_info.
1185         * tree-ssa-strlen.c (set_strlen_range): Extracted from
1186         maybe_set_strlen_range.  Handle potentially boundary crossing
1187         cases more conservatively.
1188         (maybe_set_strlen_range): Parts refactored into set_strlen_range.
1189         Call set_strlen_range.
1190         * tree-ssa-strlen.h (set_strlen_range): Add prototype.
1191
1192         PR middle-end/88663
1193         * gimple-fold.c (get_range_strlen): Update prototype to no longer
1194         need the flexp argument.
1195         (get_range_strlen_tree): Drop flexp argument.  Drop flexp argument
1196         from calls to get_range_strlen.  Update comments.  Just update
1197         VAL for an unterminated const char array and let the reset of the
1198         code handle it normally.  No longer try to set *flexp.  Adjust
1199         return value.
1200         (get_range_strlen): Update for the new get_range_strlen API.
1201         (get_maxval_strlen): Similarly.
1202         (gimple_fold_builtin_strlen): Handle update meaning of return value
1203         from get_range_strlen.
1204         * gimple-ssa-sprintf.c (get_string_length): Update for the new
1205         get_range_strlen API.
1206
1207 2019-01-02  Jan Hubicka  <hubicka@ucw.cz>
1208
1209         PR lto/88130
1210         * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
1211         false at WPA time when body was removed.
1212
1213 2019-01-02  Martin Liska  <mliska@suse.cz>
1214
1215         PR tree-optimization/88650
1216         * predict.c (set_even_probabilities): Calculate probability
1217         remainer only when really used.
1218
1219 2019-01-02  Richard Biener  <rguenther@suse.de>
1220
1221         PR middle-end/88651
1222         * tree-data-ref.c (analyze_subscript_affine_affine): Use
1223         widest_ints when mangling max_stmt_execution results.
1224
1225 2019-01-02  Richard Biener  <rguenther@suse.de>
1226
1227         PR tree-optimization/88621
1228         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
1229         bitfields when canoncalizing.
1230
1231 2019-01-02  Richard Biener  <rguenther@suse.de>
1232
1233         PR target/87545
1234         * config/i386/x86-tune-costs.h (intel_cost): Adjust
1235         cost of cheap SSE instruction.
1236
1237 2019-01-02  Richard Biener  <rguenther@suse.de>
1238
1239         PR ipa/85574
1240         * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
1241         * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
1242         function.
1243         (sem_item_optimizer::do_congruence_step_f): Sort the congruence
1244         set after UIDs before splitting them.
1245
1246 2019-01-01  Martin Sebor  <msebor@redhat.com>
1247             Jeff Law  <law@redhat.com>
1248
1249         * gimple-fold.c (get_range_strlen_tree): Record if the computed
1250         length is optimistic.  If it is, then arrange to compute the
1251         conservative length as well.
1252
1253         * gimple-fold.h (get_range_strlen): Update prototype.
1254         * builtins.c (check_access): Update call to get_range_strlen to use
1255         c_strlen_data pointer.   Change various variable accesses to instead
1256         pull data from the c_strlen_data structure.
1257         (check_strncat_sizes, expand_builtin_strncat): Likewise.
1258         * calls.c (maybe_warn_nonstring_arg): Likewise.
1259         * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise.  Reset
1260         minimum length if maximum lengh is unknown.
1261         * gimple-ssa-sprintf.c (get_string_length): Likewise.  Drop code
1262         that used c_strlen, it's no longer needed.  Restructure slightly.
1263         (format_string): Set unlikely range appropriately.
1264         * gimple-fold.c (get_range_strlen): Update comments.  Fix minor
1265         formatting issues.
1266         (get_range_strlen):  Accept c_strlen_data pointer for external
1267         call sites as well.  Pass through to call to internal get_range_strlen.
1268         Adjust minlen, maxlen and maxbound as needed.
1269         (get_maxval_strlen): Update comments.
1270         (gimple_fold_builtin_strlen):  Update call to get_range_strlen
1271         to use c_strlen_data pointer.  Change variable accesses to instead
1272         use c_strlen_data data members.
1273
1274         * gimple-fold.c (get_range_strlen): Update prototype.
1275         (get_range_strlen_tree): Update prototype.  Drop minlen/maxlen
1276         local variables.  Use pdata to return information to caller.
1277         Update calls to get_range_strlen.  Update pdata->maxbound.
1278         (get_range_strlen -- static version): Similarly.
1279         (get_range_strlen -- extern version): Update for internal
1280         get_range_strlen API change.  Convert to external data format.
1281         (get_maxval_strlen): Similarly.
1282
1283 2019-01-01  Jan Hubicka  <hubicka@ucw.cz>
1284
1285         * coverage.c (get_coverage_counts): Use current_function_decl.
1286         * profile.c (read_thunk_profile): New function.
1287         (branch_prob): Add THUNK parameter.
1288         * tree-profile.c (tree_profiling): Handle thunks.
1289         * value-prof.c (init_node_map): Handle thunks.
1290         * value-prof.h (branch_prob): Upate prototype.
1291         (read_thunk_profile): Declare.
1292
1293 2019-01-01  Jakub Jelinek  <jakub@redhat.com>
1294
1295         Update copyright years.
1296
1297         * gcc.c (process_command): Update copyright notice dates.
1298         * gcov-dump.c (print_version): Ditto.
1299         * gcov.c (print_version): Ditto.
1300         * gcov-tool.c (print_version): Ditto.
1301         * gengtype.c (create_file): Ditto.
1302         * doc/cpp.texi: Bump @copying's copyright year.
1303         * doc/cppinternals.texi: Ditto.
1304         * doc/gcc.texi: Ditto.
1305         * doc/gccint.texi: Ditto.
1306         * doc/gcov.texi: Ditto.
1307         * doc/install.texi: Ditto.
1308         * doc/invoke.texi: Ditto.
1309 \f
1310 Copyright (C) 2019 Free Software Foundation, Inc.
1311
1312 Copying and distribution of this file, with or without modification,
1313 are permitted in any medium without royalty provided the copyright
1314 notice and this notice are preserved.