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