diff options
| author | Stanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com> | 2019-09-19 20:09:04 +0000 |
|---|---|---|
| committer | Stanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com> | 2019-09-19 20:09:04 +0000 |
| commit | d487d6401d98ba7a759cd069b61ae67b286a3014 (patch) | |
| tree | 741bb5a455ee1242abc293d2153c2484609d735e /llvm/lib/Target | |
| parent | 1796aad50ca5de2447fdee5f22ce6f6a6379197f (diff) | |
| download | bcm5719-llvm-d487d6401d98ba7a759cd069b61ae67b286a3014.tar.gz bcm5719-llvm-d487d6401d98ba7a759cd069b61ae67b286a3014.zip | |
[AMDGPU] fixed underflow in getOccupancyWithNumVGPRs
The function could return zero if an extreme number or
registers were used. Minimal possible occupancy is 1.
Differential Revision: https://reviews.llvm.org/D67771
llvm-svn: 372350
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp index b1069d4a319..cf89af68d6f 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp @@ -599,7 +599,7 @@ unsigned GCNSubtarget::getOccupancyWithNumVGPRs(unsigned VGPRs) const { if (VGPRs < Granule) return MaxWaves; unsigned RoundedRegs = ((VGPRs + Granule - 1) / Granule) * Granule; - return std::min(getTotalNumVGPRs() / RoundedRegs, MaxWaves); + return std::min(std::max(getTotalNumVGPRs() / RoundedRegs, 1u), MaxWaves); } unsigned GCNSubtarget::getReservedNumSGPRs(const MachineFunction &MF) const { |

