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 | ||
| 2 | Don't need -mattr. Also I would prefer specifying the specific greedy run, and run to the end of virtregrewriter | |
| 13 | 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 | ||
|---|---|---|
| 13 | 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 | ||
|---|---|---|
| 2 | How do the two '-stop-after' fields work here? | |
| llvm/test/CodeGen/AMDGPU/optimize-exec-mask-pre-ra-alloc-failure.mir | ||
|---|---|---|
| 2 | 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 | ||
|---|---|---|
| 27 | 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 | ||
| 27 | 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 &