diff options
author | Martin Storsjö <martin@martin.st> | 2022-11-25 16:26:50 +0200 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2022-11-28 22:40:02 +0200 |
commit | 03bf001b6d95f7c6a88a2b95f3cad752b9d1ed45 (patch) | |
tree | 67ce7ff3c98810eb4de22bbd98e9ad615f83d673 /openmp | |
parent | 63f0fdc2628dfb2f52ed5a92e579f99261d946ed (diff) | |
download | llvm-03bf001b6d95f7c6a88a2b95f3cad752b9d1ed45.zip llvm-03bf001b6d95f7c6a88a2b95f3cad752b9d1ed45.tar.gz llvm-03bf001b6d95f7c6a88a2b95f3cad752b9d1ed45.tar.bz2 |
[openmp] [test] XFAIL many-microtask-args.c on ARM
On ARM, a C fallback version of __kmp_invoke_microtask is used,
which only handles up to a fixed number of arguments - while
many-microtask-args.c tests that the function can handle an
arbitrarily large number of arguments (the testcase produces 17
arguments).
On the CMake level, we can't add ${LIBOMP_ARCH} directly to
OPENMP_TEST_COMPILER_FEATURES in OpenMPTesting.cmake, since
that file is parsed before LIBOMP_ARCH is set. Instead
convert the feature list into a proper CMake list, and append
${LIBOMP_ARCH} into it before serializing it to an Python array.
Differential Revision: https://reviews.llvm.org/D138738
Diffstat (limited to 'openmp')
-rw-r--r-- | openmp/cmake/OpenMPTesting.cmake | 2 | ||||
-rw-r--r-- | openmp/runtime/test/CMakeLists.txt | 12 | ||||
-rw-r--r-- | openmp/runtime/test/misc_bugs/many-microtask-args.c | 5 |
3 files changed, 18 insertions, 1 deletions
diff --git a/openmp/cmake/OpenMPTesting.cmake b/openmp/cmake/OpenMPTesting.cmake index a93f719..a936304 100644 --- a/openmp/cmake/OpenMPTesting.cmake +++ b/openmp/cmake/OpenMPTesting.cmake @@ -168,7 +168,7 @@ function(set_test_compiler_features) # Just use the lowercase of the compiler ID as fallback. string(TOLOWER "${OPENMP_TEST_COMPILER_ID}" comp) endif() - set(OPENMP_TEST_COMPILER_FEATURES "['${comp}', '${comp}-${OPENMP_TEST_COMPILER_VERSION_MAJOR}', '${comp}-${OPENMP_TEST_COMPILER_VERSION_MAJOR_MINOR}', '${comp}-${OPENMP_TEST_COMPILER_VERSION}']" PARENT_SCOPE) + set(OPENMP_TEST_COMPILER_FEATURE_LIST ${comp}, ${comp}-${OPENMP_TEST_COMPILER_VERSION_MAJOR}, ${comp}-${OPENMP_TEST_COMPILER_VERSION_MAJOR_MINOR}, ${comp}-${OPENMP_TEST_COMPILER_VERSION} PARENT_SCOPE) endfunction() set_test_compiler_features() diff --git a/openmp/runtime/test/CMakeLists.txt b/openmp/runtime/test/CMakeLists.txt index 71680a3..45a4891 100644 --- a/openmp/runtime/test/CMakeLists.txt +++ b/openmp/runtime/test/CMakeLists.txt @@ -24,6 +24,18 @@ macro(pythonize_bool var) endif() endmacro() +list(APPEND OPENMP_TEST_COMPILER_FEATURE_LIST "${LIBOMP_ARCH}") +set(OPENMP_TEST_COMPILER_FEATURES "[") +set(first TRUE) +foreach(feat IN LISTS OPENMP_TEST_COMPILER_FEATURE_LIST) + if (NOT first) + string(APPEND OPENMP_TEST_COMPILER_FEATURES ", ") + endif() + set(first FALSE) + string(APPEND OPENMP_TEST_COMPILER_FEATURES "'${feat}'") +endforeach() +string(APPEND OPENMP_TEST_COMPILER_FEATURES "]") + pythonize_bool(LIBOMP_USE_HWLOC) pythonize_bool(LIBOMP_OMPT_SUPPORT) pythonize_bool(LIBOMP_OMPT_OPTIONAL) diff --git a/openmp/runtime/test/misc_bugs/many-microtask-args.c b/openmp/runtime/test/misc_bugs/many-microtask-args.c index d644515..1ede110 100644 --- a/openmp/runtime/test/misc_bugs/many-microtask-args.c +++ b/openmp/runtime/test/misc_bugs/many-microtask-args.c @@ -1,6 +1,11 @@ // RUN: %libomp-compile-and-run #include <stdio.h> +// This test fails with Clang unless __kmp_invoke_microtask supports at least +// 17 arguments. On ARM, the fallback C implementation of __kmp_invoke_microtask +// is used, and that one only currently supports up to 15 arguments. +// XFAIL: arm + int main() { |