1 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
3 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
4 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
5 (stmt_uses_0_or_null_in_undefined_way): Likewise.
6 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
8 2019-01-17 Tamar Christina <tamar.christina@arm.com>
11 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
12 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
13 it and document registers.
15 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17 * config/aarch64/aarch64.c (ares_tunings): Define.
18 * config/aarch64/aarch64-cores.def (ares): Use the above.
20 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
24 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
26 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
27 (_mm512_fixupimm_round_pd): Update parameters and builtin.
28 (_mm512_maskz_fixupimm_round_pd): Ditto.
29 (_mm512_fixupimm_round_ps): Ditto.
30 (_mm512_maskz_fixupimm_round_ps): Ditto.
31 (_mm_fixupimm_round_sd): Ditto.
32 (_mm_maskz_fixupimm_round_sd): Ditto.
33 (_mm_fixupimm_round_ss): Ditto.
34 (_mm_maskz_fixupimm_round_ss): Ditto.
35 (_mm512_fixupimm_pd): Ditto.
36 (_mm512_maskz_fixupimm_pd): Ditto.
37 (_mm512_fixupimm_ps): Ditto.
38 (_mm512_maskz_fixupimm_ps): Ditto.
39 (_mm_fixupimm_sd): Ditto.
40 (_mm_maskz_fixupimm_sd): Ditto.
41 (_mm_fixupimm_ss): Ditto.
42 (_mm_maskz_fixupimm_ss): Ditto.
43 (_mm512_mask_fixupimm_round_pd): Update builtin.
44 (_mm512_mask_fixupimm_round_ps): Ditto.
45 (_mm_mask_fixupimm_round_sd): Ditto.
46 (_mm_mask_fixupimm_round_ss): Ditto.
47 (_mm512_mask_fixupimm_pd): Ditto.
48 (_mm512_mask_fixupimm_ps): Ditto.
49 (_mm_mask_fixupimm_sd): Ditto.
50 (_mm_mask_fixupimm_ss): Ditto.
51 * config/i386/avx512vlintrin.h:
52 (_mm256_fixupimm_pd): Update parameters and builtin.
53 (_mm256_maskz_fixupimm_pd): Ditto.
54 (_mm256_fixupimm_ps): Ditto.
55 (_mm256_maskz_fixupimm_ps): Ditto.
56 (_mm_fixupimm_pd): Ditto.
57 (_mm_maskz_fixupimm_pd): Ditto.
58 (_mm_fixupimm_ps): Ditto.
59 (_mm_maskz_fixupimm_ps): Ditto.
60 (_mm256_mask_fixupimm_pd): Update builtin.
61 (_mm256_mask_fixupimm_ps): Ditto.
62 (_mm_mask_fixupimm_pd): Ditto.
63 (_mm_mask_fixupimm_ps): Ditto.
64 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
65 * config/i386/i386-builtin.def: Update builtin definitions.
66 * config/i386/i386.c: Handle new builtin types and remove useless ones.
67 * config/i386/sse.md: Update VFIXUPIMM* patterns.
68 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
69 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
70 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
71 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
72 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
73 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
74 * config/i386/subst.md:
75 (round_saeonly_sd_mask_operand4): Add new subst_attr.
76 (round_saeonly_sd_mask_op4): Ditto.
77 (round_saeonly_expand_operand5): Ditto.
78 (round_saeonly_expand): Update.
80 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
84 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
86 * config/i386/sse.md: Combine VFIXUPIMM* patterns
87 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
88 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
89 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
90 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
91 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
92 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
94 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
98 2018-12-15 Jakub Jelinek <jakub@redhat.com>
101 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
102 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
103 instead of UNSPEC_FIXUPIMM.
105 2019-01-17 Richard Biener <rguenther@suse.de>
108 * dwarf2out.c (want_pubnames): Never generate pubnames sections
109 and friends for the LTO part of debug info.
111 2019-01-17 Jakub Jelinek <jakub@redhat.com>
113 PR tree-optimization/86214
114 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
117 PR rtl-optimization/88870
118 * dce.c (deletable_insn_p): Never delete const/pure calls that can
119 throw if we can't alter the cfg or delete dead exceptions.
120 (mark_insn): Don't call find_call_stack_args for such calls.
122 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
124 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
125 prototypes for vec_st.
126 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
127 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
128 mainly on signed/unsigned long long and double.
130 2019-01-16 David Malcolm <dmalcolm@redhat.com>
133 * combine.c (delete_noop_moves): Convert to "bool" return,
134 returning true if any edges are eliminated.
135 (combine_instructions): Also return true if delete_noop_moves
138 2019-01-16 Tamar Christina <tamar.christina@arm.com>
140 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
141 correct max nunits for endian swap.
142 (aarch64_expand_fcmla_builtin): Correct subreg code.
143 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
144 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
147 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
149 * config/alpha/alpha.c (alpha_gimplify_va_arg):
150 Handle split indirect COMPLEX_TYPE arguments.
152 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
155 * config/aarch64/aarch64-modes.def: Add comment about how the carry
156 bit is set by add and compare.
157 (CC_ADC): New CC_MODE.
158 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
159 to cache the code and mode of X. Adjust the shape of a CC_Cmode
160 comparison. Add detection for CC_ADCmode.
161 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
163 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
164 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
165 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
166 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
167 to eliminate the need for zero-extending the operands.
168 (add<mode>3_compareC_imm): Delete. Merge into ...
169 (add<mode>3_compareC): ... this. Restructure the comparison to
170 eliminate the need for zero-extending the operands.
171 (add<mode>3_carryin): Use LTU for the overflow detection.
172 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
173 Reexpress comparison for overflow.
174 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
175 (add<mode>3_carryinC): Likewise.
176 (add<mode>3_carryinV): Use LTU for carry between partials.
177 * config/aarch64/predicates.md (aarch64_carry_operation): Update
178 handling of CC_Cmode and add CC_ADCmode.
179 (aarch64_borrow_operation): Likewise.
181 2019-01-16 Tamar Christina <tamar.christina@arm.com>
183 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
184 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
185 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
186 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
188 2019-01-16 Martin Liska <mliska@suse.cz>
190 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
192 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
194 * gcc.c (add_sysrooted_hdrs_prefix): New function.
195 (path_prefix_reset): Move up in the source file.
196 (find_fortran_preinclude_file): Make complex search for the
197 fortran header files.
199 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
201 * godump.c (go_output_typedef): When outputting a typedef, refer
202 to the underlying type by its name and not its structure.
204 2019-01-15 David Malcolm <dmalcolm@redhat.com>
207 * tree.c (build_function_type): Assert that arg_types is not
210 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
213 * doc/extend.texi: Document that listing the stack pointer in the
214 clobber list of an asm is a deprecated feature.
215 * common.opt (Wdeprecated): Moved from c-family/c.opt.
216 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
217 warning instead of an error for clobbers of the stack pointer.
218 Add a note explaining why.
220 2019-01-15 Richard Biener <rguenther@suse.de>
223 * dwarf2out.c (gen_member_die): Do not generate inheritance
226 2019-01-15 Richard Biener <rguenther@suse.de>
228 PR tree-optimization/88855
229 * tree-if-conv.c (combine_blocks): Collect
230 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
232 2019-01-15 Tom de Vries <tdevries@suse.de>
235 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
236 lhs == NULL_TREE for gang-level reduction.
238 2019-01-15 Richard Biener <rguenther@suse.de>
239 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
242 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
243 return true if SSA_NAME is already marked in visited bitmap.
244 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
246 2019-01-15 Jakub Jelinek <jakub@redhat.com>
248 PR tree-optimization/88775
249 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
250 equal == 0 equality pointer comparisons some more if compared in
251 integral types and either one points to an automatic var and the
252 other to a global, or we can prove at least one points to the middle
253 or both point to start or both point to end.
255 2019-01-14 Andi Kleen <ak@linux.intel.com>
257 * Makefile.in: Lower autofdo sampling rate by 10x.
258 * Makefile.tpl: Dito.
260 2019-01-14 Tom Honermann <tom@honermann.net>
262 * defaults.h: Define CHAR8_TYPE.
264 2019-01-14 Martin Sebor <msebor@redhat.com>
267 * doc/extend.texi (Darwin Format Checks): Clarify.
269 2019-01-14 Richard Biener <rguenther@suse.de>
271 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
272 whether we are in (simplify ...) or (match ...) context.
274 2019-01-14 Jakub Jelinek <jakub@redhat.com>
276 PR rtl-optimization/88796
277 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
278 * cfgexpand.c (stack_protect_prologue): Initialize
279 crtl->stack_protect_guard_decl.
280 * function.c (stack_protect_epilogue): Use it instead of calling
281 targetm.stack_protect_guard again.
282 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
283 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
284 crtl->stack_protect_guard_decl.
285 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
286 on the returned MEM_EXPR.
288 2019-01-12 Tom de Vries <tdevries@suse.de>
290 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
291 vector length using -fopenacc-dim.
293 2019-01-12 Tom de Vries <tdevries@suse.de>
295 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
296 lengths into account.
298 2019-01-12 Svante Signell <svante.signell@gmail.com>
300 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
301 (TARGET_CAN_SPLIT_STACK): Define.
302 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
304 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
306 * params.def (inline-unit-growth): Set to 40.
308 2019-01-12 Jakub Jelinek <jakub@redhat.com>
310 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
312 2019-01-12 Tom de Vries <tdevries@suse.de>
314 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
315 region calling vector-partitionable routine, set default_vector_length
318 2019-01-12 Tom de Vries <tdevries@suse.de>
320 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
321 variable default_vector_length.
323 2019-01-12 Tom de Vries <tdevries@suse.de>
326 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
327 from oacc_default_dims, as oacc_validate_dims would do it, and apply
330 2019-01-12 Tom de Vries <tdevries@suse.de>
332 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
333 (nvptx_goacc_validate_dims): Add used parameter.
334 * doc/tm.texi: Regenerate.
335 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
336 argument to call to targetm.goacc.validate_dims.
337 (default_goacc_validate_dims): Add used
339 * target.def (validate_dims): Add used parameter in DEFHOOK.
340 * targhooks.h (default_goacc_validate_dims): Add used parameter.
342 2019-01-11 Jakub Jelinek <jakub@redhat.com>
346 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
348 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
349 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
350 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
351 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
353 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
355 PR rtl-optimization/87305
357 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
358 for little endian pseudos used as paradoxical subreg.
360 2019-01-11 Jakub Jelinek <jakub@redhat.com>
362 PR tree-optimization/88693
363 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
364 for STRING_CSTs that don't contain any NUL characters in the first
365 TREE_STRING_LENGTH bytes.
367 2019-01-11 Alan Modra <amodra@gmail.com>
371 * genattrtab.c (min_fn): Don't translate values.
372 (min_attr_value): Return INT_MAX when the value can't be calculated.
373 Return minimum among any values that can be calculated.
374 (max_attr_value): Adjust.
376 2019-01-11 Jakub Jelinek <jakub@redhat.com>
378 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
380 2019-01-11 Steve Ellcey <sellcey@marvell.com>
382 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
383 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
384 (aarch64_return_call_with_max_clobbers): New function.
385 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
386 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
388 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
389 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
390 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
391 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
392 * cselib.c (cselib_process_insn): Add argument to
393 targetm.hard_regno_call_part_clobbered call.
394 * ira-conflicts.c (ira_build_conflicts): Ditto.
395 * ira-costs.c (ira_tune_allocno_costs): Ditto.
396 * lra-constraints.c (inherit_reload_reg): Ditto.
397 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
398 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
399 argument. Call targetm.return_call_with_max_clobbers.
400 Add argument to targetm.hard_regno_call_part_clobbered call.
401 (calls_have_same_clobbers_p): New function.
402 (process_bb_lives): Add call_insn and last_call_insn variables.
403 Pass call_insn to check_pseudos_live_through_calls.
404 Modify if stmt to check targetm.return_call_with_max_clobbers.
405 Update setting of flush variable.
406 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
408 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
409 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
410 targetm.hard_regno_call_part_clobbered call.
411 * reginfo.c (choose_hard_reg_mode): Ditto.
412 * regrename.c (check_new_reg_p): Ditto.
413 * reload.c (find_equiv_reg): Ditto.
414 * reload1.c (emit_reload_insns): Ditto.
415 * sched-deps.c (deps_analyze_insn): Ditto.
416 * sel-sched.c (init_regs_for_mode): Ditto.
417 (mark_unavailable_hard_regs): Ditto.
418 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
419 * target.def (hard_regno_call_part_clobbered): Add insn argument.
420 (return_call_with_max_clobbers): New target function.
421 * doc/tm.texi: Regenerate.
422 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
423 * hooks.c (hook_bool_uint_mode_false): Change to
424 hook_bool_insn_uint_mode_false.
425 * hooks.h (hook_bool_uint_mode_false): Ditto.
427 2019-01-11 Steve Ellcey <sellcey@marvell.com>
429 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
430 (aarch64_remove_extra_call_preserved_regs): New function.
431 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
432 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
433 * doc/tm.texi: Regenerate.
434 * final.c (get_call_reg_set_usage): Call new hook.
435 * target.def (remove_extra_call_preserved_regs): New hook.
436 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
437 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
439 2019-01-11 Jakub Jelinek <jakub@redhat.com>
442 * passes.c (finish_optimization_passes): Call print_combine_total_stats
443 inside of pass_combine_1 dump rather than pass_profile_1.
445 2019-01-11 Tom de Vries <tdevries@suse.de>
447 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
448 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
449 (PTX_NUM_PER_WORKER_BARRIERS): Define.
450 (nvptx_apply_dim_limits): Prevent vector_length 64 and
453 2019-01-11 Tom de Vries <tdevries@suse.de>
455 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
457 2019-01-11 Jan Beulich <jbeulich@suse.com>
459 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
460 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
461 sse2_cvtsi2sd): Add {l}.
462 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
465 2019-01-10 Jakub Jelinek <jakub@redhat.com>
468 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
470 (*float<floatunssuffix>v2div2sf2): New define_insn.
471 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
472 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
473 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
474 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
475 match_operands with "const0_operand" "C".
477 2019-01-10 Tamar Christina <tamar.christina@arm.com>
479 * config/aarch64/aarch64-builtins.c
480 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
481 (aarch64_init_simd_builtins): ...Here
483 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
485 PR rtl-optimization/87305
487 (setup_live_pseudos_and_spill_after_risky_transforms): Check
488 allocation for big endian pseudos used as paradoxical subregs and
489 spill them if it is wrong.
490 * lra-constraints.c (lra_constraints): Add a comment.
492 2019-01-10 Richard Biener <rguenther@suse.de>
494 PR tree-optimization/88792
495 * tree-ssa-pre.c (get_representative_for): Do not return a
498 2019-01-10 Jakub Jelinek <jakub@redhat.com>
502 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
503 (assign_parm_setup_block): Do the argument slot realignment here
506 2019-01-10 Stefan Agner <stefan@agner.ch>
509 * config/arm/arm.c (arm_option_override_internal): Force
510 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
512 2019-01-10 Jakub Jelinek <jakub@redhat.com>
515 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
518 2019-01-10 Tamar Christina <tamar.christina@arm.com>
520 * config/arm/arm-builtins.c
521 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
522 (MAC_LANE_PAIR_QUALIFIERS): New.
523 (arm_expand_builtin_args): Use it.
524 (arm_expand_builtin_1): Likewise.
525 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
526 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
527 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
528 * config/arm/arm_neon.h:
529 (vcadd_rot90_f16): New.
530 (vcaddq_rot90_f16): New.
531 (vcadd_rot270_f16): New.
532 (vcaddq_rot270_f16): New.
535 (vcmla_lane_f16): New.
536 (vcmla_laneq_f16): New.
537 (vcmlaq_lane_f16): New.
538 (vcmlaq_laneq_f16): New.
539 (vcmla_rot90_f16): New.
540 (vcmlaq_rot90_f16): New.
541 (vcmla_rot90_lane_f16): New.
542 (vcmla_rot90_laneq_f16): New.
543 (vcmlaq_rot90_lane_f16): New.
544 (vcmlaq_rot90_laneq_f16): New.
545 (vcmla_rot180_f16): New.
546 (vcmlaq_rot180_f16): New.
547 (vcmla_rot180_lane_f16): New.
548 (vcmla_rot180_laneq_f16): New.
549 (vcmlaq_rot180_lane_f16): New.
550 (vcmlaq_rot180_laneq_f16): New.
551 (vcmla_rot270_f16): New.
552 (vcmlaq_rot270_f16): New.
553 (vcmla_rot270_lane_f16): New.
554 (vcmla_rot270_laneq_f16): New.
555 (vcmlaq_rot270_lane_f16): New.
556 (vcmlaq_rot270_laneq_f16): New.
557 (vcadd_rot90_f32): New.
558 (vcaddq_rot90_f32): New.
559 (vcadd_rot270_f32): New.
560 (vcaddq_rot270_f32): New.
563 (vcmla_lane_f32): New.
564 (vcmla_laneq_f32): New.
565 (vcmlaq_lane_f32): New.
566 (vcmlaq_laneq_f32): New.
567 (vcmla_rot90_f32): New.
568 (vcmlaq_rot90_f32): New.
569 (vcmla_rot90_lane_f32): New.
570 (vcmla_rot90_laneq_f32): New.
571 (vcmlaq_rot90_lane_f32): New.
572 (vcmlaq_rot90_laneq_f32): New.
573 (vcmla_rot180_f32): New.
574 (vcmlaq_rot180_f32): New.
575 (vcmla_rot180_lane_f32): New.
576 (vcmla_rot180_laneq_f32): New.
577 (vcmlaq_rot180_lane_f32): New.
578 (vcmlaq_rot180_laneq_f32): New.
579 (vcmla_rot270_f32): New.
580 (vcmlaq_rot270_f32): New.
581 (vcmla_rot270_lane_f32): New.
582 (vcmla_rot270_laneq_f32): New.
583 (vcmlaq_rot270_lane_f32): New.
584 (vcmlaq_rot270_laneq_f32): New.
585 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
586 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
587 vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
588 vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
589 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
590 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
591 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
592 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
593 (arm_option_reconfigure_globals): Use them.
594 * config/arm/iterators.md (VDF, VQ_HSF): New.
596 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
597 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
598 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
599 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
601 2019-01-10 Tamar Christina <tamar.christina@arm.com>
603 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
604 (emit-rtl.h): Include.
605 (TYPES_QUADOP_LANE_PAIR): New.
606 (aarch64_simd_expand_args): Use it.
607 (aarch64_simd_expand_builtin): Likewise.
608 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
609 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
610 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
611 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
612 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
613 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
614 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
615 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
616 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
617 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
618 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
619 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
620 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
621 fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
622 fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
623 fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
624 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
625 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
626 aarch64_fcmla<rot><mode>): New.
627 * config/aarch64/arm_neon.h:
628 (vcadd_rot90_f16): New.
629 (vcaddq_rot90_f16): New.
630 (vcadd_rot270_f16): New.
631 (vcaddq_rot270_f16): New.
634 (vcmla_lane_f16): New.
635 (vcmla_laneq_f16): New.
636 (vcmlaq_lane_f16): New.
637 (vcmlaq_rot90_lane_f16): New.
638 (vcmla_rot90_laneq_f16): New.
639 (vcmla_rot90_lane_f16): New.
640 (vcmlaq_rot90_f16): New.
641 (vcmla_rot90_f16): New.
642 (vcmlaq_laneq_f16): New.
643 (vcmla_rot180_laneq_f16): New.
644 (vcmla_rot180_lane_f16): New.
645 (vcmlaq_rot180_f16): New.
646 (vcmla_rot180_f16): New.
647 (vcmlaq_rot90_laneq_f16): New.
648 (vcmlaq_rot270_laneq_f16): New.
649 (vcmlaq_rot270_lane_f16): New.
650 (vcmla_rot270_laneq_f16): New.
651 (vcmlaq_rot270_f16): New.
652 (vcmla_rot270_f16): New.
653 (vcmlaq_rot180_laneq_f16): New.
654 (vcmlaq_rot180_lane_f16): New.
655 (vcmla_rot270_lane_f16): New.
656 (vcadd_rot90_f32): New.
657 (vcaddq_rot90_f32): New.
658 (vcaddq_rot90_f64): New.
659 (vcadd_rot270_f32): New.
660 (vcaddq_rot270_f32): New.
661 (vcaddq_rot270_f64): New.
665 (vcmla_lane_f32): New.
666 (vcmla_laneq_f32): New.
667 (vcmlaq_lane_f32): New.
668 (vcmlaq_laneq_f32): New.
669 (vcmla_rot90_f32): New.
670 (vcmlaq_rot90_f32): New.
671 (vcmlaq_rot90_f64): New.
672 (vcmla_rot90_lane_f32): New.
673 (vcmla_rot90_laneq_f32): New.
674 (vcmlaq_rot90_lane_f32): New.
675 (vcmlaq_rot90_laneq_f32): New.
676 (vcmla_rot180_f32): New.
677 (vcmlaq_rot180_f32): New.
678 (vcmlaq_rot180_f64): New.
679 (vcmla_rot180_lane_f32): New.
680 (vcmla_rot180_laneq_f32): New.
681 (vcmlaq_rot180_lane_f32): New.
682 (vcmlaq_rot180_laneq_f32): New.
683 (vcmla_rot270_f32): New.
684 (vcmlaq_rot270_f32): New.
685 (vcmlaq_rot270_f64): New.
686 (vcmla_rot270_lane_f32): New.
687 (vcmla_rot270_laneq_f32): New.
688 (vcmlaq_rot270_lane_f32): New.
689 (vcmlaq_rot270_laneq_f32): New.
690 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
691 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
692 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
695 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
697 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
701 * config/pa/pa.c: Change "can not" to "cannot".
702 * gimple-ssa-evrp-analyze.c: Likewise.
703 * ipa-icf.c: Likewise.
704 * ipa-polymorphic-call.c: Likewise.
705 * ipa-pure-const.c: Likewise.
706 * lra-constraints.c: Likewise.
707 * lra-remat.c: Likewise.
708 * reload1.c: Likewise.
710 * tree-ssa-uninit.c: Likewise.
712 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
716 * Makefile.in: Mechanically replace "can not" with "cannot".
718 * builtins.c: Likewise.
720 * cgraph.c: Likewise.
721 * cgraph.h: Likewise.
722 * cgraphclones.c: Likewise.
723 * cgraphunit.c: Likewise.
724 * combine-stack-adj.c: Likewise.
725 * combine.c: Likewise.
726 * common/config/i386/i386-common.c: Likewise.
727 * config/aarch64/aarch64.c: Likewise.
728 * config/alpha/sync.md: Likewise.
729 * config/arc/arc.c: Likewise.
730 * config/arc/predicates.md: Likewise.
731 * config/arm/arm-c.c: Likewise.
732 * config/arm/arm.c: Likewise.
733 * config/arm/arm.h: Likewise.
734 * config/arm/arm.md: Likewise.
735 * config/arm/cortex-r4f.md: Likewise.
736 * config/csky/csky.c: Likewise.
737 * config/csky/csky.h: Likewise.
738 * config/darwin-f.c: Likewise.
739 * config/epiphany/epiphany.md: Likewise.
740 * config/i386/i386.c: Likewise.
741 * config/i386/sol2.h: Likewise.
742 * config/m68k/m68k.c: Likewise.
743 * config/mcore/mcore.h: Likewise.
744 * config/microblaze/microblaze.md: Likewise.
745 * config/mips/20kc.md: Likewise.
746 * config/mips/sb1.md: Likewise.
747 * config/nds32/nds32.c: Likewise.
748 * config/nds32/predicates.md: Likewise.
749 * config/pa/pa.c: Likewise.
750 * config/rs6000/e300c2c3.md: Likewise.
751 * config/rs6000/rs6000.c: Likewise.
752 * config/s390/s390.h: Likewise.
753 * config/sh/sh.c: Likewise.
754 * config/sh/sh.md: Likewise.
755 * config/spu/vmx2spu.h: Likewise.
757 * dbxout.c: Likewise.
758 * df-scan.c: Likewise.
759 * doc/cfg.texi: Likewise.
760 * doc/extend.texi: Likewise.
761 * doc/fragments.texi: Likewise.
762 * doc/gty.texi: Likewise.
763 * doc/invoke.texi: Likewise.
764 * doc/lto.texi: Likewise.
765 * doc/md.texi: Likewise.
766 * doc/objc.texi: Likewise.
767 * doc/rtl.texi: Likewise.
768 * doc/tm.texi: Likewise.
770 * emit-rtl.c: Likewise.
771 * emit-rtl.h: Likewise.
772 * except.c: Likewise.
773 * expmed.c: Likewise.
775 * fold-const.c: Likewise.
776 * genautomata.c: Likewise.
777 * gimple-fold.c: Likewise.
778 * hard-reg-set.h: Likewise.
780 * ipa-comdats.c: Likewise.
781 * ipa-cp.c: Likewise.
782 * ipa-devirt.c: Likewise.
783 * ipa-fnsummary.c: Likewise.
784 * ipa-icf.c: Likewise.
785 * ipa-inline-transform.c: Likewise.
786 * ipa-inline.c: Likewise.
787 * ipa-polymorphic-call.c: Likewise.
788 * ipa-profile.c: Likewise.
789 * ipa-prop.c: Likewise.
790 * ipa-pure-const.c: Likewise.
791 * ipa-reference.c: Likewise.
792 * ipa-split.c: Likewise.
793 * ipa-visibility.c: Likewise.
795 * ira-build.c: Likewise.
796 * ira-color.c: Likewise.
797 * ira-conflicts.c: Likewise.
798 * ira-costs.c: Likewise.
799 * ira-int.h: Likewise.
800 * ira-lives.c: Likewise.
803 * loop-invariant.c: Likewise.
804 * loop-unroll.c: Likewise.
805 * lower-subreg.c: Likewise.
806 * lra-assigns.c: Likewise.
807 * lra-constraints.c: Likewise.
808 * lra-eliminations.c: Likewise.
809 * lra-lives.c: Likewise.
810 * lra-remat.c: Likewise.
811 * lra-spills.c: Likewise.
813 * lto-cgraph.c: Likewise.
814 * lto-streamer-out.c: Likewise.
815 * postreload-gcse.c: Likewise.
816 * predict.c: Likewise.
817 * profile-count.h: Likewise.
818 * profile.c: Likewise.
821 * reload.c: Likewise.
822 * reload1.c: Likewise.
824 * resource.c: Likewise.
827 * rtlanal.c: Likewise.
828 * sched-deps.c: Likewise.
829 * sched-ebb.c: Likewise.
830 * sched-rgn.c: Likewise.
831 * sel-sched-ir.c: Likewise.
832 * sel-sched.c: Likewise.
833 * shrink-wrap.c: Likewise.
834 * simplify-rtx.c: Likewise.
835 * symtab.c: Likewise.
836 * target.def: Likewise.
837 * toplev.c: Likewise.
838 * tree-call-cdce.c: Likewise.
839 * tree-cfg.c: Likewise.
840 * tree-complex.c: Likewise.
841 * tree-core.h: Likewise.
842 * tree-eh.c: Likewise.
843 * tree-inline.c: Likewise.
844 * tree-loop-distribution.c: Likewise.
845 * tree-nrv.c: Likewise.
846 * tree-profile.c: Likewise.
847 * tree-sra.c: Likewise.
848 * tree-ssa-alias.c: Likewise.
849 * tree-ssa-dce.c: Likewise.
850 * tree-ssa-dom.c: Likewise.
851 * tree-ssa-forwprop.c: Likewise.
852 * tree-ssa-loop-im.c: Likewise.
853 * tree-ssa-loop-ivcanon.c: Likewise.
854 * tree-ssa-loop-ivopts.c: Likewise.
855 * tree-ssa-loop-niter.c: Likewise.
856 * tree-ssa-phionlycprop.c: Likewise.
857 * tree-ssa-phiopt.c: Likewise.
858 * tree-ssa-propagate.c: Likewise.
859 * tree-ssa-threadedge.c: Likewise.
860 * tree-ssa-threadupdate.c: Likewise.
861 * tree-ssa-uninit.c: Likewise.
862 * tree-ssanames.c: Likewise.
863 * tree-streamer-out.c: Likewise.
866 * vr-values.c: Likewise.
868 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
870 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
871 (ix86_split_xorsign): Ditto.
872 * config/i386/i386.c (ix86_expand_xorsign): New function.
873 (ix86_split_xorsign): Ditto.
874 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
875 (xorsign<mode>3): New expander.
876 (xorsign<mode>3_1): New insn_and_split pattern.
877 * config/i386/sse.md (xorsign<mode>3): New expander.
879 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
881 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
882 (*tablejump_sp64): Likewise.
883 (*tablejump<P:mode>): ...this.
884 (*call_address_sp32): Merge into...
885 (*call_address_sp64): Likewise.
886 (*call_address<P:mode>): ...this.
887 (*call_symbolic_sp32): Merge into...
888 (*call_symbolic_sp64): Likewise.
889 (*call_symbolic<P:mode>): ...this.
890 (call_value): Remove constraint and add predicate.
891 (*call_value_address_sp32): Merge into...
892 (*call_value_address_sp64): Likewise.
893 (*call_value_address<P:mode>): ...this.
894 (*call_value_symbolic_sp32): Merge into...
895 (*call_value_symbolic_sp64): Likewise.
896 (*call_value_symbolic<P:mode>): ...this.
897 (*sibcall_symbolic_sp32): Merge into...
898 (*sibcall_symbolic_sp64): Likewise.
899 (*sibcall_symbolic<P:mode>): ...this.
900 (sibcall_value): Remove constraint and add predicate.
901 (*sibcall_value_symbolic_sp32): Merge into...
902 (*sibcall_value_symbolic_sp64): Likewise.
903 (*sibcall_value_symbolic<P:mode>): ...this.
904 (window_save): Minor tweak.
905 (*branch_sp32): Merge into...
906 (*branch_sp64): Likewise.
907 (*branch<P:mode>): ...this.
909 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
910 James Clarke <jrtc27@jrtc27.com>
913 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
914 consistently in TLS address generation and adjust code to the renaming
915 of patterns. Mark calls to __tls_get_addr as const.
916 * config/sparc/sparc.md (tgd_hi22): Turn into...
917 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
918 (tgd_lo10): Turn into...
919 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
920 (tgd_add32): Merge into...
921 (tgd_add64): Likewise.
922 (tgd_add<P:mode>): ...this and use Pmode throughout.
923 (tldm_hi22): Turn into...
924 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
925 (tldm_lo10): Turn into...
926 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
927 (tldm_add32): Merge into...
928 (tldm_add64): Likewise.
929 (tldm_add<P:mode>): ...this and use Pmode throughout.
930 (tldm_call32): Merge into...
931 (tldm_call64): Likewise.
932 (tldm_call<P:mode>): ...this and use Pmode throughout.
933 (tldo_hix22): Turn into...
934 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
935 (tldo_lox10): Turn into...
936 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
937 (tldo_add32): Merge into...
938 (tldo_add64): Likewise.
939 (tldo_add<P:mode>): ...this and use Pmode throughout.
940 (tie_hi22): Turn into...
941 (tie_hi22<P:mode>): ...this and use Pmode throughout.
942 (tie_lo10): Turn into...
943 (tie_lo10<P:mode>): ...this and use Pmode throughout.
944 (tie_ld64): Use DImode throughout.
945 (tie_add32): Merge into...
946 (tie_add64): Likewise.
947 (tie_add<P:mode>): ...this and use Pmode throughout.
948 (tle_hix22_sp32): Merge into...
949 (tle_hix22_sp64): Likewise.
950 (tle_hix22<P:mode>): ...this and use Pmode throughout.
951 (tle_lox22_sp32): Merge into...
952 (tle_lox22_sp64): Likewise.
953 (tle_lox22<P:mode>): ...this and use Pmode throughout.
954 (*tldo_ldub_sp32): Merge into...
955 (*tldo_ldub_sp64): Likewise.
956 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
957 (*tldo_ldub1_sp32): Merge into...
958 (*tldo_ldub1_sp64): Likewise.
959 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
960 (*tldo_ldub2_sp32): Merge into...
961 (*tldo_ldub2_sp64): Likewise.
962 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
963 (*tldo_ldsb1_sp32): Merge into...
964 (*tldo_ldsb1_sp64): Likewise.
965 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
966 (*tldo_ldsb2_sp32): Merge into...
967 (*tldo_ldsb2_sp64): Likewise.
968 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
969 (*tldo_ldub3_sp64): Use DImode throughout.
970 (*tldo_ldsb3_sp64): Likewise.
971 (*tldo_lduh_sp32): Merge into...
972 (*tldo_lduh_sp64): Likewise.
973 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
974 (*tldo_lduh1_sp32): Merge into...
975 (*tldo_lduh1_sp64): Likewise.
976 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
977 (*tldo_ldsh1_sp32): Merge into...
978 (*tldo_ldsh1_sp64): Likewise.
979 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
980 (*tldo_lduh2_sp64): Use DImode throughout.
981 (*tldo_ldsh2_sp64): Likewise.
982 (*tldo_lduw_sp32): Merge into...
983 (*tldo_lduw_sp64): Likewise.
984 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
985 (*tldo_lduw1_sp64): Use DImode throughout.
986 (*tldo_ldsw1_sp64): Likewise.
987 (*tldo_ldx_sp64): Likewise.
988 (*tldo_stb_sp32): Merge into...
989 (*tldo_stb_sp64): Likewise.
990 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
991 (*tldo_sth_sp32): Merge into...
992 (*tldo_sth_sp64): Likewise.
993 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
994 (*tldo_stw_sp32): Merge into...
995 (*tldo_stw_sp64): Likewise.
996 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
997 (*tldo_stx_sp64): Use DImode throughout.
999 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1001 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
1002 check configure option to set BTI and Return Address Signing.
1003 * configure.ac: Add --enable-standard-branch-protection and
1004 --disable-standard-branch-protection.
1005 * configure: Regenerated.
1006 * doc/install.texi: Document the same.
1008 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1009 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1011 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
1012 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
1013 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
1015 * config/aarch64/aarch64-bti-insert.c: New file.
1016 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
1018 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
1020 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
1021 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
1022 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
1023 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
1025 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1027 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
1028 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
1029 Disable bti for -mbranch-protection=none.
1030 (aarch64_handle_standard_branch_protection): Enable bti for
1031 -mbranch-protection=standard.
1032 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
1033 -mbranch-protection.
1034 (aarch64_bti_enabled): Check if bti is enabled.
1035 * config/aarch64/aarch64.opt: Declare target variable.
1036 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
1038 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1040 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
1041 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
1042 (aarch64_expand_epilogue): Likewise.
1043 (aarch64_output_mi_thunk): Likewise
1044 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
1045 TAILCALL_ADDR_REGS to x16 and x17.
1046 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
1048 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1050 * config/aarch64/aarch64-option-extensions.def: Define
1051 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
1052 * gcc/config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
1053 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
1054 (AARCH64_FL_PREDRES): New.
1055 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
1056 AARCH64_FL_PREDRES by default.
1057 * gcc/doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
1059 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1061 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
1063 * gcc/config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
1064 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
1065 * gcc/doc/invoke.texi: Document ARMv8.5-A.
1067 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
1069 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
1070 (xorsign<mode>3): Likewise.
1072 2019-01-09 Jelinek <jakub@redhat.com>
1075 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
1076 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
1078 PR rtl-optimization/88331
1079 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
1080 not currently_expanding_to_rtl.
1082 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
1084 * doc/invoke.texi (-Os): Remove trailing spaces.
1085 (-finline-functions): Remove reference to -O2.
1087 2019-01-08 Jakub Jelinek <jakub@redhat.com>
1089 PR rtl-optimization/79593
1090 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
1092 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
1093 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
1095 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
1098 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
1102 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
1103 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
1105 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
1108 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
1109 ix86_avx_u128_mode_entry.
1111 2019-01-08 Martin Liska <mliska@suse.cz>
1113 PR tree-optimization/88753
1114 * tree-switch-conversion.c (switch_conversion::build_one_array):
1115 Come up with local variable constructor. Convert first to
1116 type of constructor values.
1118 2019-01-08 Richard Biener <rguenther@suse.de>
1120 PR tree-optimization/86554
1121 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
1122 rpo_avail): Move earlier.
1123 (visit_nary_op): When value-numbering to expressions
1124 with different overflow behavior make sure there's an
1125 available expression on the path.
1127 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
1129 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
1130 aarch64_parse_branch_protection,
1131 struct aarch64_branch_protect_type,
1132 aarch64_handle_no_branch_protection,
1133 aarch64_handle_standard_branch_protection,
1134 aarch64_validate_mbranch_protection,
1135 aarch64_handle_pac_ret_protection,
1136 aarch64_handle_attr_branch_protection,
1137 accepted_branch_protection_string,
1138 aarch64_pac_ret_subtypes,
1139 aarch64_branch_protect_types,
1140 aarch64_handle_pac_ret_leaf): Define.
1141 (aarch64_override_options_after_change_1, aarch64_override_options):
1142 Add check for accepted_branch_protection_string.
1143 (aarch64_option_save): Save accepted_branch_protection_string.
1144 (aarch64_option_restore): Save accepted_branch_protection_string.
1145 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
1146 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
1147 msign-return-address.
1148 * doc/invoke.texi: Add mbranch-protection.
1150 2019-01-08 Alan Modra <amodra@gmail.com>
1153 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
1154 Delete "unknownp" parameter. Adjust callers. Handle
1155 CONST_INT, PLUS, MINUS, and MULT.
1156 (attr_value_aligned): Renamed from or_attr_value.
1157 (min_attr_value): Return INT_MIN for unhandled rtl case..
1158 (min_fn): ..and translate to INT_MAX here.
1159 (write_length_unit_log): Modify to cope without "unknown".
1160 (write_attr_value): Handle IF_THEN_ELSE.
1162 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
1164 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
1165 optimization for masked stores.
1167 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
1170 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
1171 output vector directly to duplicate_and_interleave instead of
1172 going through a temporary. Postpone insertion of ctor_seq to
1173 the end of the loop.
1175 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
1178 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
1179 unsigned_p. Handle signed and unsigned overflow correction as
1181 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
1183 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
1185 (add<mode>3_compareV_imm): Make this callable for expanding.
1186 (subv<GPI:mode>4): Use register_operand for operand 1. Use
1187 aarch64_plus_operand for operand 2.
1188 (subv<GPI:mode>_insn): New insn pattern.
1189 (subv<GPI:mode>_imm): Likewise.
1190 (negv<GPI:mode>3): New expand pattern.
1191 (negv<GPI:mode>_insn): New insn pattern.
1192 (negv<GPI:mode>_cmp_only): Likewise.
1193 (cmpv<GPI:mode>_insn): Likewise.
1194 (subvti4): Use register_operand for operand 1. Update call to
1195 aarch64_expand_subvti.
1196 (usubvti4): Likewise.
1197 (negvti3): New expand pattern.
1198 (negdi_carryout): New insn pattern.
1199 (negvdi_carryinV): New insn pattern.
1200 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
1201 version the named version.
1202 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
1204 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
1206 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
1208 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
1209 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
1210 (sub<mode>3_carryinCV): Delete.
1211 (sub<GPI:mode>3_carryinV): New expand pattern.
1212 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
1214 2019-01-07 Richard Biener <rguenther@suse.de>
1216 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
1217 of tree_operand_hash.
1219 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
1221 PR tree-optimization/88598
1222 * tree.h (single_nonzero_element): Declare.
1223 * tree.c (single_nonzero_element): New function.
1224 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
1225 if I is the only nonzero element of CST.
1227 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
1229 PR tree-optimization/88598
1230 * tree.h (initializer_each_zero_or_onep): Declare.
1231 * tree.c (initializer_each_zero_or_onep): New function.
1232 (signed_or_unsigned_type_for): Handle float types too.
1233 (unsigned_type_for, signed_type_for): Update comments accordingly.
1234 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
1235 x & { 0 or -1, 0 or -1, ... }.
1237 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
1239 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
1240 with x86_64-pc-linux-gnu.
1242 2019-01-07 Tom de Vries <tdevries@suse.de>
1245 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
1247 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
1250 2019-01-07 Jakub Jelinek <jakub@redhat.com>
1252 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
1253 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
1254 TARGET_AVX512F as condition.
1257 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
1258 const_not_ok_for_debug_p target hook.
1259 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
1260 on UNSPEC and subexpressions thereof if all subexpressions of the
1261 UNSPEC are CONSTANT_P.
1263 PR tree-optimization/88676
1264 * tree-ssa-phiopt.c (two_value_replacement): New function.
1265 (tree_ssa_phiopt_worker): Call it.
1268 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
1269 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
1272 * tree-vect-generic.c: Include insn-config.h and recog.h.
1273 (expand_vector_piecewise): Add defaulted ret_type argument,
1274 if non-NULL, use that in preference to type for the result type.
1275 (expand_vector_parallel): Formatting fix.
1276 (do_vec_conversion, do_vec_narrowing_conversion,
1277 expand_vector_conversion): New functions.
1278 (expand_vector_operations_1): Call expand_vector_conversion
1279 for VEC_CONVERT ifn calls.
1280 * internal-fn.def (VEC_CONVERT): New internal function.
1281 * internal-fn.c (expand_VEC_CONVERT): New function.
1282 * fold-const-call.c (fold_const_vec_convert): New function.
1283 (fold_const_call): Use it for CFN_VEC_CONVERT.
1284 * doc/extend.texi (__builtin_convertvector): Document.
1286 2019-01-07 Tom de Vries <tdevries@suse.de>
1288 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
1289 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
1290 vector_red_partition, vector_red_sym): New global variables.
1291 (nvptx_option_override): Initialize vector_red_sym.
1292 (nvptx_declare_function_name): Restore red_partition register.
1293 (nvptx_file_end): Emit code to declare the vector reduction variables.
1294 (nvptx_output_red_partition): New function.
1295 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
1296 large vector reductions.
1297 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
1298 (nvptx_init_builtins): Add VECTOR_ADDR.
1299 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
1300 Handle nvptx_expand_shared_addr.
1301 (nvptx_get_shared_red_addr): Add vector argument and handle large
1303 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
1305 (nvptx_goacc_reduction_init): Likewise.
1306 (nvptx_goacc_reduction_fini): Likewise.
1307 (nvptx_goacc_reduction_teardown): Likewise.
1308 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
1309 init,fini,teardown}.
1310 (nvptx_init_axis_predicate): Initialize vector_red_partition.
1311 (nvptx_set_current_function): Init vector_red_partition.
1312 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
1313 (nvptx_red_partition): New insn.
1314 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
1316 2019-01-07 Tom de Vries <tdevries@suse.de>
1319 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
1322 2019-01-07 Tom de Vries <tdevries@suse.de>
1324 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
1325 (nvptx_option_override): Init oacc_bcast_partition.
1326 (nvptx_init_oacc_workers): New function.
1327 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
1328 (nvptx_needs_shared_bcast): New function.
1329 (nvptx_find_par): Generalize to enable vectors to use shared-memory
1331 (nvptx_shared_propagate): Initialize vector bcast partition and
1332 synchronization state.
1333 (nvptx_single): Generalize to enable vectors to use shared-memory
1335 (nvptx_process_pars): Likewise.
1336 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
1337 * config/nvptx/nvptx.h (struct machine_function): Add
1338 bcast_partition and sync_bar members.
1340 2019-01-07 Tom de Vries <tdevries@suse.de>
1342 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
1343 (nvptx_apply_dim_limits): New function.
1344 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
1347 2019-01-07 Tom de Vries <tdevries@suse.de>
1349 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
1350 as late as possible.
1352 2019-01-07 Tom de Vries <tdevries@suse.de>
1354 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
1355 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
1356 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
1357 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
1358 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
1360 2019-01-07 Tom de Vries <tdevries@suse.de>
1362 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
1364 2019-01-07 Tom de Vries <tdevries@suse.de>
1366 * omp-offload.c (oacc_get_min_dim): New function.
1367 * omp-offload.h (oacc_get_min_dim): Declare.
1369 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
1372 * config/i386/i386.c (function_value_ms_64): Return small sturct in
1373 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
1375 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1379 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
1381 * ipa-inline.c (edge_badness): Use inlined_time instead of
1382 inline_summaries->get.
1384 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1386 * opts.c (enable_fdo_optimizations): Enable
1387 version-loops-for-strides, loop-interchange, unrol-and-jam
1388 and tree-loop-distribution.
1389 * invoke.texi: Document newly enabled options.
1391 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1393 * doc/invoke.texi (max-inline-insns-small): New parameters.
1394 * ipa-inline.c (want_early_inline_function_p): simplify.
1395 (want_inline_small_function_p): Fix pasto from previous patch;
1396 use max-inline-insns-small bound.
1397 * params.def (max-inline-insns-small): New param.
1398 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
1399 variables correctly.
1401 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1403 * doc/invoke.texi: Document max-inline-insns-size,
1404 uninlined-function-insns, uninlined-function-time,
1405 uninlined-thunk-insns and uninlined-thunk-time.
1406 * params.def: Add max-inline-insns-size,
1407 uninlined-function-insns, uninlined-function-time,
1408 uninlined-thunk-insns and uninlined-thunk-time.
1409 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
1411 * ipa-inline.c (can_inline_edge_by_limits_p,
1412 want_inline_small_function_p): Use new parameters.
1414 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1416 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
1418 2019-01-05 Jakub Jelinek <jakub@redhat.com>
1422 * expr.c (expand_assignment): For calls returning VLA structures
1423 if to_rtx is not a MEM, force it into a stack temporary.
1426 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
1427 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
1428 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
1429 subexpressions of both operands.
1430 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
1431 subrtxes are CONSTANT_P.
1432 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
1435 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
1437 * params.def (hot-bb-count-ws-permille): Set to 990.
1439 2019-01-04 Martin Sebor <msebor@redhat.com>
1442 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
1445 2019-01-04 Martin Sebor <msebor@redhat.com>
1448 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
1450 2019-01-04 Jakub Jelinek <jakub@redhat.com>
1452 * gdbinit.in: Turn off pagination for the skip commands, restore
1453 it to previous state afterwards.
1455 2019-01-04 Sam Tebbs <sam.tebbs@arm.com>
1458 * gcc.target/aarch64/combine_bfxil.c: Change scan-assembler-times bfxil
1461 2019-01-04 Jakub Jelinek <jakub@redhat.com>
1464 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
1465 of GET_MODE (opN) as modes of the libcall arguments.
1467 2019-01-04 Jan Beulich <jbeulich@suse.com>
1469 * config/i386/sse.md
1470 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
1471 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
1472 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
1473 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
1474 avx512f_vmcmp<mode>3<round_saeonly_name>,
1475 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
1476 avx512f_maskcmp<mode>3,
1477 <avx512>_cvt<ssemodesuffix>2mask<mode>,
1478 <avx512>_cvt<ssemodesuffix>2mask<mode>,
1479 *<avx512>_cvtmask2<ssemodesuffix><mode>,
1480 *<avx512>_cvtmask2<ssemodesuffix><mode>,
1481 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
1482 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
1483 <avx512>_gt<mode>3<mask_scalar_merge_name>,
1484 <avx512>_gt<mode>3<mask_scalar_merge_name>,
1485 <avx512>_testm<mode>3<mask_scalar_merge_name>,
1486 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
1487 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
1488 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
1489 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
1490 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
1491 avx512cd_maskb_vec_dup<mode>,
1492 avx512cd_maskw_vec_dup<mode>,
1493 avx512dq_fpclass<mode><mask_scalar_merge_name>,
1494 avx512dq_vmfpclass<mode>,
1495 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
1498 2019-01-03 Martin Sebor <msebor@redhat.com>
1500 PR tree-optimization/88659
1501 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
1503 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
1505 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
1506 unaligned vsx and avoid lxvd2x/stxvd2x.
1507 (gen_lvx_v4si_move): New function.
1509 2019-01-03 Tom de Vries <tdevries@suse.de>
1511 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
1512 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
1514 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
1516 2019-01-03 Tom de Vries <tdevries@suse.de>
1518 * config/nvptx/nvptx.c (struct offload_attrs): New.
1519 (populate_offload_attrs): New function. Factor mask extraction out of
1520 nvptx_reorg. Add extraction of dimensions.
1521 (nvptx_reorg): Use populate_offload_attrs.
1523 2019-01-03 Tom de Vries <tdevries@suse.de>
1525 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
1526 cases for oacc_min_dims_p and routine_p. Add asserts for
1527 oacc_default_dims_p and offload_region_p.
1529 2019-01-03 Tom de Vries <tdevries@suse.de>
1531 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
1533 (nvptx_goacc_validate_dims): ... here.
1535 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
1537 PR tree-optimization/85574
1538 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
1540 (struct ssa_equip_hash_traits): Declare.
1541 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
1543 2019-01-03 Jakub Jelinek <jakub@redhat.com>
1546 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
1547 change it to qualified_type.
1549 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
1551 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
1552 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
1554 2019-01-02 Martin Sebor <msebor@redhat.com>
1555 Jeff Law <law@redhat.com>
1557 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
1558 (get_range_strlen_tree): Update appropriately.
1560 * gimple-fold.h (get_range_strlen): Drop unused last argument.
1562 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
1563 rather than set_range_info.
1564 * tree-ssa-strlen.c (set_strlen_range): Extracted from
1565 maybe_set_strlen_range. Handle potentially boundary crossing
1566 cases more conservatively.
1567 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
1568 Call set_strlen_range.
1569 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
1572 * gimple-fold.c (get_range_strlen): Update prototype to no longer
1573 need the flexp argument.
1574 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
1575 from calls to get_range_strlen. Update comments. Just update
1576 VAL for an unterminated const char array and let the reset of the
1577 code handle it normally. No longer try to set *flexp. Adjust
1579 (get_range_strlen): Update for the new get_range_strlen API.
1580 (get_maxval_strlen): Similarly.
1581 (gimple_fold_builtin_strlen): Handle update meaning of return value
1582 from get_range_strlen.
1583 * gimple-ssa-sprintf.c (get_string_length): Update for the new
1584 get_range_strlen API.
1586 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
1589 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
1590 false at WPA time when body was removed.
1592 2019-01-02 Martin Liska <mliska@suse.cz>
1594 PR tree-optimization/88650
1595 * predict.c (set_even_probabilities): Calculate probability
1596 remainer only when really used.
1598 2019-01-02 Richard Biener <rguenther@suse.de>
1601 * tree-data-ref.c (analyze_subscript_affine_affine): Use
1602 widest_ints when mangling max_stmt_execution results.
1604 2019-01-02 Richard Biener <rguenther@suse.de>
1606 PR tree-optimization/88621
1607 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
1608 bitfields when canoncalizing.
1610 2019-01-02 Richard Biener <rguenther@suse.de>
1613 * config/i386/x86-tune-costs.h (intel_cost): Adjust
1614 cost of cheap SSE instruction.
1616 2019-01-02 Richard Biener <rguenther@suse.de>
1619 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
1620 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
1622 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
1623 set after UIDs before splitting them.
1625 2019-01-01 Martin Sebor <msebor@redhat.com>
1626 Jeff Law <law@redhat.com>
1628 * gimple-fold.c (get_range_strlen_tree): Record if the computed
1629 length is optimistic. If it is, then arrange to compute the
1630 conservative length as well.
1632 * gimple-fold.h (get_range_strlen): Update prototype.
1633 * builtins.c (check_access): Update call to get_range_strlen to use
1634 c_strlen_data pointer. Change various variable accesses to instead
1635 pull data from the c_strlen_data structure.
1636 (check_strncat_sizes, expand_builtin_strncat): Likewise.
1637 * calls.c (maybe_warn_nonstring_arg): Likewise.
1638 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
1639 minimum length if maximum lengh is unknown.
1640 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
1641 that used c_strlen, it's no longer needed. Restructure slightly.
1642 (format_string): Set unlikely range appropriately.
1643 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
1645 (get_range_strlen): Accept c_strlen_data pointer for external
1646 call sites as well. Pass through to call to internal get_range_strlen.
1647 Adjust minlen, maxlen and maxbound as needed.
1648 (get_maxval_strlen): Update comments.
1649 (gimple_fold_builtin_strlen): Update call to get_range_strlen
1650 to use c_strlen_data pointer. Change variable accesses to instead
1651 use c_strlen_data data members.
1653 * gimple-fold.c (get_range_strlen): Update prototype.
1654 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
1655 local variables. Use pdata to return information to caller.
1656 Update calls to get_range_strlen. Update pdata->maxbound.
1657 (get_range_strlen -- static version): Similarly.
1658 (get_range_strlen -- extern version): Update for internal
1659 get_range_strlen API change. Convert to external data format.
1660 (get_maxval_strlen): Similarly.
1662 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
1664 * coverage.c (get_coverage_counts): Use current_function_decl.
1665 * profile.c (read_thunk_profile): New function.
1666 (branch_prob): Add THUNK parameter.
1667 * tree-profile.c (tree_profiling): Handle thunks.
1668 * value-prof.c (init_node_map): Handle thunks.
1669 * value-prof.h (branch_prob): Upate prototype.
1670 (read_thunk_profile): Declare.
1672 2019-01-01 Jakub Jelinek <jakub@redhat.com>
1674 Update copyright years.
1676 * gcc.c (process_command): Update copyright notice dates.
1677 * gcov-dump.c (print_version): Ditto.
1678 * gcov.c (print_version): Ditto.
1679 * gcov-tool.c (print_version): Ditto.
1680 * gengtype.c (create_file): Ditto.
1681 * doc/cpp.texi: Bump @copying's copyright year.
1682 * doc/cppinternals.texi: Ditto.
1683 * doc/gcc.texi: Ditto.
1684 * doc/gccint.texi: Ditto.
1685 * doc/gcov.texi: Ditto.
1686 * doc/install.texi: Ditto.
1687 * doc/invoke.texi: Ditto.
1689 Copyright (C) 2019 Free Software Foundation, Inc.
1691 Copying and distribution of this file, with or without modification,
1692 are permitted in any medium without royalty provided the copyright
1693 notice and this notice are preserved.