[PATCH][AArch64] Enable autoprefetcher modelling in the scheduler

James Greenhalgh james.greenhalgh@arm.com
Tue Oct 27 10:50:00 GMT 2015


On Thu, Oct 22, 2015 at 05:05:26PM +0100, Kyrill Tkachov wrote:
> Hi all,
> 
> This patch enables the autoprefetcher heuristic for scheduling in AArch64.
> It is enabled for the Cortex-A53, Cortex-A57 cores and is off for the other cores,
> leaving their behaviour unchanged.
> 
> When enabled, the scheduler will try to sort groups of loads or stores in
> order of the offset from a common base register.
> 
> From what I understand of the relevant scheduling hooks, there are
> essentially three levels of this:
> 1) Don't use the autoprefetcher heuristic
> 2) Use it to order loads/stores but allow other scheduling heuristics to
> reorder them again to maximise multi-issue opportunities
> 3) Use it to order loads/stores and keep that order, even if it can harm
> multi-issue opportunities.
> 
> With this patch I get a 0.4% improvement in SPECINT 2006 and 1.7% improvement
> in SPECFP 2006 on a Cortex-A57 as well as improvements in various streaming
> workloads.
> 
> On Cortex-A53 I see improvements to various streaming workloads and there's
> no regressions or improvements on SPEC2000.
> 
> Bootstrapped and tested on aarch64-none-linux-gnu.
> 
> Ok for trunk?

OK.

Thanks,
James

> 2015-10-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
> 
>     * config/aarch64/aarch64-protos.h
>     (struct tune_params): Add autoprefetcher_model field.
>     * config/aarch64/aarch64.c: Include params.h
>     (generic_tunings): Specify autoprefetcher_model value.
>     (cortexa53_tunings): Likewise.
>     (cortexa57_tunings): Likewise.
>     (cortexa72_tunings): Likewise.
>     (thunderx_tunings): Likewise.
>     (xgene1_tunings): Likewise.
>     (aarch64_first_cycle_multipass_dfa_lookahead_guard): New function.
>     (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
>     (aarch64_override_options_internal): Set
>     PARAM_SCHED_AUTOPREF_QUEUE_DEPTH param.



More information about the Gcc-patches mailing list