LLVM OpenMP 22.0.0git
sections_dispatch.c
Go to the documentation of this file.
1// clang-format off
2// RUN: %libomp-compile-and-run | %sort-threads | FileCheck %s
3// REQUIRES: ompt
4// UNSUPPORTED: intel-15.0, intel-16.0, intel-17.0, intel-18.0
5// GCC generates code that does not distinguish between sections and loops
6// UNSUPPORTED: gcc
7// clang-format on
8
9#include "callback.h"
10#include <omp.h>
11
12int main() {
13#pragma omp parallel sections num_threads(2)
14 {
15#pragma omp section
16 {
17 printf("%lu: section 1\n", ompt_get_thread_data()->value);
18 }
19#pragma omp section
20 {
21 printf("%lu: section 2\n", ompt_get_thread_data()->value);
22 }
23 }
24
25 // clang-format off
26 // Check if libomp supports the callbacks for this test.
27 // CHECK-NOT: {{^}}0: Could not register callback 'ompt_callback_work'
28 // CHECK-NOT: {{^}}0: Could not register callback 'ompt_callback_dispatch'
29
30 // CHECK: 0: NULL_POINTER=[[NULL:.*$]]
31
32 // CHECK: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_sections_begin:
33 // CHECK-SAME: parallel_id=[[PARALLEL_ID:[0-f]+]],
34 // CHECK-SAME: task_id=[[TASK_ID:[0-f]+]],
35 // CHECK-SAME: codeptr_ra=[[SECT_BEGIN:(0x)?[0-f]+]], count=2
36 // CHECK: {{^}}[[MASTER_ID]]: ompt_event_section_begin:
37 // CHECK-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[TASK_ID]]
38 // CHECK-SAME: codeptr_ra=[[SECT_BEGIN]]
39 // CHECK: {{^}}[[MASTER_ID]]: ompt_event_sections_end:
40 // CHECK-SAME: parallel_id=[[PARALLEL_ID]], task_id={{[0-f]+}},
41 // CHECK-SAME: codeptr_ra=[[SECT_END:(0x)?[0-f]+]]
42
43 // CHECK: {{^}}[[THREAD_ID:[0-9]+]]: ompt_event_sections_begin:
44 // CHECK-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[TASK_ID:[0-f]+]],
45 // CHECK-SAME: codeptr_ra=[[SECT_BEGIN]], count=2
46 // CHECK: {{^}}[[THREAD_ID]]: ompt_event_section_begin:
47 // CHECK-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[TASK_ID]]
48 // CHECK-SAME: codeptr_ra=[[SECT_BEGIN]]
49 // CHECK: {{^}}[[THREAD_ID]]: ompt_event_sections_end:
50 // CHECK-SAME: parallel_id=[[PARALLEL_ID]], task_id={{[0-f]+}},
51 // CHECK-SAME: codeptr_ra=[[SECT_END]]
52 // clang-format on
53
54 return 0;
55}
static ompt_get_thread_data_t ompt_get_thread_data
Definition callback.h:158
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long value
int main()