diff options
author | Luke Lau <luke@igalia.com> | 2025-02-26 23:04:24 +0800 |
---|---|---|
committer | Luke Lau <luke@igalia.com> | 2025-02-26 23:09:50 +0800 |
commit | 35bf925f7ea95e71208a839cf4b02de2ee473f75 (patch) | |
tree | 776b3af7d33fa8e59fc0f09757643bf2341f5978 /llvm/lib/CodeGen/MachineOutliner.cpp | |
parent | 1b17d1ee6e6c9174d32d0bfb6b304917b2dcb2f3 (diff) | |
download | llvm-35bf925f7ea95e71208a839cf4b02de2ee473f75.zip llvm-35bf925f7ea95e71208a839cf4b02de2ee473f75.tar.gz llvm-35bf925f7ea95e71208a839cf4b02de2ee473f75.tar.bz2 |
[RISCV] Delete dead COPYs to vmv0 during vmv0 elimination
This fixes a crash reported at
https://github.com/llvm/llvm-project/pull/126850#issuecomment-2685166388,
where we may leave around a COPY to vmv0 after peeking through it.
Even though the COPY is dead, there's no pass between vmv0 elimination
and regalloc that will delete it so regalloc will try to allocate
something for it.
The test showcasing this is added in vmv0-elimination.mir. Removing
the dead COPY results in changes in spills in the >= LMUL 16 VP tests,
but it's worth noting that these tests are very noisy and not
representative of real world code.
Diffstat (limited to 'llvm/lib/CodeGen/MachineOutliner.cpp')
0 files changed, 0 insertions, 0 deletions