aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2017-05-04 17:43:43 +0000
committerWilco Dijkstra <wilco@gcc.gnu.org>2017-05-04 17:43:43 +0000
commit6b13482bb6c33d2d37494ec33e2028fcbe4e0635 (patch)
tree476b428a993a41239bf817f3a96793133a260e2b /gcc
parent0f2c4a8f1d2903f9c07b86bf8faeabe1a01ed34b (diff)
downloadgcc-6b13482bb6c33d2d37494ec33e2028fcbe4e0635.zip
gcc-6b13482bb6c33d2d37494ec33e2028fcbe4e0635.tar.gz
gcc-6b13482bb6c33d2d37494ec33e2028fcbe4e0635.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/aarch64/aarch64.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3e93441..7a533b2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
+ Set loop alignment to 8.
+
2017-05-04 Martin Sebor <msebor@redhat.com>
PR translation/80280
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index ee056c6..bf13f6b 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. */