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