summaryrefslogtreecommitdiff
path: root/lldb
diff options
context:
space:
mode:
authorSameer Sahasrabuddhe <sameer.sahasrabuddhe@amd.com>2023-05-16 09:37:04 +0530
committerSameer Sahasrabuddhe <sameer.sahasrabuddhe@amd.com>2023-05-16 09:37:04 +0530
commitfbe1c0616fa83d39ebad29cfefa020bbebd90057 (patch)
tree83622ac0291762bc616397cd85010534e38c8d0f /lldb
parentfb7c237ca0dbc6f85c532f73e60616d0e7db82df (diff)
downloadllvm-fbe1c0616fa83d39ebad29cfefa020bbebd90057.tar.gz
[LLVM][Uniformity] Improve detection of uniform registers
The MachineUA now queries the target to determine if a given register holds a uniform value. This is determined using the corresponding register bank if available, or by a combination of the register class and value type. This assumes that the target is optimizing for performance by choosing registers, and the target is responsible for any mismatch with the inferred uniformity. For example, on AMDGPU, an SGPR is now treated as uniform, except if the register bank is VCC (i.e., the register holds a wave-wide vector of 1-bit values) or equivalently if it has a value type of s1. - This does not always work with inline asm, where the register bank or the value type might not be present. We assume that the SGPR is uniform, because it is not expected to be s1 in the vast majority of cases. - The pseudo branch instruction SI_LOOP is now hard-coded to be always divergent, although its condition is an SGPR. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D150438
Diffstat (limited to 'lldb')
0 files changed, 0 insertions, 0 deletions