[llvm] [AMDGPU] Check noalias.addrspace in mayAccessScratchThroughFlat (PR #151319)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 5 07:08:29 PDT 2025
================
@@ -17646,23 +17646,9 @@ atomicSupportedIfLegalIntType(const AtomicRMWInst *RMW) {
/// Return if a flat address space atomicrmw can access private memory.
static bool flatInstrMayAccessPrivate(const Instruction *I) {
- const MDNode *NoaliasAddrSpaceMD =
- I->getMetadata(LLVMContext::MD_noalias_addrspace);
- if (!NoaliasAddrSpaceMD)
- return true;
-
- for (unsigned I = 0, E = NoaliasAddrSpaceMD->getNumOperands() / 2; I != E;
- ++I) {
- auto *Low = mdconst::extract<ConstantInt>(
- NoaliasAddrSpaceMD->getOperand(2 * I + 0));
- if (Low->getValue().uge(AMDGPUAS::PRIVATE_ADDRESS)) {
- auto *High = mdconst::extract<ConstantInt>(
- NoaliasAddrSpaceMD->getOperand(2 * I + 1));
- return High->getValue().ule(AMDGPUAS::PRIVATE_ADDRESS);
- }
- }
-
- return true;
+ const MDNode *MD = I->getMetadata(LLVMContext::MD_noalias_addrspace);
+ return !(MD &&
+ AMDGPU::hasValueInRangeLikeMetadata(*MD, AMDGPUAS::PRIVATE_ADDRESS));
----------------
arsenm wrote:
```suggestion
const MDNode *MD = I->getMetadata(LLVMContext::MD_noalias_addrspace);
return !MD || !AMDGPU::hasValueInRangeLikeMetadata(*MD, AMDGPUAS::PRIVATE_ADDRESS));
```
https://github.com/llvm/llvm-project/pull/151319
More information about the llvm-commits
mailing list