diff mbox

[AArch64] Enable AUTOPREFETCHER_WEAK with -mcpu=generic

Message ID AM5PR0802MB26108A29134FE37A5335A38F830A0@AM5PR0802MB2610.eurprd08.prod.outlook.com
State New
Headers show

Commit Message

Wilco Dijkstra April 5, 2017, 12:38 p.m. UTC
Many supported cores use the AUTOPREFETCHER_WEAK setting which tries
to order loads and stores to improve streaming performance.  Since significant
gains were reported in http://patchwork.ozlabs.org/patch/534469/ it seems
like a good idea to enable this setting too for -mcpu=generic.  Since the
weak model only keeps the order if it doesn't make the schedule worse, it
should not impact performance adversely on cores that don't show a gain.
Any objections?

ChangeLog:
2017-04-05  Wilco Dijkstra  <wdijkstr@arm.com>

	* gcc/config/aarch64/aarch64.c (generic_tunings): Update prefetch model.

--

Comments

Andrew Pinski April 5, 2017, 4:17 p.m. UTC | #1
On Wed, Apr 5, 2017 at 5:38 AM, Wilco Dijkstra <Wilco.Dijkstra@arm.com> wrote:
> Many supported cores use the AUTOPREFETCHER_WEAK setting which tries
> to order loads and stores to improve streaming performance.  Since significant
> gains were reported in http://patchwork.ozlabs.org/patch/534469/ it seems
> like a good idea to enable this setting too for -mcpu=generic.  Since the
> weak model only keeps the order if it doesn't make the schedule worse, it
> should not impact performance adversely on cores that don't show a gain.
> Any objections?

This is ok with me.

Thanks,
Andrew

>
> ChangeLog:
> 2017-04-05  Wilco Dijkstra  <wdijkstr@arm.com>
>
>         * gcc/config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
>
> --
> diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
> index 8b729b1b1f87316e940d7fc657f235a935ffa93e..b249ce2b310707c7ded2827d505ce2ddfcfbf976 100644
> --- a/gcc/config/aarch64/aarch64.c
> +++ b/gcc/config/aarch64/aarch64.c
> @@ -547,7 +547,7 @@ static const struct tune_params generic_tunings =
>    2,   /* min_div_recip_mul_df.  */
>    0,   /* max_case_values.  */
>    0,   /* cache_line_size.  */
> -  tune_params::AUTOPREFETCHER_OFF,     /* autoprefetcher_model.  */
> +  tune_params::AUTOPREFETCHER_WEAK,    /* autoprefetcher_model.  */
>    (AARCH64_EXTRA_TUNE_NONE)    /* tune_flags.  */
>  };
Jim Wilson April 5, 2017, 4:44 p.m. UTC | #2
On Wed, Apr 5, 2017 at 5:38 AM, Wilco Dijkstra <Wilco.Dijkstra@arm.com> wrote:
> Many supported cores use the AUTOPREFETCHER_WEAK setting which tries
> to order loads and stores to improve streaming performance.  Since significant
> gains were reported in http://patchwork.ozlabs.org/patch/534469/ it seems
> like a good idea to enable this setting too for -mcpu=generic.  Since the
> weak model only keeps the order if it doesn't make the schedule worse, it
> should not impact performance adversely on cores that don't show a gain.
> Any objections?

This is fine with me also.

Jim
Richard Earnshaw (lists) May 4, 2017, 10:28 a.m. UTC | #3
On 05/04/17 13:38, Wilco Dijkstra wrote:
> Many supported cores use the AUTOPREFETCHER_WEAK setting which tries
> to order loads and stores to improve streaming performance.  Since significant
> gains were reported in http://patchwork.ozlabs.org/patch/534469/ it seems
> like a good idea to enable this setting too for -mcpu=generic.  Since the
> weak model only keeps the order if it doesn't make the schedule worse, it
> should not impact performance adversely on cores that don't show a gain.
> Any objections?
> 
> ChangeLog:
> 2017-04-05  Wilco Dijkstra  <wdijkstr@arm.com>
> 
> 	* gcc/config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
> 

OK.  The consensus seems to be in favour of this.

R.

> --
> diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
> index 8b729b1b1f87316e940d7fc657f235a935ffa93e..b249ce2b310707c7ded2827d505ce2ddfcfbf976 100644
> --- a/gcc/config/aarch64/aarch64.c
> +++ b/gcc/config/aarch64/aarch64.c
> @@ -547,7 +547,7 @@ static const struct tune_params generic_tunings =
>    2,	/* min_div_recip_mul_df.  */
>    0,	/* max_case_values.  */
>    0,	/* cache_line_size.  */
> -  tune_params::AUTOPREFETCHER_OFF,	/* autoprefetcher_model.  */
> +  tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
>    (AARCH64_EXTRA_TUNE_NONE)	/* tune_flags.  */
>  };
>
diff mbox

Patch

diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 8b729b1b1f87316e940d7fc657f235a935ffa93e..b249ce2b310707c7ded2827d505ce2ddfcfbf976 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -547,7 +547,7 @@  static const struct tune_params generic_tunings =
   2,	/* min_div_recip_mul_df.  */
   0,	/* max_case_values.  */
   0,	/* cache_line_size.  */
-  tune_params::AUTOPREFETCHER_OFF,	/* autoprefetcher_model.  */
+  tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
   (AARCH64_EXTRA_TUNE_NONE)	/* tune_flags.  */
 };