diff --git a/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp b/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp index 2c7163a7753725..625ac0230f1606 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp @@ -862,48 +862,6 @@ class AMDGPULowerModuleLDS { return N; } - /// Strip "amdgpu-no-lds-kernel-id" from any functions where we may have - /// introduced its use. If AMDGPUAttributor ran prior to the pass, we inferred - /// the lack of llvm.amdgcn.lds.kernel.id calls. - void removeNoLdsKernelIdFromReachable(CallGraph &CG, Function *KernelRoot) { - KernelRoot->removeFnAttr("amdgpu-no-lds-kernel-id"); - - SmallVector WorkList({CG[KernelRoot]->getFunction()}); - SmallPtrSet Visited; - bool SeenUnknownCall = false; - - while (!WorkList.empty()) { - Function *F = WorkList.pop_back_val(); - - for (auto &CallRecord : *CG[F]) { - if (!CallRecord.second) - continue; - - Function *Callee = CallRecord.second->getFunction(); - if (!Callee) { - if (!SeenUnknownCall) { - SeenUnknownCall = true; - - // If we see any indirect calls, assume nothing about potential - // targets. - // TODO: This could be refined to possible LDS global users. - for (auto &ExternalCallRecord : *CG.getExternalCallingNode()) { - Function *PotentialCallee = - ExternalCallRecord.second->getFunction(); - assert(PotentialCallee); - if (!isKernelLDS(PotentialCallee)) - PotentialCallee->removeFnAttr("amdgpu-no-lds-kernel-id"); - } - } - } else { - Callee->removeFnAttr("amdgpu-no-lds-kernel-id"); - if (Visited.insert(Callee).second) - WorkList.push_back(Callee); - } - } - } - } - DenseMap lowerDynamicLDSVariables( Module &M, LDSUsesInfoTy &LDSUsesInfo, DenseSet const &KernelsThatIndirectlyAllocateDynamicLDS, @@ -1059,7 +1017,7 @@ class AMDGPULowerModuleLDS { // // TODO: We could filter out subgraphs that do not access LDS globals. for (Function *F : KernelsThatAllocateTableLDS) - removeNoLdsKernelIdFromReachable(CG, F); + removeFnAttrFromReachable(CG, F, "amdgpu-no-lds-kernel-id"); } DenseMap KernelToCreatedDynamicLDS =