From: Wilco Dijkstra Date: Fri, 23 Aug 2019 14:53:45 +0000 (+0000) Subject: [ARM] Deprecate -mneon-for-64bits X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bf1a58e9be6a6a18b348812be19d965ce0111c7d;p=gcc.git [ARM] Deprecate -mneon-for-64bits Deprecate -mneon-for-64bits since it no longer has any effect after the DImode codegen improvements. gcc/ * gcc/doc/invoke.texi (mneon-for-64bits): Deprecate option. * gcc/config/arm/arm.opt (mneon-for-64bits): Deprecate option. * gcc/config/arm/arm.h (TARGET_PREFER_NEON_64BITS): Remove. (prefer_neon_for_64bits): Remove. * gcc/config/arm/arm.c (prefer_neon_for_64bits): Remove. (tune_params): Remove PREF_NEON_64_FALSE uses. (arm_option_override): Remove prefer_neon selection code. (arm_print_tune_info): Remove prefer_neon_for_64bits. * gcc/config/arm/arm-protos.h (tune_params): Remove prefer_neon_for_64bits. (prefer_neon_for_64bits): Remove. From-SVN: r274858 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 86669dd5cf3..3fbdb937f21 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,17 @@ +2019-08-23 Wilco Dijkstra + + * gcc/doc/invoke.texi (mneon-for-64bits): Deprecate option. + * gcc/config/arm/arm.opt (mneon-for-64bits): Deprecate option. + * gcc/config/arm/arm.h (TARGET_PREFER_NEON_64BITS): Remove. + (prefer_neon_for_64bits): Remove. + * gcc/config/arm/arm.c (prefer_neon_for_64bits): Remove. + (tune_params): Remove PREF_NEON_64_FALSE uses. + (arm_option_override): Remove prefer_neon selection code. + (arm_print_tune_info): Remove prefer_neon_for_64bits. + * gcc/config/arm/arm-protos.h (tune_params): Remove + prefer_neon_for_64bits. + (prefer_neon_for_64bits): Remove. + 2019-08-23 Iain Sandoe PR pch/61250 diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h index bf2bf1c3b05..8386d89fc0b 100644 --- a/gcc/config/arm/arm-protos.h +++ b/gcc/config/arm/arm-protos.h @@ -327,7 +327,6 @@ struct tune_params /* Prefer 32-bit encoding instead of flag-setting 16-bit encoding. */ enum {DISPARAGE_FLAGS_NEITHER, DISPARAGE_FLAGS_PARTIAL, DISPARAGE_FLAGS_ALL} disparage_flag_setting_t16_encodings: 2; - enum {PREF_NEON_64_FALSE, PREF_NEON_64_TRUE} prefer_neon_for_64bits: 1; /* Prefer to inline string operations like memset by using Neon. */ enum {PREF_NEON_STRINGOPS_FALSE, PREF_NEON_STRINGOPS_TRUE} string_ops_prefer_neon: 1; @@ -472,10 +471,6 @@ extern int arm_arch_thumb_hwdiv; /* Nonzero if chip disallows volatile memory access in IT block. */ extern int arm_arch_no_volatile_ce; -/* Nonzero if we should use Neon to handle 64-bits operations rather - than core registers. */ -extern int prefer_neon_for_64bits; - /* Structure defining the current overall architectural target and tuning. */ struct arm_build_target { diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 3343a7e4639..a34cb7495f0 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -949,10 +949,6 @@ int arm_arch_thumb_hwdiv; /* Nonzero if chip disallows volatile memory access in IT block. */ int arm_arch_no_volatile_ce; -/* Nonzero if we should use Neon to handle 64-bits operations rather - than core registers. */ -int prefer_neon_for_64bits = 0; - /* Nonzero if we shouldn't use literal pools. */ bool arm_disable_literal_pool = false; @@ -1810,7 +1806,6 @@ const struct tune_params arm_slowmul_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_FALSE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -1833,7 +1828,6 @@ const struct tune_params arm_fastmul_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_FALSE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -1859,7 +1853,6 @@ const struct tune_params arm_strongarm_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_FALSE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -1882,7 +1875,6 @@ const struct tune_params arm_xscale_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_FALSE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -1905,7 +1897,6 @@ const struct tune_params arm_9e_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_FALSE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -1928,7 +1919,6 @@ const struct tune_params arm_marvell_pj4_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_FALSE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -1951,7 +1941,6 @@ const struct tune_params arm_v6t2_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_FALSE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -1976,7 +1965,6 @@ const struct tune_params arm_cortex_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_FALSE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -1999,7 +1987,6 @@ const struct tune_params arm_cortex_a8_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_TRUE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -2022,7 +2009,6 @@ const struct tune_params arm_cortex_a7_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_TRUE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -2045,7 +2031,6 @@ const struct tune_params arm_cortex_a15_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_ALL, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_TRUE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_FULL @@ -2068,7 +2053,6 @@ const struct tune_params arm_cortex_a35_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_TRUE, FUSE_OPS (tune_params::FUSE_MOVW_MOVT), tune_params::SCHED_AUTOPREF_OFF @@ -2091,7 +2075,6 @@ const struct tune_params arm_cortex_a53_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_TRUE, FUSE_OPS (tune_params::FUSE_MOVW_MOVT | tune_params::FUSE_AES_AESMC), tune_params::SCHED_AUTOPREF_OFF @@ -2114,7 +2097,6 @@ const struct tune_params arm_cortex_a57_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_ALL, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_TRUE, FUSE_OPS (tune_params::FUSE_MOVW_MOVT | tune_params::FUSE_AES_AESMC), tune_params::SCHED_AUTOPREF_FULL @@ -2137,7 +2119,6 @@ const struct tune_params arm_exynosm1_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_FALSE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_FALSE, /* ARM. */ tune_params::DISPARAGE_FLAGS_ALL, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_TRUE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -2160,7 +2141,6 @@ const struct tune_params arm_xgene1_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_ALL, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_FALSE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -2186,7 +2166,6 @@ const struct tune_params arm_cortex_a5_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_FALSE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_FALSE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_TRUE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -2209,7 +2188,6 @@ const struct tune_params arm_cortex_a9_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_FALSE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -2232,7 +2210,6 @@ const struct tune_params arm_cortex_a12_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_ALL, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_TRUE, FUSE_OPS (tune_params::FUSE_MOVW_MOVT), tune_params::SCHED_AUTOPREF_OFF @@ -2255,7 +2232,6 @@ const struct tune_params arm_cortex_a73_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_ALL, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_TRUE, FUSE_OPS (tune_params::FUSE_AES_AESMC | tune_params::FUSE_MOVW_MOVT), tune_params::SCHED_AUTOPREF_FULL @@ -2285,7 +2261,6 @@ const struct tune_params arm_v7m_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_FALSE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_FALSE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_FALSE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -2310,7 +2285,6 @@ const struct tune_params arm_cortex_m7_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_FALSE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -2336,7 +2310,6 @@ const struct tune_params arm_v6m_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_FALSE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_FALSE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_FALSE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -2359,7 +2332,6 @@ const struct tune_params arm_fa726te_tune = tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */ tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */ tune_params::DISPARAGE_FLAGS_NEITHER, - tune_params::PREF_NEON_64_FALSE, tune_params::PREF_NEON_STRINGOPS_FALSE, tune_params::FUSE_NOTHING, tune_params::SCHED_AUTOPREF_OFF @@ -3568,12 +3540,6 @@ arm_option_override (void) global_options.x_param_values, global_options_set.x_param_values); - /* Use Neon to perform 64-bits operations rather than core - registers. */ - prefer_neon_for_64bits = current_tune->prefer_neon_for_64bits; - if (use_neon_for_64bits == 1) - prefer_neon_for_64bits = true; - /* Use the alternative scheduling-pressure algorithm by default. */ maybe_set_param_value (PARAM_SCHED_PRESSURE_ALGORITHM, SCHED_PRESSURE_MODEL, global_options.x_param_values, @@ -26520,9 +26486,6 @@ arm_print_tune_info (void) "logical_op_non_short_circuit:\t[%d,%d]\n", (int) current_tune->logical_op_non_short_circuit_thumb, (int) current_tune->logical_op_non_short_circuit_arm); - asm_fprintf (asm_out_file, "\t\t" ASM_COMMENT_START - "prefer_neon_for_64bits:\t%d\n", - (int) current_tune->prefer_neon_for_64bits); asm_fprintf (asm_out_file, "\t\t" ASM_COMMENT_START "disparage_flag_setting_t16_encodings:\t%d\n", (int) current_tune->disparage_flag_setting_t16_encodings); diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index 4866e1e4b7d..8b92c830de0 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -313,9 +313,6 @@ emission of floating point pcs attributes. */ /* Nonzero if disallow volatile memory access in IT block. */ #define TARGET_NO_VOLATILE_CE (arm_arch_no_volatile_ce) -/* Should NEON be used for 64-bits bitops. */ -#define TARGET_PREFER_NEON_64BITS (prefer_neon_for_64bits) - /* Should constant I be slplit for OP. */ #define DONT_EARLY_SPLIT_CONSTANT(i, op) \ ((optimize >= 2) \ @@ -509,10 +506,6 @@ extern int arm_arch_thumb_hwdiv; /* Nonzero if chip disallows volatile memory access in IT block. */ extern int arm_arch_no_volatile_ce; -/* Nonzero if we should use Neon to handle 64-bits operations rather - than core registers. */ -extern int prefer_neon_for_64bits; - /* Nonzero if we shouldn't use literal pools. */ #ifndef USED_FOR_TARGET extern bool arm_disable_literal_pool; diff --git a/gcc/config/arm/arm.opt b/gcc/config/arm/arm.opt index 9067d491b9c..5ecc5e5c91c 100644 --- a/gcc/config/arm/arm.opt +++ b/gcc/config/arm/arm.opt @@ -276,8 +276,8 @@ Target Report Var(unaligned_access) Init(2) Save Enable unaligned word and halfword accesses to packed data. mneon-for-64bits -Target Report RejectNegative Var(use_neon_for_64bits) Init(0) -Use Neon to perform 64-bits operations rather than core registers. +Target Deprecated +This option is deprecated and has no effect. mslow-flash-data Target Report Var(target_slow_flash_data) Init(0) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 7a356840d78..549e043c67c 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -18005,9 +18005,7 @@ defined. @item -mneon-for-64bits @opindex mneon-for-64bits -Enables using Neon to handle scalar 64-bits operations. This is -disabled by default since the cost of moving data from core registers -to Neon is high. +This option is deprecated and has no effect. @item -mslow-flash-data @opindex mslow-flash-data