Further improve liveness copying for CC register post optimization
by mirroring live internal splits.
The fixes a bug in register allocation when CC register liveness
is extended across a branches instead of split.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp | ||
---|---|---|
194–195 | I'm increasingly worried about just ignoring physical registers. Is there a reason why we bother to try handling them here? |
llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp | ||
---|---|---|
194–195 | Thanks for pointing this out. |
llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp | ||
---|---|---|
192 | Don't need the & | |
llvm/test/CodeGen/AMDGPU/optimize-exec-mask-pre-ra-alloc-failure.mir | ||
1 ↗ | (On Diff #444138) | Don't need -mattr. Also I would prefer specifying the specific greedy run, and run to the end of virtregrewriter |
12 ↗ | (On Diff #444138) | Can drop register section (and then compact the numbers with -run-pass=none) |
llvm/test/CodeGen/AMDGPU/optimize-exec-mask-pre-ra-alloc-failure.mir | ||
---|---|---|
12 ↗ | (On Diff #444138) | I have dropped all the register definitions that did not change the test result, 3 with preferred register values of $vcc remain. |
llvm/test/CodeGen/AMDGPU/optimize-exec-mask-pre-ra-alloc-failure.mir | ||
---|---|---|
1 ↗ | (On Diff #444503) | How do the two '-stop-after' fields work here? |
llvm/test/CodeGen/AMDGPU/optimize-exec-mask-pre-ra-alloc-failure.mir | ||
---|---|---|
1 ↗ | (On Diff #444138) | Should only have one stop-after. I think the second one wins |
llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp | ||
---|---|---|
227 | Typo defintion. The assert seems a bit redundant with the FindSegmentContaining below |
llvm/test/CodeGen/AMDGPU/optimize-exec-mask-pre-ra-alloc-failure.mir | ||
---|---|---|
26 ↗ | (On Diff #444503) | Should drop the register types |
llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp | ||
---|---|---|
227 | Fixed the typo. | |
llvm/test/CodeGen/AMDGPU/optimize-exec-mask-pre-ra-alloc-failure.mir | ||
26 ↗ | (On Diff #444503) | I assume you mean the variable specification (p3) or (p4), I have removed these. |
llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp | ||
---|---|---|
227 | I mean you could assert FindSegmentContaining isn't the end |
Don't need the &