aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
diff options
context:
space:
mode:
authorPravin Jagtap <Pravin.Jagtap@amd.com>2023-06-09 01:08:44 -0400
committerPravin Jagtap <Pravin.Jagtap@amd.com>2023-06-09 01:08:44 -0400
commitf6c8a8e9cb7d8b8abb382b52c88fb287a6f27a2b (patch)
treee955a6e7daf563abde02f426544c684215ad0922 /llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
parenta90e35095498598eddcd14956a46bf75d70c1a18 (diff)
downloadllvm-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