Tamar Christina <tamar.christ...@arm.com> writes:
> Hi All,
>
> 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.
>
> Bootstrapped Regtested on aarch64-none-linux-gnu and no issues.
>
> Ok for master?
>
> Thanks,
> Tamar
>
> 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.
>       * config/aarch64/tuning_models/neoversev3.h: Likewise.
>       * config/aarch64/tuning_models/neoversev3ae.h: Likewise.
>
> ---
>
> diff --git a/gcc/config/aarch64/tuning_models/cortexx925.h 
> b/gcc/config/aarch64/tuning_models/cortexx925.h
> index 
> b3ae1576ade1f701b775496def277230e193d20f..f32454aa808bb2a19bf4d364387ab463a87f9fbf
>  100644
> --- a/gcc/config/aarch64/tuning_models/cortexx925.h
> +++ b/gcc/config/aarch64/tuning_models/cortexx925.h
> @@ -222,7 +222,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 
> f72505918f3aa64200aa596dbe2d7d4a3de9c08c..007f987154c4634afeb6294b0df142fdd05997cd
>  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 
> 82def6b2736df8162d9b606440d260c951f3ef99..608e36936ad437befa9b8663bc4c91822b05befc
>  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_CHEAP_SHIFT_EXTEND),   /* 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 
> 47d861232951f92bebbd09fbca8b1ff8624949fc..13d4640791ca998ca012002c932e8775b1898733
>  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 
> 356b5f8cc83b69e74ddac70db7a3883bc1b7a29b..ef15dc8c3015bb406a6957346cf47bacf305d884
>  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 
> 9698f135a4f86a74c19cc601508ca9cb948f9298..17cc29035452501ceaa06fd698d25396366e4176
>  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_MATCHED_VECTOR_THROUGHPUT
>     | AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND
>     | 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 
> 7e812d26556690f2e46e86fabcf5f63144370ac0..e93ad0695585552f9dcddff1992ba3ce7e5ee652
>  100644
> --- a/gcc/config/aarch64/tuning_models/neoversev2.h
> +++ b/gcc/config/aarch64/tuning_models/neoversev2.h
> @@ -236,7 +236,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.  */
>  };

Can neoversev2_prefetch_tune be deleted too?

OK with that change if so, if there are no objections in the next day or so.

Thanks,
Richard

> diff --git a/gcc/config/aarch64/tuning_models/neoversev3.h 
> b/gcc/config/aarch64/tuning_models/neoversev3.h
> index 
> f100d484e6b2f1e63b5aedeee14bddcd29c917c9..dac75de45f9e8160702baf12e3d0210ce5d06236
>  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 
> 1f59865ceadb37817def0529bdcc4b3530fef99a..7d348ffe9070c5b7a23828d17ccf811a253a903b
>  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