[llvm] [AMDGPU] Enable volatile and non-temporal for loads to LDS (PR #153244)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 20 06:01:35 PDT 2025
================
@@ -2818,6 +2871,23 @@ bool SIMemoryLegalizer::expandAtomicCmpxchgOrRmw(const SIMemOpInfo &MOI,
return Changed;
}
+bool SIMemoryLegalizer::expandLdsLoadStore(const SIMemOpInfo &MOI,
+ SIMemOp OpKind,
+ MachineBasicBlock::iterator &MI) {
+ assert(MI->mayLoad() && MI->mayStore());
+
+ bool Changed = false;
+
+ // Handle volatile and/or nontemporal markers on direct-to-LDS loads and
+ // stores. The operation is treated as a volatile/nontemporal store
+ // to its second argument.
+ Changed |= CC->enableVolatileAndOrNonTemporal(
+ MI, MOI.getInstrAddrSpace(), OpKind, MOI.isVolatile(),
+ MOI.isNonTemporal(), MOI.isLastUse());
+
+ return Changed;
----------------
arsenm wrote:
```suggestion
// Handle volatile and/or nontemporal markers on direct-to-LDS loads and
// stores. The operation is treated as a volatile/nontemporal store
// to its second argument.
return CC->enableVolatileAndOrNonTemporal(
MI, MOI.getInstrAddrSpace(), OpKind, MOI.isVolatile(),
MOI.isNonTemporal(), MOI.isLastUse());
```
https://github.com/llvm/llvm-project/pull/153244
More information about the llvm-commits
mailing list