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