LLVM OpenMP* Runtime Library
src
ompt-event-specific.h
1
#ifndef __OMPT_EVENT_SPECIFIC_H__
2
#define __OMPT_EVENT_SPECIFIC_H__
3
4
/******************************************************************************
5
* File: ompt-event-specific.h
6
*
7
* Description:
8
*
9
* specify which of the OMPT events are implemented by this runtime system
10
* and the level of their implementation by a runtime system.
11
*****************************************************************************/
12
13
#define _ompt_tokenpaste_helper(x,y) x ## y
14
#define _ompt_tokenpaste(x,y) _ompt_tokenpaste_helper(x,y)
15
#define ompt_event_implementation_status(e) _ompt_tokenpaste(e,_implemented)
16
17
18
/*----------------------------------------------------------------------------
19
| Specify whether an event may occur or not, and whether event callbacks
20
| never, sometimes, or always occur.
21
|
22
| The values for these constants are defined in section 6.1.2 of
23
| the OMPT TR. They are exposed to tools through ompt_set_callback.
24
+--------------------------------------------------------------------------*/
25
26
#define ompt_event_NEVER ompt_set_result_event_never_occurs
27
#define ompt_event_UNIMPLEMENTED ompt_set_result_event_may_occur_no_callback
28
#define ompt_event_MAY_CONVENIENT ompt_set_result_event_may_occur_callback_some
29
#define ompt_event_MAY_ALWAYS ompt_set_result_event_may_occur_callback_always
30
31
#if OMPT_TRACE
32
#define ompt_event_MAY_ALWAYS_TRACE ompt_event_MAY_ALWAYS
33
#else
34
#define ompt_event_MAY_ALWAYS_TRACE ompt_event_UNIMPLEMENTED
35
#endif
36
37
#if OMPT_BLAME
38
#define ompt_event_MAY_ALWAYS_BLAME ompt_event_MAY_ALWAYS
39
#else
40
#define ompt_event_MAY_ALWAYS_BLAME ompt_event_UNIMPLEMENTED
41
#endif
42
43
/*----------------------------------------------------------------------------
44
| Mandatory Events
45
+--------------------------------------------------------------------------*/
46
47
#define ompt_event_parallel_begin_implemented ompt_event_MAY_ALWAYS
48
#define ompt_event_parallel_end_implemented ompt_event_MAY_ALWAYS
49
50
#define ompt_event_task_begin_implemented ompt_event_MAY_ALWAYS
51
#define ompt_event_task_end_implemented ompt_event_MAY_ALWAYS
52
53
#define ompt_event_thread_begin_implemented ompt_event_MAY_ALWAYS
54
#define ompt_event_thread_end_implemented ompt_event_MAY_ALWAYS
55
56
#define ompt_event_control_implemented ompt_event_MAY_ALWAYS
57
58
#define ompt_event_runtime_shutdown_implemented ompt_event_MAY_ALWAYS
59
60
61
/*----------------------------------------------------------------------------
62
| Optional Events (blame shifting)
63
+--------------------------------------------------------------------------*/
64
65
#define ompt_event_idle_begin_implemented ompt_event_MAY_ALWAYS_BLAME
66
#define ompt_event_idle_end_implemented ompt_event_MAY_ALWAYS_BLAME
67
68
#define ompt_event_wait_barrier_begin_implemented ompt_event_MAY_ALWAYS_BLAME
69
#define ompt_event_wait_barrier_end_implemented ompt_event_MAY_ALWAYS_BLAME
70
71
#define ompt_event_wait_taskwait_begin_implemented ompt_event_UNIMPLEMENTED
72
#define ompt_event_wait_taskwait_end_implemented ompt_event_UNIMPLEMENTED
73
74
#define ompt_event_wait_taskgroup_begin_implemented ompt_event_UNIMPLEMENTED
75
#define ompt_event_wait_taskgroup_end_implemented ompt_event_UNIMPLEMENTED
76
77
#define ompt_event_release_lock_implemented ompt_event_MAY_ALWAYS_BLAME
78
#define ompt_event_release_nest_lock_last_implemented ompt_event_MAY_ALWAYS_BLAME
79
#define ompt_event_release_critical_implemented ompt_event_MAY_ALWAYS_BLAME
80
#define ompt_event_release_atomic_implemented ompt_event_MAY_ALWAYS_BLAME
81
#define ompt_event_release_ordered_implemented ompt_event_MAY_ALWAYS_BLAME
82
83
84
/*----------------------------------------------------------------------------
85
| Optional Events (synchronous events)
86
+--------------------------------------------------------------------------*/
87
88
#define ompt_event_implicit_task_begin_implemented ompt_event_MAY_ALWAYS_TRACE
89
#define ompt_event_implicit_task_end_implemented ompt_event_MAY_ALWAYS_TRACE
90
91
#define ompt_event_initial_task_begin_implemented ompt_event_UNIMPLEMENTED
92
#define ompt_event_initial_task_end_implemented ompt_event_UNIMPLEMENTED
93
94
#define ompt_event_task_switch_implemented ompt_event_MAY_ALWAYS_TRACE
95
96
#define ompt_event_loop_begin_implemented ompt_event_MAY_ALWAYS_TRACE
97
#define ompt_event_loop_end_implemented ompt_event_MAY_ALWAYS_TRACE
98
99
#define ompt_event_sections_begin_implemented ompt_event_UNIMPLEMENTED
100
#define ompt_event_sections_end_implemented ompt_event_UNIMPLEMENTED
101
102
#define ompt_event_single_in_block_begin_implemented ompt_event_MAY_ALWAYS_TRACE
103
#define ompt_event_single_in_block_end_implemented ompt_event_MAY_ALWAYS_TRACE
104
#define ompt_event_single_others_begin_implemented ompt_event_MAY_ALWAYS_TRACE
105
#define ompt_event_single_others_end_implemented ompt_event_MAY_ALWAYS_TRACE
106
107
#define ompt_event_workshare_begin_implemented ompt_event_UNIMPLEMENTED
108
#define ompt_event_workshare_end_implemented ompt_event_UNIMPLEMENTED
109
110
#define ompt_event_master_begin_implemented ompt_event_MAY_ALWAYS_TRACE
111
#define ompt_event_master_end_implemented ompt_event_MAY_ALWAYS_TRACE
112
113
#define ompt_event_barrier_begin_implemented ompt_event_MAY_ALWAYS_TRACE
114
#define ompt_event_barrier_end_implemented ompt_event_MAY_ALWAYS_TRACE
115
116
#define ompt_event_taskwait_begin_implemented ompt_event_MAY_ALWAYS_TRACE
117
#define ompt_event_taskwait_end_implemented ompt_event_MAY_ALWAYS_TRACE
118
119
#define ompt_event_taskgroup_begin_implemented ompt_event_UNIMPLEMENTED
120
#define ompt_event_taskgroup_end_implemented ompt_event_UNIMPLEMENTED
121
122
#define ompt_event_release_nest_lock_prev_implemented ompt_event_MAY_ALWAYS_TRACE
123
#define ompt_event_wait_lock_implemented ompt_event_UNIMPLEMENTED
124
#define ompt_event_wait_nest_lock_implemented ompt_event_UNIMPLEMENTED
125
#define ompt_event_wait_critical_implemented ompt_event_UNIMPLEMENTED
126
#define ompt_event_wait_atomic_implemented ompt_event_MAY_ALWAYS_TRACE
127
#define ompt_event_wait_ordered_implemented ompt_event_MAY_ALWAYS_TRACE
128
129
#define ompt_event_acquired_lock_implemented ompt_event_MAY_ALWAYS_TRACE
130
#define ompt_event_acquired_nest_lock_first_implemented ompt_event_MAY_ALWAYS_TRACE
131
#define ompt_event_acquired_nest_lock_next_implemented ompt_event_MAY_ALWAYS_TRACE
132
#define ompt_event_acquired_critical_implemented ompt_event_UNIMPLEMENTED
133
#define ompt_event_acquired_atomic_implemented ompt_event_MAY_ALWAYS_TRACE
134
#define ompt_event_acquired_ordered_implemented ompt_event_MAY_ALWAYS_TRACE
135
136
#define ompt_event_init_lock_implemented ompt_event_MAY_ALWAYS_TRACE
137
#define ompt_event_init_nest_lock_implemented ompt_event_MAY_ALWAYS_TRACE
138
139
#define ompt_event_destroy_lock_implemented ompt_event_MAY_ALWAYS_TRACE
140
#define ompt_event_destroy_nest_lock_implemented ompt_event_MAY_ALWAYS_TRACE
141
142
#define ompt_event_flush_implemented ompt_event_UNIMPLEMENTED
143
144
#if OMP_40_ENABLED
145
# define ompt_event_task_dependences_implemented ompt_event_MAY_ALWAYS_TRACE
146
# define ompt_event_task_dependence_pair_implemented ompt_event_MAY_ALWAYS_TRACE
147
#else
148
# define ompt_event_task_dependences_implemented ompt_event_UNIMPLEMENTED
149
# define ompt_event_task_dependence_pair_implemented ompt_event_UNIMPLEMENTED
150
#endif
/* OMP_40_ENABLED */
151
152
#endif
Generated by
1.8.13