[clang] [X86][vectorcall] Pass built types byval when xmm0~6 exhausted (PR #91846)

Eli Friedman via cfe-commits cfe-commits at lists.llvm.org
Sat May 11 11:10:28 PDT 2024


================
@@ -792,7 +792,7 @@ ABIArgInfo X86_32ABIInfo::classifyArgumentType(QualType Ty, CCState &State,
         return ABIArgInfo::getDirect();
       return ABIArgInfo::getExpand();
     }
-    return getIndirectResult(Ty, /*ByVal=*/false, State);
+    return getIndirectResult(Ty, IsVectorCall && Ty->isBuiltinType(), State);
----------------
efriedma-quic wrote:

Maybe try to avoid byval overhead:

```
if (IsVectorCall && Ty->isBuiltinType())
  return ABIArgInfo::getDirect();
return getIndirectResult(Ty, /*ByVal=*/false, State);
```

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


More information about the cfe-commits mailing list