brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.6 KiB · d99680b Raw
329 lines · c
1// clang-format off2// 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 %s8 9// For GCC we don't get an event for master,10// see runtime/test/ompt/sycnchronization/master.c11// UNSUPPORTED: gcc12// clang-format on13 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 24int main() {25  int x, s = 0;26#pragma omp parallel num_threads(2) shared(s)27  {28#pragma omp master29    {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 off43// Check if libomp supports the callbacks for this test.44// CHECK-NOT: {{^}}0: Could not register callback45 46// CHECK: {{^}}0: NULL_POINTER=[[NULL:.*$]]47// CHECK: {{^}}0: NULL_POINTER=[[NULL]]48// CHECK: {{^}}0: ompt_event_runtime_shutdown49// CHECK: {{^}}0: ompt_event_runtime_shutdown50 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=158 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]+}}, invoker65 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=070 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=no83 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=7105 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=1128 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=0145 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]], invoker149// 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=1160 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]+}}, invoker167 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=0172 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=no185 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=7207 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=1230 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=0247 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]], invoker251// 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=1263 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=1287 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=1299 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=1323 324// CHECK: {{^}}[[_2ND_WRKR_TID]]: second_tool: ompt_event_thread_end:325// CHECK-SAME: thread_id=[[_2ND_WRKR_TID]]326// clang-format on327 328#endif /* APP */329