Skip to content

Commit f303575

Browse files
initIfEmpty
1 parent e86363f commit f303575

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

sycl/source/detail/device_kernel_info.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,13 @@ void DeviceKernelInfo::init(KernelNameStrRefT KernelName) {
3232
}
3333

3434
#ifndef __INTEL_PREVIEW_BREAKING_CHANGES
35-
void DeviceKernelInfo::initIfNeeded(KernelNameStrRefT KernelName) {
36-
if (!MInitialized.load())
37-
init(KernelName);
35+
void DeviceKernelInfo::initIfEmpty(const CompileTimeKernelInfoTy &Info) {
36+
if (MInitialized.load())
37+
return;
38+
39+
CompileTimeKernelInfoTy::operator=(Info);
40+
Name = Info.Name.data();
41+
init(Name.data());
3842
}
3943
#endif
4044

sycl/source/detail/device_kernel_info.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,8 @@ class DeviceKernelInfo : public CompileTimeKernelInfoTy {
102102

103103
void init(KernelNameStrRefT KernelName);
104104
#ifndef __INTEL_PREVIEW_BREAKING_CHANGES
105-
void initIfNeeded(KernelNameStrRefT KernelName);
105+
// Initialize default-created entry that has no data recorded:
106+
void initIfEmpty(const CompileTimeKernelInfoTy &Info);
106107
#endif
107108
void setCompileTimeInfoIfNeeded(const CompileTimeKernelInfoTy &Info);
108109

sycl/source/handler.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,14 @@ event handler::finalize() {
544544
if (type == detail::CGType::Kernel) {
545545
if (impl->MDeviceKernelInfoPtr) {
546546
#ifndef __INTEL_PREVIEW_BREAKING_CHANGES
547-
impl->MDeviceKernelInfoPtr->initIfNeeded(toKernelNameStrT(MKernelName));
547+
detail::CompileTimeKernelInfoTy HandlerInfo;
548+
HandlerInfo.Name = MKernelName;
549+
HandlerInfo.NumParams = impl->MKernelNumArgs;
550+
HandlerInfo.ParamDescGetter = impl->MKernelParamDescGetter;
551+
HandlerInfo.IsESIMD = impl->MKernelIsESIMD;
552+
HandlerInfo.HasSpecialCaptures = impl->MKernelHasSpecialCaptures;
553+
554+
impl->MDeviceKernelInfoPtr->initIfEmpty(HandlerInfo);
548555
#endif
549556
} else {
550557
// Fetch the device kernel info pointer if it hasn't been set (e.g.

0 commit comments

Comments
 (0)