Hi, The attached patches bring the description of Ares and Neoverse-N1 to the gcc-7-arm vendor branch.
There were 2 changes to adjust the first patch to the older code in gcc-7. Instead of: + "32:16", /* function_align. */ + "32:16", /* jump_align. */ + "32:16", /* loop_align. */ the patch has: + 32, /* function_align. */ + 32, /* jump_align. */ + 32, /* loop_align. */ The syntax for “32:16” was added in gcc-8: +@itemx -falign-functions=@var{n}:@var{m} Align the start of functions to the next power-of-two greater than +@var{n}, skipping up to @var{m}-1 bytes. This ensures that at least +the first @var{m} bytes of the function can be fetched by the CPU +without crossing an @var{n}-byte alignment boundary. +If @var{m} is not specified, it defaults to @var{n}. + +Examples: @option{-falign-functions=32} aligns functions to the next +32-byte boundary, @option{-falign-functions=24} aligns to the next +32-byte boundary only if this can be done by skipping 23 bytes or less, +@option{-falign-functions=32:7} aligns to the next +32-byte boundary only if this can be done by skipping 6 bytes or less. The second adjustment is due to the fact that gcc-7-branch does not yet support several of the features listed in gcc-8. Instead of: AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_F16 | AARCH64_FL_RCPC | AARCH64_FL_DOTPROD | AARCH64_FL_PROFILE the patch has: AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_F16 The patches pass bootstrap and regression test on aarch64-linux Graviton2. Ok to commit to gcc-7-arm vendor branch? Thanks, Sebastian
0001-AArch64-Initial-mcpu-ares-tuning.patch
Description: 0001-AArch64-Initial-mcpu-ares-tuning.patch
0002-AArch64-Add-support-for-Neoverse-N1.patch
Description: 0002-AArch64-Add-support-for-Neoverse-N1.patch
0003-AArch64-Set-jump-align-4-for-neoversen1.patch
Description: 0003-AArch64-Set-jump-align-4-for-neoversen1.patch
0004-AArch64-Enable-compare-branch-fusion.patch
Description: 0004-AArch64-Enable-compare-branch-fusion.patch