diff options
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp b/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp index 1d83d0c..f524764 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp @@ -8,6 +8,7 @@ #include "AMDGPUMachineFunction.h" #include "AMDGPU.h" +#include "AMDGPUMemoryUtils.h" #include "AMDGPUPerfHintAnalysis.h" #include "AMDGPUSubtarget.h" #include "Utils/AMDGPUBaseInfo.h" @@ -102,6 +103,13 @@ unsigned AMDGPUMachineFunction::allocateLDSGlobal(const DataLayout &DL, unsigned Offset; if (GV.getAddressSpace() == AMDGPUAS::LOCAL_ADDRESS) { + if (TargetExtType *TTy = AMDGPU::isNamedBarrier(GV)) { + std::optional<unsigned> BarAddr = getLDSAbsoluteAddress(GV); + if (!BarAddr) + llvm_unreachable("named barrier should have an assigned address"); + Entry.first->second = BarAddr.value(); + return BarAddr.value(); + } std::optional<uint32_t> MaybeAbs = getLDSAbsoluteAddress(GV); if (MaybeAbs) { |