LLVM OpenMP
20.0.0git
tools
multiplex
tests
print
print.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: PRINT_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
40
// Check if libomp supports the callbacks for this test.
41
// CHECK-NOT: {{^}}0: Could not register callback
42
43
// CHECK: {{^}}0: NULL_POINTER=[[NULL:.*$]]
44
// CHECK: {{^}}0: NULL_POINTER=[[NULL]]
45
// CHECK: {{^}}0: ompt_event_runtime_shutdown
46
// CHECK: {{^}}0: ompt_event_runtime_shutdown
47
48
// CHECK: {{^}}[[_1ST_MSTR_TID:[0-9]+]]: _first_tool: ompt_event_thread_begin:
49
// CHECK-SAME: thread_type=ompt_thread_initial=1, 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]+]],
54
// CHECK-SAME: actual_parallelism=1, index=1, flags=1
55
56
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_parallel_begin:
57
// CHECK-SAME: parent_task_id=[[_FIRST_INITIAL_TASK_ID]],
58
// CHECK-SAME: parent_task_frame.exit=(nil),
59
// CHECK-SAME: parent_task_frame.reenter={{0x[0-f]+}},
60
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID:[0-9]+]],
61
// CHECK-SAME: requested_team_size=2, codeptr_ra={{0x[0-f]+}}, invoker
62
63
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_implicit_task_begin:
64
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
65
// CHECK-SAME: task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID:[0-9]+]], team_size=2,
66
// CHECK-SAME: thread_num=0
67
68
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_masked_begin:
69
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
70
// CHECK-SAME: task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
71
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
72
73
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_task_create:
74
// CHECK-SAME: parent_task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
75
// CHECK-SAME: parent_task_frame.exit={{0x[0-f]+}},
76
// CHECK-SAME: parent_task_frame.reenter={{0x[0-f]+}},
77
// CHECK-SAME: new_task_id=[[_FIRST_EXPLICIT_TASK_ID:[0-9]+]],
78
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}, task_type=ompt_task_explicit=4,
79
// CHECK-SAME: has_dependences=no
80
81
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_masked_end:
82
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
83
// CHECK-SAME: task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
84
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
85
86
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool:
87
// CHECK-SAME: ompt_event_barrier_implicit_parallel_begin:
88
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
89
// CHECK-SAME: task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
90
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
91
92
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool:
93
// CHECK-SAME: ompt_event_wait_barrier_implicit_parallel_begin:
94
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
95
// CHECK-SAME: task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
96
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
97
98
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_task_schedule:
99
// CHECK-SAME: first_task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
100
// CHECK-SAME: second_task_id=[[_FIRST_EXPLICIT_TASK_ID]],
101
// CHECK-SAME: prior_task_status=ompt_task_switch=7
102
103
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_control_tool:
104
// CHECK-SAME: command=5, modifier=1, arg=(nil), 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]]: _first_tool: parallel level 0:
116
// CHECK-SAME: 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]]: _first_tool: ompt_event_task_schedule:
122
// CHECK-SAME: first_task_id=[[_FIRST_EXPLICIT_TASK_ID]],
123
// CHECK-SAME: second_task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
124
// CHECK-SAME: prior_task_status=ompt_task_complete=1
125
126
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_task_end:
127
// CHECK-SAME: task_id=[[_FIRST_EXPLICIT_TASK_ID]]
128
129
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool:
130
// CHECK-SAME: ompt_event_wait_barrier_implicit_parallel_end:
131
// CHECK-SAME: parallel_id=0, task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
132
// CHECK-SAME: codeptr_ra=(nil)
133
134
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool:
135
// CHECK-SAME: ompt_event_barrier_implicit_parallel_end:
136
// CHECK-SAME: parallel_id=0, task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
137
// CHECK-SAME: codeptr_ra=(nil)
138
139
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_implicit_task_end:
140
// CHECK-SAME: parallel_id=0, task_id=[[_FIRST_MASTER_IMPLICIT_TASK_ID]],
141
// CHECK-SAME: team_size=2, thread_num=0
142
143
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_parallel_end:
144
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
145
// CHECK-SAME: task_id=[[_FIRST_INITIAL_TASK_ID]], invoker
146
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
147
148
// CHECK: {{^}}[[_1ST_MSTR_TID]]: _first_tool: ompt_event_thread_end:
149
// CHECK-SAME: thread_id=[[_1ST_MSTR_TID]]
150
// CHECK: {{^}}[[_2ND_MSTR_TID:[0-9]+]]: second_tool: ompt_event_thread_begin:
151
// CHECK-SAME: thread_type=ompt_thread_initial=1, thread_id=[[_2ND_MSTR_TID]]
152
153
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_initial_task_begin:
154
// CHECK-SAME: parallel_id=[[SECOND_INIT_PARALLEL_ID:[0-9]+]],
155
// CHECK-SAME: task_id=[[SECOND_INITIAL_TASK_ID:[0-9]+]],
156
// CHECK-SAME: actual_parallelism=1, index=1, flags=1
157
158
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_parallel_begin:
159
// CHECK-SAME: parent_task_id=[[SECOND_INITIAL_TASK_ID]],
160
// CHECK-SAME: parent_task_frame.exit=(nil),
161
// CHECK-SAME: parent_task_frame.reenter={{0x[0-f]+}},
162
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID:[0-9]+]],
163
// CHECK-SAME: requested_team_size=2, codeptr_ra={{0x[0-f]+}}, invoker
164
165
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_implicit_task_begin:
166
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
167
// CHECK-SAME: task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID:[0-9]+]], team_size=2,
168
// CHECK-SAME: thread_num=0
169
170
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_masked_begin:
171
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
172
// CHECK-SAME: task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]],
173
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
174
175
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_task_create:
176
// CHECK-SAME: parent_task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]],
177
// CHECK-SAME: parent_task_frame.exit={{0x[0-f]+}},
178
// CHECK-SAME: parent_task_frame.reenter={{0x[0-f]+}},
179
// CHECK-SAME: new_task_id=[[SECOND_EXPLICIT_TASK_ID:[0-9]+]],
180
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}, task_type=ompt_task_explicit=4,
181
// CHECK-SAME: has_dependences=no
182
183
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_masked_end:
184
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
185
// CHECK-SAME: task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]],
186
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
187
188
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool:
189
// CHECK-SAME: ompt_event_barrier_implicit_parallel_begin:
190
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
191
// CHECK-SAME: task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]],
192
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
193
194
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool:
195
// CHECK-SAME: ompt_event_wait_barrier_implicit_parallel_begin:
196
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
197
// CHECK-SAME: task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]],
198
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
199
200
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_task_schedule:
201
// CHECK-SAME: first_task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]],
202
// CHECK-SAME: second_task_id=[[SECOND_EXPLICIT_TASK_ID]],
203
// CHECK-SAME: prior_task_status=ompt_task_switch=7
204
205
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_control_tool:
206
// CHECK-SAME: command=5, modifier=1, arg=(nil), codeptr_ra={{0x[0-f]+}}
207
208
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: task level 0:
209
// CHECK-SAME: task_id=[[SECOND_EXPLICIT_TASK_ID]]
210
211
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: task level 1:
212
// CHECK-SAME: task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]]
213
214
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: task level 2:
215
// CHECK-SAME: task_id=[[SECOND_INITIAL_TASK_ID]]
216
217
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: parallel level 0:
218
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]]
219
220
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: parallel level 1:
221
// CHECK-SAME: parallel_id={{[0-9]+}}
222
223
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_task_schedule:
224
// CHECK-SAME: first_task_id=[[SECOND_EXPLICIT_TASK_ID]],
225
// CHECK-SAME: second_task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]],
226
// CHECK-SAME: prior_task_status=ompt_task_complete=1
227
228
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_task_end:
229
// CHECK-SAME: task_id=[[SECOND_EXPLICIT_TASK_ID]]
230
231
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool:
232
// CHECK-SAME: ompt_event_wait_barrier_implicit_parallel_end:
233
// CHECK-SAME: parallel_id=0, task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]],
234
// CHECK-SAME: codeptr_ra=(nil)
235
236
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool:
237
// CHECK-SAME: ompt_event_barrier_implicit_parallel_end:
238
// CHECK-SAME: parallel_id=0, task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]],
239
// CHECK-SAME: codeptr_ra=(nil)
240
241
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_implicit_task_end:
242
// CHECK-SAME: parallel_id=0, task_id=[[SECOND_MASTER_IMPLICIT_TASK_ID]],
243
// CHECK-SAME: team_size=2, thread_num=0
244
245
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_parallel_end:
246
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
247
// CHECK-SAME: task_id=[[SECOND_INITIAL_TASK_ID]], invoker
248
// CHECK-SAME: codeptr_ra={{0x[0-f]+}}
249
250
// CHECK: {{^}}[[_2ND_MSTR_TID]]: second_tool: ompt_event_thread_end:
251
// CHECK-SAME: thread_id=[[_2ND_MSTR_TID]]
252
253
// CHECK: {{^}}[[_1ST_WRKR_TID:[0-9]+]]: _first_tool: ompt_event_thread_begin:
254
// CHECK-SAME: thread_type=ompt_thread_worker=2, thread_id=[[_1ST_WRKR_TID]]
255
256
// CHECK: {{^}}[[_1ST_WRKR_TID]]: _first_tool: ompt_event_implicit_task_begin:
257
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
258
// CHECK-SAME: task_id=[[_FIRST_WORKER_IMPLICIT_TASK_ID:[0-9]+]], team_size=2,
259
// CHECK-SAME: thread_num=1
260
261
// CHECK: {{^}}[[_1ST_WRKR_TID]]: _first_tool:
262
// CHECK-SAME: ompt_event_barrier_implicit_parallel_begin:
263
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
264
// CHECK-SAME: task_id=[[_FIRST_WORKER_IMPLICIT_TASK_ID]], codeptr_ra=(nil)
265
266
// CHECK: {{^}}[[_1ST_WRKR_TID]]: _first_tool:
267
// CHECK-SAME: ompt_event_wait_barrier_implicit_parallel_begin:
268
// CHECK-SAME: parallel_id=[[_FIRST_PARALLEL_ID]],
269
// CHECK-SAME: task_id=[[_FIRST_WORKER_IMPLICIT_TASK_ID]], codeptr_ra=(nil)
270
271
// CHECK: {{^}}[[_1ST_WRKR_TID]]: _first_tool:
272
// CHECK-SAME: ompt_event_wait_barrier_implicit_parallel_end:
273
// CHECK-SAME: parallel_id=0, task_id=[[_FIRST_WORKER_IMPLICIT_TASK_ID]],
274
// CHECK-SAME: codeptr_ra=(nil)
275
276
// CHECK: {{^}}[[_1ST_WRKR_TID]]: _first_tool:
277
// CHECK-SAME: ompt_event_barrier_implicit_parallel_end:
278
// CHECK-SAME: parallel_id=0, task_id=[[_FIRST_WORKER_IMPLICIT_TASK_ID]],
279
// CHECK-SAME: codeptr_ra=(nil)
280
281
// CHECK: {{^}}[[_1ST_WRKR_TID]]: _first_tool: ompt_event_implicit_task_end:
282
// CHECK-SAME: parallel_id=0, task_id=[[_FIRST_WORKER_IMPLICIT_TASK_ID]],
283
// CHECK-SAME: team_size=0, thread_num=1
284
285
// CHECK: {{^}}[[_1ST_WRKR_TID]]: _first_tool: ompt_event_thread_end:
286
// CHECK-SAME: thread_id=[[_1ST_WRKR_TID]]
287
288
// CHECK: {{^}}[[_2ND_WRKR_TID:[0-9]+]]: second_tool: ompt_event_thread_begin:
289
// CHECK-SAME: thread_type=ompt_thread_worker=2,
290
// CHECK-SAME: thread_id=[[_2ND_WRKR_TID]]
291
292
// CHECK: {{^}}[[_2ND_WRKR_TID]]: second_tool: ompt_event_implicit_task_begin:
293
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
294
// CHECK-SAME: task_id=[[SECOND_WORKER_IMPLICIT_TASK_ID:[0-9]+]],
295
// CHECK-SAME: team_size=2, thread_num=1
296
297
// CHECK: {{^}}[[_2ND_WRKR_TID]]: second_tool:
298
// CHECK-SAME: ompt_event_barrier_implicit_parallel_begin:
299
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
300
// CHECK-SAME: task_id=[[SECOND_WORKER_IMPLICIT_TASK_ID]], codeptr_ra=(nil)
301
302
// CHECK: {{^}}[[_2ND_WRKR_TID]]: second_tool:
303
// CHECK-SAME: ompt_event_wait_barrier_implicit_parallel_begin:
304
// CHECK-SAME: parallel_id=[[SECOND_PARALLEL_ID]],
305
// CHECK-SAME: task_id=[[SECOND_WORKER_IMPLICIT_TASK_ID]], codeptr_ra=(nil)
306
307
// CHECK: {{^}}[[_2ND_WRKR_TID]]: second_tool:
308
// CHECK-SAME: ompt_event_wait_barrier_implicit_parallel_end:
309
// CHECK-SAME: parallel_id=0, task_id=[[SECOND_WORKER_IMPLICIT_TASK_ID]],
310
// CHECK-SAME: codeptr_ra=(nil)
311
312
// CHECK: {{^}}[[_2ND_WRKR_TID]]: second_tool:
313
// CHECK-SAME: ompt_event_barrier_implicit_parallel_end:
314
// CHECK-SAME: parallel_id=0, task_id=[[SECOND_WORKER_IMPLICIT_TASK_ID]],
315
// CHECK-SAME: codeptr_ra=(nil)
316
317
// CHECK: {{^}}[[_2ND_WRKR_TID]]: second_tool: ompt_event_implicit_task_end:
318
// CHECK-SAME: parallel_id=0, task_id=[[SECOND_WORKER_IMPLICIT_TASK_ID]],
319
// CHECK-SAME: team_size=0, thread_num=1
320
321
// CHECK: {{^}}[[_2ND_WRKR_TID]]: second_tool: ompt_event_thread_end:
322
// CHECK-SAME: thread_id=[[_2ND_WRKR_TID]]
323
324
#endif
/* APP */
s
void const char const char int ITT_FORMAT __itt_group_sync s
Definition:
ittnotify_static.h:154
main
int main()
Definition:
print.c:22
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