Skip to content

Commit b38f9f3

Browse files
committed
[SWDEV-409372] [AMDGPU] Update removeFnAttrFromReachable to accept array of Fn Attrs.
Change-Id: Ife42e9969a1b1d78844de80b6d0faec2e8c9aa0d
1 parent c50e671 commit b38f9f3

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1019,7 +1019,7 @@ class AMDGPULowerModuleLDS {
10191019
//
10201020
// TODO: We could filter out subgraphs that do not access LDS globals.
10211021
for (Function *F : KernelsThatAllocateTableLDS)
1022-
removeFnAttrFromReachable(CG, F, "amdgpu-no-lds-kernel-id");
1022+
removeFnAttrFromReachable(CG, F, {"amdgpu-no-lds-kernel-id"});
10231023
}
10241024

10251025
DenseMap<Function *, GlobalVariable *> KernelToCreatedDynamicLDS =

llvm/lib/Target/AMDGPU/Utils/AMDGPUMemoryUtils.cpp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -239,8 +239,9 @@ LDSUsesInfoTy getTransitiveUsesOfLDS(const CallGraph &CG, Module &M) {
239239
}
240240

241241
void removeFnAttrFromReachable(CallGraph &CG, Function *KernelRoot,
242-
StringRef FnAttr) {
243-
KernelRoot->removeFnAttr(FnAttr);
242+
ArrayRef<StringRef> FnAttrs) {
243+
for (StringRef Attr : FnAttrs)
244+
KernelRoot->removeFnAttr(Attr);
244245

245246
SmallVector<Function *> WorkList = {CG[KernelRoot]->getFunction()};
246247
SmallPtrSet<Function *, 8> Visited;
@@ -265,12 +266,15 @@ void removeFnAttrFromReachable(CallGraph &CG, Function *KernelRoot,
265266
Function *PotentialCallee =
266267
ExternalCallRecord.second->getFunction();
267268
assert(PotentialCallee);
268-
if (!isKernelLDS(PotentialCallee))
269-
PotentialCallee->removeFnAttr(FnAttr);
269+
if (!isKernelLDS(PotentialCallee)) {
270+
for (StringRef Attr : FnAttrs)
271+
PotentialCallee->removeFnAttr(Attr);
272+
}
270273
}
271274
}
272275
} else {
273-
Callee->removeFnAttr(FnAttr);
276+
for (StringRef Attr : FnAttrs)
277+
Callee->removeFnAttr(Attr);
274278
if (Visited.insert(Callee).second)
275279
WorkList.push_back(Callee);
276280
}

llvm/lib/Target/AMDGPU/Utils/AMDGPUMemoryUtils.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#ifndef LLVM_LIB_TARGET_AMDGPU_UTILS_AMDGPUMEMORYUTILS_H
1010
#define LLVM_LIB_TARGET_AMDGPU_UTILS_AMDGPUMEMORYUTILS_H
1111

12+
#include "llvm/ADT/ArrayRef.h"
1213
#include "llvm/ADT/DenseMap.h"
1314
#include "llvm/ADT/DenseSet.h"
1415

@@ -54,7 +55,7 @@ LDSUsesInfoTy getTransitiveUsesOfLDS(const CallGraph &CG, Module &M);
5455
/// Strip FnAttr attribute from any functions where we may have
5556
/// introduced its use.
5657
void removeFnAttrFromReachable(CallGraph &CG, Function *KernelRoot,
57-
StringRef FnAttr);
58+
ArrayRef<StringRef> FnAttrs);
5859

5960
/// Given a \p Def clobbering a load from \p Ptr according to the MSSA check
6061
/// if this is actually a memory update or an artificial clobber to facilitate

0 commit comments

Comments
 (0)