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