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