[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
================
@@ -4266,12 +4266,15 @@ bool SIInstrInfo::mayAccessScratchThroughFlat(const MachineInstr &MI) const {
if (MI.memoperands_empty())
return true;
- // TODO (?): Does this need to be taught how to read noalias.addrspace ?
-
// See if any memory operand specifies an address space that involves scratch.
return any_of(MI.memoperands(), [](const MachineMemOperand *Memop) {
unsigned AS = Memop->getAddrSpace();
- return AS == AMDGPUAS::PRIVATE_ADDRESS || AS == AMDGPUAS::FLAT_ADDRESS;
+ if (AS == AMDGPUAS::FLAT_ADDRESS) {
+ const MDNode *MD = Memop->getAAInfo().NoAliasAddrSpace;
+ return !(MD && AMDGPU::hasValueInRangeLikeMetadata(
+ *MD, AMDGPUAS::PRIVATE_ADDRESS));
----------------
arsenm wrote:
```suggestion
return !MD || !AMDGPU::hasValueInRangeLikeMetadata(
*MD, AMDGPUAS::PRIVATE_ADDRESS));
```
https://github.com/llvm/llvm-project/pull/151319
More information about the llvm-commits
mailing list