[llvm] [AMDGPU][GlobalISel] Enable kernel argument preloading (PR #134655)
Shilei Tian via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 11 06:58:47 PDT 2025
================
@@ -497,6 +499,65 @@ static void allocateHSAUserSGPRs(CCState &CCInfo,
// these from the dispatch pointer.
}
+void AMDGPUCallLowering::lowerPreloadedParameter(
+ MachineIRBuilder &B, ArrayRef<Register> VRegs, Type *ArgTy,
+ uint64_t ArgOffset, Align Alignment,
+ ArrayRef<MCRegister> PreloadRegs) const {
+ MachineFunction &MF = B.getMF();
+ const GCNSubtarget *Subtarget = &MF.getSubtarget<GCNSubtarget>();
+ MachineRegisterInfo &MRI = MF.getRegInfo();
+ const SIRegisterInfo *TRI = Subtarget->getRegisterInfo();
+ const DataLayout &DL = B.getDataLayout();
+
+ LLT ResTy = getLLTForType(*ArgTy, DL);
+ LLT ScalarTy = LLT::scalar(DL.getTypeSizeInBits(ArgTy));
+ unsigned TotalSize = 0;
+ SmallVector<Register> SrcRegs(PreloadRegs.size());
+
+ for (auto &&[Idx, PhysReg] : enumerate(PreloadRegs)) {
----------------
shiltian wrote:
Why is it `&&` here?
https://github.com/llvm/llvm-project/pull/134655
More information about the llvm-commits
mailing list