Overlaps of these will always result in bad code.
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Event Timeline
Currently investigating.
I was, for some reason, naive enough to think this would be fine.
Since the live-in overlap part is new, it'll be that.
Remove LiveIn parts.
I have concluded that they are wrong, or at least too complicated for a simple test.
In small functions parts of the ScratchRSrcReg may be formed from registers that
are live-ins, and these will work fine.
llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp | ||
---|---|---|
339 | This is only really an improvement for hand written MIR, and should go in the verifier? |
llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp | ||
---|---|---|
339 | This can occur at compile time on LLVM IR with an -sgpr-limit set. |
llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp | ||
---|---|---|
339 | Do you mean the attributes to directly limit the number of SGPRs? These should not be used anymore, and this is one of the reasons why. |
This should go in the verifier instead