With -mcpu=generic the loop alignment is currently 4.
authorWilco Dijkstra <wdijkstr@arm.com>
Thu, 4 May 2017 17:43:43 +0000 (17:43 +0000)
committerWilco Dijkstra <wilco@gcc.gnu.org>
Thu, 4 May 2017 17:43:43 +0000 (17:43 +0000)
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
gcc/config/aarch64/aarch64.c

index 3e93441c4bf94c7f8010a20dc77e71cc4a51c66f..7a533b24162fdea66c16ddb76079c261e9e98ccc 100644 (file)
@@ -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
index ee056c6fe6802ee978c67ed7877f0d4c18b75752..bf13f6b057fbd509652b0b484398a4646b3ae7be 100644 (file)
@@ -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.  */