[llvm] [AMDGPU][gfx1250] Check for GloballyAddressableScratch in mayAccessScratchThroughFlat (PR #160669)
Pierre van Houtryve via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 25 02:16:58 PDT 2025
https://github.com/Pierre-vh created https://github.com/llvm/llvm-project/pull/160669
None
>From 46c6109be32709dbd264714a285bae9e41d9777f Mon Sep 17 00:00:00 2001
From: pvanhout <pierre.vanhoutryve at amd.com>
Date: Thu, 25 Sep 2025 11:15:30 +0200
Subject: [PATCH] [AMDGPU][gfx1250] Check for GloballyAddressableScratch in
mayAccessScratchThroughFlat
---
llvm/lib/Target/AMDGPU/SIInstrInfo.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
index 044ea866342c2..a98dc3fe7552f 100644
--- a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
@@ -4319,8 +4319,10 @@ bool SIInstrInfo::mayAccessScratchThroughFlat(const MachineInstr &MI) const {
if (!isFLAT(MI) || isFLATGlobal(MI))
return false;
- // If scratch is not initialized, we can never access it.
- if (MI.getMF()->getFunction().hasFnAttribute("amdgpu-no-flat-scratch-init"))
+ // If scratch is not initialized, we can never access it unless the target has
+ // the ability to access scratch outside its own thread.
+ if (!ST.hasGloballyAddressableScratch() &&
+ MI.getMF()->getFunction().hasFnAttribute("amdgpu-no-flat-scratch-init"))
return false;
// SCRATCH instructions always access scratch.
More information about the llvm-commits
mailing list