]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/config/aarch64/tuning_models/a64fx.h
AArch64: Refactor costs models to different files.
authorTamar Christina <tamar.christina@arm.com>
Tue, 21 Nov 2023 13:19:36 +0000 (13:19 +0000)
committerTamar Christina <tamar.christina@arm.com>
Tue, 21 Nov 2023 13:19:36 +0000 (13:19 +0000)
commit4b6da8e7bdb93d9bca6291157db1c936ac56e7af
tree2f54d2ae09b85837b3efb595a35961d19b920f23
parentf26f92b534f9d68371322071f309ef3e0e95f38c
AArch64: Refactor costs models to different files.

This patch series attempts to move the generic cost model in AArch64 to a new
and modern generic standard.  The current standard is quite old and generates
very suboptimal code out of the box for user of GCC.

The goal is for the new cost model to be beneficial on newer/current Arm
Microarchitectures while not being too negative for older ones.

It does not change any core specific optimization.  The final changes reflect
both performance optimizations and size optimizations.

This first patch just re-organizes the cost structures to their own files.
The AArch64.cc file has gotten very big and it's hard to follow.

No functional changes are expected from this change.  Note that since all the
structures have private visibility I've put them in header files instead.

gcc/ChangeLog:

PR target/111370
* config/aarch64/aarch64.cc (generic_addrcost_table,
exynosm1_addrcost_table,
xgene1_addrcost_table,
thunderx2t99_addrcost_table,
thunderx3t110_addrcost_table,
tsv110_addrcost_table,
qdf24xx_addrcost_table,
a64fx_addrcost_table,
neoversev1_addrcost_table,
neoversen2_addrcost_table,
neoversev2_addrcost_table,
generic_regmove_cost,
cortexa57_regmove_cost,
cortexa53_regmove_cost,
exynosm1_regmove_cost,
thunderx_regmove_cost,
xgene1_regmove_cost,
qdf24xx_regmove_cost,
thunderx2t99_regmove_cost,
thunderx3t110_regmove_cost,
tsv110_regmove_cost,
a64fx_regmove_cost,
neoversen2_regmove_cost,
neoversev1_regmove_cost,
neoversev2_regmove_cost,
generic_vector_cost,
a64fx_vector_cost,
qdf24xx_vector_cost,
thunderx_vector_cost,
tsv110_vector_cost,
cortexa57_vector_cost,
exynosm1_vector_cost,
xgene1_vector_cost,
thunderx2t99_vector_cost,
thunderx3t110_vector_cost,
ampere1_vector_cost,
generic_branch_cost,
generic_tunings,
cortexa35_tunings,
cortexa53_tunings,
cortexa57_tunings,
cortexa72_tunings,
cortexa73_tunings,
exynosm1_tunings,
thunderxt88_tunings,
thunderx_tunings,
tsv110_tunings,
xgene1_tunings,
emag_tunings,
qdf24xx_tunings,
saphira_tunings,
thunderx2t99_tunings,
thunderx3t110_tunings,
neoversen1_tunings,
ampere1_tunings,
ampere1a_tunings,
neoversev1_vector_cost,
neoversev1_tunings,
neoverse512tvb_vector_cost,
neoverse512tvb_tunings,
neoversen2_vector_cost,
neoversen2_tunings,
neoversev2_vector_cost,
neoversev2_tunings
a64fx_tunings): Split into own files.
* config/aarch64/tuning_models/a64fx.h: New file.
* config/aarch64/tuning_models/ampere1.h: New file.
* config/aarch64/tuning_models/ampere1a.h: New file.
* config/aarch64/tuning_models/cortexa35.h: New file.
* config/aarch64/tuning_models/cortexa53.h: New file.
* config/aarch64/tuning_models/cortexa57.h: New file.
* config/aarch64/tuning_models/cortexa72.h: New file.
* config/aarch64/tuning_models/cortexa73.h: New file.
* config/aarch64/tuning_models/emag.h: New file.
* config/aarch64/tuning_models/exynosm1.h: New file.
* config/aarch64/tuning_models/generic.h: New file.
* config/aarch64/tuning_models/neoverse512tvb.h: New file.
* config/aarch64/tuning_models/neoversen1.h: New file.
* config/aarch64/tuning_models/neoversen2.h: New file.
* config/aarch64/tuning_models/neoversev1.h: New file.
* config/aarch64/tuning_models/neoversev2.h: New file.
* config/aarch64/tuning_models/qdf24xx.h: New file.
* config/aarch64/tuning_models/saphira.h: New file.
* config/aarch64/tuning_models/thunderx.h: New file.
* config/aarch64/tuning_models/thunderx2t99.h: New file.
* config/aarch64/tuning_models/thunderx3t110.h: New file.
* config/aarch64/tuning_models/thunderxt88.h: New file.
* config/aarch64/tuning_models/tsv110.h: New file.
* config/aarch64/tuning_models/xgene1.h: New file.
25 files changed:
gcc/config/aarch64/aarch64.cc
gcc/config/aarch64/tuning_models/a64fx.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/ampere1.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/ampere1a.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/cortexa35.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/cortexa53.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/cortexa57.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/cortexa72.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/cortexa73.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/emag.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/exynosm1.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/generic.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/neoverse512tvb.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/neoversen1.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/neoversen2.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/neoversev1.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/neoversev2.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/qdf24xx.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/saphira.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/thunderx.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/thunderx2t99.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/thunderx3t110.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/thunderxt88.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/tsv110.h [new file with mode: 0644]
gcc/config/aarch64/tuning_models/xgene1.h [new file with mode: 0644]