Commit d4407370 by Wilco Dijkstra Committed by Wilco Dijkstra

Increase loop alignment on Cortex cores to 8 and set function alignment to 16.

This makes things consistent across big.LITTLE cores, improves performance of
benchmarks with tight loops and reduces performance variations due to small
changes in code layout.

    gcc/
        * config/aarch64/aarch64.c (cortexa53_tunings):
        Increase loop alignment to 8.  Set function alignment to 16.
        (cortexa35_tunings): Likewise.
        (cortexa57_tunings): Increase loop alignment to 8.
        (cortexa72_tunings): Likewise.
        (cortexa73_tunings): Likewise.

From-SVN: r237851
parent 9182f718
2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
* config/aarch64/aarch64.c (cortexa53_tunings):
Increase loop alignment to 8. Set function alignment to 16.
(cortexa35_tunings): Likewise.
(cortexa57_tunings): Increase loop alignment to 8.
(cortexa72_tunings): Likewise.
(cortexa73_tunings): Likewise.
2016-06-29 Matthew Wahab <matthew.wahab@arm.com> 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
* doc/sourcebuild.texi (Effective-Target keywords): Add entries * doc/sourcebuild.texi (Effective-Target keywords): Add entries
......
...@@ -454,9 +454,9 @@ static const struct tune_params cortexa35_tunings = ...@@ -454,9 +454,9 @@ static const struct tune_params cortexa35_tunings =
1, /* issue_rate */ 1, /* issue_rate */
(AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD (AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
| AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */ | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */
8, /* function_align. */ 16, /* function_align. */
8, /* jump_align. */ 8, /* jump_align. */
4, /* loop_align. */ 8, /* loop_align. */
2, /* int_reassoc_width. */ 2, /* int_reassoc_width. */
4, /* fp_reassoc_width. */ 4, /* fp_reassoc_width. */
1, /* vec_reassoc_width. */ 1, /* vec_reassoc_width. */
...@@ -480,9 +480,9 @@ static const struct tune_params cortexa53_tunings = ...@@ -480,9 +480,9 @@ static const struct tune_params cortexa53_tunings =
2, /* issue_rate */ 2, /* issue_rate */
(AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
| AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */ | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */
8, /* function_align. */ 16, /* function_align. */
8, /* jump_align. */ 8, /* jump_align. */
4, /* loop_align. */ 8, /* loop_align. */
2, /* int_reassoc_width. */ 2, /* int_reassoc_width. */
4, /* fp_reassoc_width. */ 4, /* fp_reassoc_width. */
1, /* vec_reassoc_width. */ 1, /* vec_reassoc_width. */
...@@ -508,7 +508,7 @@ static const struct tune_params cortexa57_tunings = ...@@ -508,7 +508,7 @@ static const struct tune_params cortexa57_tunings =
| AARCH64_FUSE_MOVK_MOVK), /* fusible_ops */ | AARCH64_FUSE_MOVK_MOVK), /* fusible_ops */
16, /* function_align. */ 16, /* function_align. */
8, /* jump_align. */ 8, /* jump_align. */
4, /* loop_align. */ 8, /* loop_align. */
2, /* int_reassoc_width. */ 2, /* int_reassoc_width. */
4, /* fp_reassoc_width. */ 4, /* fp_reassoc_width. */
1, /* vec_reassoc_width. */ 1, /* vec_reassoc_width. */
...@@ -534,7 +534,7 @@ static const struct tune_params cortexa72_tunings = ...@@ -534,7 +534,7 @@ static const struct tune_params cortexa72_tunings =
| AARCH64_FUSE_MOVK_MOVK), /* fusible_ops */ | AARCH64_FUSE_MOVK_MOVK), /* fusible_ops */
16, /* function_align. */ 16, /* function_align. */
8, /* jump_align. */ 8, /* jump_align. */
4, /* loop_align. */ 8, /* loop_align. */
2, /* int_reassoc_width. */ 2, /* int_reassoc_width. */
4, /* fp_reassoc_width. */ 4, /* fp_reassoc_width. */
1, /* vec_reassoc_width. */ 1, /* vec_reassoc_width. */
...@@ -560,7 +560,7 @@ static const struct tune_params cortexa73_tunings = ...@@ -560,7 +560,7 @@ static const struct tune_params cortexa73_tunings =
| AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */ | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */
16, /* function_align. */ 16, /* function_align. */
8, /* jump_align. */ 8, /* jump_align. */
4, /* loop_align. */ 8, /* loop_align. */
2, /* int_reassoc_width. */ 2, /* int_reassoc_width. */
4, /* fp_reassoc_width. */ 4, /* fp_reassoc_width. */
1, /* vec_reassoc_width. */ 1, /* vec_reassoc_width. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment