@@ -1867,33 +1867,34 @@ void ProgramManager::addImages(sycl_device_binaries DeviceBinary) {
18671867 m_BinImg2KernelIDs[Img.get ()].reset (new std::vector<kernel_id>);
18681868
18691869 for (sycl_offload_entry EntriesIt = EntriesB; EntriesIt != EntriesE;
1870- ++EntriesIt) {
1870+ EntriesIt = EntriesIt->Increment ()) {
1871+
1872+ auto name = EntriesIt->GetName ();
18711873
18721874 // Skip creating unique kernel ID if it is a service kernel.
18731875 // SYCL service kernels are identified by having
18741876 // __sycl_service_kernel__ in the mangled name, primarily as part of
18751877 // the namespace of the name type.
1876- if (std::strstr (EntriesIt-> name , " __sycl_service_kernel__" )) {
1877- m_ServiceKernels.insert (std::make_pair (EntriesIt-> name , Img.get ()));
1878+ if (std::strstr (name, " __sycl_service_kernel__" )) {
1879+ m_ServiceKernels.insert (std::make_pair (name, Img.get ()));
18781880 continue ;
18791881 }
18801882
18811883 // Skip creating unique kernel ID if it is an exported device
18821884 // function. Exported device functions appear in the offload entries
18831885 // among kernels, but are identifiable by being listed in properties.
1884- if (m_ExportedSymbolImages.find (EntriesIt->name ) !=
1885- m_ExportedSymbolImages.end ())
1886+ if (m_ExportedSymbolImages.find (name) != m_ExportedSymbolImages.end ())
18861887 continue ;
18871888
18881889 // ... and create a unique kernel ID for the entry
1889- auto It = m_KernelName2KernelIDs.find (EntriesIt-> name );
1890+ auto It = m_KernelName2KernelIDs.find (name);
18901891 if (It == m_KernelName2KernelIDs.end ()) {
18911892 std::shared_ptr<detail::kernel_id_impl> KernelIDImpl =
1892- std::make_shared<detail::kernel_id_impl>(EntriesIt-> name );
1893+ std::make_shared<detail::kernel_id_impl>(name);
18931894 sycl::kernel_id KernelID =
18941895 detail::createSyclObjFromImpl<sycl::kernel_id>(KernelIDImpl);
18951896
1896- It = m_KernelName2KernelIDs.emplace_hint (It, EntriesIt-> name , KernelID);
1897+ It = m_KernelName2KernelIDs.emplace_hint (It, name, KernelID);
18971898 }
18981899 m_KernelIDs2BinImage.insert (std::make_pair (It->second , Img.get ()));
18991900 m_BinImg2KernelIDs[Img.get ()]->push_back (It->second );
@@ -2020,25 +2021,25 @@ void ProgramManager::removeImages(sycl_device_binaries DeviceBinary) {
20202021
20212022 // Unmap the unique kernel IDs for the offload entries
20222023 for (sycl_offload_entry EntriesIt = EntriesB; EntriesIt != EntriesE;
2023- ++ EntriesIt) {
2024+ EntriesIt = EntriesIt-> Increment () ) {
20242025
20252026 // Drop entry for service kernel
2026- if (std::strstr (EntriesIt->name , " __sycl_service_kernel__" )) {
2027- m_ServiceKernels.erase (EntriesIt->name );
2027+ if (std::strstr (EntriesIt->GetName () , " __sycl_service_kernel__" )) {
2028+ m_ServiceKernels.erase (EntriesIt->GetName () );
20282029 continue ;
20292030 }
20302031
20312032 // Exported device functions won't have a kernel ID
2032- if (m_ExportedSymbolImages.find (EntriesIt->name ) !=
2033+ if (m_ExportedSymbolImages.find (EntriesIt->GetName () ) !=
20332034 m_ExportedSymbolImages.end ()) {
20342035 continue ;
20352036 }
20362037
20372038 // remove everything associated with this KernelName
2038- m_KernelUsesAssert.erase (EntriesIt->name );
2039- m_KernelImplicitLocalArgPos.erase (EntriesIt->name );
2039+ m_KernelUsesAssert.erase (EntriesIt->GetName () );
2040+ m_KernelImplicitLocalArgPos.erase (EntriesIt->GetName () );
20402041
2041- if (auto It = m_KernelName2KernelIDs.find (EntriesIt->name );
2042+ if (auto It = m_KernelName2KernelIDs.find (EntriesIt->GetName () );
20422043 It != m_KernelName2KernelIDs.end ()) {
20432044 m_KernelName2KernelIDs.erase (It);
20442045 m_KernelIDs2BinImage.erase (It->second );
0 commit comments