diff --git a/unified-runtime/source/adapters/level_zero/v2/command_list_manager.hpp b/unified-runtime/source/adapters/level_zero/v2/command_list_manager.hpp index 928c939431988..d3c6d0ca33d6e 100644 --- a/unified-runtime/source/adapters/level_zero/v2/command_list_manager.hpp +++ b/unified-runtime/source/adapters/level_zero/v2/command_list_manager.hpp @@ -37,7 +37,13 @@ struct ur_command_list_manager { ur_device_handle_t device, v2::raii::command_list_unique_handle &&commandList, v2::event_flags_t flags, ur_queue_t_ *queue); + ur_command_list_manager(const ur_command_list_manager &src) = delete; ur_command_list_manager(ur_command_list_manager &&src) = default; + + ur_command_list_manager & + operator=(const ur_command_list_manager &src) = delete; + ur_command_list_manager &operator=(ur_command_list_manager &&src) = default; + ~ur_command_list_manager(); ur_result_t appendKernelLaunch(ur_kernel_handle_t hKernel, uint32_t workDim, diff --git a/unified-runtime/source/adapters/level_zero/v2/event_pool.hpp b/unified-runtime/source/adapters/level_zero/v2/event_pool.hpp index faafab2a86f9b..3a64d3fab68c3 100644 --- a/unified-runtime/source/adapters/level_zero/v2/event_pool.hpp +++ b/unified-runtime/source/adapters/level_zero/v2/event_pool.hpp @@ -40,6 +40,8 @@ class event_pool { event_pool(const event_pool &) = delete; event_pool &operator=(const event_pool &) = delete; + ~event_pool() = default; + // Allocate an event from the pool. Thread safe. ur_event_handle_t allocate(); diff --git a/unified-runtime/source/adapters/level_zero/v2/event_pool_cache.cpp b/unified-runtime/source/adapters/level_zero/v2/event_pool_cache.cpp index 620ac0867dd94..559d3ba896985 100644 --- a/unified-runtime/source/adapters/level_zero/v2/event_pool_cache.cpp +++ b/unified-runtime/source/adapters/level_zero/v2/event_pool_cache.cpp @@ -16,7 +16,7 @@ namespace v2 { event_pool_cache::event_pool_cache(ur_context_handle_t hContext, size_t max_devices, ProviderCreateFunc ProviderCreate) - : hContext(hContext), providerCreate(ProviderCreate) { + : hContext(hContext), providerCreate(std::move(ProviderCreate)) { pools.resize(max_devices * (1ULL << EVENT_FLAGS_USED_BITS)); } diff --git a/unified-runtime/source/adapters/level_zero/v2/kernel.cpp b/unified-runtime/source/adapters/level_zero/v2/kernel.cpp index 6d475552279d8..d1c98d78a490f 100644 --- a/unified-runtime/source/adapters/level_zero/v2/kernel.cpp +++ b/unified-runtime/source/adapters/level_zero/v2/kernel.cpp @@ -117,10 +117,11 @@ ur_result_t ur_kernel_handle_t_::release() { void ur_kernel_handle_t_::completeInitialization() { // Cache kernel name. Should be the same for all devices assert(deviceKernels.size() > 0); - nonEmptyKernel = - &std::find_if(deviceKernels.begin(), deviceKernels.end(), - [](const auto &kernel) { return kernel.has_value(); }) - ->value(); + auto nonEmptyKernelIt = + std::find_if(deviceKernels.begin(), deviceKernels.end(), + [](const auto &kernel) { return kernel.has_value(); }); + assert(nonEmptyKernelIt != deviceKernels.end()); + nonEmptyKernel = &nonEmptyKernelIt->value(); zeCommonProperties.Compute = [kernel = nonEmptyKernel]( common_properties_t &props) { diff --git a/unified-runtime/source/adapters/level_zero/v2/memory.cpp b/unified-runtime/source/adapters/level_zero/v2/memory.cpp index d2025da38b62c..a8f32dcbd50d9 100644 --- a/unified-runtime/source/adapters/level_zero/v2/memory.cpp +++ b/unified-runtime/source/adapters/level_zero/v2/memory.cpp @@ -158,13 +158,15 @@ getSyncCommandListForCopy(ur_context_handle_t hContext, static ur_result_t synchronousZeCopy(ur_context_handle_t hContext, ur_device_handle_t hDevice, void *dst, - const void *src, size_t size) { + const void *src, size_t size) try { auto commandList = getSyncCommandListForCopy(hContext, hDevice); ZE2UR_CALL(zeCommandListAppendMemoryCopy, (commandList.get(), dst, src, size, nullptr, 0, nullptr)); return UR_RESULT_SUCCESS; +} catch (...) { + return exceptionToResult(std::current_exception()); } void *ur_discrete_buffer_handle_t::allocateOnDevice(ur_device_handle_t hDevice, @@ -414,20 +416,20 @@ void *ur_mem_sub_buffer_t::getDevicePtr( ur_device_handle_t hDevice, device_access_mode_t access, size_t offset, size_t size, std::function migrate) { return hParent->getBuffer()->getDevicePtr( - hDevice, access, offset + this->offset, size, migrate); + hDevice, access, offset + this->offset, size, std::move(migrate)); } void *ur_mem_sub_buffer_t::mapHostPtr( ur_map_flags_t flags, size_t offset, size_t size, std::function migrate) { return hParent->getBuffer()->mapHostPtr(flags, offset + this->offset, size, - migrate); + std::move(migrate)); } void ur_mem_sub_buffer_t::unmapHostPtr( void *pMappedPtr, std::function migrate) { - return hParent->getBuffer()->unmapHostPtr(pMappedPtr, migrate); + return hParent->getBuffer()->unmapHostPtr(pMappedPtr, std::move(migrate)); } ur_shared_mutex &ur_mem_sub_buffer_t::getMutex() { diff --git a/unified-runtime/source/adapters/level_zero/v2/queue_immediate_in_order.cpp b/unified-runtime/source/adapters/level_zero/v2/queue_immediate_in_order.cpp index 9fb5f3467a37d..5fdf70bd60cf3 100644 --- a/unified-runtime/source/adapters/level_zero/v2/queue_immediate_in_order.cpp +++ b/unified-runtime/source/adapters/level_zero/v2/queue_immediate_in_order.cpp @@ -870,7 +870,7 @@ ur_result_t ur_queue_immediate_in_order_t::enqueueTimestampRecordingExp( "ur_queue_immediate_in_order_t::enqueueTimestampRecordingExp"); auto commandListLocked = commandListManager.lock(); - if (!phEvent && !*phEvent) { + if (!phEvent) { return UR_RESULT_ERROR_INVALID_NULL_HANDLE; } getSignalEvent(commandListLocked, phEvent,