diff --git a/llvm/lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp index 7e824335cdfcc..111a99fda9c7c 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 &Funcs) { collectCallers(F, Funcs); return; } - if (!isa(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(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 43d4ceb7009d7..71ec864edf8a3 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 ;