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