diff options
author | Daniil Fukalov <daniil.fukalov@amd.com> | 2018-09-25 18:37:38 +0000 |
---|---|---|
committer | Daniil Fukalov <daniil.fukalov@amd.com> | 2018-09-25 18:37:38 +0000 |
commit | 349b5943b475cf87d6dbf8a190e33814a0d8199c (patch) | |
tree | 1e1102dbd50e1040c2f38fa87c743e9b452619ef /lldb/packages/Python/lldbsuite/test/expression_command | |
parent | c06ee8367aa565d6d5c1b318d5e36aef6149ac44 (diff) | |
download | bcm5719-llvm-349b5943b475cf87d6dbf8a190e33814a0d8199c.tar.gz bcm5719-llvm-349b5943b475cf87d6dbf8a190e33814a0d8199c.zip |
[RegAllocGreedy] avoid using physreg candidates that cannot be correctly spilled
For the AMDGPU target if a MBB contains exec mask restore preamble, SplitEditor may get state when it cannot insert a spill instruction.
E.g. for a MIR
bb.100:
%1 = S_OR_SAVEEXEC_B64 %2, implicit-def $exec, implicit-def $scc, implicit $exec
and if the regalloc will try to allocate a virtreg to the physreg already assigned to virtreg %1, it should insert spill instruction before the S_OR_SAVEEXEC_B64 instruction.
But it is not possible since can generate incorrect code in terms of exec mask.
The change makes regalloc to ignore such physreg candidates.
Reviewed By: rampitec
Differential Revision: https://reviews.llvm.org/D52052
llvm-svn: 343004
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/expression_command')
0 files changed, 0 insertions, 0 deletions