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

Austin Kerbow via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 7 08:54:47 PDT 2025


================
@@ -545,11 +546,47 @@ bool AMDGPUCallLowering::lowerFormalArgumentsKernel(
 
     Align Alignment = commonAlignment(KernArgBaseAlign, ArgOffset);
 
-    if (IsByRef) {
+    if (Arg.hasInRegAttr() && IsEntryFunc && Subtarget->hasKernargPreload()) {
+      unsigned NumAllocSGPRs = alignTo(DL.getTypeSizeInBits(ArgTy), 32) / 32;
+
+      unsigned Padding = ArgOffset - BaseOffset;
+      unsigned PaddingSGPRs = alignTo(Padding, 4) / 4;
+
+      // Preload this argument.
+      const TargetRegisterClass *RC =
----------------
kerbowa wrote:

Need to handle sub-dword arguments.

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


More information about the llvm-commits mailing list