It's possible to have a use of the private resource descriptor or
scratch wave offset registers even though there are no allocated
stack objects. This would result in continuing to use the maximum
number reserved registers. This could go over the number of SGPRs
available on VI, or violate the SGPR limit requested by
the function attributes.
Details
Details
- Reviewers
• tstellarAMD
Diff Detail
Diff Detail
Event Timeline
lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp | ||
---|---|---|
465–471 ↗ | (On Diff #74610) | I don't think this is correct. For example if the shader uses 12 SGPRS , VCC and Flat. then we would allocate 12 + 4 = 16 SGPRs. This would put the flat_scratch register at s[10:11], which may also be referenced as a regular SGPR by the shader, so we may end up randomly over writing this register. |