LLVM OpenMP 20.0.0git
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
22int 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);
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 */
void const char const char int ITT_FORMAT __itt_group_sync s
int main()
Definition: print.c:22
#define OMPT_WAIT(s, v)
Definition: ompt-signal.h:20
#define OMPT_SIGNAL(s)
Definition: ompt-signal.h:12