aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2019-08-23 14:53:45 +0000
committerWilco Dijkstra <wilco@gcc.gnu.org>2019-08-23 14:53:45 +0000
commitbf1a58e9be6a6a18b348812be19d965ce0111c7d (patch)
tree02ae070bb46c501c29ffce6287be1ebddffea1f0
parent35a114dae14de7db983aba7e709dcad96405c14a (diff)
downloadgcc-bf1a58e9be6a6a18b348812be19d965ce0111c7d.zip
gcc-bf1a58e9be6a6a18b348812be19d965ce0111c7d.tar.gz
gcc-bf1a58e9be6a6a18b348812be19d965ce0111c7d.tar.bz2
[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
-rw-r--r--gcc/ChangeLog14
-rw-r--r--gcc/config/arm/arm-protos.h5
-rw-r--r--gcc/config/arm/arm.c37
-rw-r--r--gcc/config/arm/arm.h7
-rw-r--r--gcc/config/arm/arm.opt4
-rw-r--r--gcc/doc/invoke.texi4
6 files changed, 17 insertions, 54 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 86669dd..3fbdb93 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,17 @@
+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.
+
2019-08-23 Iain Sandoe <iain@sandoe.co.uk>
PR pch/61250
diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h
index bf2bf1c..8386d89 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 3343a7e..a34cb74 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,
@@ -26521,9 +26487,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.h b/gcc/config/arm/arm.h
index 4866e1e..8b92c83 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 9067d49..5ecc5e5 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 7a35684..549e043 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