aarch64: enable Ampere-1 CPU
authorPhilipp Tomsich <philipp.tomsich@vrull.eu>
Thu, 20 May 2021 19:57:48 +0000 (21:57 +0200)
committerPhilipp Tomsich <philipp.tomsich@vrull.eu>
Wed, 3 Nov 2021 13:59:19 +0000 (14:59 +0100)
commit67b0d47e20e655c0dd53a76ea88aab60fafb2059
treedcc2168621888806a78f55982047350ab882b368
parenta195c7270e4705a06a9aaade0d721d5f52ca2275
aarch64: enable Ampere-1 CPU

This adds support and a basic turning model for the Ampere Computing
"Ampere-1" CPU.

The Ampere-1 implements the ARMv8.6 architecture in A64 mode and is
modelled as a 4-wide issue (as with all modern micro-architectures,
the chosen issue rate is a compromise between the maximum dispatch
rate and the maximum rate of uops issued to the scheduler).

This adds the -mcpu=ampere1 command-line option and the relevant cost
information/tuning tables for the Ampere-1.

gcc/ChangeLog:

* config/aarch64/aarch64-cores.def (AARCH64_CORE): New Ampere-1 core.
* config/aarch64/aarch64-tune.md: Regenerate.
* config/aarch64/aarch64-cost-tables.h: Add extra costs for Ampere-1.
* config/aarch64/aarch64.c: Add tuning structures for Ampere-1.
* doc/invoke.texi: Add documentation for Ampere-1 core.
gcc/config/aarch64/aarch64-cores.def
gcc/config/aarch64/aarch64-cost-tables.h
gcc/config/aarch64/aarch64-tune.md
gcc/config/aarch64/aarch64.c
gcc/doc/invoke.texi