From 6b13482bb6c33d2d37494ec33e2028fcbe4e0635 Mon Sep 17 00:00:00 2001 From: Wilco Dijkstra Date: Thu, 4 May 2017 17:43:43 +0000 Subject: [PATCH] With -mcpu=generic the loop alignment is currently 4. With -mcpu=generic the loop alignment is currently 4. All but one of the supported cores use 8 or higher. Since using 8 provides performance gains on several cores, it is best to use that by default. As discussed in [1], the jump alignment has no effect on performance, yet has a relatively high codesize cost [2], so setting it to 4 is best. This gives a 0.2% overall codesize improvement as well as performance gains in several benchmarks. gcc/ * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4. Set loop alignment to 8. [1] https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00574.html [2] https://gcc.gnu.org/ml/gcc-patches/2016-06/msg02075.html From-SVN: r247608 --- gcc/ChangeLog | 5 +++++ gcc/config/aarch64/aarch64.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3e93441c4bf..7a533b24162 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-05-04 Wilco Dijkstra + + * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4. + Set loop alignment to 8. + 2017-05-04 Martin Sebor PR translation/80280 diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index ee056c6fe68..bf13f6b057f 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -538,8 +538,8 @@ static const struct tune_params generic_tunings = 2, /* issue_rate */ (AARCH64_FUSE_AES_AESMC), /* fusible_ops */ 8, /* function_align. */ - 8, /* jump_align. */ - 4, /* loop_align. */ + 4, /* jump_align. */ + 8, /* loop_align. */ 2, /* int_reassoc_width. */ 4, /* fp_reassoc_width. */ 1, /* vec_reassoc_width. */ -- 2.30.2