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

via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 10 09:53:32 PDT 2025


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff HEAD~1 HEAD --extensions cpp,h -- llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp llvm/lib/Target/AMDGPU/AMDGPUCallLowering.h llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp llvm/lib/Target/AMDGPU/SIISelLowering.cpp llvm/lib/Target/AMDGPU/SIISelLowering.h
``````````

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
index d64884832..1e09d70c5 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp
@@ -517,28 +517,28 @@ void AMDGPUCallLowering::lowerPreloadedParameter(
   for (auto &&[Idx, PhysReg] : enumerate(PreloadRegs)) {
     Register VReg = MRI.getLiveInVirtReg(PhysReg);
     TypeSize RegSize = TRI->getRegSizeInBits(VReg, MRI);
-    
+
     if (!MRI.getVRegDef(VReg)) {
       MRI.setType(VReg, LLT::scalar(RegSize));
       B.getMBB().addLiveIn(PhysReg);
       B.buildInstr(TargetOpcode::COPY).addDef(VReg).addReg(PhysReg);
     }
-    
+
     if (DL.getTypeStoreSize(ArgTy) < 4 && Alignment < 4) {
       int64_t AlignDownOffset = alignDown(ArgOffset, 4);
       int64_t OffsetDiff = ArgOffset - AlignDownOffset;
       auto ShiftAmt = B.buildConstant(LLT::scalar(32), OffsetDiff * 8);
       auto Shift = B.buildRotateLeft(LLT::scalar(RegSize), VReg, ShiftAmt);
-      
+
       if (ResTy.isVector()) {
         B.buildBitcast(VRegs[0], B.buildTrunc(ScalarTy, Shift));
       } else {
         B.buildTrunc(VRegs[0], Shift);
       }
-      
+
       return;
     }
-    
+
     TotalSize += RegSize;
     SrcRegs[Idx] = VReg;
   }
@@ -573,9 +573,9 @@ bool AMDGPUCallLowering::lowerFormalArgumentsKernel(
   CCState CCInfo(F.getCallingConv(), F.isVarArg(), MF, ArgLocs, F.getContext());
 
   allocateHSAUserSGPRs(CCInfo, B, MF, *TRI, *Info);
-  
+
   if (Subtarget->hasKernargPreload())
-  TLI.allocatePreloadKernArgSGPRs(CCInfo, ArgLocs, MF, *TRI, *Info);
+    TLI.allocatePreloadKernArgSGPRs(CCInfo, ArgLocs, MF, *TRI, *Info);
 
   unsigned i = 0;
   const Align KernArgBaseAlign(16);
@@ -626,7 +626,7 @@ bool AMDGPUCallLowering::lowerFormalArgumentsKernel(
         Arg.hasInRegAttr() ? PreloadKernArgs.find(i) : PreloadKernArgs.end();
     if (PreloadKernArg != PreloadKernArgs.end()) {
       lowerPreloadedParameter(B, VRegs[i], ArgTy, ArgOffset, Alignment,
-                            PreloadKernArg->getSecond().Regs);
+                              PreloadKernArg->getSecond().Regs);
       ++i;
       continue;
     }
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.h b/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.h
index 52663c748..74fce411e 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.h
+++ b/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.h
@@ -31,8 +31,8 @@ class AMDGPUCallLowering final : public CallLowering {
                       Align Alignment) const;
 
   void lowerPreloadedParameter(MachineIRBuilder &B, ArrayRef<Register> VRegs,
-                             Type *ArgTy, uint64_t ArgOffset, Align Alignment,
-                             ArrayRef<MCRegister> PreloadRegs) const;
+                               Type *ArgTy, uint64_t ArgOffset, Align Alignment,
+                               ArrayRef<MCRegister> PreloadRegs) const;
 
   bool canLowerReturn(MachineFunction &MF, CallingConv::ID CallConv,
                       SmallVectorImpl<BaseArgInfo> &Outs,
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
index 8561aae98..653f18062 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
@@ -1295,10 +1295,9 @@ void AMDGPUTargetLowering::analyzeFormalArgumentsCompute(
 
       unsigned PartOffset = 0;
       for (unsigned i = 0; i != NumRegs; ++i) {
-        State.addLoc(CCValAssign::getCustomMem(Arg.getArgNo(), RegisterVT,
-                                               BasePartOffset + PartOffset,
-                                               MemVT.getSimpleVT(),
-                                               CCValAssign::Full));
+        State.addLoc(CCValAssign::getCustomMem(
+            Arg.getArgNo(), RegisterVT, BasePartOffset + PartOffset,
+            MemVT.getSimpleVT(), CCValAssign::Full));
         PartOffset += MemVT.getStoreSize();
       }
     }
diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
index f9f1f9c95..15505f312 100644
--- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
@@ -2537,9 +2537,9 @@ void SITargetLowering::allocateHSAUserSGPRs(CCState &CCInfo,
 }
 
 static bool allocPreloadKernArg(uint64_t &LastExplicitArgOffset,
-                                uint64_t ArgOffset,
-                                unsigned ArgSize, unsigned Idx,
-                                MachineFunction &MF, const SIRegisterInfo &TRI,
+                                uint64_t ArgOffset, unsigned ArgSize,
+                                unsigned Idx, MachineFunction &MF,
+                                const SIRegisterInfo &TRI,
                                 SIMachineFunctionInfo &Info, CCState &CCInfo) {
   GCNUserSGPRUsageInfo &SGPRInfo = Info.getUserSGPRInfo();
   const Align KernelArgBaseAlign = Align(16);

``````````

</details>


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


More information about the llvm-commits mailing list