================
@@ -115,7 +115,13 @@ void AMDGPUABIInfo::computeInfo(CGFunctionInfo &FI) const {
 
 Address AMDGPUABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
                                  QualType Ty) const {
-  llvm_unreachable("AMDGPU does not support varargs");
+  const bool IsIndirect = false;
+  const bool AllowHigherAlign = true;
+  // Would rather not naturally align values
+  // Splitting {char, short} into two separate arguments makes that difficult.
----------------
JonChesterfield wrote:

^structs < 8 bytes are packed into integers, but structs larger than that are 
spread across multiple parameters in a discarding-padding sense. Better testing 
revealed that one byte aligning things does not work out robustly, have had to 
take a different strategy to make all the cases work. However that does mean 
everything is 4 byte aligned now.

https://github.com/llvm/llvm-project/pull/89007
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to