brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.7 KiB · 2551069 Raw
140 lines · c
1// clang-format off2// RUN: %libomp-compile-and-run | FileCheck %s3// RUN: %libomp-compile-and-run | %sort-threads \4// RUN:                         | FileCheck --check-prefix=THREADS %s5// REQUIRES: ompt6// clang-format on7#include "callback.h"8 9int main() {10#pragma omp parallel num_threads(4)11  {12    print_ids(0);13    print_ids(1);14  }15  print_fuzzy_address(1);16 17  // clang-format off18  // Check if libomp supports the callbacks for this test.19  // CHECK-NOT: {{^}}0: Could not register callback20 21  // CHECK: 0: NULL_POINTER=[[NULL:.*$]]22 23  // make sure initial data pointers are null24  // CHECK-NOT: 0: parallel_data initially not null25  // CHECK-NOT: 0: task_data initially not null26  // CHECK-NOT: 0: thread_data initially not null27 28  // Only check callback names, arguments are verified in THREADS below.29  // CHECK: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_parallel_begin30 31  // CHECK-DAG: {{^}}[[MASTER_ID]]: ompt_event_implicit_task_begin32  // CHECK-DAG: {{^}}[[MASTER_ID]]: ompt_event_implicit_task_end33 34  // Note that we cannot ensure that the worker threads have already called35  // barrier_end and implicit_task_end before parallel_end!36 37  // CHECK-DAG: {{^}}[[THREAD_ID:[0-9]+]]: ompt_event_implicit_task_begin38  // CHECK-DAG: {{^}}[[THREAD_ID]]: ompt_event_barrier_implicit_parallel_begin39 40  // CHECK-DAG: {{^}}[[THREAD_ID:[0-9]+]]: ompt_event_implicit_task_begin41  // CHECK-DAG: {{^}}[[THREAD_ID]]: ompt_event_barrier_implicit_parallel_begin42 43  // CHECK-DAG: {{^}}[[THREAD_ID:[0-9]+]]: ompt_event_implicit_task_begin44  // CHECK-DAG: {{^}}[[THREAD_ID]]: ompt_event_barrier_implicit_parallel_begin45 46  // CHECK: {{^}}[[MASTER_ID]]: ompt_event_parallel_end47 48  // THREADS: 0: NULL_POINTER=[[NULL:.*$]]49  // THREADS: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_thread_begin50  // THREADS-SAME: thread_type=ompt_thread_initial=1, thread_id=[[MASTER_ID]]51  // THREADS: {{^}}[[MASTER_ID]]: ompt_event_parallel_begin52  // THREADS-SAME: parent_task_id=[[PARENT_TASK_ID:[0-f]+]]53  // THREADS-SAME: parent_task_frame.exit=[[NULL]]54  // THREADS-SAME: parent_task_frame.reenter={{(0x)?[0-f]+}}55  // THREADS-SAME: parallel_id=[[PARALLEL_ID:[0-f]+]], requested_team_size=456  // THREADS-SAME: codeptr_ra=[[RETURN_ADDRESS:(0x)?[0-f]+]]{{[0-f][0-f]}}57 58  // THREADS: {{^}}[[MASTER_ID]]: ompt_event_implicit_task_begin59  // THREADS-SAME: parallel_id=[[PARALLEL_ID]]60  // THREADS-SAME: task_id=[[IMPLICIT_TASK_ID:[0-f]+]]61  // THREADS: {{^}}[[MASTER_ID]]: task level 062  // THREADS-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[IMPLICIT_TASK_ID]]63  // THREADS: {{^}}[[MASTER_ID]]: task level 164  // THREADS-SAME: parallel_id=[[IMPLICIT_PARALLEL_ID:[0-f]+]]65  // THREADS-SAME: task_id=[[PARENT_TASK_ID]]66  // THREADS-NOT: ompt_event_implicit_task_end67  // THREADS: {{^}}[[MASTER_ID]]: ompt_event_barrier_implicit_parallel_begin68  // THREADS-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[IMPLICIT_TASK_ID]]69  // THREADS-SAME: codeptr_ra=[[RETURN_ADDRESS]]{{[0-f][0-f]}}70  // THREADS: {{^}}[[MASTER_ID]]: task level 071  // THREADS-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[IMPLICIT_TASK_ID]]72  // THREADS-SAME: exit_frame=[[NULL]], reenter_frame=[[NULL]]73  // THREADS: {{^}}[[MASTER_ID]]: ompt_event_barrier_implicit_parallel_end74  // parallel_id is 0 because the region ended in the barrier!75  // THREADS-SAME: parallel_id=0, task_id=[[IMPLICIT_TASK_ID]]76  // THREADS-SAME: codeptr_ra=[[RETURN_ADDRESS]]{{[0-f][0-f]}}77  // THREADS: {{^}}[[MASTER_ID]]: ompt_event_implicit_task_end78  // THREADS-SAME: parallel_id=0, task_id=[[IMPLICIT_TASK_ID]]79 80  // THREADS: {{^}}[[THREAD_ID:[0-9]+]]: ompt_event_thread_begin81  // THREADS-SAME: thread_type=ompt_thread_worker=2, thread_id=[[THREAD_ID]]82  // THREADS: {{^}}[[THREAD_ID]]: ompt_event_implicit_task_begin83  // THREADS-SAME: parallel_id=[[PARALLEL_ID]]84  // THREADS-SAME: task_id=[[IMPLICIT_TASK_ID:[0-f]+]]85  // THREADS: {{^}}[[THREAD_ID]]: task level 086  // THREADS-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[IMPLICIT_TASK_ID]]87  // THREADS: {{^}}[[THREAD_ID]]: task level 188  // THREADS-SAME: parallel_id=[[IMPLICIT_PARALLEL_ID]]89  // THREADS-SAME: task_id=[[PARENT_TASK_ID]]90  // THREADS-NOT: ompt_event_implicit_task_end91  // THREADS: {{^}}[[THREAD_ID]]: ompt_event_barrier_implicit_parallel_begin92  // THREADS-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[IMPLICIT_TASK_ID]]93  // THREADS: {{^}}[[THREAD_ID]]: ompt_event_barrier_implicit_parallel_end94  // parallel_id is 0 because the region ended in the barrier!95  // THREADS-SAME: parallel_id=0, task_id=[[IMPLICIT_TASK_ID]]96  // THREADS: {{^}}[[THREAD_ID]]: ompt_event_implicit_task_end97  // THREADS-SAME: parallel_id=0, task_id=[[IMPLICIT_TASK_ID]]98 99  // THREADS: {{^}}[[THREAD_ID:[0-9]+]]: ompt_event_thread_begin100  // THREADS-SAME: thread_type=ompt_thread_worker=2, thread_id=[[THREAD_ID]]101  // THREADS: {{^}}[[THREAD_ID]]: ompt_event_implicit_task_begin102  // THREADS-SAME: parallel_id=[[PARALLEL_ID]]103  // THREADS-SAME: task_id=[[IMPLICIT_TASK_ID:[0-f]+]]104  // THREADS: {{^}}[[THREAD_ID]]: task level 0105  // THREADS-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[IMPLICIT_TASK_ID]]106  // THREADS: {{^}}[[THREAD_ID]]: task level 1107  // THREADS-SAME: parallel_id=[[IMPLICIT_PARALLEL_ID]]108  // THREADS-SAME: task_id=[[PARENT_TASK_ID]]109  // THREADS-NOT: ompt_event_implicit_task_end110  // THREADS: {{^}}[[THREAD_ID]]: ompt_event_barrier_implicit_parallel_begin111  // THREADS-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[IMPLICIT_TASK_ID]]112  // THREADS: {{^}}[[THREAD_ID]]: ompt_event_barrier_implicit_parallel_end113  // parallel_id is 0 because the region ended in the barrier!114  // THREADS-SAME: parallel_id=0, task_id=[[IMPLICIT_TASK_ID]]115  // THREADS: {{^}}[[THREAD_ID]]: ompt_event_implicit_task_end116  // THREADS-SAME: parallel_id=0, task_id=[[IMPLICIT_TASK_ID]]117 118  // THREADS: {{^}}[[THREAD_ID:[0-9]+]]: ompt_event_thread_begin119  // THREADS-SAME: thread_type=ompt_thread_worker=2, thread_id=[[THREAD_ID]]120  // THREADS: {{^}}[[THREAD_ID]]: ompt_event_implicit_task_begin121  // THREADS-SAME: parallel_id=[[PARALLEL_ID]]122  // THREADS-SAME: task_id=[[IMPLICIT_TASK_ID:[0-f]+]]123  // THREADS: {{^}}[[THREAD_ID]]: task level 0124  // THREADS-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[IMPLICIT_TASK_ID]]125  // THREADS: {{^}}[[THREAD_ID]]: task level 1126  // THREADS-SAME: parallel_id=[[IMPLICIT_PARALLEL_ID]]127  // THREADS-SAME: task_id=[[PARENT_TASK_ID]]128  // THREADS-NOT: ompt_event_implicit_task_end129  // THREADS: {{^}}[[THREAD_ID]]: ompt_event_barrier_implicit_parallel_begin130  // THREADS-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[IMPLICIT_TASK_ID]]131  // THREADS: {{^}}[[THREAD_ID]]: ompt_event_barrier_implicit_parallel_end132  // parallel_id is 0 because the region ended in the barrier!133  // THREADS-SAME: parallel_id=0, task_id=[[IMPLICIT_TASK_ID]]134  // THREADS: {{^}}[[THREAD_ID]]: ompt_event_implicit_task_end135  // THREADS-SAME: parallel_id=0, task_id=[[IMPLICIT_TASK_ID]]136  // clang-format on137 138  return 0;139}140