Message ID | VI1PR0801MB2127326A2B9201D966B9BF8583A40@VI1PR0801MB2127.eurprd08.prod.outlook.com |
---|---|
State | New |
Headers | show |
Series | [ARM] Deprecate -mneon-for-64bits | expand |
Hi Wilco, On 8/23/19 1:21 PM, Wilco Dijkstra wrote: > Hi, > > As Kyrill suggested in > https://gcc.gnu.org/ml/gcc-patches/2019-08/msg01551.html > -mneon-for-64bits has no effect anymore so we should deprecate it in > GCC10: > > Deprecate -mneon-for-64bits since it no longer has any effect after > the DImode codegen improvements. > > OK for commit? > > ChangeLog: > > 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com> > > * gcc/config/arm/arm.opt (mneon-for-64bits): Deprecate. > * 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. > Please also adjust the documentation in doc/invoke.texi to say it's deprecated and has no effect. > -- > > diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h > index > bf2bf1c3b050365449b422976d7c0b39245f1490..8386d89fc0b955e85692f87fedd8710010ad2a35 > 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.h b/gcc/config/arm/arm.h > index > 50cb2c92e2c89562407fb89008b69f35b2a61fbe..8d023389eec469ad9c8a4e88edebdad5f3c23769 > 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.c b/gcc/config/arm/arm.c > index > 38ac16ad1def91ca78ccfa98fd1679b2b5114851..5ea3409c8fa632b1a9959181de27f1dfa286a4d8 > 100644 > --- a/gcc/config/arm/arm.c > +++ b/gcc/config/arm/arm.c > @@ -950,10 +950,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; > > @@ -1811,7 +1807,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 > @@ -1834,7 +1829,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 > @@ -1860,7 +1854,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 > @@ -1883,7 +1876,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 > @@ -1906,7 +1898,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 > @@ -1929,7 +1920,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 > @@ -1952,7 +1942,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 > @@ -1977,7 +1966,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 > @@ -2000,7 +1988,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 > @@ -2023,7 +2010,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 > @@ -2046,7 +2032,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 > @@ -2069,7 +2054,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 > @@ -2092,7 +2076,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 > @@ -2115,7 +2098,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 > @@ -2138,7 +2120,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 > @@ -2161,7 +2142,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 > @@ -2184,7 +2164,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 > @@ -2207,7 +2186,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 > @@ -2230,7 +2208,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 > @@ -2253,7 +2230,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 > @@ -2283,7 +2259,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 > @@ -2308,7 +2283,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 > @@ -2334,7 +2308,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 > @@ -2357,7 +2330,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 > @@ -3571,12 +3543,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; > - > /* Look through ready list and all of queue for instructions > relevant for L2 auto-prefetcher. */ > int param_sched_autopref_queue_depth; > @@ -26524,9 +26490,6 @@ arm_print_tune_info (void) > (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); > asm_fprintf (asm_out_file, "\t\t" ASM_COMMENT_START > diff --git a/gcc/config/arm/arm.opt b/gcc/config/arm/arm.opt > index > 9067d491b9c5fd9e1552a912e57d127b7770b858..1dc901499adbc276a26dd0e7f936913f489a148c > 100644 > --- a/gcc/config/arm/arm.opt > +++ b/gcc/config/arm/arm.opt > @@ -277,7 +277,7 @@ 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. > +(Deprecated) I think we need to use the "Deprecated" specifier here and remove the use_neon_for_64bits var. Have a look in common.opt for options marked deprecated Thanks, Kyrill > > mslow-flash-data > Target Report Var(target_slow_flash_data) Init(0) >
Hi Kyrill, > Please also adjust the documentation in doc/invoke.texi to say it's > deprecated and has no effect. Sure, updated docs and also use Deprecated feature in arm.opts: --- 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. --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -17996,9 +17996,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 Updated patch: Deprecate -mneon-for-64bits since it no longer has any effect after the DImode codegen improvements. OK for commit? ChangeLog: 2019-08-23 Wilco Dijkstra <wdijkstr@arm.com> * 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. --- diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h index bf2bf1c3b050365449b422976d7c0b39245f1490..8386d89fc0b955e85692f87fedd8710010ad2a35 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.h b/gcc/config/arm/arm.h index 50cb2c92e2c89562407fb89008b69f35b2a61fbe..8d023389eec469ad9c8a4e88edebdad5f3c23769 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.c b/gcc/config/arm/arm.c index 38ac16ad1def91ca78ccfa98fd1679b2b5114851..5ea3409c8fa632b1a9959181de27f1dfa286a4d8 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -950,10 +950,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; @@ -1811,7 +1807,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 @@ -1834,7 +1829,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 @@ -1860,7 +1854,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 @@ -1883,7 +1876,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 @@ -1906,7 +1898,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 @@ -1929,7 +1920,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 @@ -1952,7 +1942,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 @@ -1977,7 +1966,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 @@ -2000,7 +1988,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 @@ -2023,7 +2010,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 @@ -2046,7 +2032,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 @@ -2069,7 +2054,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 @@ -2092,7 +2076,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 @@ -2115,7 +2098,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 @@ -2138,7 +2120,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 @@ -2161,7 +2142,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 @@ -2184,7 +2164,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 @@ -2207,7 +2186,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 @@ -2230,7 +2208,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 @@ -2253,7 +2230,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 @@ -2283,7 +2259,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 @@ -2308,7 +2283,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 @@ -2334,7 +2308,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 @@ -2357,7 +2330,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 @@ -3571,12 +3543,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; - /* Look through ready list and all of queue for instructions relevant for L2 auto-prefetcher. */ int param_sched_autopref_queue_depth; @@ -26524,9 +26490,6 @@ arm_print_tune_info (void) (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); asm_fprintf (asm_out_file, "\t\t" ASM_COMMENT_START diff --git a/gcc/config/arm/arm.opt b/gcc/config/arm/arm.opt index 9067d491b9c5fd9e1552a912e57d127b7770b858..5ecc5e5c91c521309925d4c14f04644e37f472e6 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 096340cfb6667a3f90ecba93ab975d2b0ef87ad3..669baf06f768fbfee1dc824d687e134f71d3ffca 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -17996,9 +17996,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
On 8/23/19 3:22 PM, Wilco Dijkstra wrote: > Hi Kyrill, > >> Please also adjust the documentation in doc/invoke.texi to say it's >> deprecated and has no effect. > > Sure, updated docs and also use Deprecated feature in arm.opts: > > --- 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. > > --- a/gcc/doc/invoke.texi > +++ b/gcc/doc/invoke.texi > @@ -17996,9 +17996,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 > > > Updated patch: > > Deprecate -mneon-for-64bits since it no longer has any effect after > the DImode codegen improvements. > > OK for commit? > > ChangeLog: > > 2019-08-23 Wilco Dijkstra <wdijkstr@arm.com> > > * 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. Ok. Thanks, Kyrill > > --- > diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h > index bf2bf1c3b050365449b422976d7c0b39245f1490..8386d89fc0b955e85692f87fedd8710010ad2a35 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.h b/gcc/config/arm/arm.h > index 50cb2c92e2c89562407fb89008b69f35b2a61fbe..8d023389eec469ad9c8a4e88edebdad5f3c23769 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.c b/gcc/config/arm/arm.c > index 38ac16ad1def91ca78ccfa98fd1679b2b5114851..5ea3409c8fa632b1a9959181de27f1dfa286a4d8 100644 > --- a/gcc/config/arm/arm.c > +++ b/gcc/config/arm/arm.c > @@ -950,10 +950,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; > > @@ -1811,7 +1807,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 > @@ -1834,7 +1829,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 > @@ -1860,7 +1854,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 > @@ -1883,7 +1876,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 > @@ -1906,7 +1898,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 > @@ -1929,7 +1920,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 > @@ -1952,7 +1942,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 > @@ -1977,7 +1966,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 > @@ -2000,7 +1988,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 > @@ -2023,7 +2010,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 > @@ -2046,7 +2032,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 > @@ -2069,7 +2054,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 > @@ -2092,7 +2076,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 > @@ -2115,7 +2098,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 > @@ -2138,7 +2120,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 > @@ -2161,7 +2142,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 > @@ -2184,7 +2164,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 > @@ -2207,7 +2186,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 > @@ -2230,7 +2208,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 > @@ -2253,7 +2230,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 > @@ -2283,7 +2259,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 > @@ -2308,7 +2283,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 > @@ -2334,7 +2308,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 > @@ -2357,7 +2330,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 > @@ -3571,12 +3543,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; > - > /* Look through ready list and all of queue for instructions > relevant for L2 auto-prefetcher. */ > int param_sched_autopref_queue_depth; > @@ -26524,9 +26490,6 @@ arm_print_tune_info (void) > (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); > asm_fprintf (asm_out_file, "\t\t" ASM_COMMENT_START > diff --git a/gcc/config/arm/arm.opt b/gcc/config/arm/arm.opt > index 9067d491b9c5fd9e1552a912e57d127b7770b858..5ecc5e5c91c521309925d4c14f04644e37f472e6 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 096340cfb6667a3f90ecba93ab975d2b0ef87ad3..669baf06f768fbfee1dc824d687e134f71d3ffca 100644 > --- a/gcc/doc/invoke.texi > +++ b/gcc/doc/invoke.texi > @@ -17996,9 +17996,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
diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h index bf2bf1c3b050365449b422976d7c0b39245f1490..8386d89fc0b955e85692f87fedd8710010ad2a35 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.h b/gcc/config/arm/arm.h index 50cb2c92e2c89562407fb89008b69f35b2a61fbe..8d023389eec469ad9c8a4e88edebdad5f3c23769 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.c b/gcc/config/arm/arm.c index 38ac16ad1def91ca78ccfa98fd1679b2b5114851..5ea3409c8fa632b1a9959181de27f1dfa286a4d8 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -950,10 +950,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; @@ -1811,7 +1807,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 @@ -1834,7 +1829,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 @@ -1860,7 +1854,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 @@ -1883,7 +1876,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 @@ -1906,7 +1898,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 @@ -1929,7 +1920,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 @@ -1952,7 +1942,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 @@ -1977,7 +1966,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 @@ -2000,7 +1988,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 @@ -2023,7 +2010,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 @@ -2046,7 +2032,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 @@ -2069,7 +2054,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 @@ -2092,7 +2076,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 @@ -2115,7 +2098,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 @@ -2138,7 +2120,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 @@ -2161,7 +2142,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 @@ -2184,7 +2164,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 @@ -2207,7 +2186,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 @@ -2230,7 +2208,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 @@ -2253,7 +2230,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 @@ -2283,7 +2259,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 @@ -2308,7 +2283,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 @@ -2334,7 +2308,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 @@ -2357,7 +2330,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 @@ -3571,12 +3543,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; - /* Look through ready list and all of queue for instructions relevant for L2 auto-prefetcher. */ int param_sched_autopref_queue_depth; @@ -26524,9 +26490,6 @@ arm_print_tune_info (void) (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); asm_fprintf (asm_out_file, "\t\t" ASM_COMMENT_START diff --git a/gcc/config/arm/arm.opt b/gcc/config/arm/arm.opt index 9067d491b9c5fd9e1552a912e57d127b7770b858..1dc901499adbc276a26dd0e7f936913f489a148c 100644 --- a/gcc/config/arm/arm.opt +++ b/gcc/config/arm/arm.opt @@ -277,7 +277,7 @@ 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. +(Deprecated) mslow-flash-data Target Report Var(target_slow_flash_data) Init(0)