Set jump alignment to 4 for Cortex cores as it reduces codesize by 0.4% on...
authorWilco Dijkstra <wdijkstr@arm.com>
Thu, 4 May 2017 17:49:19 +0000 (17:49 +0000)
committerWilco Dijkstra <wilco@gcc.gnu.org>
Thu, 4 May 2017 17:49:19 +0000 (17:49 +0000)
Set jump alignment to 4 for Cortex cores as it reduces codesize by 0.4% on
average with no obvious performance difference.  See original discussion of
the overheads of various alignments:
https://gcc.gnu.org/ml/gcc-patches/2016-06/msg02075.html.

    gcc/
* config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
(cortexa53_tunings): Likewise.
(cortexa57_tunings): Likewise.
(cortexa72_tunings): Likewise.
(cortexa73_tunings): Likewise.

From-SVN: r247609

gcc/ChangeLog
gcc/config/aarch64/aarch64.c

index 7a533b24162fdea66c16ddb76079c261e9e98ccc..88be3a82294cc03c2b5c62e3e79440a5a36250e5 100644 (file)
@@ -1,3 +1,11 @@
+2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
+
+       * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
+       (cortexa53_tunings): Likewise.
+       (cortexa57_tunings): Likewise.
+       (cortexa72_tunings): Likewise.
+       (cortexa73_tunings): Likewise.
+
 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
 
        * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
index bf13f6b057fbd509652b0b484398a4646b3ae7be..622735291dcbc891284161084024862e7cfdd561 100644 (file)
@@ -564,7 +564,7 @@ static const struct tune_params cortexa35_tunings =
   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
    | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops  */
   16,  /* function_align.  */
-  8,   /* jump_align.  */
+  4,   /* jump_align.  */
   8,   /* loop_align.  */
   2,   /* int_reassoc_width.  */
   4,   /* fp_reassoc_width.  */
@@ -590,7 +590,7 @@ static const struct tune_params cortexa53_tunings =
   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
    | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops  */
   16,  /* function_align.  */
-  8,   /* jump_align.  */
+  4,   /* jump_align.  */
   8,   /* loop_align.  */
   2,   /* int_reassoc_width.  */
   4,   /* fp_reassoc_width.  */
@@ -616,7 +616,7 @@ static const struct tune_params cortexa57_tunings =
   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
    | AARCH64_FUSE_MOVK_MOVK), /* fusible_ops  */
   16,  /* function_align.  */
-  8,   /* jump_align.  */
+  4,   /* jump_align.  */
   8,   /* loop_align.  */
   2,   /* int_reassoc_width.  */
   4,   /* fp_reassoc_width.  */
@@ -642,7 +642,7 @@ static const struct tune_params cortexa72_tunings =
   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
    | AARCH64_FUSE_MOVK_MOVK), /* fusible_ops  */
   16,  /* function_align.  */
-  8,   /* jump_align.  */
+  4,   /* jump_align.  */
   8,   /* loop_align.  */
   2,   /* int_reassoc_width.  */
   4,   /* fp_reassoc_width.  */
@@ -668,7 +668,7 @@ static const struct tune_params cortexa73_tunings =
   (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
    | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops  */
   16,  /* function_align.  */
-  8,   /* jump_align.  */
+  4,   /* jump_align.  */
   8,   /* loop_align.  */
   2,   /* int_reassoc_width.  */
   4,   /* fp_reassoc_width.  */