[PATCH] D130903: [AArch64][GlobalISel] Lower formal arguments of AAPCS & ms_abi variadic functions.
Vladislav Dzhidzhoev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 13 11:58:49 PST 2022
dzhidzhoev added a comment.
In D130903#3991285 <https://reviews.llvm.org/D130903#3991285>, @mstorsjo wrote:
> I had somewhat missed the scope of this patch - I had only expected it to affect how functions marked `ms_abi` on non-Windows platforms are lowered, while it affects all regular Windows targets too.
>
> This caused a pretty severe regression for Windows targets, reproducible with this snippet:
>
> $ cat test.c
> double func(double f) {
> return f;
> }
> $ clang -target aarch64-windows -S -o - test.c -fno-asynchronous-unwind-tables
> func:
> sub sp, sp, #16
> str x0, [sp, #8]
> ldr d0, [sp, #8]
> add sp, sp, #16
> ret
>
> (The `-fno-asynchronous-unwind-tables` option is only relevant for clarity of the output.)
>
> I'll go ahead and push a revert in a moment.
Thank you for catching it! I wonder how win64 tests didn't fail on that. The problem was that during rebase I accidentally changed CCAssignFn arguments, so that all Win64 function was treated as vararg. Fixed it now. Should I recommit?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D130903/new/
https://reviews.llvm.org/D130903
More information about the llvm-commits
mailing list