[compiler-rt] [compiler-rt][asan] Add AMDGPU ASan support via HSA API interceptors. (PR #192238)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 15 04:17:08 PDT 2026
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff origin/main HEAD --extensions cpp -- compiler-rt/lib/asan/asan_interceptors.cpp --diff_from_common_commit
``````````
:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/compiler-rt/lib/asan/asan_interceptors.cpp b/compiler-rt/lib/asan/asan_interceptors.cpp
index e08a5efa2..924d36afc 100644
--- a/compiler-rt/lib/asan/asan_interceptors.cpp
+++ b/compiler-rt/lib/asan/asan_interceptors.cpp
@@ -895,19 +895,20 @@ DEFINE_REAL(int, vfork, )
DECLARE_EXTERN_INTERCEPTOR_AND_WRAPPER(int, vfork, )
# endif
-#if SANITIZER_AMDGPU
+# if SANITIZER_AMDGPU
void ENSURE_HSA_INITED();
INTERCEPTOR(hsa_status_t, hsa_amd_memory_pool_allocate,
- hsa_amd_memory_pool_t memory_pool, size_t size, uint32_t flags, void **ptr) {
+ hsa_amd_memory_pool_t memory_pool, size_t size, uint32_t flags,
+ void** ptr) {
AsanInitFromRtl();
ENSURE_HSA_INITED();
GET_STACK_TRACE_MALLOC;
return asan_hsa_amd_memory_pool_allocate(memory_pool, size, flags, ptr,
- &stack);
+ &stack);
}
-INTERCEPTOR(hsa_status_t, hsa_amd_memory_pool_free, void *ptr) {
+INTERCEPTOR(hsa_status_t, hsa_amd_memory_pool_free, void* ptr) {
AsanInitFromRtl();
ENSURE_HSA_INITED();
GET_STACK_TRACE_FREE;
@@ -915,16 +916,16 @@ INTERCEPTOR(hsa_status_t, hsa_amd_memory_pool_free, void *ptr) {
}
INTERCEPTOR(hsa_status_t, hsa_amd_agents_allow_access, uint32_t num_agents,
- const hsa_agent_t *agents, const uint32_t *flags, const void *ptr) {
+ const hsa_agent_t* agents, const uint32_t* flags, const void* ptr) {
AsanInitFromRtl();
ENSURE_HSA_INITED();
GET_STACK_TRACE_FREE;
return asan_hsa_amd_agents_allow_access(num_agents, agents, flags, ptr,
- &stack);
+ &stack);
}
-INTERCEPTOR(hsa_status_t, hsa_memory_copy, void *dst, const void *src,
- size_t size) {
+INTERCEPTOR(hsa_status_t, hsa_memory_copy, void* dst, const void* src,
+ size_t size) {
AsanInitFromRtl();
ENSURE_HSA_INITED();
if (flags()->replace_intrin) {
@@ -938,9 +939,9 @@ INTERCEPTOR(hsa_status_t, hsa_memory_copy, void *dst, const void *src,
}
INTERCEPTOR(hsa_status_t, hsa_amd_memory_async_copy, void* dst,
- hsa_agent_t dst_agent, const void* src, hsa_agent_t src_agent, size_t size,
- uint32_t num_dep_signals, const hsa_signal_t* dep_signals,
- hsa_signal_t completion_signal) {
+ hsa_agent_t dst_agent, const void* src, hsa_agent_t src_agent,
+ size_t size, uint32_t num_dep_signals,
+ const hsa_signal_t* dep_signals, hsa_signal_t completion_signal) {
AsanInitFromRtl();
ENSURE_HSA_INITED();
if (flags()->replace_intrin) {
@@ -951,15 +952,16 @@ INTERCEPTOR(hsa_status_t, hsa_amd_memory_async_copy, void* dst,
ASAN_WRITE_RANGE(nullptr, dst, size);
}
return REAL(hsa_amd_memory_async_copy)(dst, dst_agent, src, src_agent, size,
- num_dep_signals, dep_signals, completion_signal);
+ num_dep_signals, dep_signals,
+ completion_signal);
}
-#if HSA_AMD_INTERFACE_VERSION_MINOR>=1
+# if HSA_AMD_INTERFACE_VERSION_MINOR >= 1
INTERCEPTOR(hsa_status_t, hsa_amd_memory_async_copy_on_engine, void* dst,
- hsa_agent_t dst_agent, const void* src, hsa_agent_t src_agent, size_t size,
- uint32_t num_dep_signals, const hsa_signal_t* dep_signals,
- hsa_signal_t completion_signal, hsa_amd_sdma_engine_id_t engine_id,
- bool force_copy_on_sdma) {
+ hsa_agent_t dst_agent, const void* src, hsa_agent_t src_agent,
+ size_t size, uint32_t num_dep_signals,
+ const hsa_signal_t* dep_signals, hsa_signal_t completion_signal,
+ hsa_amd_sdma_engine_id_t engine_id, bool force_copy_on_sdma) {
AsanInitFromRtl();
ENSURE_HSA_INITED();
if (flags()->replace_intrin) {
@@ -971,25 +973,25 @@ INTERCEPTOR(hsa_status_t, hsa_amd_memory_async_copy_on_engine, void* dst,
ASAN_WRITE_RANGE(nullptr, dst, size);
}
return REAL(hsa_amd_memory_async_copy_on_engine)(
- dst, dst_agent, src, src_agent, size, num_dep_signals, dep_signals,
- completion_signal, engine_id, force_copy_on_sdma);
+ dst, dst_agent, src, src_agent, size, num_dep_signals, dep_signals,
+ completion_signal, engine_id, force_copy_on_sdma);
}
-#endif
+# endif
INTERCEPTOR(hsa_status_t, hsa_amd_ipc_memory_create, void* ptr, size_t len,
- hsa_amd_ipc_memory_t* handle) {
+ hsa_amd_ipc_memory_t* handle) {
AsanInitFromRtl();
ENSURE_HSA_INITED();
return asan_hsa_amd_ipc_memory_create(ptr, len, handle);
}
INTERCEPTOR(hsa_status_t, hsa_amd_ipc_memory_attach,
- const hsa_amd_ipc_memory_t* handle, size_t len, uint32_t num_agents,
- const hsa_agent_t* mapping_agents, void** mapped_ptr) {
+ const hsa_amd_ipc_memory_t* handle, size_t len, uint32_t num_agents,
+ const hsa_agent_t* mapping_agents, void** mapped_ptr) {
AsanInitFromRtl();
ENSURE_HSA_INITED();
return asan_hsa_amd_ipc_memory_attach(handle, len, num_agents, mapping_agents,
- mapped_ptr);
+ mapped_ptr);
}
INTERCEPTOR(hsa_status_t, hsa_amd_ipc_memory_detach, void* mapped_ptr) {
@@ -1036,9 +1038,9 @@ void InitializeAmdgpuInterceptors() {
ASAN_INTERCEPT_FUNC(hsa_amd_memory_pool_free);
ASAN_INTERCEPT_FUNC(hsa_amd_agents_allow_access);
ASAN_INTERCEPT_FUNC(hsa_amd_memory_async_copy);
-#if HSA_AMD_INTERFACE_VERSION_MINOR>=1
+# if HSA_AMD_INTERFACE_VERSION_MINOR >= 1
ASAN_INTERCEPT_FUNC(hsa_amd_memory_async_copy_on_engine);
-#endif
+# endif
ASAN_INTERCEPT_FUNC(hsa_amd_ipc_memory_create);
ASAN_INTERCEPT_FUNC(hsa_amd_ipc_memory_attach);
ASAN_INTERCEPT_FUNC(hsa_amd_ipc_memory_detach);
@@ -1051,7 +1053,7 @@ void ENSURE_HSA_INITED() {
if (!REAL(hsa_init))
InitializeAmdgpuInterceptors();
}
-#endif
+# endif
// ---------------------- InitializeAsanInterceptors ---------------- {{{1
namespace __asan {
@@ -1169,9 +1171,9 @@ void InitializeAsanInterceptors() {
ASAN_INTERCEPT_FUNC(vfork);
# endif
-#if SANITIZER_AMDGPU
+# if SANITIZER_AMDGPU
InitializeAmdgpuInterceptors();
-#endif
+# endif
VReport(1, "AddressSanitizer: libc interceptors initialized\n");
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/192238
More information about the llvm-commits
mailing list