- 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
Diff Detail
- Repository
- rG LLVM Github Monorepo
- Build Status
Buildable 29144 Build 29143: arc lint + arc unit
Event Timeline
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 | 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 | 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 | You can also use a MIR test |
llvm/test/CodeGen/AMDGPU/udivrem64.ll | ||
---|---|---|
172–184 | added in the latest patch |
I don't see how this is stressing this. Can you add another, more targeted test for this? The div expansion is huge