[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