diff options
author | Joachim Protze <protze@itc.rwth-aachen.de> | 2018-08-01 16:15:18 +0000 |
---|---|---|
committer | Joachim Protze <protze@itc.rwth-aachen.de> | 2018-08-01 16:15:18 +0000 |
commit | 935399d254416325dfc47adc11ffb8a7beef10fa (patch) | |
tree | ea6a35c452bcaea072f980abe5f4cb9aafdc9b7e | |
parent | 7f3bf5c1f90d02e1ca337b41f1d66ada6d07f44e (diff) | |
download | bcm5719-llvm-935399d254416325dfc47adc11ffb8a7beef10fa.tar.gz bcm5719-llvm-935399d254416325dfc47adc11ffb8a7beef10fa.zip |
[OMPT,tests] Fix taskloop testcase scheduling effects
The taskloop testcase had scheduling effects. Tasks of the taskloop would
sometimes be scheduled before all task were created. The testing is now
split into two phases. First, the task creation on the master is tested,
than the scheduling events of the tasks are tested. Thus, the order of
creation and scheduling events is irrelavant.
Patch by Simon Convent
Reviewed by: protze.joachim, Hahnfeld
Subscribers: openmp-commits
Differential Revision: https://reviews.llvm.org/D50140
llvm-svn: 338580
-rw-r--r-- | openmp/runtime/test/ompt/tasks/taskloop.c | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/openmp/runtime/test/ompt/tasks/taskloop.c b/openmp/runtime/test/ompt/tasks/taskloop.c index 800f5c3f5bf..dc04f61cf74 100644 --- a/openmp/runtime/test/ompt/tasks/taskloop.c +++ b/openmp/runtime/test/ompt/tasks/taskloop.c @@ -1,18 +1,22 @@ -// RUN: %libomp-compile && %libomp-run | FileCheck %s +// RUN: %libomp-compile-and-run | FileCheck %s +// RUN: %libomp-compile-and-run | FileCheck --check-prefix=TASKS %s // REQUIRES: ompt #include "callback.h" #include <omp.h> int main() { - unsigned int i, j, x; + unsigned int i, x; #pragma omp parallel num_threads(2) + { +#pragma omp barrier + #pragma omp master #pragma omp taskloop - for (j = 0; j < 5; j += 3) { - x++; + for (i = 0; i < 5; i += 3) { + x++; + } } - // CHECK: 0: NULL_POINTER=[[NULL:.*$]] // CHECK: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_parallel_begin: @@ -39,16 +43,12 @@ int main() { // CHECK-SAME: new_task_id=[[TASK_ID2:[0-9]+]] // CHECK-SAME: codeptr_ra=[[RETURN_ADDRESS]] // CHECK-SAME: task_type=ompt_task_explicit=4 + // CHECK-NOT: {{^}}[[MASTER_ID]]: ompt_event_task_create: // CHECK: {{^}}[[MASTER_ID]]: ompt_event_taskloop_end: // CHECK-SAME: parallel_id=[[PARALLEL_ID]] // CHECK-SAME: parent_task_id=[[IMPLICIT_TASK_ID1]] // CHECK-SAME: count=2 // CHECK-DAG: {{^}}[[MASTER_ID]]: ompt_event_wait_taskgroup_begin: - // Schedule events: - // CHECK-DAG: {{^.*}}first_task_id={{[0-9]+}}, second_task_id=[[TASK_ID1]] - // CHECK-DAG: {{^.*}}first_task_id=[[TASK_ID1]], second_task_id={{[0-9]+}} - // CHECK-DAG: {{^.*}}first_task_id={{[0-9]+}}, second_task_id=[[TASK_ID2]] - // CHECK-DAG: {{^.*}}first_task_id=[[TASK_ID2]], second_task_id={{[0-9]+}} // CHECK: {{^}}[[MASTER_ID]]: ompt_event_wait_taskgroup_end: // CHECK-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[IMPLICIT_TASK_ID1]] // CHECK: {{^}}[[MASTER_ID]]: ompt_event_taskgroup_end: @@ -58,5 +58,18 @@ int main() { // CHECK: {{^}}[[MASTER_ID]]: ompt_event_parallel_end: // CHECK-SAME: parallel_id=[[PARALLEL_ID]] + // TASKS: ompt_event_task_create:{{.*}} new_task_id={{[0-9]+}} + // TASKS-SAME: task_type=ompt_task_initial + // TASKS: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_taskloop_begin: + // TASKS: ompt_event_task_create:{{.*}} new_task_id=[[TASK_ID1:[0-9]+]] + // TASKS-SAME: task_type=ompt_task_explicit + // TASKS-DAG: ompt_event_task_create:{{.*}} new_task_id=[[TASK_ID2:[0-9]+]] + // Schedule events: + // TASKS-DAG: {{^.*}}first_task_id={{[0-9]+}}, second_task_id=[[TASK_ID1]] + // TASKS-DAG: {{^.*}}first_task_id=[[TASK_ID1]], second_task_id={{[0-9]+}} + // TASKS-DAG: {{^.*}}first_task_id={{[0-9]+}}, second_task_id=[[TASK_ID2]] + // TASKS-DAG: {{^.*}}first_task_id=[[TASK_ID2]], second_task_id={{[0-9]+}} + // TASKS-NOT: ompt_event_task_schedule + return 0; } |