[AArch64] Strengthen aarch64_hard_regno_call_part_clobbered
Christophe Lyon
christophe.lyon@linaro.org
Fri Oct 4 08:08:00 GMT 2019
On Mon, 30 Sep 2019 at 17:24, Richard Sandiford <richard.sandiford@arm.com>
wrote:
> Richard Sandiford <richard.sandiford@arm.com> writes:
> > The aarch64_vector_pcs handling in aarch64_hard_regno_call_part_clobbered
> > checks whether the mode might be bigger than 16 bytes, since on SVE
> > targets the (non-SVE) vector PCS only guarantees that the low 16 bytes
> > are preserved. But for multi-register modes, we should instead test
> > whether each single-register part might be bigger than 16 bytes.
> > (The size is always divided evenly between registers.)
> >
> > The testcase uses XImode as an example where this helps.
> >
> > Tested on aarch64-linux-gnu (with and without SVE). OK to install?
> >
> > Richard
> >
> >
> > 2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
> >
> > gcc/
> > * config/aarch64/aarch64.c
> (aarch64_hard_regno_call_part_clobbered):
> > For multi-registers modes, test how big each register part is.
> >
> > gcc/testsuite/
> > * gcc.target/aarch64/torture/simd-abi-8.c: New test.
>
> I've now applied this as r276305.
>
>
Hi Richard,
I've noticed that the new test fails on aarch64_be:
gcc.target/aarch64/torture/simd-abi-8.c -O1 scan-assembler-times
\\tld1\\t 1
gcc.target/aarch64/torture/simd-abi-8.c -O1 scan-assembler-times
\\tst1\\t 1
gcc.target/aarch64/torture/simd-abi-8.c -O2 scan-assembler-times
\\tld1\\t 1
gcc.target/aarch64/torture/simd-abi-8.c -O2 scan-assembler-times
\\tst1\\t 1
gcc.target/aarch64/torture/simd-abi-8.c -O2 -flto
-fno-use-linker-plugin -flto-partition=none scan-assembler-times
\\tld1\\t 1
gcc.target/aarch64/torture/simd-abi-8.c -O2 -flto
-fno-use-linker-plugin -flto-partition=none scan-assembler-times
\\tst1\\t 1
gcc.target/aarch64/torture/simd-abi-8.c -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects scan-assembler-times \\tld1\\t 1
gcc.target/aarch64/torture/simd-abi-8.c -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects scan-assembler-times \\tst1\\t 1
gcc.target/aarch64/torture/simd-abi-8.c -O3 -g scan-assembler-times
\\tld1\\t 1
gcc.target/aarch64/torture/simd-abi-8.c -O3 -g scan-assembler-times
\\tst1\\t 1
gcc.target/aarch64/torture/simd-abi-8.c -Os scan-assembler-times
\\tld1\\t 1
gcc.target/aarch64/torture/simd-abi-8.c -Os scan-assembler-times
\\tst1\\t 1
Christophe
Thanks,
> Richard
>
More information about the Gcc-patches
mailing list