xref: /aosp_15_r20/external/pytorch/c10/util/static_tracepoint.h (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1 #pragma once
2 
3 #if defined(__ELF__) && (defined(__x86_64__) || defined(__i386__)) && \
4     !(defined(TORCH_DISABLE_SDT) && TORCH_DISABLE_SDT)
5 
6 #define TORCH_HAVE_SDT 1
7 
8 #include <c10/util/static_tracepoint_elfx86.h>
9 
10 #define TORCH_SDT(name, ...) \
11   TORCH_SDT_PROBE_N(         \
12       pytorch, name, 0, TORCH_SDT_NARG(0, ##__VA_ARGS__), ##__VA_ARGS__)
13 // Use TORCH_SDT_DEFINE_SEMAPHORE(name) to define the semaphore
14 // as global variable before using the TORCH_SDT_WITH_SEMAPHORE macro
15 #define TORCH_SDT_WITH_SEMAPHORE(name, ...) \
16   TORCH_SDT_PROBE_N(                        \
17       pytorch, name, 1, TORCH_SDT_NARG(0, ##__VA_ARGS__), ##__VA_ARGS__)
18 #define TORCH_SDT_IS_ENABLED(name) (TORCH_SDT_SEMAPHORE(pytorch, name) > 0)
19 
20 #else
21 
22 #define TORCH_HAVE_SDT 0
23 
24 #define TORCH_SDT(name, ...) \
25   do {                       \
26   } while (0)
27 #define TORCH_SDT_WITH_SEMAPHORE(name, ...) \
28   do {                                      \
29   } while (0)
30 #define TORCH_SDT_IS_ENABLED(name) (false)
31 #define TORCH_SDT_DEFINE_SEMAPHORE(name)
32 #define TORCH_SDT_DECLARE_SEMAPHORE(name)
33 
34 #endif
35