[memprof] Use a new constructor of IndexedAllocationInfo (NFC) (#116920)
[llvm-project.git] / openmp / libompd / src / ompd-private.h
blob191183b25b6da10ba1eac72d9a76337abbb939b1
1 /*
2 * ompd-private.h
3 */
5 //===----------------------------------------------------------------------===//
6 //
7 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
8 // See https://llvm.org/LICENSE.txt for license information.
9 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
11 //===----------------------------------------------------------------------===//
13 #ifndef SRC_OMPD_PRIVATE_H_
14 #define SRC_OMPD_PRIVATE_H_
17 * Definition of OMPD states, taken from OMPT
19 #define FOREACH_OMPD_STATE(macro) \
21 /* first available state */ \
22 macro(ompt_state_undefined, 0x102) /* undefined thread state */ \
24 /* work states (0..15) */ \
25 macro(ompt_state_work_serial, 0x000) /* working outside parallel */ \
26 macro(ompt_state_work_parallel, 0x001) /* working within parallel */ \
27 macro(ompt_state_work_reduction, 0x002) /* performing a reduction */ \
29 /* barrier wait states (16..31) */ \
30 macro(ompt_state_wait_barrier, 0x010) /* waiting at a barrier */ \
31 macro(ompt_state_wait_barrier_implicit_parallel, \
32 0x011) /* implicit barrier at the end of parallel region */ \
33 macro(ompt_state_wait_barrier_implicit_workshare, \
34 0x012) /* implicit barrier at the end of worksharing */ \
35 macro(ompt_state_wait_barrier_implicit, 0x013) /* implicit barrier */ \
36 macro(ompt_state_wait_barrier_explicit, 0x014) /* explicit barrier */ \
38 /* task wait states (32..63) */ \
39 macro(ompt_state_wait_taskwait, 0x020) /* waiting at a taskwait */ \
40 macro(ompt_state_wait_taskgroup, 0x021) /* waiting at a taskgroup */ \
42 /* mutex wait states (64..127) */ \
43 macro(ompt_state_wait_mutex, 0x040) \
44 macro(ompt_state_wait_lock, 0x041) /* waiting for lock */ \
45 macro(ompt_state_wait_critical, 0x042) /* waiting for critical */ \
46 macro(ompt_state_wait_atomic, 0x043) /* waiting for atomic */ \
47 macro(ompt_state_wait_ordered, 0x044) /* waiting for ordered */ \
49 /* target wait states (128..255) */ \
50 macro(ompt_state_wait_target, 0x080) /* waiting for target region */ \
51 macro(ompt_state_wait_target_map, \
52 0x081) /* waiting for target data mapping operation */ \
53 macro(ompt_state_wait_target_update, \
54 0x082) /* waiting for target update operation */ \
56 /* misc (256..511) */ \
57 macro(ompt_state_idle, 0x100) /* waiting for work */ \
58 macro(ompt_state_overhead, 0x101) /* overhead excluding wait states */ \
60 /* implementation-specific states (512..) */
62 #define OMPD_LAST_OMP_STATE ompt_state_overhead
64 /**
65 * Primitive types.
67 typedef enum ompd_target_prim_types_t {
68 ompd_type_invalid = -1,
69 ompd_type_char = 0,
70 ompd_type_short = 1,
71 ompd_type_int = 2,
72 ompd_type_long = 3,
73 ompd_type_long_long = 4,
74 ompd_type_pointer = 5,
75 ompd_type_max
76 } ompd_target_prim_types_t;
78 #include "ompd-types.h"
79 #endif /*SRC_OMPD_PRIVATE_H*/