aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i386
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2020-06-01 13:21:40 +0200
committerMartin Liska <mliska@suse.cz>2020-07-30 10:31:36 +0200
commitdc65aba7a4725d1b464c8c64a5f739ee910e8943 (patch)
treed09b112c9faf96dec7c972b1b4338c2ebe381ea3 /gcc/config/i386
parentda346efd27eca48a8fe2e07d7e18b2c77ead0e2d (diff)
downloadgcc-dc65aba7a4725d1b464c8c64a5f739ee910e8943.zip
gcc-dc65aba7a4725d1b464c8c64a5f739ee910e8943.tar.gz
gcc-dc65aba7a4725d1b464c8c64a5f739ee910e8943.tar.bz2
Tune memcpy and memset for Zen cores.
Based on the collected numbers in PR95435, I suggest the following tuning changes: gcc/ChangeLog: PR target/95435 * config/i386/x86-tune-costs.h: Use libcall for large sizes for -m32. Start using libcall from 128+ bytes.
Diffstat (limited to 'gcc/config/i386')
-rw-r--r--gcc/config/i386/x86-tune-costs.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/config/i386/x86-tune-costs.h b/gcc/config/i386/x86-tune-costs.h
index 1169178..3207404 100644
--- a/gcc/config/i386/x86-tune-costs.h
+++ b/gcc/config/i386/x86-tune-costs.h
@@ -1314,20 +1314,20 @@ static stringop_algs znver1_memcpy[2] = {
/* 32-bit tuning. */
{libcall, {{6, loop, false},
{14, unrolled_loop, false},
- {-1, rep_prefix_4_byte, false}}},
+ {-1, libcall, false}}},
/* 64-bit tuning. */
{libcall, {{16, loop, false},
- {8192, rep_prefix_8_byte, false},
+ {128, rep_prefix_8_byte, false},
{-1, libcall, false}}}};
static stringop_algs znver1_memset[2] = {
/* 32-bit tuning. */
{libcall, {{8, loop, false},
{24, unrolled_loop, false},
- {2048, rep_prefix_4_byte, false},
+ {128, rep_prefix_4_byte, false},
{-1, libcall, false}}},
/* 64-bit tuning. */
{libcall, {{48, unrolled_loop, false},
- {8192, rep_prefix_8_byte, false},
+ {128, rep_prefix_8_byte, false},
{-1, libcall, false}}}};
struct processor_costs znver1_cost = {
{
@@ -1460,7 +1460,7 @@ static stringop_algs znver2_memcpy[2] = {
/* 32-bit tuning. */
{libcall, {{6, loop, false},
{14, unrolled_loop, false},
- {-1, rep_prefix_4_byte, false}}},
+ {-1, libcall, false}}},
/* 64-bit tuning. */
{libcall, {{16, loop, false},
{64, rep_prefix_4_byte, false},
@@ -1469,7 +1469,7 @@ static stringop_algs znver2_memset[2] = {
/* 32-bit tuning. */
{libcall, {{8, loop, false},
{24, unrolled_loop, false},
- {2048, rep_prefix_4_byte, false}
+ {128, rep_prefix_4_byte, false},
{-1, libcall, false}}},
/* 64-bit tuning. */
{libcall, {{24, rep_prefix_4_byte, false},