]> granicus.if.org Git - clang/commitdiff
[HIP] change kernel stub name
authorYaxun Liu <Yaxun.Liu@amd.com>
Thu, 21 Feb 2019 20:12:16 +0000 (20:12 +0000)
committerYaxun Liu <Yaxun.Liu@amd.com>
Thu, 21 Feb 2019 20:12:16 +0000 (20:12 +0000)
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

lib/CodeGen/CGCUDANV.cpp
test/CodeGenCUDA/device-stub.cu

index 62661039a32a1a089b287d44cbb17aa41b807482..6f7295bf4b39c64295c077909a684f78acfe4a81 100644 (file)
@@ -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
index 387a787cceb80905676c01cdeeb5307c9148b528..3be0e7b2ec4b3dd987533243b77dd681b825dc87 100644 (file)
@@ -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