aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i386
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/i386')
-rw-r--r--gcc/config/i386/i386-expand.cc3
-rw-r--r--gcc/config/i386/i386-options.cc40
-rw-r--r--gcc/config/i386/i386-options.h1
-rw-r--r--gcc/config/i386/i386.h17
-rw-r--r--gcc/config/i386/i386.opt3
-rw-r--r--gcc/config/i386/x86-tune.def10
6 files changed, 10 insertions, 64 deletions
diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
index b0b9e6d..c6f4227 100644
--- a/gcc/config/i386/i386-expand.cc
+++ b/gcc/config/i386/i386-expand.cc
@@ -13915,8 +13915,7 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
char *opts = ix86_target_string (bisa, bisa2, 0, 0, NULL, NULL,
(enum fpmath_unit) 0,
(enum prefer_vector_width) 0,
- PVW_NONE, PVW_NONE,
- false, add_abi_p);
+ PVW_NONE, false, add_abi_p);
if (!opts)
error ("%qE needs unknown isa option", fndecl);
else
diff --git a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-options.cc
index abb5dd7..cad4019 100644
--- a/gcc/config/i386/i386-options.cc
+++ b/gcc/config/i386/i386-options.cc
@@ -401,7 +401,6 @@ ix86_target_string (HOST_WIDE_INT isa, HOST_WIDE_INT isa2,
enum fpmath_unit fpmath,
enum prefer_vector_width pvw,
enum prefer_vector_width move_max,
- enum prefer_vector_width store_max,
bool add_nl_p, bool add_abi_p)
{
/* Flag options. */
@@ -611,10 +610,6 @@ ix86_target_string (HOST_WIDE_INT isa, HOST_WIDE_INT isa2,
if (move_max)
add_vector_width (move_max, "-mmove-max=");
- /* Add -mstore-max= option. */
- if (store_max)
- add_vector_width (store_max, "-mstore-max=");
-
/* Any options? */
if (num == 0)
return NULL;
@@ -680,8 +675,7 @@ ix86_debug_options (void)
target_flags, ix86_target_flags,
ix86_arch_string, ix86_tune_string,
ix86_fpmath, prefer_vector_width_type,
- ix86_move_max, ix86_store_max,
- true, true);
+ ix86_move_max, true, true);
if (opts)
{
@@ -956,8 +950,7 @@ ix86_function_specific_print (FILE *file, int indent,
ptr->x_target_flags, ptr->x_ix86_target_flags,
NULL, NULL, ptr->x_ix86_fpmath,
ptr->x_prefer_vector_width_type,
- ptr->x_ix86_move_max, ptr->x_ix86_store_max,
- false, true);
+ ptr->x_ix86_move_max, false, true);
gcc_assert (ptr->arch < PROCESSOR_max);
fprintf (file, "%*sarch = %d (%s)\n",
@@ -1410,8 +1403,6 @@ ix86_valid_target_attribute_tree (tree fndecl, tree args,
enum prefer_vector_width orig_pvw_set = opts_set->x_prefer_vector_width_type;
enum prefer_vector_width orig_ix86_move_max_set
= opts_set->x_ix86_move_max;
- enum prefer_vector_width orig_ix86_store_max_set
- = opts_set->x_ix86_store_max;
int orig_tune_defaulted = ix86_tune_defaulted;
int orig_arch_specified = ix86_arch_specified;
char *option_strings[IX86_FUNCTION_SPECIFIC_MAX] = { NULL, NULL };
@@ -1492,7 +1483,6 @@ ix86_valid_target_attribute_tree (tree fndecl, tree args,
opts_set->x_ix86_fpmath = orig_fpmath_set;
opts_set->x_prefer_vector_width_type = orig_pvw_set;
opts_set->x_ix86_move_max = orig_ix86_move_max_set;
- opts_set->x_ix86_store_max = orig_ix86_store_max_set;
opts->x_ix86_excess_precision = orig_ix86_excess_precision;
opts->x_ix86_unsafe_math_optimizations
= orig_ix86_unsafe_math_optimizations;
@@ -2940,32 +2930,6 @@ ix86_option_override_internal (bool main_args_p,
}
}
- if (opts_set->x_ix86_store_max == PVW_NONE)
- {
- /* Set the maximum number of bits can be stored to memory
- efficiently. */
- if (opts_set->x_prefer_vector_width_type != PVW_NONE)
- opts->x_ix86_store_max = opts->x_prefer_vector_width_type;
- else if (ix86_tune_features[X86_TUNE_AVX512_STORE_BY_PIECES])
- opts->x_ix86_store_max = PVW_AVX512;
- else if (ix86_tune_features[X86_TUNE_AVX256_STORE_BY_PIECES])
- opts->x_ix86_store_max = PVW_AVX256;
- else
- {
- opts->x_ix86_store_max = opts->x_prefer_vector_width_type;
- if (opts_set->x_ix86_store_max == PVW_NONE)
- {
- if (TARGET_AVX512F_P (opts->x_ix86_isa_flags))
- opts->x_ix86_store_max = PVW_AVX512;
- /* Align with vectorizer to avoid potential STLF issue. */
- else if (TARGET_AVX_P (opts->x_ix86_isa_flags))
- opts->x_ix86_store_max = PVW_AVX256;
- else
- opts->x_ix86_store_max = PVW_AVX128;
- }
- }
- }
-
if (opts->x_ix86_recip_name)
{
char *p = ASTRDUP (opts->x_ix86_recip_name);
diff --git a/gcc/config/i386/i386-options.h b/gcc/config/i386/i386-options.h
index 0499c08..5686899 100644
--- a/gcc/config/i386/i386-options.h
+++ b/gcc/config/i386/i386-options.h
@@ -28,7 +28,6 @@ char *ix86_target_string (HOST_WIDE_INT isa, HOST_WIDE_INT isa2,
enum fpmath_unit fpmath,
enum prefer_vector_width pvw,
enum prefer_vector_width move_max,
- enum prefer_vector_width store_max,
bool add_nl_p, bool add_abi_p);
extern enum attr_cpu ix86_schedule;
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index ac0ce68..f4c89f0 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -1916,13 +1916,9 @@ typedef struct ix86_args {
MOVE_MAX_PIECES defaults to MOVE_MAX. */
#define MOVE_MAX \
- ((TARGET_AVX512F \
- && (ix86_move_max == PVW_AVX512 \
- || ix86_store_max == PVW_AVX512)) \
+ ((TARGET_AVX512F && ix86_move_max == PVW_AVX512) \
? 64 \
- : ((TARGET_AVX \
- && (ix86_move_max >= PVW_AVX256 \
- || ix86_store_max >= PVW_AVX256)) \
+ : ((TARGET_AVX && ix86_move_max >= PVW_AVX256) \
? 32 \
: ((TARGET_SSE2 \
&& TARGET_SSE_UNALIGNED_LOAD_OPTIMAL \
@@ -1935,15 +1931,14 @@ typedef struct ix86_args {
store_by_pieces of 16/32/64 bytes. */
#define STORE_MAX_PIECES \
(TARGET_INTER_UNIT_MOVES_TO_VEC \
- ? ((TARGET_AVX512F && ix86_store_max == PVW_AVX512) \
+ ? ((TARGET_AVX512F && ix86_move_max == PVW_AVX512) \
? 64 \
- : ((TARGET_AVX \
- && ix86_store_max >= PVW_AVX256) \
+ : ((TARGET_AVX && ix86_move_max >= PVW_AVX256) \
? 32 \
: ((TARGET_SSE2 \
&& TARGET_SSE_UNALIGNED_STORE_OPTIMAL) \
- ? 16 : UNITS_PER_WORD))) \
- : UNITS_PER_WORD)
+ ? 16 : UNITS_PER_WORD))) \
+ : UNITS_PER_WORD)
/* If a memory-to-memory move would take MOVE_RATIO or more simple
move-instruction pairs, we will do a cpymem or libcall instead.
diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt
index 6bda22f..1192176 100644
--- a/gcc/config/i386/i386.opt
+++ b/gcc/config/i386/i386.opt
@@ -644,8 +644,7 @@ Target RejectNegative Joined Var(ix86_move_max) Enum(prefer_vector_width) Init(P
Maximum number of bits that can be moved from memory to memory efficiently.
mstore-max=
-Target RejectNegative Joined Var(ix86_store_max) Enum(prefer_vector_width) Init(PVW_NONE) Save
-Maximum number of bits that can be stored to memory efficiently.
+Target RejectNegative Joined Uncoumented Var(ix86_move_max) Enum(prefer_vector_width) Init(PVW_NONE) Warn(%<-mstore-max=%> is deprecated; use %<-mmove-max=%> instead)
mnoreturn-no-callee-saved-registers
Target Var(ix86_noreturn_no_callee_saved_registers)
diff --git a/gcc/config/i386/x86-tune.def b/gcc/config/i386/x86-tune.def
index 255ea4a..3627312 100644
--- a/gcc/config/i386/x86-tune.def
+++ b/gcc/config/i386/x86-tune.def
@@ -619,21 +619,11 @@ DEF_TUNE (X86_TUNE_AVX512_SPLIT_REGS, "avx512_split_regs", m_ZNVER4)
DEF_TUNE (X86_TUNE_AVX256_MOVE_BY_PIECES, "avx256_move_by_pieces",
m_CORE_HYBRID | m_CORE_AVX2 | m_ZNVER1 | m_ZNVER2 | m_ZNVER3)
-/* X86_TUNE_AVX256_STORE_BY_PIECES: Optimize store_by_pieces with 256-bit
- AVX instructions. */
-DEF_TUNE (X86_TUNE_AVX256_STORE_BY_PIECES, "avx256_store_by_pieces",
- m_CORE_HYBRID | m_CORE_AVX2 | m_ZNVER1 | m_ZNVER2 | m_ZNVER3)
-
/* X86_TUNE_AVX512_MOVE_BY_PIECES: Optimize move_by_pieces with 512-bit
AVX instructions. */
DEF_TUNE (X86_TUNE_AVX512_MOVE_BY_PIECES, "avx512_move_by_pieces",
m_ZNVER4 | m_ZNVER5)
-/* X86_TUNE_AVX512_STORE_BY_PIECES: Optimize store_by_pieces with 512-bit
- AVX instructions. */
-DEF_TUNE (X86_TUNE_AVX512_STORE_BY_PIECES, "avx512_store_by_pieces",
- m_ZNVER4 | m_ZNVER5)
-
/* X86_TUNE_AVX512_TWO_EPILOGUES: Use two vector epilogues for 512-bit
vectorized loops. */
DEF_TUNE (X86_TUNE_AVX512_TWO_EPILOGUES, "avx512_two_epilogues",