[clang] [amdgpu] Pass variadic arguments without splitting (PR #94083)

Matt Arsenault via cfe-commits cfe-commits at lists.llvm.org
Fri May 31 23:40:40 PDT 2024


================
@@ -197,12 +202,20 @@ ABIArgInfo AMDGPUABIInfo::classifyKernelArgumentType(QualType Ty) const {
   return ABIArgInfo::getDirect(LTy, 0, nullptr, false);
 }
 
-ABIArgInfo AMDGPUABIInfo::classifyArgumentType(QualType Ty,
+ABIArgInfo AMDGPUABIInfo::classifyArgumentType(QualType Ty, bool Variadic,
                                                unsigned &NumRegsLeft) const {
   assert(NumRegsLeft <= MaxNumRegsForArgsRet && "register estimate underflow");
 
   Ty = useFirstFieldIfTransparentUnion(Ty);
 
+  if (Variadic) {
----------------
arsenm wrote:

The bigger concern is using giant aggregate types is not great IR, and not all that well supported. a 65k element array will crash in SelectionDAG for example 

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


More information about the cfe-commits mailing list