summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoachim Protze <protze@itc.rwth-aachen.de>2018-08-01 16:15:18 +0000
committerJoachim Protze <protze@itc.rwth-aachen.de>2018-08-01 16:15:18 +0000
commit935399d254416325dfc47adc11ffb8a7beef10fa (patch)
treeea6a35c452bcaea072f980abe5f4cb9aafdc9b7e
parent7f3bf5c1f90d02e1ca337b41f1d66ada6d07f44e (diff)
downloadbcm5719-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.c33
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;
}
OpenPOWER on IntegriCloud