diff options
Diffstat (limited to 'lib/Target/AMDGPU/SIMachineFunctionInfo.cpp')
| -rw-r--r-- | lib/Target/AMDGPU/SIMachineFunctionInfo.cpp | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp b/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp index b6a982aee6be..adebb8c4a1c5 100644 --- a/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp +++ b/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp @@ -122,9 +122,15 @@ SIMachineFunctionInfo::SIMachineFunctionInfo(const MachineFunction &MF)    bool MaySpill = ST.isVGPRSpillingEnabled(*F);    bool HasStackObjects = FrameInfo.hasStackObjects(); -  if (HasStackObjects || MaySpill) +  if (HasStackObjects || MaySpill) {      PrivateSegmentWaveByteOffset = true; +    // HS and GS always have the scratch wave offset in SGPR5 on GFX9. +    if (ST.getGeneration() >= AMDGPUSubtarget::GFX9 && +        (CC == CallingConv::AMDGPU_HS || CC == CallingConv::AMDGPU_GS)) +      PrivateSegmentWaveByteOffsetSystemSGPR = AMDGPU::SGPR5; +  } +    if (ST.isAmdCodeObjectV2(MF)) {      if (HasStackObjects || MaySpill)        PrivateSegmentBuffer = true;  | 
