[llvm] [ABI] Add DefaultTargetInfo for default argument/return classification (PR #225009)

via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 21 22:21:37 PDT 2026


================
@@ -71,6 +71,45 @@ const Type *TargetInfo::useFirstFieldIfTransparentUnion(const Type *Ty) const {
   return Ty;
 }
 
+ArgInfo TargetInfo::classifyDefaultArgumentType(const Type *Ty) const {
+  Ty = useFirstFieldIfTransparentUnion(Ty);
+
+  if (isAggregateTypeForABI(Ty)) {
+    // A record that must stay in memory keeps ByVal, everything else indirect.
+    if (RecordArgABI RAA = getRecordArgABI(Ty))
+      return getNaturalAlignIndirect(Ty, /*ByVal=*/RAA == RAA_DirectInMemory);
----------------
skc7 wrote:

Created pre-requisite PR https://github.com/llvm/llvm-project/pull/225301 to add addrspace argument to `getNaturalAlignIndirect()`. Will update this PR once #225301 lands.

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


More information about the llvm-commits mailing list