[llvm] [AMDGPU][GlobalISel] Enable kernel argument preloading (PR #134655)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 25 04:28:21 PDT 2025


================
@@ -559,13 +618,29 @@ bool AMDGPUCallLowering::lowerFormalArgumentsKernel(
 
         B.buildAddrSpaceCast(VRegs[i][0], PtrReg);
       }
-    } else {
-      ArgInfo OrigArg(VRegs[i], Arg, i);
-      const unsigned OrigArgIdx = i + AttributeList::FirstArgIndex;
-      setArgFlags(OrigArg, OrigArgIdx, DL, F);
-      lowerParameter(B, OrigArg, ArgOffset, Alignment);
+      i++;
+      continue;
+    }
+
+    auto &PreloadKernArgs = Info->getArgInfo().PreloadKernArgs;
+    auto PreloadKernArg =
+        Arg.hasInRegAttr() ? PreloadKernArgs.find(i) : PreloadKernArgs.end();
+    if (PreloadKernArg != PreloadKernArgs.end()) {
+      lowerPreloadedParameter(B, VRegs[i], ArgTy, ArgOffset, Alignment,
+                              PreloadKernArg->getSecond().Regs);
+      ++i;
+      continue;
     }
 
+    if (Arg.hasAttribute("amdgpu-hidden-argument"))
+      F.getContext().diagnose(DiagnosticInfoUnsupported(
----------------
arsenm wrote:

DiagnosticInfoUnsupported is probably the wrong error kind, but this matches the DAG 

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


More information about the llvm-commits mailing list