aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h
diff options
context:
space:
mode:
authorOliver Stannard <oliver.stannard@arm.com>2025-01-16 09:39:27 +0000
committerGitHub <noreply@github.com>2025-01-16 09:39:27 +0000
commit9e436c2daa446da05e9219f0e6a22f932ba8e3cb (patch)
treeda0049467de5c173d493ca1daa70e0466215b9e2 /lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h
parent3a9380f21d05eb8ced03349c8c503dc911f22621 (diff)
downloadllvm-9e436c2daa446da05e9219f0e6a22f932ba8e3cb.zip
llvm-9e436c2daa446da05e9219f0e6a22f932ba8e3cb.tar.gz
llvm-9e436c2daa446da05e9219f0e6a22f932ba8e3cb.tar.bz2
[MachineCP] Correctly handle register masks and sub-registers (#122734)
When passing an instruction with a register mask, the machine copy propagation pass was dropping the information about some copy instructions which define a register which is preserved by the mask, because that register overlaps a register which is partially clobbered by it. This resulted in a miscompilation for AArch64, because this caused a live copy to be considered dead. The fix is to clobber register masks by finding the set of reg units which is preserved by the mask, and clobbering all units not in that set. This is based on #122472, and fixes the compile time performance regressions which were caused by that.
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h')
0 files changed, 0 insertions, 0 deletions