This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH][AArch64] Set jump alignment to 4 for Cortex cores
- From: Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: nd <nd at arm dot com>, James Greenhalgh <James dot Greenhalgh at arm dot com>
- Date: Wed, 12 Apr 2017 12:50:11 +0000
- Subject: [PATCH][AArch64] Set jump alignment to 4 for Cortex cores
- Authentication-results: sourceware.org; auth=none
- Authentication-results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com;
- Nodisclaimer: True
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
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
Bootstrap OK, OK for stage 1?
ChangeLog:
2017-04-12 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.
--
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index a6004e6e283ba7157e65b678cf668f8a47e21abb..a8b3a29dd2e242a35f37b8c6a6fb30699ace5e01 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -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. */