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