@@ -496,12 +496,13 @@ event handler::finalize() {
496496
497497 // Extract arguments from the kernel lambda, if required.
498498 // Skipping this is currently limited to simple kernels on the fast path.
499- if (type == detail::CGType::Kernel && impl->MKernelFuncPtr &&
500- (!KernelFastPath || impl->MKernelHasSpecialCaptures )) {
499+ if (type == detail::CGType::Kernel && impl->MKernelData . getKernelFuncPtr () &&
500+ (!KernelFastPath || impl->MKernelData . hasSpecialCaptures () )) {
501501 clearArgs ();
502- extractArgsAndReqsFromLambda ((char *)impl->MKernelFuncPtr ,
503- impl->MKernelParamDescGetter ,
504- impl->MKernelNumArgs , impl->MKernelIsESIMD );
502+ extractArgsAndReqsFromLambda ((char *)impl->MKernelData .getKernelFuncPtr (),
503+ impl->MKernelData .getKernelParamDescGetter (),
504+ impl->MKernelData .getKernelNumArgs (),
505+ impl->MKernelData .isESIMD ());
505506 }
506507
507508 // According to 4.7.6.9 of SYCL2020 spec, if a placeholder accessor is passed
@@ -542,16 +543,17 @@ event handler::finalize() {
542543 }
543544
544545 if (type == detail::CGType::Kernel) {
545- if (impl->MDeviceKernelInfoPtr ) {
546+ if (impl->MKernelData . getDeviceKernelInfoPtr () ) {
546547#ifndef __INTEL_PREVIEW_BREAKING_CHANGES
547- impl->MDeviceKernelInfoPtr ->initIfNeeded (toKernelNameStrT (MKernelName));
548+ impl->MKernelData .getDeviceKernelInfoPtr ()->initIfNeeded (
549+ toKernelNameStrT (MKernelName));
548550#endif
549551 } else {
550552 // Fetch the device kernel info pointer if it hasn't been set (e.g.
551553 // in kernel bundle or free function cases).
552- impl->MDeviceKernelInfoPtr =
554+ impl->MKernelData . setDeviceKernelInfoPtr (
553555 &detail::ProgramManager::getInstance ().getOrCreateDeviceKernelInfo (
554- toKernelNameStrT (MKernelName));
556+ toKernelNameStrT (MKernelName))) ;
555557 }
556558 // If there were uses of set_specialization_constant build the kernel_bundle
557559 detail::kernel_bundle_impl *KernelBundleImpPtr =
@@ -627,7 +629,7 @@ event handler::finalize() {
627629 if (DiscardEvent) {
628630 // Kernel only uses assert if it's non interop one
629631 bool KernelUsesAssert = !(MKernel && MKernel->isInterop ()) &&
630- impl->MDeviceKernelInfoPtr -> usesAssert ();
632+ impl->MKernelData . usesAssert ();
631633 DiscardEvent = !KernelUsesAssert;
632634 }
633635
@@ -647,7 +649,7 @@ event handler::finalize() {
647649 if (xptiEnabled) {
648650 std::tie (CmdTraceEvent, InstanceID) = emitKernelInstrumentationData (
649651 detail::GSYCLStreamID, MKernel, MCodeLoc, impl->MIsTopCodeLoc ,
650- MKernelName.data (), *impl->MDeviceKernelInfoPtr ,
652+ MKernelName.data (), *impl->MKernelData . getDeviceKernelInfoPtr () ,
651653 impl->get_queue_or_null (), impl->MNDRDesc , KernelBundleImpPtr,
652654 impl->MArgs );
653655 detail::emitInstrumentationGeneral (detail::GSYCLStreamID, InstanceID,
@@ -664,11 +666,14 @@ event handler::finalize() {
664666 enqueueImpKernel (
665667 impl->get_queue (), impl->MNDRDesc , impl->MArgs , KernelBundleImpPtr,
666668 MKernel.get (), toKernelNameStrT (MKernelName),
667- *impl->MDeviceKernelInfoPtr , RawEvents, ResultEvent.get (), nullptr ,
668- impl->MKernelCacheConfig , impl->MKernelIsCooperative ,
669- impl->MKernelUsesClusterLaunch , impl->MKernelWorkGroupMemorySize ,
670- BinImage, impl->MKernelFuncPtr , impl->MKernelNumArgs ,
671- impl->MKernelParamDescGetter , impl->MKernelHasSpecialCaptures );
669+ *impl->MKernelData .getDeviceKernelInfoPtr (), RawEvents,
670+ ResultEvent.get (), nullptr , impl->MKernelCacheConfig ,
671+ impl->MKernelIsCooperative , impl->MKernelUsesClusterLaunch ,
672+ impl->MKernelWorkGroupMemorySize , BinImage,
673+ impl->MKernelData .getKernelFuncPtr (),
674+ impl->MKernelData .getKernelNumArgs (),
675+ impl->MKernelData .getKernelParamDescGetter (),
676+ impl->MKernelData .hasSpecialCaptures ());
672677#ifdef XPTI_ENABLE_INSTRUMENTATION
673678 if (xptiEnabled) {
674679 // Emit signal only when event is created
@@ -726,7 +731,7 @@ event handler::finalize() {
726731 impl->MNDRDesc , std::move (MHostKernel), std::move (MKernel),
727732 std::move (impl->MKernelBundle ), std::move (impl->CGData ),
728733 std::move (impl->MArgs ), toKernelNameStrT (MKernelName),
729- *impl->MDeviceKernelInfoPtr , std::move (MStreamStorage),
734+ *impl->MKernelData . getDeviceKernelInfoPtr () , std::move (MStreamStorage),
730735 std::move (impl->MAuxiliaryResources ), getType (),
731736 impl->MKernelCacheConfig , impl->MKernelIsCooperative ,
732737 impl->MKernelUsesClusterLaunch , impl->MKernelWorkGroupMemorySize ,
@@ -2610,26 +2615,25 @@ void handler::setNDRangeDescriptor(sycl::range<1> NumWorkItems,
26102615#ifndef __INTEL_PREVIEW_BREAKING_CHANGES
26112616void handler::setKernelNameBasedCachePtr (
26122617 sycl::detail::KernelNameBasedCacheT *KernelNameBasedCachePtr) {
2613- setDeviceKernelInfoPtr (reinterpret_cast <sycl::detail::DeviceKernelInfo *>(
2614- KernelNameBasedCachePtr));
2615- }
2616- #endif
2617-
2618- void handler::setDeviceKernelInfoPtr (
2619- sycl::detail::DeviceKernelInfo *DeviceKernelInfoPtr) {
2620- assert (!impl->MDeviceKernelInfoPtr && " Already set!" );
2621- impl->MDeviceKernelInfoPtr = DeviceKernelInfoPtr;
2618+ assert (!impl->MKernelData .getDeviceKernelInfoPtr () && " Already set!" );
2619+ impl->MKernelData .setDeviceKernelInfoPtr (
2620+ reinterpret_cast <sycl::detail::DeviceKernelInfo *>(
2621+ KernelNameBasedCachePtr));
26222622}
26232623
26242624void handler::setKernelInfo (
26252625 void *KernelFuncPtr, int KernelNumArgs,
26262626 detail::kernel_param_desc_t (*KernelParamDescGetter)(int ),
26272627 bool KernelIsESIMD, bool KernelHasSpecialCaptures) {
2628- impl->MKernelFuncPtr = KernelFuncPtr;
2629- impl->MKernelNumArgs = KernelNumArgs;
2630- impl->MKernelParamDescGetter = KernelParamDescGetter;
2631- impl->MKernelIsESIMD = KernelIsESIMD;
2632- impl->MKernelHasSpecialCaptures = KernelHasSpecialCaptures;
2628+ impl->MKernelData .setKernelInfo (KernelFuncPtr, KernelNumArgs,
2629+ KernelParamDescGetter, KernelIsESIMD,
2630+ KernelHasSpecialCaptures);
2631+ }
2632+ #endif
2633+
2634+ void handler::setKernelInfo (void *KernelFuncPtr,
2635+ detail::DeviceKernelInfo *DeviceKernelInfoPtr) {
2636+ impl->MKernelData .setKernelInfo (KernelFuncPtr, DeviceKernelInfoPtr);
26332637}
26342638
26352639void handler::instantiateKernelOnHost (void *InstantiateKernelOnHostPtr) {
0 commit comments