We are using flat scratch on CI as well, so we need to reserve registers for that.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
| lib/Target/AMDGPU/SIRegisterInfo.cpp | ||
|---|---|---|
| 1125 | We should be checking for SEA_ISLANDS here, since there is no flat_scratch on SI. | |
| lib/Target/AMDGPU/SIRegisterInfo.cpp | ||
|---|---|---|
| 1126 | This can probably be skipped if there are no stack objects | |
| lib/Target/AMDGPU/SIRegisterInfo.cpp | ||
|---|---|---|
| 1126 | Doesn't same apply to VI? | |
Comment Actions
It does, yes. I see however a test where 104 SGPRs are allocated on CI which exceeds the limit. MFI.hasFlatScratchInit() returns false, and whole spilling went to VGPRs, but we still mark scratch as used. I suppose that is already a separate problem of not releasing scratch.
We should be checking for SEA_ISLANDS here, since there is no flat_scratch on SI.