[llvm] 0ba0398 - [amdgpu][lds] Use the same isKernel predicate consistently

Jon Chesterfield via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 9 08:45:24 PST 2022


Author: Jon Chesterfield
Date: 2022-11-09T16:45:05Z
New Revision: 0ba0398517778514eb44cb7ba9bf9d4d20a856e0

URL: https://github.com/llvm/llvm-project/commit/0ba0398517778514eb44cb7ba9bf9d4d20a856e0
DIFF: https://github.com/llvm/llvm-project/commit/0ba0398517778514eb44cb7ba9bf9d4d20a856e0.diff

LOG: [amdgpu][lds] Use the same isKernel predicate consistently

isKernelCC != isKernel(F->getCallingConv())
There's a test case (lower-kernel-lds.ll) that explicitly skips amdgpu_ps
so this change picks the isKernel predicate that continues to skip that
calling convention.

isKernel returns true for AMDGPU_KERNEL and SPIR_KERNEL. isKernelCC also
returns true for other calling conventions.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D136599

Added: 
    

Modified: 
    llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
    llvm/lib/Target/AMDGPU/Utils/AMDGPUMemoryUtils.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp b/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
index be5ac67f9e37..81222a25ba8f 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
@@ -259,7 +259,7 @@ class AMDGPULowerModuleLDS : public ModulePass {
 
       IRBuilder<> Builder(Ctx);
       for (Function &Func : M.functions()) {
-        if (!Func.isDeclaration() && AMDGPU::isKernelCC(&Func)) {
+        if (!Func.isDeclaration() && AMDGPU::isKernel(Func.getCallingConv())) {
           const CallGraphNode *N = CG[&Func];
           const bool CalleesRequireModuleLDS = N->size() > 0;
 

diff  --git a/llvm/lib/Target/AMDGPU/Utils/AMDGPUMemoryUtils.cpp b/llvm/lib/Target/AMDGPU/Utils/AMDGPUMemoryUtils.cpp
index b1418253fd13..65722ddfd632 100644
--- a/llvm/lib/Target/AMDGPU/Utils/AMDGPUMemoryUtils.cpp
+++ b/llvm/lib/Target/AMDGPU/Utils/AMDGPUMemoryUtils.cpp
@@ -41,7 +41,7 @@ static bool shouldLowerLDSToStruct(const GlobalVariable &GV,
   SmallPtrSet<const User *, 8> Visited;
   SmallVector<const User *, 16> Stack(GV.users());
 
-  assert(!F || isKernelCC(F));
+  assert(!F || isKernel(F->getCallingConv()));
 
   while (!Stack.empty()) {
     const User *V = Stack.pop_back_val();
@@ -62,7 +62,7 @@ static bool shouldLowerLDSToStruct(const GlobalVariable &GV,
       } else if (!F) {
         // For module LDS lowering, lowering is required if the user instruction
         // is from non-kernel function.
-        Ret |= !isKernelCC(UF);
+        Ret |= !isKernel(UF->getCallingConv());
       }
       continue;
     }


        


More information about the llvm-commits mailing list