[all-commits] [llvm/llvm-project] c761b4: [AArch64] Fix variadic tail-calls on ARM64EC (#79774)
Billy Laws via All-commits
all-commits at lists.llvm.org
Tue Jan 30 18:32:28 PST 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: c761b4a5e4cc003a2c850898e1dc67d2637cfb0c
https://github.com/llvm/llvm-project/commit/c761b4a5e4cc003a2c850898e1dc67d2637cfb0c
Author: Billy Laws <blaws05 at gmail.com>
Date: 2024-01-30 (Tue, 30 Jan 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/arm64ec-varargs.ll
M llvm/test/CodeGen/AArch64/vararg-tallcall.ll
Log Message:
-----------
[AArch64] Fix variadic tail-calls on ARM64EC (#79774)
ARM64EC varargs calls expect that x4 = sp at entry, special handling is
needed to ensure this with tail calls since they occur after the
epilogue and the x4 write happens before.
I tried going through AArch64MachineFrameLowering for this, hoping to
avoid creating the dummy object but this was the best I could do since
the stack info that uses isn't populated at this stage,
CreateFixedObject also explicitly forbids 0 sized objects.
More information about the All-commits
mailing list