diff options
author | Thomas Symalla <5754458+tsymalla@users.noreply.github.com> | 2023-11-02 10:36:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-02 10:36:27 +0100 |
commit | 18839aec4ed1977142444d650bf6c74c705fee44 (patch) | |
tree | d9589cee5c3bc54b9bed8a9f6eaf3430b566390e /llvm/lib/Transforms/Utils/LoopUtils.cpp | |
parent | 7ef6b21c3e2cd8e477124840f4acf64e11f60616 (diff) | |
download | llvm-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