https://gcc.gnu.org/g:6a5a1b8175e07ff578204476cd11115d8a071cbc

commit r15-6217-g6a5a1b8175e07ff578204476cd11115d8a071cbc
Author: Tamar Christina <tamar.christ...@arm.com>
Date:   Fri Dec 13 11:20:18 2024 +0000

    AArch64: Set L1 data cache size according to size on CPUs
    
    This sets the L1 data cache size for some cores based on their size in their
    Technical Reference Manuals.
    
    Today the port minimum is 256 bytes as explained in commit
    g:9a99559a478111f7fbeec29bd78344df7651c707, however like Neoverse V2 most 
cores
    actually define the L1 cache size as 64-bytes.  The generic Armv9-A model 
was
    already changed in g:f000cb8cbc58b23a91c84d47d69481904981a1d9 and this
    change follows suite for a few other cores based on their TRMs.
    
    This results in less memory pressure when running on large core count 
machines.
    
    gcc/ChangeLog:
    
            * config/aarch64/tuning_models/cortexx925.h: Set L1 cache size to 
64b.
            * config/aarch64/tuning_models/neoverse512tvb.h: Likewise.
            * config/aarch64/tuning_models/neoversen1.h: Likewise.
            * config/aarch64/tuning_models/neoversen2.h: Likewise.
            * config/aarch64/tuning_models/neoversen3.h: Likewise.
            * config/aarch64/tuning_models/neoversev1.h: Likewise.
            * config/aarch64/tuning_models/neoversev2.h: Likewise.
            (neoversev2_prefetch_tune): Removed.
            * config/aarch64/tuning_models/neoversev3.h: Likewise.
            * config/aarch64/tuning_models/neoversev3ae.h: Likewise.

Diff:
---
 gcc/config/aarch64/tuning_models/cortexx925.h     |  2 +-
 gcc/config/aarch64/tuning_models/neoverse512tvb.h |  2 +-
 gcc/config/aarch64/tuning_models/neoversen1.h     |  2 +-
 gcc/config/aarch64/tuning_models/neoversen2.h     |  2 +-
 gcc/config/aarch64/tuning_models/neoversen3.h     |  2 +-
 gcc/config/aarch64/tuning_models/neoversev1.h     |  2 +-
 gcc/config/aarch64/tuning_models/neoversev2.h     | 15 +--------------
 gcc/config/aarch64/tuning_models/neoversev3.h     |  2 +-
 gcc/config/aarch64/tuning_models/neoversev3ae.h   |  2 +-
 9 files changed, 9 insertions(+), 22 deletions(-)

diff --git a/gcc/config/aarch64/tuning_models/cortexx925.h 
b/gcc/config/aarch64/tuning_models/cortexx925.h
index ef4c7d1a8323..5ebaf66e986c 100644
--- a/gcc/config/aarch64/tuning_models/cortexx925.h
+++ b/gcc/config/aarch64/tuning_models/cortexx925.h
@@ -224,7 +224,7 @@ static const struct tune_params cortexx925_tunings =
    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT
    | AARCH64_EXTRA_TUNE_AVOID_PRED_RMW),       /* tune_flags.  */
-  &generic_prefetch_tune,
+  &generic_armv9a_prefetch_tune,
   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
   AARCH64_LDP_STP_POLICY_ALWAYS           /* stp_policy_model.  */
 };
diff --git a/gcc/config/aarch64/tuning_models/neoverse512tvb.h 
b/gcc/config/aarch64/tuning_models/neoverse512tvb.h
index f72505918f3a..007f987154c4 100644
--- a/gcc/config/aarch64/tuning_models/neoverse512tvb.h
+++ b/gcc/config/aarch64/tuning_models/neoverse512tvb.h
@@ -158,7 +158,7 @@ static const struct tune_params neoverse512tvb_tunings =
   (AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT),    /* tune_flags.  */
-  &generic_prefetch_tune,
+  &generic_armv9a_prefetch_tune,
   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
   AARCH64_LDP_STP_POLICY_ALWAYS           /* stp_policy_model.  */
 };
diff --git a/gcc/config/aarch64/tuning_models/neoversen1.h 
b/gcc/config/aarch64/tuning_models/neoversen1.h
index 3079eb2d9ec3..14b9ac9a734d 100644
--- a/gcc/config/aarch64/tuning_models/neoversen1.h
+++ b/gcc/config/aarch64/tuning_models/neoversen1.h
@@ -52,7 +52,7 @@ static const struct tune_params neoversen1_tunings =
   0,   /* max_case_values.  */
   tune_params::AUTOPREFETCHER_WEAK,    /* autoprefetcher_model.  */
   (AARCH64_EXTRA_TUNE_BASE),   /* tune_flags.  */
-  &generic_prefetch_tune,
+  &generic_armv9a_prefetch_tune,
   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
 };
diff --git a/gcc/config/aarch64/tuning_models/neoversen2.h 
b/gcc/config/aarch64/tuning_models/neoversen2.h
index 141c994df381..32560d2f5f88 100644
--- a/gcc/config/aarch64/tuning_models/neoversen2.h
+++ b/gcc/config/aarch64/tuning_models/neoversen2.h
@@ -222,7 +222,7 @@ static const struct tune_params neoversen2_tunings =
    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT
    | AARCH64_EXTRA_TUNE_AVOID_PRED_RMW),       /* tune_flags.  */
-  &generic_prefetch_tune,
+  &generic_armv9a_prefetch_tune,
   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
   AARCH64_LDP_STP_POLICY_ALWAYS           /* stp_policy_model.  */
 };
diff --git a/gcc/config/aarch64/tuning_models/neoversen3.h 
b/gcc/config/aarch64/tuning_models/neoversen3.h
index b3e31885cdee..2010bc4645bb 100644
--- a/gcc/config/aarch64/tuning_models/neoversen3.h
+++ b/gcc/config/aarch64/tuning_models/neoversen3.h
@@ -221,7 +221,7 @@ static const struct tune_params neoversen3_tunings =
    | AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT),    /* tune_flags.  */
-  &generic_prefetch_tune,
+  &generic_armv9a_prefetch_tune,
   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
   AARCH64_LDP_STP_POLICY_ALWAYS           /* stp_policy_model.  */
 };
diff --git a/gcc/config/aarch64/tuning_models/neoversev1.h 
b/gcc/config/aarch64/tuning_models/neoversev1.h
index b3d27eb780df..c3751e326963 100644
--- a/gcc/config/aarch64/tuning_models/neoversev1.h
+++ b/gcc/config/aarch64/tuning_models/neoversev1.h
@@ -231,7 +231,7 @@ static const struct tune_params neoversev1_tunings =
    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT
    | AARCH64_EXTRA_TUNE_AVOID_PRED_RMW),       /* tune_flags.  */
-  &generic_prefetch_tune,
+  &generic_armv9a_prefetch_tune,
   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
   AARCH64_LDP_STP_POLICY_ALWAYS    /* stp_policy_model.  */
 };
diff --git a/gcc/config/aarch64/tuning_models/neoversev2.h 
b/gcc/config/aarch64/tuning_models/neoversev2.h
index ea91bbb732d4..80dbe5c806cc 100644
--- a/gcc/config/aarch64/tuning_models/neoversev2.h
+++ b/gcc/config/aarch64/tuning_models/neoversev2.h
@@ -188,19 +188,6 @@ static const struct cpu_vector_cost neoversev2_vector_cost 
=
   &neoversev2_vec_issue_info /* issue_info  */
 };
 
-/* Prefetch settings.  Disable software prefetch generation but set L1 cache
-   line size.  */
-static const cpu_prefetch_tune neoversev2_prefetch_tune =
-{
-  0,                   /* num_slots  */
-  -1,                  /* l1_cache_size  */
-  64,                  /* l1_cache_line_size  */
-  -1,                  /* l2_cache_size  */
-  true,                        /* prefetch_dynamic_strides */
-  -1,                  /* minimum_stride */
-  -1                   /* default_opt_level  */
-};
-
 static const struct tune_params neoversev2_tunings =
 {
   &cortexa76_extra_costs,
@@ -236,7 +223,7 @@ static const struct tune_params neoversev2_tunings =
    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT
    | AARCH64_EXTRA_TUNE_AVOID_PRED_RMW
    | AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA),  /* tune_flags.  */
-  &neoversev2_prefetch_tune,
+  &generic_armv9a_prefetch_tune,
   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
   AARCH64_LDP_STP_POLICY_ALWAYS           /* stp_policy_model.  */
 };
diff --git a/gcc/config/aarch64/tuning_models/neoversev3.h 
b/gcc/config/aarch64/tuning_models/neoversev3.h
index 3f5ba4bf52e1..efe09e16d1ef 100644
--- a/gcc/config/aarch64/tuning_models/neoversev3.h
+++ b/gcc/config/aarch64/tuning_models/neoversev3.h
@@ -222,7 +222,7 @@ static const struct tune_params neoversev3_tunings =
    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT
    | AARCH64_EXTRA_TUNE_AVOID_PRED_RMW),       /* tune_flags.  */
-  &generic_prefetch_tune,
+  &generic_armv9a_prefetch_tune,
   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
   AARCH64_LDP_STP_POLICY_ALWAYS           /* stp_policy_model.  */
 };
diff --git a/gcc/config/aarch64/tuning_models/neoversev3ae.h 
b/gcc/config/aarch64/tuning_models/neoversev3ae.h
index 4d9c62f104de..66849f30889e 100644
--- a/gcc/config/aarch64/tuning_models/neoversev3ae.h
+++ b/gcc/config/aarch64/tuning_models/neoversev3ae.h
@@ -222,7 +222,7 @@ static const struct tune_params neoversev3ae_tunings =
    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT
    | AARCH64_EXTRA_TUNE_AVOID_PRED_RMW),       /* tune_flags.  */
-  &generic_prefetch_tune,
+  &generic_armv9a_prefetch_tune,
   AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
   AARCH64_LDP_STP_POLICY_ALWAYS           /* stp_policy_model.  */
 };

Reply via email to