From: Ruiling Song Date: Wed, 22 Jun 2022 02:50:46 +0000 (+0800) Subject: AMDGPU: Don't crash on global_ctor/dtor declaration X-Git-Tag: upstream/15.0.7~3810 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=49b8ca3f7c4f0c76ab4a04e9a7b46ccd29f07011;p=platform%2Fupstream%2Fllvm.git AMDGPU: Don't crash on global_ctor/dtor declaration Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D128320 --- diff --git a/llvm/lib/Target/AMDGPU/AMDGPUCtorDtorLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUCtorDtorLowering.cpp index 04bf623..8fcf669 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUCtorDtorLowering.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUCtorDtorLowering.cpp @@ -50,7 +50,7 @@ public: } bool createInitOrFiniKernel(Module &M, GlobalVariable *GV, bool IsCtor) { - if (!GV) + if (!GV || !GV->hasInitializer()) return false; ConstantArray *GA = dyn_cast(GV->getInitializer()); if (!GA || GA->getNumOperands() == 0) diff --git a/llvm/test/CodeGen/AMDGPU/lower-ctor-dtor-declaration.ll b/llvm/test/CodeGen/AMDGPU/lower-ctor-dtor-declaration.ll new file mode 100644 index 0000000..d293984 --- /dev/null +++ b/llvm/test/CodeGen/AMDGPU/lower-ctor-dtor-declaration.ll @@ -0,0 +1,8 @@ +; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx700 < %s | FileCheck %s + +@llvm.global_ctors = external global [2 x { i32, void ()*, i8* }] +@llvm.global_dtors = external global [2 x { i32, void ()*, i8* }] + +; No amdgpu_kernels emitted for global_ctors declaration +; CHECK-NOT: amdgcn.device.init +; CHECK-NOT: amdgcn.device.fini