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