diff options
| author | Jeffrey Byrnes <jeffrey.byrnes@amd.com> | 2025-10-27 10:47:11 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-27 10:47:11 -0700 |
| commit | 30f2bf75587e87d73c238619866d39c53c389849 (patch) | |
| tree | 02396f802bcaf852dd03ade98f6b54c299df444b /lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h | |
| parent | 30c3a91f94f8e99c494e46f6026d6b1bd943c355 (diff) | |
| download | llvm-30f2bf75587e87d73c238619866d39c53c389849.zip llvm-30f2bf75587e87d73c238619866d39c53c389849.tar.gz llvm-30f2bf75587e87d73c238619866d39c53c389849.tar.bz2 | |
[AMDGPU] Use implicit operand to preserve liveness of COPY (#164911)
When lowering spills / restores, we may end up partially lowering the
spill via copies and the remaining portion with loads/stores. In this
partial lowering case,the implicit-def operands added to the restore
load clobber the preceding copies -- telling MachineCopyPropagation to
delete them. By also attaching an implicit operand to the load, the
COPYs have an artificial use and thus will not be deleted - this is the
same strategy taken in https://github.com/llvm/llvm-project/pull/115285
I'm not sure that we need implicit-def operands on any load restore, but
I guess it may make sense if it needs to be split into multiple loads
and some have been optimized out as containing undef elements.
These implicit / implicit-def operands continue to cause correctness
issues. A previous / ongoing long term plan to remove them is being
addressed via:
https://discourse.llvm.org/t/llvm-codegen-rfc-add-mo-lanemask-type-and-a-new-copy-lanemask-instruction/88021
https://github.com/llvm/llvm-project/pull/151123
https://github.com/llvm/llvm-project/pull/151124
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h')
0 files changed, 0 insertions, 0 deletions
