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