- During the fixing of SGPR copying from VGPR, ensure users of SCC is properly propagated, i.e.
- only propagate through live def of SCC,
- skip the SCC-def inst itself, and
- stop the propagation on the other SCC-def inst after checking its SCC-use first.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
I'm not sure I understand the exact problem being solved here. What are the observable consequences?
llvm/test/CodeGen/AMDGPU/udivrem64.ll | ||
---|---|---|
172–184 ↗ | (On Diff #190611) | I don't see how this is stressing this. Can you add another, more targeted test for this? The div expansion is huge |
llvm/test/CodeGen/AMDGPU/udivrem64.ll | ||
---|---|---|
172–184 ↗ | (On Diff #190611) | This is case where I found the long SCC chain(s). Yeah, the expansion is huge. But, to constructing a SCC chain with parts of instructions without SGPR dependency but SCC dependency is hard, also that sequence needs part of code has to use VGPR. Could you just use this minimalist LLVM IR test? |
llvm/test/CodeGen/AMDGPU/udivrem64.ll | ||
---|---|---|
172–184 ↗ | (On Diff #190611) | You can also use a MIR test |
llvm/test/CodeGen/AMDGPU/udivrem64.ll | ||
---|---|---|
172–184 ↗ | (On Diff #190611) | added in the latest patch |