LLVM OpenMP
20.0.0git
tools
multiplex
tests
custom_data_storage
custom_data_storage.c
Go to the documentation of this file.
1
// RUN: %libomp-tool -DFIRST_TOOL -o %t.first.tool.so %s && \
2
// RUN: %libomp-tool -DSECOND_TOOL -o %t.second.tool.so %s && \
3
// RUN: %libomp-compile && \
4
// RUN: env OMP_TOOL_LIBRARIES=%t.first.tool.so \
5
// RUN: CUSTOM_DATA_STORAGE_TOOL_LIBRARIES=%t.second.tool.so \
6
// RUN: %libomp-run | %sort-threads | FileCheck %s
7
8
// For GCC we don't get an event for master,
9
// see runtime/test/ompt/sycnchronization/master.c
10
// UNSUPPORTED: gcc
11
12
#if defined(FIRST_TOOL)
13
#include "first-tool.h"
14
#elif defined(SECOND_TOOL)
15
#include "second-tool.h"
16
#else
/* APP */
17
18
#include "../ompt-signal.h"
19
#include "omp.h"
20
#include <stdio.h>
21
22
int
main
() {
23
int
x,
s
= 0;
24
#pragma omp parallel num_threads(2) shared(s)
25
{
26
#pragma omp master
27
{
28
#pragma omp task shared(s)
29
{
30
omp_control_tool(5, 1, NULL);
31
OMPT_SIGNAL
(
s
);
32
}
33
}
34
if
(omp_get_thread_num() == 1)
35
OMPT_WAIT
(
s
, 1);
36
}
37
return
0;
38
}
39
// Check if libomp supports the callbacks for this test.
40
// CHECK-NOT: {{^}}0: Could not register callback
41
42
// CHECK: {{^}}0: NULL_POINTER=[[NULL:.*$]]
43
// CHECK: {{^}}0: NULL_POINTER=[[NULL]]
44
// CHECK: {{^}}0: ompt_event_runtime_shutdown
45
// CHECK: {{^}}0: ompt_event_runtime_shutdown
46
47
// CHECK: {{^}}[[_1ST_MSTR_TID:[0-9]+]]: _first_tool: ompt_event_thread_begin:
48
// CHECK-SAME: thread_type=ompt_thread_initial=1,
49
// CHECK-SAME: thread_id=[[_1ST_MSTR_TID]]
50
51
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_initial_task_begin:
52
// CHECK-SAME: parallel_id=[[_FIRST_INIT_PARALLEL_ID:[0-9]+]],
53
// CHECK-SAME: task_id=[[_FIRST_INITIAL_TASK_ID:[0-9]+]], actual_parallelism=1,
54
55
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_parallel_begin:
56
// CHECK-SAME: parent_task_id=[[_FIRST_INITIAL_TASK_ID]],
57
// CHECK-SAME: parent_task_frame.exit=(nil),
58
// CHECK-SAME: parent_task_frame.reenter={{0x[0-f]+}},
59
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID:[0-9]+]], requested_team_size=2,
60
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}, invoker
61
62
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_implicit_task_begin:
63
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
64
// CHECK-SAME: task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID:[0-9]+]], team_size=2,
65
// CHECK-SAME: thread_num=0
66
67
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_masked_begin:
68
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
69
// CHECK-SAME: task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
70
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
71
72
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_task_create:
73
// CHECK-SAME: parent_task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
74
// CHECK-SAME: parent_task_frame.exit={{0x[0-f]+}},
75
// CHECK-SAME: parent_task_frame.reenter={{0x[0-f]+}},
76
// CHECK-SAME: new_task_id=[[_FIRST_EXPLICIT_TASK_ID:[0-9]+]],
77
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}, task_type=ompt_task_explicit=4,
78
// CHECK-SAME: has_dependences=no
79
80
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_masked_end:
81
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
82
// CHECK-SAME: task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
83
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
84
85
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool:
86
// CHECK-SAME: ompt_event_barrier_implicit_parallel_begin:
87
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
88
// CHECK-SAME: task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
89
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
90
91
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool:
92
// CHECK-SAME: ompt_event_wait_barrier_implicit_parallel_begin:
93
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
94
// CHECK-SAME: task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
95
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
96
97
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_task_schedule:
98
// CHECK-SAME: first_task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
99
// CHECK-SAME: second_task_id=[[_FIRST_EXPLICIT_TASK_ID]],
100
// CHECK-SAME: prior_task_status=ompt_task_switch=7
101
102
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_control_tool:
103
// CHECK-SAME: command=5, modifier=1, arg=(nil),
104
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
105
106
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: task level 0:
107
// CHECK-SAME: task_id=[[_FIRST_EXPLICIT_TASK_ID]]
108
109
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: task level 1:
110
// CHECK-SAME: task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]]
111
112
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: task level 2:
113
// CHECK-SAME: task_id=[[_FIRST_INITIAL_TASK_ID]]
114
115
// CHECK: {{^}}[[_1ST_MSTR_TID]]:
116
// CHECK-SAME: _first_tool: parallel level 0: parallel_id=[[_FIRST_PARALLEL_ID]]
117
118
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: parallel level 1:
119
// CHECK-SAME: parallel_id={{[0-9]+}}
120
121
// CHECK: {{^}}[[_1ST_MSTR_TID]]:
122
// CHECK-SAME: _first_tool: ompt_event_task_schedule:
123
// CHECK-SAME: first_task_id=[[_FIRST_EXPLICIT_TASK_ID]],
124
// CHECK-SAME: second_task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
125
// CHECK-SAME: prior_task_status=ompt_task_complete=1
126
127
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_task_end:
128
// CHECK-SAME: task_id=[[_FIRST_EXPLICIT_TASK_ID]]
129
130
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool:
131
// CHECK-SAME: ompt_event_wait_barrier_implicit_parallel_end:
132
// CHECK-SAME: parallel_id=0,
133
// CHECK-SAME: task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]], codeptr_ra=(nil)
134
135
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool:
136
// CHECK-SAME: ompt_event_barrier_implicit_parallel_end:
137
// CHECK-SAME: parallel_id=0,
138
// CHECK-SAME: task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]], codeptr_ra=(nil)
139
140
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_implicit_task_end:
141
// CHECK-SAME: parallel_id=0, task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
142
// CHECK-SAME: team_size=2, thread_num=0
143
144
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_parallel_end:
145
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
146
// CHECK-SAME: task_id=[[_FIRST_INITIAL_TASK_ID]], invoker
147
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
148
149
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_thread_end:
150
// CHECK-SAME: thread_id=[[_1ST_MSTR_TID]]
151
152
// CHECK: {{^}}[[_2ND_MSTR_TID:[0-9]+]]: second_tool: ompt_event_thread_begin:
153
// CHECK-SAME: thread_type=ompt_thread_initial=1,
154
// CHECK-SAME: thread_id=[[_2ND_MSTR_TID]]
155
156
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_initial_task_begin:
157
// CHECK-SAME: parallel_id=[[SECOND_INIT_PARALLEL_ID:[0-9]+]],
158
// CHECK-SAME: task_id=[[SECOND_INITIAL_TASK_ID:[0-9]+]], actual_parallelism=1,
159
// CHECK-SAME: index=1, flags=1
160
161
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_parallel_begin:
162
// CHECK-SAME: parent_task_id=[[SECOND_INITIAL_TASK_ID]],
163
// CHECK-SAME: parent_task_frame.exit=(nil),
164
// CHECK-SAME: parent_task_frame.reenter={{0x[0-f]+}},
165
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID:[0-9]+]], requested_team_size=2,
166
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}, invoker
167
168
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_implicit_task_begin:
169
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
170
// CHECK-SAME: task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID:[0-9]+]], team_size=2,
171
// CHECK-SAME: thread_num=0
172
173
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_masked_begin:
174
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
175
// CHECK-SAME: task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]],
176
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
177
178
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_task_create:
179
// CHECK-SAME: parent_task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]],
180
// CHECK-SAME: parent_task_frame.exit={{0x[0-f]+}},
181
// CHECK-SAME: parent_task_frame.reenter={{0x[0-f]+}},
182
// CHECK-SAME: new_task_id=[[SECOND_EXPLICIT_TASK_ID:[0-9]+]],
183
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}, task_type=ompt_task_explicit=4,
184
// CHECK-SAME: has_dependences=no
185
186
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_masked_end:
187
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
188
// CHECK-SAME: task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]],
189
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
190
191
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool:
192
// CHECK-SAME: ompt_event_barrier_implicit_parallel_begin:
193
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
194
// CHECK-SAME: task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]],
195
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
196
197
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool:
198
// CHECK-SAME: ompt_event_wait_barrier_implicit_parallel_begin:
199
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
200
// CHECK-SAME: task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]],
201
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
202
203
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_task_schedule:
204
// CHECK-SAME: first_task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]],
205
// CHECK-SAME: second_task_id=[[SECOND_EXPLICIT_TASK_ID]],
206
// CHECK-SAME: prior_task_status=ompt_task_switch=7
207
208
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_control_tool:
209
// CHECK-SAME: command=5, modifier=1, arg=(nil),
210
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
211
212
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: task level 0:
213
// CHECK-SAME: task_id=[[SECOND_EXPLICIT_TASK_ID]]
214
215
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: task level 1:
216
// CHECK-SAME: task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]]
217
218
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: task level 2:
219
// CHECK-SAME: task_id=[[SECOND_INITIAL_TASK_ID]]
220
221
// CHECK: {{^}}[[_2ND_MSTR_TID]]:
222
// CHECK-SAME: second_tool: parallel level 0: parallel_id=[[SECOND_PARALLEL_ID]]
223
224
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: parallel level 1:
225
// CHECK-SAME: parallel_id={{[0-9]+}}
226
227
// CHECK: {{^}}[[_2ND_MSTR_TID]]:
228
// CHECK-SAME: second_tool: ompt_event_task_schedule:
229
// CHECK-SAME: first_task_id=[[SECOND_EXPLICIT_TASK_ID]],
230
// CHECK-SAME: second_task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]],
231
// CHECK-SAME: prior_task_status=ompt_task_complete=1
232
233
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_task_end:
234
// CHECK-SAME: task_id=[[SECOND_EXPLICIT_TASK_ID]]
235
236
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool:
237
// CHECK-SAME: ompt_event_wait_barrier_implicit_parallel_end:
238
// CHECK-SAME: parallel_id=0,
239
// CHECK-SAME: task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]], codeptr_ra=(nil)
240
241
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool:
242
// CHECK-SAME: ompt_event_barrier_implicit_parallel_end:
243
// CHECK-SAME: parallel_id=0,
244
// CHECK-SAME: task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]], codeptr_ra=(nil)
245
246
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_implicit_task_end:
247
// CHECK-SAME: parallel_id=0,
248
// CHECK-SAME: task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]], team_size=2,
249
// CHECK-SAME: thread_num=0
250
251
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_parallel_end:
252
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
253
// CHECK-SAME: task_id=[[SECOND_INITIAL_TASK_ID]], invoker
254
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
255
256
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_thread_end:
257
// CHECK-SAME: thread_id=[[_2ND_MSTR_TID]]
258
259
// CHECK: {{^}}[[_1ST_WRKR_TID:[0-9]+]]: _first_tool: ompt_event_thread_begin:
260
// CHECK-SAME: thread_type=ompt_thread_worker=2,
261
// CHECK-SAME: thread_id=[[_1ST_WRKR_TID]]
262
263
// CHECK: {{^}}[[_1ST_WRKR_TID]]: _first_tool: ompt_event_implicit_task_begin:
264
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
265
// CHECK-SAME: task_id=[[_FIRST_WORKER_IMPLICIT_TASK_ID:[0-9]+]], team_size=2,
266
// CHECK-SAME: thread_num=1
267
268
// CHECK: {{^}}[[_1ST_WRKR_TID]]: _first_tool:
269
// CHECK-SAME: ompt_event_barrier_implicit_parallel_begin:
270
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
271
// CHECK-SAME: task_id=[[_FIRST_WORKER_IMPLICIT_TASK_ID]], codeptr_ra=(nil)
272
273
// CHECK: {{^}}[[_1ST_WRKR_TID]]: _first_tool:
274
// CHECK-SAME: ompt_event_wait_barrier_implicit_parallel_begin:
275
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
276
// CHECK-SAME: task_id=[[_FIRST_WORKER_IMPLICIT_TASK_ID]], codeptr_ra=(nil)
277
278
// CHECK: {{^}}[[_1ST_WRKR_TID]]: _first_tool:
279
// CHECK-SAME: ompt_event_wait_barrier_implicit_parallel_end:
280
// CHECK-SAME: parallel_id=0,
281
// CHECK-SAME: task_id=[[_FIRST_WORKER_IMPLICIT_TASK_ID]], codeptr_ra=(nil)
282
283
// CHECK: {{^}}[[_1ST_WRKR_TID]]: _first_tool:
284
// CHECK-SAME: ompt_event_barrier_implicit_parallel_end:
285
// CHECK-SAME: parallel_id=0,
286
// CHECK-SAME: task_id=[[_FIRST_WORKER_IMPLICIT_TASK_ID]], codeptr_ra=(nil)
287
288
// CHECK: {{^}}[[_1ST_WRKR_TID]]: _first_tool: ompt_event_implicit_task_end:
289
// CHECK-SAME: parallel_id=0,
290
// CHECK-SAME: task_id=[[_FIRST_WORKER_IMPLICIT_TASK_ID]], team_size=0,
291
// thread_num=1
292
293
// CHECK: {{^}}[[_1ST_WRKR_TID]]: _first_tool: ompt_event_thread_end:
294
// CHECK-SAME: thread_id=[[_1ST_WRKR_TID]]
295
296
// CHECK: {{^}}[[_2ND_WRKR_TID:[0-9]+]]: second_tool: ompt_event_thread_begin:
297
// CHECK-SAME: thread_type=ompt_thread_worker=2,
298
// CHECK-SAME: thread_id=[[_2ND_WRKR_TID]]
299
300
// CHECK: {{^}}[[_2ND_WRKR_TID]]: second_tool: ompt_event_implicit_task_begin:
301
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
302
// CHECK-SAME: task_id=[[SECOND_WORKER_IMPLICIT_TASK_ID:[0-9]+]], team_size=2,
303
// CHECK-SAME: thread_num=1
304
305
// CHECK: {{^}}[[_2ND_WRKR_TID]]: second_tool:
306
// CHECK-SAME: ompt_event_barrier_implicit_parallel_begin:
307
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
308
// CHECK-SAME: task_id=[[SECOND_WORKER_IMPLICIT_TASK_ID]], codeptr_ra=(nil)
309
310
// CHECK: {{^}}[[_2ND_WRKR_TID]]: second_tool:
311
// CHECK-SAME: ompt_event_wait_barrier_implicit_parallel_begin:
312
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
313
// CHECK-SAME: task_id=[[SECOND_WORKER_IMPLICIT_TASK_ID]], codeptr_ra=(nil)
314
315
// CHECK: {{^}}[[_2ND_WRKR_TID]]: second_tool:
316
// CHECK-SAME: ompt_event_wait_barrier_implicit_parallel_end:
317
// CHECK-SAME: parallel_id=0,
318
// CHECK-SAME: task_id=[[SECOND_WORKER_IMPLICIT_TASK_ID]], codeptr_ra=(nil)
319
320
// CHECK: {{^}}[[_2ND_WRKR_TID]]: second_tool:
321
// CHECK-SAME: ompt_event_barrier_implicit_parallel_end:
322
// CHECK-SAME: parallel_id=0,
323
// CHECK-SAME: task_id=[[SECOND_WORKER_IMPLICIT_TASK_ID]], codeptr_ra=(nil)
324
325
// CHECK: {{^}}[[_2ND_WRKR_TID]]: second_tool: ompt_event_implicit_task_end:
326
// CHECK-SAME: parallel_id=0,
327
// CHECK-SAME: task_id=[[SECOND_WORKER_IMPLICIT_TASK_ID]], team_size=0,
328
// CHECK-SAME: thread_num=1
329
330
// CHECK: {{^}}[[_2ND_WRKR_TID]]: second_tool: ompt_event_thread_end:
331
// CHECK-SAME: thread_id=[[_2ND_WRKR_TID]]
332
333
#endif
/* APP */
main
int main()
Definition:
custom_data_storage.c:22
s
void const char const char int ITT_FORMAT __itt_group_sync s
Definition:
ittnotify_static.h:154
OMPT_WAIT
#define OMPT_WAIT(s, v)
Definition:
ompt-signal.h:20
OMPT_SIGNAL
#define OMPT_SIGNAL(s)
Definition:
ompt-signal.h:12
Generated on Thu Feb 6 2025 10:26:44 for LLVM OpenMP by
1.9.6