[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
Tue Jan 21 06:20:09 PST 2025
================
@@ -722,6 +726,16 @@ void AMDGPUSwLowerLDS::translateLDSMemoryOperationsToGlobalMemory(
AsanInfo.Instructions.insert(NewXCHG);
XCHG->replaceAllUsesWith(NewXCHG);
XCHG->eraseFromParent();
+ } else if (AddrSpaceCastInst *AscI = dyn_cast<AddrSpaceCastInst>(Inst)) {
+ Value *AIOperand = AscI->getPointerOperand();
+ Value *Gep =
+ getTranslatedGlobalMemoryGEPOfLDSPointer(LoadMallocPtr, AIOperand);
+ Value *NewAI = IRB.CreateAddrSpaceCast(Gep, AscI->getType());
+ // Note: No need to add the instruction to AsanInfo instructions to be
+ // instrumented list. FLAT_ADDRESS ptr would have been already
+ // instrumented by asan pass prior to this pass.
+ AscI->replaceAllUsesWith(NewAI);
+ AscI->eraseFromParent();
} else
report_fatal_error("Unimplemented LDS lowering instruction");
----------------
arsenm wrote:
This is missing quite a lot of cases With addrspacecast unhandled, this was previously a fatal error? I don't see a fatal error in your testcase now
https://github.com/llvm/llvm-project/pull/121214
More information about the llvm-commits
mailing list