[llvm] 0cd3a39 - AMDGPU: Fix opaque pointer handling for enqueued blocks, again

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 10 17:35:54 PST 2023


Author: Matt Arsenault
Date: 2023-01-10T20:35:48-05:00
New Revision: 0cd3a39e95589d9f723e53d03b2d7709e395e783

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

LOG: AMDGPU: Fix opaque pointer handling for enqueued blocks, again

Added: 
    

Modified: 
    llvm/lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp
    llvm/test/CodeGen/AMDGPU/enqueue-kernel.ll

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp
index 7e824335cdfc..111a99fda9c7 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp
@@ -93,10 +93,8 @@ static void collectFunctionUsers(User *U, DenseSet<Function *> &Funcs) {
       collectCallers(F, Funcs);
     return;
   }
-  if (!isa<Constant>(U))
-    return;
-  for (auto *UU : U->users())
-    collectFunctionUsers(&*UU, Funcs);
+  for (User *U : U->users())
+    collectFunctionUsers(U, Funcs);
 }
 
 bool AMDGPUOpenCLEnqueuedBlockLowering::runOnModule(Module &M) {
@@ -133,12 +131,8 @@ bool AMDGPUOpenCLEnqueuedBlockLowering::runOnModule(Module &M) {
           /*isExternallyInitialized=*/false);
       LLVM_DEBUG(dbgs() << "runtime handle created: " << *GV << '\n');
 
-      for (auto *U : F.users()) {
-        auto *UU = &*U;
-
-        if (isa<Constant>(UU))
-          collectFunctionUsers(UU, Callers);
-      }
+      for (User *U : F.users())
+        collectFunctionUsers(U, Callers);
 
       F.replaceAllUsesWith(ConstantExpr::getAddrSpaceCast(GV, F.getType()));
       F.addFnAttr("runtime-handle", RuntimeHandle);

diff  --git a/llvm/test/CodeGen/AMDGPU/enqueue-kernel.ll b/llvm/test/CodeGen/AMDGPU/enqueue-kernel.ll
index 43d4ceb7009d..71ec864edf8a 100644
--- a/llvm/test/CodeGen/AMDGPU/enqueue-kernel.ll
+++ b/llvm/test/CodeGen/AMDGPU/enqueue-kernel.ll
@@ -121,13 +121,13 @@ attributes #0 = { "enqueued-block" }
 ;
 ;
 ; CHECK-LABEL: define {{[^@]+}}@caller_indirect
-; CHECK-SAME: (ptr addrspace(1) [[A:%.*]], i8 [[B:%.*]], ptr addrspace(1) [[C:%.*]], i64 [[D:%.*]]) {
+; CHECK-SAME: (ptr addrspace(1) [[A:%.*]], i8 [[B:%.*]], ptr addrspace(1) [[C:%.*]], i64 [[D:%.*]]) #[[ATTR0:[0-9]+]] {
 ; CHECK-NEXT:    call void @caller(ptr addrspace(1) [[A]], i8 [[B]], ptr addrspace(1) [[C]], i64 [[D]])
 ; CHECK-NEXT:    ret void
 ;
 ;
 ; CHECK-LABEL: define {{[^@]+}}@caller
-; CHECK-SAME: (ptr addrspace(1) [[A:%.*]], i8 [[B:%.*]], ptr addrspace(1) [[C:%.*]], i64 [[D:%.*]]) {
+; CHECK-SAME: (ptr addrspace(1) [[A:%.*]], i8 [[B:%.*]], ptr addrspace(1) [[C:%.*]], i64 [[D:%.*]]) #[[ATTR0]] {
 ; CHECK-NEXT:  entry:
 ; CHECK-NEXT:    [[BLOCK:%.*]] = alloca <{ i32, i32, ptr addrspace(1), i8 }>, align 8, addrspace(5)
 ; CHECK-NEXT:    [[INST:%.*]] = alloca [[STRUCT_NDRANGE_T:%.*]], align 4, addrspace(5)
@@ -164,7 +164,7 @@ attributes #0 = { "enqueued-block" }
 ;
 ;
 ; CHECK-LABEL: define {{[^@]+}}@inlined_caller
-; CHECK-SAME: (ptr addrspace(1) [[A:%.*]], i8 [[B:%.*]], ptr addrspace(1) [[C:%.*]], i64 [[D:%.*]]) #[[ATTR0:[0-9]+]] {
+; CHECK-SAME: (ptr addrspace(1) [[A:%.*]], i8 [[B:%.*]], ptr addrspace(1) [[C:%.*]], i64 [[D:%.*]]) #[[ATTR0]] {
 ; CHECK-NEXT:  entry:
 ; CHECK-NEXT:    [[INST:%.*]] = load i64, ptr addrspace(1) @__test_block_invoke_kernel.runtime_handle, align 4
 ; CHECK-NEXT:    store i64 [[INST]], ptr addrspace(1) [[C]], align 4
@@ -202,7 +202,7 @@ attributes #0 = { "enqueued-block" }
 ;
 ;
 ; CHECK-LABEL: define {{[^@]+}}@user_of_kernel_address
-; CHECK-SAME: (ptr addrspace(1) [[ARG:%.*]]) {
+; CHECK-SAME: (ptr addrspace(1) [[ARG:%.*]]) #[[ATTR0]] {
 ; CHECK-NEXT:    store ptr addrspacecast (ptr addrspace(1) @block_has_used_kernel_address.runtime_handle to ptr), ptr addrspace(1) [[ARG]], align 8
 ; CHECK-NEXT:    ret void
 ;


        


More information about the llvm-commits mailing list