[llvm] [Aarch64] [ISel] Don't save vaargs registers if vaargs are unused (PR #126780)

Pavel Skripkin via llvm-commits llvm-commits at lists.llvm.org
Sat Feb 22 09:22:25 PST 2025


================
@@ -7,17 +7,14 @@ define i1 @va_func(i32 %a, i8 %b, i8 %c, ...) {
 ; CHECK-LABEL: va_func:
 ; CHECK:       .seh_proc va_func
 ; CHECK-NEXT:  // %bb.0:
-; CHECK-NEXT:    sub sp, sp, #80
----------------
pskrgag wrote:

So looks like GISel does not support vastart for win calling convention

```cpp
bool AArch64InstructionSelector::selectVaStartAAPCS(
    MachineInstr &I, MachineFunction &MF, MachineRegisterInfo &MRI) const {

  if (STI.isCallingConvWin64(MF.getFunction().getCallingConv(),
                             MF.getFunction().isVarArg()))
    return false;
```

https://github.com/llvm/llvm-project/pull/126780


More information about the llvm-commits mailing list