diff options
author | Hongyu Chen <xxs_chy@outlook.com> | 2025-10-15 02:44:18 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-10-14 18:44:18 +0000 |
commit | 975fba1b499422713e88cd6f374569f3bd38335e (patch) | |
tree | 2b96cb86469b30a808532e1bceb2739f3e45b8a5 /llvm/unittests/ExecutionEngine/Orc/ObjectFormatsTest.cpp | |
parent | 3e0bf3d65e040058d99c285d6084c488789c3f82 (diff) | |
download | llvm-975fba1b499422713e88cd6f374569f3bd38335e.zip llvm-975fba1b499422713e88cd6f374569f3bd38335e.tar.gz llvm-975fba1b499422713e88cd6f374569f3bd38335e.tar.bz2 |
[RegisterCoalescer] Prune live range of early-clobber from live-in (#157628)
Fixes #134424
Fixes #71023
Refer to the context of #71024, when RegisterCoalescer tries to merge
`early-clobber %1:vr = PseudoVRGATHER_VI_M1 undef %1, ...`, JoinVals
reports `CR_Replace` as the conflict with `undef` can be ignored.
However, when pruning values, we need to remove any live ranges that
overlap a `CR_Replace` resolution. `LiveIntervals::pruneValue` missed
pruning the early-clobber part of the live ranges. This patch implements
it by removing the ranges from live-in.
I am not familiar with the RegisterCoalescer component. Any advice is
appreciated.
https://github.com/llvm/llvm-project/issues/156249 seems to be related,
but not resolved with this patch. I am still investigating.
Diffstat (limited to 'llvm/unittests/ExecutionEngine/Orc/ObjectFormatsTest.cpp')
0 files changed, 0 insertions, 0 deletions