Commit 6ed8c923 by Wilco Dijkstra

[AArch64] Enable compare branch fusion

Enable the most basic form of compare-branch fusion since various CPUs
support it. This has no measurable effect on cores which don't support
branch fusion, but increases fusion opportunities on cores which do.

gcc/
	* config/aarch64/aarch64.c (generic_tunings): Add branch fusion.
	(neoversen1_tunings): Likewise.
parent eff9c61d
2020-01-17 Wilco Dijkstra <wdijkstr@arm.com> 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com>
* config/aarch64/aarch64.c (generic_tunings): Add branch fusion.
(neoversen1_tunings): Likewise.
2020-01-17 Wilco Dijkstra <wdijkstr@arm.com>
PR target/92692 PR target/92692
* config/aarch64/aarch64.c (aarch64_split_compare_and_swap) * config/aarch64/aarch64.c (aarch64_split_compare_and_swap)
Add assert to ensure prolog has been emitted. Add assert to ensure prolog has been emitted.
......
...@@ -726,7 +726,7 @@ static const struct tune_params generic_tunings = ...@@ -726,7 +726,7 @@ static const struct tune_params generic_tunings =
SVE_NOT_IMPLEMENTED, /* sve_width */ SVE_NOT_IMPLEMENTED, /* sve_width */
4, /* memmov_cost */ 4, /* memmov_cost */
2, /* issue_rate */ 2, /* issue_rate */
(AARCH64_FUSE_AES_AESMC), /* fusible_ops */ (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops */
"16:12", /* function_align. */ "16:12", /* function_align. */
"4", /* jump_align. */ "4", /* jump_align. */
"8", /* loop_align. */ "8", /* loop_align. */
...@@ -1130,7 +1130,7 @@ static const struct tune_params neoversen1_tunings = ...@@ -1130,7 +1130,7 @@ static const struct tune_params neoversen1_tunings =
SVE_NOT_IMPLEMENTED, /* sve_width */ SVE_NOT_IMPLEMENTED, /* sve_width */
4, /* memmov_cost */ 4, /* memmov_cost */
3, /* issue_rate */ 3, /* issue_rate */
AARCH64_FUSE_AES_AESMC, /* fusible_ops */ (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops */
"32:16", /* function_align. */ "32:16", /* function_align. */
"32:16", /* jump_align. */ "32:16", /* jump_align. */
"32:16", /* loop_align. */ "32:16", /* loop_align. */
......
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