diff options
author | Pravin Jagtap <Pravin.Jagtap@amd.com> | 2023-06-09 01:08:44 -0400 |
---|---|---|
committer | Pravin Jagtap <Pravin.Jagtap@amd.com> | 2023-06-09 01:08:44 -0400 |
commit | f6c8a8e9cb7d8b8abb382b52c88fb287a6f27a2b (patch) | |
tree | e955a6e7daf563abde02f426544c684215ad0922 /llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp | |
parent | a90e35095498598eddcd14956a46bf75d70c1a18 (diff) | |
download | llvm-f6c8a8e9cb7d8b8abb382b52c88fb287a6f27a2b.zip llvm-f6c8a8e9cb7d8b8abb382b52c88fb287a6f27a2b.tar.gz llvm-f6c8a8e9cb7d8b8abb382b52c88fb287a6f27a2b.tar.bz2 |
[AMDGPU] Iterative scan implementation for atomic optimizer.
This patch provides an alternative implementation to DPP for Scan Computations.
An alternative implementation iterates over all active lanes of Wavefront
using llvm.cttz and performs the following steps:
1. Read the value that needs to be atomically incremented using
llvm.amdgcn.readlane intrinsic
2. Accumulate the result.
3. Update the scan result using llvm.amdgcn.writelane intrinsic
if intermediate scan results are needed later in the kernel.
Reviewed By: arsenm, cdevadas
Differential Revision: https://reviews.llvm.org/D147408
Diffstat (limited to 'llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp')
0 files changed, 0 insertions, 0 deletions