This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][AArch64] Enable AES fusion with -mcpu=generic
- From: "Richard Earnshaw (lists)" <Richard dot Earnshaw at arm dot com>
- To: Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, James Greenhalgh <James dot Greenhalgh at arm dot com>
- Cc: nd <nd at arm dot com>, Evandro Menezes <e dot menezes at samsung dot com>, "Andrew dot pinski at cavium dot com" <Andrew dot pinski at cavium dot com>, "jim dot wilson at linaro dot org" <jim dot wilson at linaro dot org>
- Date: Fri, 5 May 2017 14:38:28 +0100
- Subject: Re: [PATCH][AArch64] Enable AES fusion with -mcpu=generic
- Authentication-results: sourceware.org; auth=none
- References: <VI1PR0802MB262138504A5473B8286763C783210@VI1PR0802MB2621.eurprd08.prod.outlook.com> <AM5PR0802MB2610174A4992D4C2809BB5C283260@AM5PR0802MB2610.eurprd08.prod.outlook.com> <AM5PR0802MB2610911C2357E43E81EC0EBF831B0@AM5PR0802MB2610.eurprd08.prod.outlook.com>
On 20/04/17 16:53, Wilco Dijkstra wrote:
>
> ping
James has already approved this on 17 March, why are you pinging again?
https://gcc.gnu.org/ml/gcc-patches/2017-03/msg00918.html
>
> From: Wilco Dijkstra
> Sent: 16 March 2017 17:22
> To: GCC Patches; Evandro Menezes; Andrew.pinski@cavium.com; jim.wilson@linaro.org
> Cc: nd
> Subject: [PATCH][AArch64] Enable AES fusion with -mcpu=generic
>
> Many supported cores implement fusion of AES instructions. When fusion
> happens it can give a significant performance gain. If not, scheduling
> fusion candidates next to each other has almost no effect on performance.
> Due to the high benefit/low cost it makes sense to enable AES fusion with
> -mcpu=generic so that cores that support it always benefit. Any objections?
>
> Bootstrapped on AArch64, no regressions.
>
> ChangeLog:
> 2017-03-16 Wilco Dijkstra <wdijkstr@arm.com>
>
> * gcc/config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
>
> --
> diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
> index 728ce7029f1e2b5161d9f317d10e564dd5a5f472..c8cf7169a5d387de336920b50c83761dc0c96f3a 100644
> --- a/gcc/config/aarch64/aarch64.c
> +++ b/gcc/config/aarch64/aarch64.c
> @@ -536,7 +536,7 @@ static const struct tune_params generic_tunings =
> &generic_approx_modes,
> 4, /* memmov_cost */
> 2, /* issue_rate */
> - AARCH64_FUSE_NOTHING, /* fusible_ops */
> + (AARCH64_FUSE_AES_AESMC), /* fusible_ops */
> 8, /* function_align. */
> 8, /* jump_align. */
> 4, /* loop_align. */
>
>