From: Yaxun Liu Date: Thu, 21 Feb 2019 20:12:16 +0000 (+0000) Subject: [HIP] change kernel stub name X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1acb1c592bf810d18ba106d4a01a80d9c64e47a2;p=clang [HIP] change kernel stub name Add .stub to kernel stub function name so that it is different from kernel name in device code. This is necessary to let debugger find correct symbol for kernel Differential Revision: https://reviews.llvm.org/D58518 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@354615 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGCUDANV.cpp b/lib/CodeGen/CGCUDANV.cpp index 62661039a3..6f7295bf4b 100644 --- a/lib/CodeGen/CGCUDANV.cpp +++ b/lib/CodeGen/CGCUDANV.cpp @@ -227,6 +227,12 @@ void CGNVCUDARuntime::emitDeviceStub(CodeGenFunction &CGF, emitDeviceStubBodyNew(CGF, Args); else emitDeviceStubBodyLegacy(CGF, Args); + + // Postfix kernel stub names with .stub to differentiate them from kernel + // names in device binaries. This is to facilitate the debugger to find + // the correct symbols for kernels in the device binary. + if (CGF.getLangOpts().HIP) + CGF.CurFn->setName(CGF.CurFn->getName() + ".stub"); } // CUDA 9.0+ uses new way to launch kernels. Parameters are packed in a local diff --git a/test/CodeGenCUDA/device-stub.cu b/test/CodeGenCUDA/device-stub.cu index 387a787cce..3be0e7b2ec 100644 --- a/test/CodeGenCUDA/device-stub.cu +++ b/test/CodeGenCUDA/device-stub.cu @@ -145,7 +145,8 @@ void use_pointers() { // Test that we build the correct number of calls to cudaSetupArgument followed // by a call to cudaLaunch. -// LNX: define{{.*}}kernelfunc +// CUDA-LABEL: define{{.*}}kernelfunc +// HIP-LABEL: define{{.*}}@_Z10kernelfunciii.stub // New launch sequence stores arguments into local buffer and passes array of // pointers to them directly to cudaLaunchKernel