[Openmp-commits] [openmp] 90e4ebd - [OpenMP][OMPT] fix reduction test for 32-bit x86
via Openmp-commits
openmp-commits at lists.llvm.org
Tue Feb 4 03:19:19 PST 2020
Author: protze at itc.rwth-aachen.de
Date: 2020-02-04T12:19:10+01:00
New Revision: 90e4ebdce55fd3c1f8877f19784a5339b9890f98
URL: https://github.com/llvm/llvm-project/commit/90e4ebdce55fd3c1f8877f19784a5339b9890f98
DIFF: https://github.com/llvm/llvm-project/commit/90e4ebdce55fd3c1f8877f19784a5339b9890f98.diff
LOG: [OpenMP][OMPT] fix reduction test for 32-bit x86
Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=44733 | TEST 'libomp :: ompt/synchronization/reduction/tree_reduce.c' FAILED on 32-bit x86 ]]
For 32-bit we need at least 3 variables to avoid atomic reduction to be
choosen by runtime function `__kmp_determine_reduction_method`.
This patch adds reduction variables to the testcase.
Reviewers: mgorny, Hahnfeld
Differential Revision: https://reviews.llvm.org/D73850
Added:
Modified:
openmp/runtime/test/ompt/synchronization/reduction/tree_reduce.c
Removed:
################################################################################
diff --git a/openmp/runtime/test/ompt/synchronization/reduction/tree_reduce.c b/openmp/runtime/test/ompt/synchronization/reduction/tree_reduce.c
index 2c73fe139004..847abc109b2b 100644
--- a/openmp/runtime/test/ompt/synchronization/reduction/tree_reduce.c
+++ b/openmp/runtime/test/ompt/synchronization/reduction/tree_reduce.c
@@ -1,4 +1,5 @@
// RUN: %libomp-compile-and-run | %sort-threads | FileCheck %s
+// RUN: %libomp-compile -DNOWAIT && %libomp-run | %sort-threads | FileCheck %s
// REQUIRES: ompt
// UNSUPPORTED: gcc
#include "callback.h"
@@ -11,14 +12,17 @@
#endif
int main() {
- int sum = 0;
+ int sum = 0, a = 0, b = 0;
int i;
#pragma omp parallel num_threads(5)
-#pragma omp for reduction(+ : sum) FOR_CLAUSE
+// for 32-bit architecture we need at least 3 variables to trigger tree
+#pragma omp for reduction(+ : sum, a, b) FOR_CLAUSE
for (i = 0; i < 10000; i++) {
- sum += i;
+ a = b = sum += i;
}
+
+ printf("%i\n", sum);
// CHECK: 0: NULL_POINTER=[[NULL:.*$]]
// CHECK: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_parallel_begin:
More information about the Openmp-commits
mailing list