[llvm] [AMDGPU] Handle lowering addrspace casts from LDS to FLAT address in amdgpu-sw-lower-lds. (PR #121214)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 17 02:51:27 PST 2025
================
@@ -655,20 +654,37 @@ void AMDGPUSwLowerLDS::getLDSMemoryInstructions(
} else if (AtomicCmpXchgInst *XCHG = dyn_cast<AtomicCmpXchgInst>(&Inst)) {
if (XCHG->getPointerAddressSpace() == AMDGPUAS::LOCAL_ADDRESS)
LDSInstructions.insert(&Inst);
+ } else if (AddrSpaceCastInst *ASC = dyn_cast<AddrSpaceCastInst>(&Inst)) {
+ if (ASC->getSrcAddressSpace() == AMDGPUAS::LOCAL_ADDRESS &&
+ ASC->getDestAddressSpace() == AMDGPUAS::FLAT_ADDRESS)
+ LDSInstructions.insert(&Inst);
} else
continue;
}
}
}
-Value *
-AMDGPUSwLowerLDS::getTranslatedGlobalMemoryGEPOfLDSPointer(Value *LoadMallocPtr,
+Value *AMDGPUSwLowerLDS::getTranslatedGlobalMemoryPtrOfLDS(Value *LoadMallocPtr,
Value *LDSPtr) {
assert(LDSPtr && "Invalid LDS pointer operand");
+ Type *LDSPtrType = LDSPtr->getType();
+
+ if (LDSPtrType->isVectorTy()) {
+ // Handle vector of pointers
+ VectorType *VecPtrTy = cast<VectorType>(LDSPtrType);
----------------
arsenm wrote:
use dyn_cast instead of isVectorTy + cast
https://github.com/llvm/llvm-project/pull/121214
More information about the llvm-commits
mailing list