[llvm-branch-commits] [llvm] [AMDGPU] Extract SIAtomicAddrSpace and fence MMRA parsing from SIMemoryLegalizer (PR #231854)
Krzysztof Drewniak via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Oct 16 08:50:15 PDT 2026
================
@@ -478,4 +480,67 @@ bool isClobberedInFunction(const LoadInst *Load, MemorySSA *MSSA,
return false;
}
+SIAtomicAddrSpace toSIAtomicAddrSpace(unsigned AS) {
+ if (AS == AMDGPUAS::FLAT_ADDRESS)
+ return SIAtomicAddrSpace::FLAT;
+ if (AS == AMDGPUAS::GLOBAL_ADDRESS)
+ return SIAtomicAddrSpace::GLOBAL;
+ if (AS == AMDGPUAS::LOCAL_ADDRESS)
+ return SIAtomicAddrSpace::LDS;
+ if (AS == AMDGPUAS::PRIVATE_ADDRESS)
+ return SIAtomicAddrSpace::SCRATCH;
+ if (AS == AMDGPUAS::REGION_ADDRESS)
+ return SIAtomicAddrSpace::GDS;
+ if (AS == AMDGPUAS::BUFFER_FAT_POINTER || AS == AMDGPUAS::BUFFER_RESOURCE ||
+ AS == AMDGPUAS::BUFFER_STRIDED_POINTER)
+ return SIAtomicAddrSpace::GLOBAL;
+
+ // Constant addrspaces map to OTHER because there is no point in atomic
----------------
krzysz00 wrote:
Yeah, I'd agree that volatile loads from constant memory should get forced to completion immediately since that's generally one of the things we do if you volatile load something around here
*Why* you'd be volatile loading s constant ... sounds cursed, you probably shouldn't be doing it, but I think those semantics give people what they'll probably want if they decide to do this
https://github.com/llvm/llvm-project/pull/231854
More information about the llvm-branch-commits
mailing list