[PATCH] D15724: AMDGPU/SI: fix scratch resource register allocation on Tonga & Iceland

Nicolai Hähnle via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 29 15:15:17 PST 2015


nhaehnle updated this revision to Diff 43764.
nhaehnle added a comment.
Herald added a subscriber: qcolombet.

I have distilled a test that hits the issue. It's a pretty subtle balancing
to ensure the right number of SGPRs are used to trigger the bug without
running into the "Ran out of VGPRs for SGPR spilling" issue.

Two logically separate changes are required to make this new test pass:

1. Just skip the moving around of scratch resource registers on chips with the

SGPR init bug; after all, there's nothing to be gained by the move. This is a
simpler approach to what I tried before.

2. Separately, make getSIProgramInfo assume that XNACK_MASK is unused; this is

not really a long-term solution, but the other register calculations I've seen
(in particular getReservedRegs) make the same assumption.

- AMDGPU: add test/CodeGen/AMDGPU/spill-stress.ll
- AMDGPU/SI: Do not move scratch resource register on Tonga & Iceland
- AMDGPU/SI: Assume XNACK_MASK is not used in getSIProgramInfo


http://reviews.llvm.org/D15724

Files:
  lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
  lib/Target/AMDGPU/SIFrameLowering.cpp
  test/CodeGen/AMDGPU/spill-stress.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15724.43764.patch
Type: text/x-patch
Size: 7352 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151229/cb19426b/attachment.bin>


More information about the llvm-commits mailing list