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.