From a756fe9cd4241ae1f4978b069b809ac1dd352a74 Mon Sep 17 00:00:00 2001 From: "Zhao, Maosu" Date: Wed, 8 Jan 2025 23:40:57 -0800 Subject: [PATCH] [DevMSAN] Only return clean shadow for device usm and memory with global as --- libdevice/sanitizer/msan_rtl.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/libdevice/sanitizer/msan_rtl.cpp b/libdevice/sanitizer/msan_rtl.cpp index bb0287ca476f9..8f3babd709038 100644 --- a/libdevice/sanitizer/msan_rtl.cpp +++ b/libdevice/sanitizer/msan_rtl.cpp @@ -139,11 +139,12 @@ inline uptr __msan_get_shadow_cpu(uptr addr) { inline uptr __msan_get_shadow_pvc(uptr addr, uint32_t as) { if (as == ADDRESS_SPACE_GENERIC) { ConvertGenericPointer(addr, as); - if (as != ADDRESS_SPACE_GLOBAL) - return (uptr)((__SYCL_GLOBAL__ MsanLaunchInfo *)__MsanLaunchInfo.get()) - ->CleanShadow; } + if (as != ADDRESS_SPACE_GLOBAL || !(addr & 0xFF00000000000000)) + return (uptr)((__SYCL_GLOBAL__ MsanLaunchInfo *)__MsanLaunchInfo.get()) + ->CleanShadow; + // Device USM only auto shadow_begin = ((__SYCL_GLOBAL__ MsanLaunchInfo *)__MsanLaunchInfo.get()) ->GlobalShadowOffset; @@ -196,11 +197,6 @@ DEVICE_EXTERN_C_NOINLINE uptr __msan_get_shadow(uptr addr, uint32_t as) { if (!__MsanLaunchInfo.get()) return shadow_ptr; - if (UNLIKELY(!__MsanLaunchInfo)) { - __spirv_ocl_printf(__msan_print_warning_nolaunchinfo); - return shadow_ptr; - } - auto launch_info = (__SYCL_GLOBAL__ MsanLaunchInfo *)__MsanLaunchInfo.get(); MSAN_DEBUG(__spirv_ocl_printf(__msan_print_launchinfo, (void *)launch_info, launch_info->GlobalShadowOffset));