aboutsummaryrefslogtreecommitdiff
path: root/libatomic/Makefile.am
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2020-11-24 15:01:45 +0000
committerRichard Sandiford <richard.sandiford@arm.com>2020-11-24 15:01:45 +0000
commit489be3119e6cd092bf7f30880a5d641f0bf0672f (patch)
treee6450b53240437f1997d2e4bb9f406c0406ac9ac /libatomic/Makefile.am
parent7e0078f8643f9204777152ed0f915b52072a05c8 (diff)
downloadgcc-489be3119e6cd092bf7f30880a5d641f0bf0672f.zip
gcc-489be3119e6cd092bf7f30880a5d641f0bf0672f.tar.gz
gcc-489be3119e6cd092bf7f30880a5d641f0bf0672f.tar.bz2
aarch64: Fix aapcs64 testsuite failures
Various aapcs64 tests were failing at -O1 and above because the assignments to testfunc_ptr were being deleted as dead. That in turn happened because FUNC_VAL_CHECK hid the tail call to myfunc using an LR asm trick: asm volatile ("mov %0, x30" : "=r" (saved_return_address)); asm volatile ("mov x30, %0" : : "r" ((unsigned long long) myfunc)); and so the compiler couldn't see any calls that might read testfunc_ptr. That in itself could be fixed by adding a memory clobber to the second asm above, forcing the compiler to keep both the testfunc_ptr and the saved_return_address assignments. But since this is an ABI test, it seems better to make sure that we don't do any IPA at all. The fact that doing IPA caused a problem was kind-of helpful and so it might be better to avoid making the test “work” in the presence of IPA. The patch therefore just replaced “noinline” with “noipa”. gcc/testsuite/ * gcc.target/aarch64/aapcs64/abitest.h (FUNC_VAL_CHECK): Use noipa rather than noinline. * gcc.target/aarch64/aapcs64/abitest-2.h (FUNC_VAL_CHECK): Likewise.
Diffstat (limited to 'libatomic/Makefile.am')
0 files changed, 0 insertions, 0 deletions