It would be a bit more logical to preserve the undef and do the normal
expansion, but this is less work. This avoids verifier errors in a
future patch which starts deleting liveness from registers after
allocation failures which results in spills of undef values.
Details
Details
- Reviewers
scott.linder - Group Reviewers
Restricted Project
Diff Detail
Diff Detail
Unit Tests
Unit Tests
Time | Test | |
---|---|---|
60,030 ms | x64 debian > libFuzzer.libFuzzer::large.test |
Event Timeline
llvm/test/CodeGen/AMDGPU/sgpr-spill-partially-undef.mir | ||
---|---|---|
69 | Is there any downside to the VGPR remaining livein, even if no spill to it survives? I can't tell if the VGPR remains reserved in this case, but if not could the liveness end up incorrect? |
llvm/test/CodeGen/AMDGPU/sgpr-spill-partially-undef.mir | ||
---|---|---|
69 | Not really. We both add the VGPRs selected for SGPR spills to live ins and redundantly add them to reserved registers. We should also probably work on spilling to virtual VGPRs now that the passes are split |
Is there any downside to the VGPR remaining livein, even if no spill to it survives? I can't tell if the VGPR remains reserved in this case, but if not could the liveness end up incorrect?