aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorPetar Avramovic <Petar.Avramovic@amd.com>2024-02-28 16:18:04 +0100
committerGitHub <noreply@github.com>2024-02-28 16:18:04 +0100
commit3e35ba53e20dbbd3ccc191d71ed75d52dc36ec59 (patch)
tree0ca422fe5ab27352eddc16be3b5e19b17f59a44c /clang/lib/CodeGen/CodeGenModule.cpp
parentcb6c0f1d28c0d1915d1ca9a198254e3828af2384 (diff)
downloadllvm-3e35ba53e20dbbd3ccc191d71ed75d52dc36ec59.zip
llvm-3e35ba53e20dbbd3ccc191d71ed75d52dc36ec59.tar.gz
llvm-3e35ba53e20dbbd3ccc191d71ed75d52dc36ec59.tar.bz2
AMDGPU/GFX12: Insert waitcnts before stores with scope_sys (#82996)
Insert waitcnts for loads and atomics before stores with system scope. Scope is field in instruction encoding and corresponds to desired coherence level in cache hierarchy. Intrinsic stores can set scope in cache policy operand. If volatile keyword is used on generic stores memory legalizer will set scope to system. Generic stores, by default, get lowest scope level. Waitcnts are not required if it is guaranteed that memory is cached. For example vulkan shaders can guarantee this. TODO: implement flag for frontends to give us a hint not to insert waits. Expecting vulkan flag to be implemented as vulkan:private MMRA.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions