aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopUtils.cpp
diff options
context:
space:
mode:
authorThomas Symalla <5754458+tsymalla@users.noreply.github.com>2023-11-02 10:36:27 +0100
committerGitHub <noreply@github.com>2023-11-02 10:36:27 +0100
commit18839aec4ed1977142444d650bf6c74c705fee44 (patch)
treed9589cee5c3bc54b9bed8a9f6eaf3430b566390e /llvm/lib/Transforms/Utils/LoopUtils.cpp
parent7ef6b21c3e2cd8e477124840f4acf64e11f60616 (diff)
downloadllvm-18839aec4ed1977142444d650bf6c74c705fee44.zip
llvm-18839aec4ed1977142444d650bf6c74c705fee44.tar.gz
llvm-18839aec4ed1977142444d650bf6c74c705fee44.tar.bz2
[AMDGPU] Detect kills in register sets when trying to form V_CMPX instructions. (#68293)
During the SIOptimizeExecMasking pass, we try to form V_CMPX instructions by detecting S_AND_SAVEEXEC and V_MOV instructions. Generally, we require the input operand of the V_MOV, which is the input operand to the to-be-formed V_CMPX, to be alive. This is forced by clearing the kill flags on the operand after V_CMPX has been generated. However, if we have a kill of a register set that contains said register, this will not be detected by clearKillFlags. With this change, possible additional kill-flag candidates will be detected during the final call to findInstrBackwards and then, the kill flag will be removed to keep all registers in the set alive. Co-authored-by: Thomas Symalla <thomas.symalla@amd.com>
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUtils.cpp')
0 files changed, 0 insertions, 0 deletions