summaryrefslogtreecommitdiff
path: root/clang/test/OpenMP/parallel_master_taskloop_simd_reduction_messages.cpp
AgeCommit message (Collapse)Author
2023-07-20[OpenMP][Reduction] Allow PLUS (+) operator on reduction clauses in OMP > 52Fazlay Rabbi
Currently, clang gives an incorrect reduction identifier error for the PLUS operator for OpenMP version > 52. But, PLUS operator is allowed in OpenMP version > 52. This revision fixes this issue and also modified the error messages to show the correct expected operators in the message based on the OpenMP version used (prior to OMP 6.0 and since OMP 6.0). Test Src: void foo() { int a = 0 ; #pragma omp parallel reduction(+:a) ; #pragma omp parallel reduction(-:a) ; } Before this revision: $ clang -fopenmp -fopenmp-version=60 test.c -c test.c:3:34: error: incorrect reduction identifier, expected one of '+', '-', '*', '&', '|', '^', '&&', '||', 'min' or 'max' or declare reduction for type 'int' 3 | #pragma omp parallel reduction(+:a) | ^ test.c:5:34: error: incorrect reduction identifier, expected one of '+', '-', '*', '&', '|', '^', '&&', '||', 'min' or 'max' or declare reduction for type 'int' 5 | #pragma omp parallel reduction(-:a) | ^ 2 errors generated. Wit this revision: $ clang -fopenmp -fopenmp-version=60 test.c -c test.c:5:34: error: incorrect reduction identifier, expected one of '+', '*', '&', '|', '^', '&&', '||', 'min' or 'max' or declare reduction for type 'int' 5 | #pragma omp parallel reduction(-:a) | 1 error generated. Differential Revision: https://reviews.llvm.org/D155635
2023-06-15[OpenMP] Update the default version of OpenMP to 5.1Animesh Kumar
The default version of OpenMP is updated from 5.0 to 5.1 which means if -fopenmp is specified but -fopenmp-version is not specified with clang, the default version of OpenMP is taken to be 5.1. After modifying the Frontend for that, various LIT tests were updated. This patch contains all such changes. At a high level, these are the patterns of changes observed in LIT tests - # RUN lines which mentioned `-fopenmp-version=50` need to kept only if the IR for version 5.0 and 5.1 are different. Otherwise only one RUN line with no version info(i.e. default version) needs to be there. # Test cases of this sort already had the RUN lines with respect to the older default version 5.0 and the version 5.1. Only swapping the version specification flag `-fopenmp-version` from newer version RUN line to older version RUN line is required. # Diagnostics: Remove the 5.0 version specific RUN lines if there was no difference in the Diagnostics messages with respect to the default 5.1. # Diagnostics: In case there was any difference in diagnostics messages between 5.0 and 5.1, mention version specific messages in tests. # If the test contained version specific ifdef's e.g. "#ifdef OMP5" but there were no RUN lines for any other version than 5.X, then bring the code guarded by ifdef's outside and remove the ifdef's. # Some tests had RUN lines for both 5.0 and 5.1 versions, but it is found that the IR for 5.0 is not different from the 5.1, therefore such RUN lines are redundant. So, such duplicated lines are removed. # To generate CHECK lines automatically, use the script llvm/utils/update_cc_test_checks.py Reviewed By: saiislam, ABataev Differential Revision: https://reviews.llvm.org/D129635 (cherry picked from commit 9dd2999907dc791136a75238a6000f69bf67cf4e)
2023-05-18[OpenMP 5.2] Deprecate MINUS(-) operator on 'reduction' clauseFazlay Rabbi
2021-05-11[OpenMP] Use compound operators for reduction combiner if available.Mike Rice
The OpenMP spec seems to require the compound operators be used for +, *, &, |, and ^ reduction. So use these if a class has those operators. If not try the simple operators as we did previously to limit the impact to existing code. Fixes: https://bugs.llvm.org/show_bug.cgi?id=48584 Differential Revision: https://reviews.llvm.org/D101941
2020-05-07[OPENMP]Consider 'omp_null_allocator' as a predefined allocator.Alexey Bataev
Summary: omp.h header file defines omp_null_allocator as a predefined allocator, need to consider it also as a predefined allocator. Reviewers: jdoerfert Subscribers: jholewinski, yaxunl, guansong, cfe-commits, caomhin Tags: #clang Differential Revision: https://reviews.llvm.org/D79186
2020-04-30[OPENMP50]Support 'task' modifier in reduction clauses.Alexey Bataev
Summary: Added basic support for 'task' modifier in the reduction clauses in non-simd parallel and worksharing constructs. Reviewers: jdoerfert Subscribers: yaxunl, guansong, cfe-commits, caomhin Tags: #clang Differential Revision: https://reviews.llvm.org/D78738
2019-10-30[OPENMP50]Add support for parallel master taskloop simd directive.Alexey Bataev
Added full support for parallel master taskloop simd directive.