diff options
Diffstat (limited to 'lib/Target/AMDGPU/SIMachineFunctionInfo.cpp')
| -rw-r--r-- | lib/Target/AMDGPU/SIMachineFunctionInfo.cpp | 21 | 
1 files changed, 8 insertions, 13 deletions
diff --git a/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp b/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp index 0d5ff75e37ed8..181cc41bd5ff7 100644 --- a/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp +++ b/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp @@ -117,7 +117,6 @@ SIMachineFunctionInfo::SIMachineFunctionInfo(const MachineFunction &MF)    }    const MachineFrameInfo &FrameInfo = MF.getFrameInfo(); -  bool MaySpill = ST.isVGPRSpillingEnabled(F);    bool HasStackObjects = FrameInfo.hasStackObjects();    if (isEntryFunction()) { @@ -126,21 +125,18 @@ SIMachineFunctionInfo::SIMachineFunctionInfo(const MachineFunction &MF)      if (WorkItemIDZ)        WorkItemIDY = true; -    if (HasStackObjects || MaySpill) { -      PrivateSegmentWaveByteOffset = true; +    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)) -      ArgInfo.PrivateSegmentWaveByteOffset -        = ArgDescriptor::createRegister(AMDGPU::SGPR5); -    } +      ArgInfo.PrivateSegmentWaveByteOffset = +          ArgDescriptor::createRegister(AMDGPU::SGPR5);    } -  bool IsCOV2 = ST.isAmdCodeObjectV2(F); -  if (IsCOV2) { -    if (HasStackObjects || MaySpill) -      PrivateSegmentBuffer = true; +  bool isAmdHsaOrMesa = ST.isAmdHsaOrMesa(F); +  if (isAmdHsaOrMesa) { +    PrivateSegmentBuffer = true;      if (F.hasFnAttribute("amdgpu-dispatch-ptr"))        DispatchPtr = true; @@ -151,14 +147,13 @@ SIMachineFunctionInfo::SIMachineFunctionInfo(const MachineFunction &MF)      if (F.hasFnAttribute("amdgpu-dispatch-id"))        DispatchID = true;    } else if (ST.isMesaGfxShader(F)) { -    if (HasStackObjects || MaySpill) -      ImplicitBufferPtr = true; +    ImplicitBufferPtr = true;    }    if (F.hasFnAttribute("amdgpu-kernarg-segment-ptr"))      KernargSegmentPtr = true; -  if (ST.hasFlatAddressSpace() && isEntryFunction() && IsCOV2) { +  if (ST.hasFlatAddressSpace() && isEntryFunction() && isAmdHsaOrMesa) {      // TODO: This could be refined a lot. The attribute is a poor way of      // detecting calls that may require it before argument lowering.      if (HasStackObjects || F.hasFnAttribute("amdgpu-flat-scratch"))  | 
