================ @@ -550,6 +551,16 @@ AMDGPUTargetCodeGenInfo::getLLVMSyncScopeID(const LangOptions &LangOpts, void AMDGPUTargetCodeGenInfo::setTargetAtomicMetadata( CodeGenFunction &CGF, llvm::AtomicRMWInst &RMW) const { + + if (RMW.getPointerAddressSpace() == llvm::AMDGPUAS::FLAT_ADDRESS && + CGF.CGM.getLangOpts().threadPrivateMemoryAtomicsAreUndefined()) { + llvm::MDBuilder MDHelper(CGF.getLLVMContext()); + llvm::MDNode *ASRange = MDHelper.createRange( + llvm::APInt(32, llvm::AMDGPUAS::PRIVATE_ADDRESS), + llvm::APInt(32, llvm::AMDGPUAS::PRIVATE_ADDRESS + 1)); + RMW.setMetadata(llvm::LLVMContext::MD_noalias_addrspace, ASRange); ---------------- arsenm wrote:
It's defined in the parent PR #102461. I haven't posted the patch to use it yet, but the primary use is the AtomicExpand hooks https://github.com/llvm/llvm-project/pull/102462 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits