]> git.ipfire.org Git - thirdparty/gcc.git/commit
[AArch64][2/2] Add sve_width -moverride tunable
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Fri, 7 Dec 2018 17:05:21 +0000 (17:05 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Fri, 7 Dec 2018 17:05:21 +0000 (17:05 +0000)
commit886f092f59d8a903fb5b99e757df5e4523dae825
treef915a21954bebd42a5981532532d5398d1a2354a
parentc844c4028f5e8e1370f889db18042caeb83518fc
[AArch64][2/2] Add sve_width -moverride tunable

On top of the previous patch that implements TARGET_ESTIMATED_POLY_VALUE
and adds an sve_width tuning field to the CPU structs, this patch implements
an -moverride knob to adjust this sve_width field to allow for experimentation.
Again, reminder that this only has an effect when compiling for VLA-SVE that is,
without msve-vector-bits=<foo>. This just adjusts tuning heuristics in the compiler,,
like profitability thresholds for vectorised versioned loops, and others.

It can be used, for example like -moverride=sve_width=256 to set the sve_width
tuning field to 256. Widths outside of the accepted SVE widths [128 - 2048] are rejected
as you'd expect.

    * config/aarch64/aarch64.c (aarch64_tuning_override_functions): Add
    sve_width entry.
    (aarch64_parse_sve_width_string): Define.

    * gcc.target/aarch64/sve/override_sve_width_1.c: New test.

From-SVN: r266898
gcc/ChangeLog
gcc/config/aarch64/aarch64.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/sve/override_sve_width_1.c [new file with mode: 0644]