1 | // RUN: %libomp-compile-and-run | %sort-threads | FileCheck %s |
2 | // REQUIRES: ompt |
3 | #include "callback.h" |
4 | #include <omp.h> |
5 | |
6 | int main() |
7 | { |
8 | int x = 0; |
9 | |
10 | //implicit barrier at end of a parallel region |
11 | #pragma omp parallel num_threads(2) |
12 | { |
13 | #pragma omp atomic |
14 | x++; |
15 | } |
16 | print_fuzzy_address(); |
17 | |
18 | |
19 | // Check if libomp supports the callbacks for this test. |
20 | // CHECK-NOT: {{^}}0: Could not register callback 'ompt_callback_sync_region' |
21 | // CHECK-NOT: {{^}}0: Could not register callback 'ompt_callback_sync_region_wait' |
22 | |
23 | // CHECK: 0: NULL_POINTER=[[NULL:.*$]] |
24 | |
25 | // master thread implicit barrier at parallel end |
26 | // CHECK: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_barrier_begin: parallel_id={{[0-9]+}}, task_id={{[0-9]+}}, codeptr_ra=[[RETURN_ADDRESS:0x[0-f]+]]{{[0-f][0-f]}} |
27 | // CHECK: {{^}}[[MASTER_ID]]: ompt_event_wait_barrier_begin: parallel_id={{[0-9]+}}, task_id={{[0-9]+}}, codeptr_ra=[[RETURN_ADDRESS]]{{[0-f][0-f]}} |
28 | // CHECK: {{^}}[[MASTER_ID]]: ompt_event_wait_barrier_end: parallel_id={{[0-9]+}}, task_id={{[0-9]+}}, codeptr_ra=[[RETURN_ADDRESS]]{{[0-f][0-f]}} |
29 | // CHECK: {{^}}[[MASTER_ID]]: ompt_event_barrier_end: parallel_id={{[0-9]+}}, task_id={{[0-9]+}}, codeptr_ra=[[RETURN_ADDRESS]]{{[0-f][0-f]}} |
30 | // CHECK: {{^}}[[MASTER_ID]]: fuzzy_address={{.*}}[[RETURN_ADDRESS]] |
31 | |
32 | |
33 | // worker thread implicit barrier at parallel end |
34 | // CHECK: {{^}}[[THREAD_ID:[0-9]+]]: ompt_event_barrier_begin: parallel_id={{[0-9]+}}, task_id={{[0-9]+}}, codeptr_ra=[[NULL]] |
35 | // CHECK: {{^}}[[THREAD_ID]]: ompt_event_wait_barrier_begin: parallel_id={{[0-9]+}}, task_id={{[0-9]+}}, codeptr_ra=[[NULL]] |
36 | // CHECK: {{^}}[[THREAD_ID]]: ompt_event_wait_barrier_end: parallel_id={{[0-9]+}}, task_id={{[0-9]+}}, codeptr_ra=[[NULL]] |
37 | // CHECK: {{^}}[[THREAD_ID]]: ompt_event_barrier_end: parallel_id={{[0-9]+}}, task_id={{[0-9]+}}, codeptr_ra=[[NULL]] |
38 | |
39 | return 0; |
40 | } |
41 | |