@@ -1335,28 +1335,6 @@ __urdlllocal ur_result_t UR_APICALL urEnqueueMemUnmap(
13351335 return UR_RESULT_SUCCESS;
13361336}
13371337
1338- // /////////////////////////////////////////////////////////////////////////////
1339- // / @brief Intercept function for urKernelCreate
1340- __urdlllocal ur_result_t UR_APICALL urKernelCreate (
1341- ur_program_handle_t hProgram, // /< [in] handle of the program instance
1342- const char *pKernelName, // /< [in] pointer to null-terminated string.
1343- ur_kernel_handle_t
1344- *phKernel // /< [out] pointer to handle of kernel object created.
1345- ) {
1346- auto pfnCreate = getContext ()->urDdiTable .Kernel .pfnCreate ;
1347-
1348- if (nullptr == pfnCreate) {
1349- return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
1350- }
1351-
1352- getContext ()->logger .debug (" ==== urKernelCreate" );
1353-
1354- UR_CALL (pfnCreate (hProgram, pKernelName, phKernel));
1355- UR_CALL (getAsanInterceptor ()->insertKernel (*phKernel));
1356-
1357- return UR_RESULT_SUCCESS;
1358- }
1359-
13601338// /////////////////////////////////////////////////////////////////////////////
13611339// / @brief Intercept function for urKernelRetain
13621340__urdlllocal ur_result_t UR_APICALL urKernelRetain (
@@ -1372,8 +1350,8 @@ __urdlllocal ur_result_t UR_APICALL urKernelRetain(
13721350
13731351 UR_CALL (pfnRetain (hKernel));
13741352
1375- auto KernelInfo = getAsanInterceptor ()->getKernelInfo (hKernel);
1376- KernelInfo-> RefCount ++;
1353+ auto & KernelInfo = getAsanInterceptor ()->getOrCreateKernelInfo (hKernel);
1354+ KernelInfo. RefCount ++;
13771355
13781356 return UR_RESULT_SUCCESS;
13791357}
@@ -1392,9 +1370,9 @@ __urdlllocal ur_result_t urKernelRelease(
13921370 getContext ()->logger .debug (" ==== urKernelRelease" );
13931371 UR_CALL (pfnRelease (hKernel));
13941372
1395- auto KernelInfo = getAsanInterceptor ()->getKernelInfo (hKernel);
1396- if (--KernelInfo-> RefCount == 0 ) {
1397- UR_CALL (getAsanInterceptor ()->eraseKernel (hKernel));
1373+ auto & KernelInfo = getAsanInterceptor ()->getOrCreateKernelInfo (hKernel);
1374+ if (--KernelInfo. RefCount == 0 ) {
1375+ UR_CALL (getAsanInterceptor ()->eraseKernelInfo (hKernel));
13981376 }
13991377
14001378 return UR_RESULT_SUCCESS;
@@ -1423,9 +1401,9 @@ __urdlllocal ur_result_t UR_APICALL urKernelSetArgValue(
14231401 if (argSize == sizeof (ur_mem_handle_t ) &&
14241402 (MemBuffer = getAsanInterceptor ()->getMemBuffer (
14251403 *ur_cast<const ur_mem_handle_t *>(pArgValue)))) {
1426- auto KernelInfo = getAsanInterceptor ()->getKernelInfo (hKernel);
1427- std::scoped_lock<ur_shared_mutex> Guard (KernelInfo-> Mutex );
1428- KernelInfo-> BufferArgs [argIndex] = std::move (MemBuffer);
1404+ auto & KernelInfo = getAsanInterceptor ()->getOrCreateKernelInfo (hKernel);
1405+ std::scoped_lock<ur_shared_mutex> Guard (KernelInfo. Mutex );
1406+ KernelInfo. BufferArgs [argIndex] = std::move (MemBuffer);
14291407 } else {
14301408 UR_CALL (
14311409 pfnSetArgValue (hKernel, argIndex, argSize, pProperties, pArgValue));
@@ -1453,9 +1431,9 @@ __urdlllocal ur_result_t UR_APICALL urKernelSetArgMemObj(
14531431
14541432 std::shared_ptr<MemBuffer> MemBuffer;
14551433 if ((MemBuffer = getAsanInterceptor ()->getMemBuffer (hArgValue))) {
1456- auto KernelInfo = getAsanInterceptor ()->getKernelInfo (hKernel);
1457- std::scoped_lock<ur_shared_mutex> Guard (KernelInfo-> Mutex );
1458- KernelInfo-> BufferArgs [argIndex] = std::move (MemBuffer);
1434+ auto & KernelInfo = getAsanInterceptor ()->getOrCreateKernelInfo (hKernel);
1435+ std::scoped_lock<ur_shared_mutex> Guard (KernelInfo. Mutex );
1436+ KernelInfo. BufferArgs [argIndex] = std::move (MemBuffer);
14591437 } else {
14601438 UR_CALL (pfnSetArgMemObj (hKernel, argIndex, pProperties, hArgValue));
14611439 }
@@ -1484,12 +1462,12 @@ __urdlllocal ur_result_t UR_APICALL urKernelSetArgLocal(
14841462 argSize);
14851463
14861464 {
1487- auto KI = getAsanInterceptor ()->getKernelInfo (hKernel);
1488- std::scoped_lock<ur_shared_mutex> Guard (KI-> Mutex );
1465+ auto & KI = getAsanInterceptor ()->getOrCreateKernelInfo (hKernel);
1466+ std::scoped_lock<ur_shared_mutex> Guard (KI. Mutex );
14891467 // TODO: get local variable alignment
14901468 auto argSizeWithRZ = GetSizeAndRedzoneSizeForLocal (
14911469 argSize, ASAN_SHADOW_GRANULARITY, ASAN_SHADOW_GRANULARITY);
1492- KI-> LocalArgs [argIndex] = LocalArgsInfo{argSize, argSizeWithRZ};
1470+ KI. LocalArgs [argIndex] = LocalArgsInfo{argSize, argSizeWithRZ};
14931471 argSize = argSizeWithRZ;
14941472 }
14951473
@@ -1522,9 +1500,9 @@ __urdlllocal ur_result_t UR_APICALL urKernelSetArgPointer(
15221500
15231501 std::shared_ptr<KernelInfo> KI;
15241502 if (getAsanInterceptor ()->getOptions ().DetectKernelArguments ) {
1525- auto KI = getAsanInterceptor ()->getKernelInfo (hKernel);
1526- std::scoped_lock<ur_shared_mutex> Guard (KI-> Mutex );
1527- KI-> PointerArgs [argIndex] = {pArgValue, GetCurrentBacktrace ()};
1503+ auto & KI = getAsanInterceptor ()->getOrCreateKernelInfo (hKernel);
1504+ std::scoped_lock<ur_shared_mutex> Guard (KI. Mutex );
1505+ KI. PointerArgs [argIndex] = {pArgValue, GetCurrentBacktrace ()};
15281506 }
15291507
15301508 ur_result_t result =
@@ -1708,7 +1686,6 @@ __urdlllocal ur_result_t UR_APICALL urGetKernelProcAddrTable(
17081686
17091687 ur_result_t result = UR_RESULT_SUCCESS;
17101688
1711- pDdiTable->pfnCreate = ur_sanitizer_layer::asan::urKernelCreate;
17121689 pDdiTable->pfnRetain = ur_sanitizer_layer::asan::urKernelRetain;
17131690 pDdiTable->pfnRelease = ur_sanitizer_layer::asan::urKernelRelease;
17141691 pDdiTable->pfnSetArgValue = ur_sanitizer_layer::asan::urKernelSetArgValue;
0 commit comments