]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/ChangeLog
[Arm] Add 16-bit thumb alternatives to iorsi3_compare0[_scratch]
[thirdparty/gcc.git] / gcc / ChangeLog
index e57cc99779bef93d55f482693bd67923f74a18eb..93e8420ea93549588d7b6e8cb6fb090173456260 100644 (file)
@@ -1,3 +1,247 @@
+2019-08-22  Richard Earnshaw  <rearnsha@arm.com>
+
+       * config/arm/arm.md (iorsi3_compare0): Add alternative for 16-bit thumb
+       insn.
+       (iorsi3_compare0_scratch): Likewise.
+
+2019-08-22  Sylvia Taylor  <sylvia.taylor@arm.com>
+
+       * config/aarch64/aarch64-simd-builtins.def:
+       (ld1x4): New.
+       (st1x4): Likewise.
+       * config/aarch64/aarch64-simd.md:
+       (aarch64_ld1x4<VALLDIF:mode>): New pattern.
+       (aarch64_st1x4<VALLDIF:mode>): Likewise.
+       (aarch64_ld1_x4_<mode>): Likewise.
+       (aarch64_st1_x4_<mode>): Likewise.
+       * config/aarch64/arm_neon.h:
+       (vld1_s8_x4): New function.
+       (vld1q_s8_x4): Likewise.
+       (vld1_s16_x4): Likewise.
+       (vld1q_s16_x4): Likewise.
+       (vld1_s32_x4): Likewise.
+       (vld1q_s32_x4): Likewise.
+       (vld1_u8_x4): Likewise.
+       (vld1q_u8_x4): Likewise.
+       (vld1_u16_x4): Likewise.
+       (vld1q_u16_x4): Likewise.
+       (vld1_u32_x4): Likewise.
+       (vld1q_u32_x4): Likewise.
+       (vld1_f16_x4): Likewise.
+       (vld1q_f16_x4): Likewise.
+       (vld1_f32_x4): Likewise.
+       (vld1q_f32_x4): Likewise.
+       (vld1_p8_x4): Likewise.
+       (vld1q_p8_x4): Likewise.
+       (vld1_p16_x4): Likewise.
+       (vld1q_p16_x4): Likewise.
+       (vld1_s64_x4): Likewise.
+       (vld1_u64_x4): Likewise.
+       (vld1_p64_x4): Likewise.
+       (vld1q_s64_x4): Likewise.
+       (vld1q_u64_x4): Likewise.
+       (vld1q_p64_x4): Likewise.
+       (vld1_f64_x4): Likewise.
+       (vld1q_f64_x4): Likewise.
+       (vst1_s8_x4): Likewise.
+       (vst1q_s8_x4): Likewise.
+       (vst1_s16_x4): Likewise.
+       (vst1q_s16_x4): Likewise.
+       (vst1_s32_x4): Likewise.
+       (vst1q_s32_x4): Likewise.
+       (vst1_u8_x4): Likewise.
+       (vst1q_u8_x4): Likewise.
+       (vst1_u16_x4): Likewise.
+       (vst1q_u16_x4): Likewise.
+       (vst1_u32_x4): Likewise.
+       (vst1q_u32_x4): Likewise.
+       (vst1_f16_x4): Likewise.
+       (vst1q_f16_x4): Likewise.
+       (vst1_f32_x4): Likewise.
+       (vst1q_f32_x4): Likewise.
+       (vst1_p8_x4): Likewise.
+       (vst1q_p8_x4): Likewise.
+       (vst1_p16_x4): Likewise.
+       (vst1q_p16_x4): Likewise.
+       (vst1_s64_x4): Likewise.
+       (vst1_u64_x4): Likewise.
+       (vst1_p64_x4): Likewise.
+       (vst1q_s64_x4): Likewise.
+       (vst1q_u64_x4): Likewise.
+       (vst1q_p64_x4): Likewise.
+       (vst1_f64_x4): Likewise.
+       (vst1q_f64_x4): Likewise.
+
+2019-08-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+
+       * config/aarch64/aarch64-sve.md (vcond_mask): Add "@".
+
+2019-08-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+           Richard Sandiford  <richard.sandiford@arm.com>
+
+       PR target/88839
+       * config/aarch64/aarch64.c (aarch64_evpc_sel): New function.
+       (aarch64_expand_vec_perm_const_1): Call aarch64_evpc_sel.
+
+2019-08-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+
+       PR target/90724
+       * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y
+       in reg if it fails aarch64_plus_operand predicate.
+
+2019-08-21  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/91482
+       * tree-ssa-ccp.c (ccp_folder::fold_stmt): Remove useless
+       BUILT_IN_ASSUME_ALIGNED calls.
+
+2019-08-21  Richard Biener  <rguenther@suse.de>
+
+       PR target/91498
+       PR target/91503
+       * config/i386/i386-features.c
+       (general_scalar_chain::make_vector_copies): Copy stack temporary
+       rtx when using it multiple times.
+       (general_scalar_chain::convert_reg): Likewise.
+
+2019-08-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+
+       * function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==.
+
+2019-08-20  Matthew Beliveau  <mbelivea@redhat.com>
+
+       * tree-ssa-dse.c (dse_optimize_redundant_stores): Improved check to
+       catch more redundant zero initialization cases.
+       (dse_dom_walker::dse_optimize_stmt): Likewise.
+
+2019-08-20  Richard Biener  <rguenther@suse.de>
+
+       PR lto/91307
+       * ipa.c (cgraph_build_static_cdtor_1): Use names not recognizable
+       by collect2 when targetm.have_ctors_dtors which avoids dragging
+       in temporary filenames from LTO input objects.
+
+2019-08-20  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/37242
+       * tree-ssa-sccvn.c (visit_nary_op): Also CSE (T)(a + b)
+       to (T)a + (T)b if we know that a + b does not overflow.
+
+2019-08-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR rtl-optimization/91347
+       * dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls
+       before reload if HARD_FRAME_POINTER_IS_ARG_POINTER.
+
+2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * calls.h (function_arg_info): Add a pass_by_reference field,
+       defaulting to false.
+       * calls.c (apply_pass_by_reference_rules): Set pass_by_reference
+       when applying pass-by-reference semantics.
+       (initialize_argument_information): Likewise.
+       (emit_library_call_value_1): Likewise.
+       * function.c (assign_parm_data_one): Remove passed_pointer field.
+       (assign_parm_find_data_types): Don't set it.
+       (assign_parm_find_stack_rtl, assign_parm_adjust_stack_rtl)
+       (assign_parm_setup_reg, assign_parms, gimplify_parameters): Use
+       arg.pass_by_reference instead of passed_pointer.
+
+2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * calls.c (emit_library_call_value_1): Merge arg and orig_arg
+       into a single function_arg_info, updating its fields when we
+       apply pass-by-reference and promotion semantics.  Use the
+       function_arg_info to track the mode rather than keeping it in
+       a separate local variable.
+       (initialize_argument_information): Likewise.  Base the final
+       arg_to_skip on this new function_arg_info rather than creating
+       a new one from scratch.
+
+2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * function.c (assign_parm_data_one): Replace passed_type,
+       promoted_mode and named_arg with a function_arg_info field.
+       (assign_parm_find_data_types): Remove local variables and
+       assign directly to "data".  Make data->passed_mode shadow
+       data->arg.mode until promotion, then assign the promoted
+       mode to data->arg.mode.
+       (assign_parms_setup_varargs, assign_parm_find_entry_rtl)
+       (assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl)
+       (assign_parm_remove_parallels, assign_parm_setup_block_p)
+       (assign_parm_setup_block, assign_parm_setup_reg)
+       (assign_parm_setup_stack, assign_parms, gimplify_parameters): Use
+       arg.mode instead of promoted_mode, arg.type instead of passed_type
+       and arg.named instead of named_arg.  Use data->arg for
+       function_arg_info structures that had the field values passed_type,
+       promoted_mode and named_arg.  Base other function_arg_infos on
+       data->arg, changing the necessary properties.
+
+2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * calls.h (apply_pass_by_reference_rules): Declare.
+       * calls.c (apply_pass_by_reference_rules): New function.
+       * config/c6x/c6x.c (c6x_call_saved_register_used): Use it.
+       * config/rs6000/rs6000-call.c (rs6000_parm_needs_stack): Likewise.
+       * config/s390/s390.c (s390_call_saved_register_used): Likewise.
+       * function.c (assign_parm_find_data_types): Likewise.
+       * var-tracking.c (prepare_call_arguments): Likewise.
+
+2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * target.def (must_pass_in_stack): Take a function_arg_info instead
+       of a mode and a type.
+       * doc/tm.texi: Regenerate.
+       * calls.h (must_pass_in_stack_var_size): Take a function_arg_info
+       instead of a mode and a type.
+       (must_pass_in_stack_var_size_or_pad): Likewise.
+       * calls.c (must_pass_in_stack_var_size): Likewise.
+       (must_pass_in_stack_var_size_or_pad): Likewise.
+       (initialize_argument_information): Update call to
+       targetm.calls.must_pass_in_stack.
+       (must_pass_va_arg_on_stack): Likewise.
+       * function.c (assign_parm_find_entry_rtl): Likewise.
+       * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Likewise.
+       * config/alpha/alpha.c (alpha_function_arg): Likewise.
+       (alpha_function_arg_advance): Likewise.
+       * config/cr16/cr16.c (cr16_function_arg): Likewise.
+       (cr16_function_arg_advance): Likewise.
+       * config/cris/cris.c (cris_pass_by_reference): Likewise.
+       (cris_arg_partial_bytes): Likewise.
+       * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise.
+       * config/lm32/lm32.c (lm32_function_arg): Likewise.
+       * config/mcore/mcore.c (mcore_num_arg_regs): Likewise.
+       (mcore_function_arg, mcore_arg_partial_bytes): Likewise.
+       * config/mips/mips.c (mips_pass_by_reference): Likewise.
+       * config/mmix/mmix.c (mmix_function_arg_advance): Likewise.
+       (mmix_function_arg_1, mmix_pass_by_reference): Likewise.
+       * config/sh/sh.c (sh_pass_by_reference): Likewise.
+       * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise.
+       * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
+       * config/arm/arm.c (arm_must_pass_in_stack): Take a function_arg_info
+       instead of a mode and a type.
+       * config/fr30/fr30.c (fr30_must_pass_in_stack): Likewise.
+       (fr30_num_arg_regs): Likewise.
+       (fr30_setup_incoming_varargs): Update calls accordingly.
+       (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
+       (fr30_function_arg_advance): Likewise.
+       * config/frv/frv.c (frv_must_pass_in_stack): Take a function_arg_info
+       instead of a mode and a type.
+       * config/gcn/gcn.c (num_arg_regs): Likewise.
+       (gcn_function_arg, gcn_function_arg_advance): Update calls to
+       num_arg_regs and targetm.calls.must_pass_in_stack.
+       (gcn_arg_partial_bytes): Likewise.
+       * config/i386/i386.c (ix86_must_pass_in_stack): Take a
+       function_arg_info instead of a mode and a type.
+       (classify_argument): Update call accordingly.
+       * config/nds32/nds32.c (nds32_must_pass_in_stack): Take a
+       function_arg_info instead of a mode and a type.
+       * config/rs6000/rs6000-internal.h (rs6000_must_pass_in_stack):
+       Likewise.
+       * config/rs6000/rs6000-call.c (rs6000_must_pass_in_stack): Likewise.
+       (rs6000_parm_needs_stack): Update call accordingly.
+       (setup_incoming_varargs): Likewise.
+
 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
 
        * target.def (callee_copies): Take a function_arg_info instead