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