diff options
Diffstat (limited to 'llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp b/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp index 1e43d2727a00..8d7df73f3cee 100644 --- a/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp +++ b/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp @@ -163,6 +163,9 @@ SIMachineFunctionInfo::SIMachineFunctionInfo(const Function &F, if (!S.empty()) S.consumeInteger(0, HighBitsOf32BitAddress); + MaxMemoryClusterDWords = F.getFnAttributeAsParsedInteger( + "amdgpu-max-memory-cluster-dwords", DefaultMemoryClusterDWordsLimit); + // On GFX908, in order to guarantee copying between AGPRs, we need a scratch // VGPR available at all times. For now, reserve highest available VGPR. After // RA, shift it to the lowest available unused VGPR if the one exist. @@ -694,8 +697,8 @@ yaml::SIMachineFunctionInfo::SIMachineFunctionInfo( const llvm::MachineFunction &MF) : ExplicitKernArgSize(MFI.getExplicitKernArgSize()), MaxKernArgAlign(MFI.getMaxKernArgAlign()), LDSSize(MFI.getLDSSize()), - GDSSize(MFI.getGDSSize()), - DynLDSAlign(MFI.getDynLDSAlign()), IsEntryFunction(MFI.isEntryFunction()), + GDSSize(MFI.getGDSSize()), DynLDSAlign(MFI.getDynLDSAlign()), + IsEntryFunction(MFI.isEntryFunction()), NoSignedZerosFPMath(MFI.hasNoSignedZerosFPMath()), MemoryBound(MFI.isMemoryBound()), WaveLimiter(MFI.needsWaveLimiter()), HasSpilledSGPRs(MFI.hasSpilledSGPRs()), @@ -708,8 +711,8 @@ yaml::SIMachineFunctionInfo::SIMachineFunctionInfo( BytesInStackArgArea(MFI.getBytesInStackArgArea()), ReturnsVoid(MFI.returnsVoid()), ArgInfo(convertArgumentInfo(MFI.getArgInfo(), TRI)), - PSInputAddr(MFI.getPSInputAddr()), - PSInputEnable(MFI.getPSInputEnable()), + PSInputAddr(MFI.getPSInputAddr()), PSInputEnable(MFI.getPSInputEnable()), + MaxMemoryClusterDWords(MFI.getMaxMemoryClusterDWords()), Mode(MFI.getMode()) { for (Register Reg : MFI.getSGPRSpillPhysVGPRs()) SpillPhysVGPRS.push_back(regToString(Reg, TRI)); @@ -744,6 +747,7 @@ bool SIMachineFunctionInfo::initializeBaseYamlFields( DynLDSAlign = YamlMFI.DynLDSAlign; PSInputAddr = YamlMFI.PSInputAddr; PSInputEnable = YamlMFI.PSInputEnable; + MaxMemoryClusterDWords = YamlMFI.MaxMemoryClusterDWords; HighBitsOf32BitAddress = YamlMFI.HighBitsOf32BitAddress; Occupancy = YamlMFI.Occupancy; IsEntryFunction = YamlMFI.IsEntryFunction; |
