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