mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-13 19:24:21 +00:00
[libc++][PSTL] Make the PSTL available by default under -fexperimental-library
This removes the need for a custom libc++ build to have a basic set of PSTL algorithms. Reviewed By: ldionne, #libc Spies: miyuki, libcxx-commits, arichardson Differential Revision: https://reviews.llvm.org/D149624
This commit is contained in:
parent
42df495114
commit
e7e3711885
@ -68,7 +68,6 @@ endif()
|
||||
option(LIBCXX_ENABLE_FILESYSTEM "Build filesystem as part of the main libc++ library"
|
||||
${ENABLE_FILESYSTEM_DEFAULT})
|
||||
option(LIBCXX_INCLUDE_TESTS "Build the libc++ tests." ${LLVM_INCLUDE_TESTS})
|
||||
option(LIBCXX_ENABLE_PARALLEL_ALGORITHMS "Enable the parallel algorithms library. This requires the PSTL to be available." OFF)
|
||||
option(LIBCXX_ENABLE_DEBUG_MODE
|
||||
"Whether to build libc++ with the debug mode enabled.
|
||||
By default, this is turned off. Turning it on results in a different ABI (additional
|
||||
@ -791,7 +790,6 @@ config_define_if(LIBCXX_HAS_WIN32_THREAD_API _LIBCPP_HAS_THREAD_API_WIN32)
|
||||
config_define_if(LIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY _LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL)
|
||||
config_define_if(LIBCXX_HAS_MUSL_LIBC _LIBCPP_HAS_MUSL_LIBC)
|
||||
config_define_if(LIBCXX_NO_VCRUNTIME _LIBCPP_NO_VCRUNTIME)
|
||||
config_define_if(LIBCXX_ENABLE_PARALLEL_ALGORITHMS _LIBCPP_HAS_PARALLEL_ALGORITHMS)
|
||||
config_define_if_not(LIBCXX_ENABLE_FILESYSTEM _LIBCPP_HAS_NO_FILESYSTEM_LIBRARY)
|
||||
config_define_if_not(LIBCXX_ENABLE_RANDOM_DEVICE _LIBCPP_HAS_NO_RANDOM_DEVICE)
|
||||
config_define_if_not(LIBCXX_ENABLE_LOCALIZATION _LIBCPP_HAS_NO_LOCALIZATION)
|
||||
|
@ -1,4 +0,0 @@
|
||||
# TODO: Remove this cache file once the PSTL is under `-fexperimental-library`
|
||||
set(LIBCXX_TEST_PARAMS "std=c++17" CACHE STRING "")
|
||||
set(LIBCXXABI_TEST_PARAMS "${LIBCXX_TEST_PARAMS}" CACHE STRING "")
|
||||
set(LIBCXX_ENABLE_PARALLEL_ALGORITHMS ON CACHE BOOL "")
|
@ -16,13 +16,14 @@
|
||||
#include <__pstl/internal/unseq_backend_simd.h>
|
||||
#include <__type_traits/enable_if.h>
|
||||
#include <__type_traits/is_execution_policy.h>
|
||||
#include <__type_traits/remove_cvref.h>
|
||||
#include <__utility/terminate_on_exception.h>
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
||||
# pragma GCC system_header
|
||||
#endif
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
@ -74,6 +75,6 @@ none_of(_ExecutionPolicy&& __policy, _ForwardIterator __first, _ForwardIterator
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
#endif // _LIBCPP_STD_VER >= 17
|
||||
#endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
#endif // _LIBCPP___ALGORITHM_PSTL_ANY_ALL_NONE_OF_H
|
||||
|
@ -15,13 +15,14 @@
|
||||
#include <__pstl/internal/parallel_impl.h>
|
||||
#include <__pstl/internal/unseq_backend_simd.h>
|
||||
#include <__type_traits/is_execution_policy.h>
|
||||
#include <__type_traits/remove_cvref.h>
|
||||
#include <__utility/terminate_on_exception.h>
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
||||
# pragma GCC system_header
|
||||
#endif
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
@ -66,6 +67,6 @@ fill_n(_ExecutionPolicy&& __policy, _ForwardIterator __first, _SizeT __n, const
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
#endif // _LIBCPP_STD_VER >= 17
|
||||
#endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
#endif // _LIBCPP___ALGORITHM_PSTL_FILL_H
|
||||
|
@ -15,12 +15,15 @@
|
||||
#include <__pstl/internal/parallel_impl.h>
|
||||
#include <__pstl/internal/unseq_backend_simd.h>
|
||||
#include <__type_traits/is_execution_policy.h>
|
||||
#include <__type_traits/remove_cvref.h>
|
||||
#include <__utility/terminate_on_exception.h>
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
||||
# pragma GCC system_header
|
||||
#endif
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
template <class _ExecutionPolicy,
|
||||
@ -100,4 +103,6 @@ find_if_not(_ExecutionPolicy&& __policy, _ForwardIterator __first, _ForwardItera
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
#endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
#endif // _LIBCPP___ALGORITHM_PSTL_FIND_H
|
||||
|
@ -16,13 +16,14 @@
|
||||
#include <__pstl/internal/parallel_backend.h>
|
||||
#include <__pstl/internal/unseq_backend_simd.h>
|
||||
#include <__type_traits/is_execution_policy.h>
|
||||
#include <__type_traits/remove_cvref.h>
|
||||
#include <__utility/terminate_on_exception.h>
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
||||
# pragma GCC system_header
|
||||
#endif
|
||||
|
||||
#if defined(_LIBCPP_HAS_PARALLEL_ALGORITHMS) && _LIBCPP_STD_VER >= 17
|
||||
#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
@ -68,6 +69,6 @@ for_each_n(_ExecutionPolicy&& __policy, _ForwardIterator __first, _Size __size,
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
#endif // defined(_LIBCPP_HAS_PARALLEL_ALGORITHMS) && _LIBCPP_STD_VER >= 17
|
||||
#endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
#endif // _LIBCPP___ALGORITHM_PSTL_FOR_EACH_H
|
||||
|
@ -272,6 +272,7 @@
|
||||
// easier to grep for target specific flags once the feature is complete.
|
||||
# if !defined(_LIBCPP_ENABLE_EXPERIMENTAL) && !defined(_LIBCPP_BUILDING_LIBRARY)
|
||||
# define _LIBCPP_HAS_NO_INCOMPLETE_FORMAT
|
||||
# define _LIBCPP_HAS_NO_INCOMPLETE_PSTL
|
||||
# endif
|
||||
|
||||
// Need to detect which libc we're using if we're on Linux.
|
||||
|
@ -25,7 +25,6 @@
|
||||
#cmakedefine _LIBCPP_NO_VCRUNTIME
|
||||
#cmakedefine _LIBCPP_TYPEINFO_COMPARISON_IMPLEMENTATION @_LIBCPP_TYPEINFO_COMPARISON_IMPLEMENTATION@
|
||||
#cmakedefine _LIBCPP_HAS_NO_FILESYSTEM_LIBRARY
|
||||
#cmakedefine _LIBCPP_HAS_PARALLEL_ALGORITHMS
|
||||
#cmakedefine _LIBCPP_HAS_NO_RANDOM_DEVICE
|
||||
#cmakedefine _LIBCPP_HAS_NO_LOCALIZATION
|
||||
#cmakedefine _LIBCPP_HAS_NO_FSTREAM
|
||||
|
@ -16,6 +16,8 @@
|
||||
|
||||
#include "pstl_config.h"
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
namespace __pstl {
|
||||
namespace execution {
|
||||
inline namespace v1 {
|
||||
@ -70,4 +72,6 @@ struct __parallel_tag;
|
||||
|
||||
} // namespace __pstl
|
||||
|
||||
#endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
#endif /* _PSTL_EXECUTION_POLICY_DEFS_H */
|
||||
|
@ -11,10 +11,15 @@
|
||||
#define _PSTL_EXECUTION_IMPL_H
|
||||
|
||||
#include <__iterator/iterator_traits.h>
|
||||
#include <__type_traits/conditional.h>
|
||||
#include <__type_traits/conjunction.h>
|
||||
#include <__type_traits/is_base_of.h>
|
||||
|
||||
#include "execution_defs.h"
|
||||
#include "pstl_config.h"
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
namespace __pstl {
|
||||
namespace __internal {
|
||||
|
||||
@ -29,15 +34,15 @@ struct __serial_backend_tag {};
|
||||
struct __tbb_backend_tag {};
|
||||
struct __openmp_backend_tag {};
|
||||
|
||||
#if defined(_PSTL_PAR_BACKEND_TBB)
|
||||
# if defined(_PSTL_PAR_BACKEND_TBB)
|
||||
using __par_backend_tag = __tbb_backend_tag;
|
||||
#elif defined(_PSTL_PAR_BACKEND_OPENMP)
|
||||
# elif defined(_PSTL_PAR_BACKEND_OPENMP)
|
||||
using __par_backend_tag = __openmp_backend_tag;
|
||||
#elif defined(_PSTL_PAR_BACKEND_SERIAL)
|
||||
# elif defined(_PSTL_PAR_BACKEND_SERIAL)
|
||||
using __par_backend_tag = __serial_backend_tag;
|
||||
#else
|
||||
# error "A parallel backend must be specified";
|
||||
#endif
|
||||
# else
|
||||
# error "A parallel backend must be specified";
|
||||
# endif
|
||||
|
||||
template <class _IsVector>
|
||||
struct __serial_tag {
|
||||
@ -85,4 +90,6 @@ __select_backend(__pstl::execution::parallel_unsequenced_policy, _IteratorTypes&
|
||||
} // namespace __internal
|
||||
} // namespace __pstl
|
||||
|
||||
#endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
#endif /* _PSTL_EXECUTION_IMPL_H */
|
||||
|
@ -14,10 +14,12 @@
|
||||
|
||||
#if defined(_PSTL_PAR_BACKEND_SERIAL)
|
||||
# include "parallel_backend_serial.h"
|
||||
# if !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
namespace __pstl
|
||||
{
|
||||
namespace __par_backend = __serial_backend;
|
||||
} // namespace __pstl
|
||||
# endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
#elif defined(_PSTL_PAR_BACKEND_TBB)
|
||||
# include "parallel_backend_tbb.h"
|
||||
namespace __pstl
|
||||
|
@ -16,6 +16,8 @@
|
||||
|
||||
#include "pstl_config.h"
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
namespace __pstl
|
||||
{
|
||||
namespace __serial_backend
|
||||
@ -129,4 +131,6 @@ __parallel_invoke(__pstl::__internal::__serial_backend_tag, _ExecutionPolicy&&,
|
||||
} // namespace __serial_backend
|
||||
} // namespace __pstl
|
||||
|
||||
#endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
#endif /* _PSTL_PARALLEL_BACKEND_SERIAL_H */
|
||||
|
@ -13,8 +13,11 @@
|
||||
#include "pstl_config.h"
|
||||
|
||||
#include <__atomic/atomic.h>
|
||||
#include <__atomic/memory_order.h>
|
||||
#include <__pstl/internal/parallel_backend.h>
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
namespace __pstl
|
||||
{
|
||||
namespace __internal
|
||||
@ -81,4 +84,6 @@ bool __parallel_or(_BackendTag __tag, _ExecutionPolicy&& __exec, _Index __first,
|
||||
} // namespace __internal
|
||||
} // namespace __pstl
|
||||
|
||||
#endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
#endif /* _PSTL_PARALLEL_IMPL_H */
|
||||
|
@ -11,7 +11,10 @@
|
||||
#define _PSTL_UNSEQ_BACKEND_SIMD_H
|
||||
|
||||
#include <__functional/operations.h>
|
||||
#include <__type_traits/is_arithmetic.h>
|
||||
#include <__utility/pair.h>
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
|
||||
#include "pstl_config.h"
|
||||
#include "utils.h"
|
||||
@ -19,6 +22,8 @@
|
||||
// This header defines the minimum set of vector routines required
|
||||
// to support parallel STL.
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
namespace __pstl
|
||||
{
|
||||
namespace __unseq_backend
|
||||
@ -806,4 +811,6 @@ __simd_remove_if(_RandomAccessIterator __first, _DifferenceType __n, _UnaryPredi
|
||||
} // namespace __unseq_backend
|
||||
} // namespace __pstl
|
||||
|
||||
#endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
#endif /* _PSTL_UNSEQ_BACKEND_SIMD_H */
|
||||
|
@ -15,6 +15,8 @@
|
||||
#include <__utility/forward.h>
|
||||
#include <new>
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
namespace __pstl {
|
||||
namespace __internal {
|
||||
|
||||
@ -137,4 +139,6 @@ __cmp_iterators_by_values(_ForwardIterator __a, _ForwardIterator __b, _Compare _
|
||||
} // namespace __internal
|
||||
} // namespace __pstl
|
||||
|
||||
#endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
#endif /* _PSTL_UTILS_H */
|
||||
|
@ -39,7 +39,7 @@ inline constexpr bool __is_parallel_execution_policy_v = __is_parallel_execution
|
||||
// Removes the "parallel" part of an execution policy.
|
||||
// For example, turns par_unseq into unseq, and par into seq.
|
||||
template <class _ExecutionPolicy>
|
||||
const auto& __remove_parallel_policy(_ExecutionPolicy&&);
|
||||
_LIBCPP_HIDE_FROM_ABI const auto& __remove_parallel_policy(_ExecutionPolicy&&);
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
|
@ -1788,6 +1788,10 @@ template <class BidirectionalIterator, class Compare>
|
||||
#include <__algorithm/partition_point.h>
|
||||
#include <__algorithm/pop_heap.h>
|
||||
#include <__algorithm/prev_permutation.h>
|
||||
#include <__algorithm/pstl_any_all_none_of.h>
|
||||
#include <__algorithm/pstl_fill.h>
|
||||
#include <__algorithm/pstl_find.h>
|
||||
#include <__algorithm/pstl_for_each.h>
|
||||
#include <__algorithm/push_heap.h>
|
||||
#include <__algorithm/ranges_adjacent_find.h>
|
||||
#include <__algorithm/ranges_all_of.h>
|
||||
@ -1908,13 +1912,6 @@ template <class BidirectionalIterator, class Compare>
|
||||
#include <__algorithm/unwrap_iter.h>
|
||||
#include <__algorithm/upper_bound.h>
|
||||
|
||||
#ifdef _LIBCPP_HAS_PARALLEL_ALGORITHMS
|
||||
# include <__algorithm/pstl_any_all_none_of.h>
|
||||
# include <__algorithm/pstl_fill.h>
|
||||
# include <__algorithm/pstl_find.h>
|
||||
# include <__algorithm/pstl_for_each.h>
|
||||
#endif
|
||||
|
||||
// standard-mandated includes
|
||||
|
||||
// [algorithm.syn]
|
||||
|
@ -43,7 +43,7 @@ namespace std {
|
||||
# pragma GCC system_header
|
||||
#endif
|
||||
|
||||
#if defined(_LIBCPP_HAS_PARALLEL_ALGORITHMS) && _LIBCPP_STD_VER >= 17
|
||||
#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
@ -135,7 +135,7 @@ template <class _Tp>
|
||||
struct is_execution_policy : bool_constant<is_execution_policy_v<_Tp>> {};
|
||||
|
||||
template <class _ExecutionPolicy>
|
||||
const auto& __remove_parallel_policy(_ExecutionPolicy&&) {
|
||||
_LIBCPP_HIDE_FROM_ABI const auto& __remove_parallel_policy(_ExecutionPolicy&&) {
|
||||
using _ExecPol = __remove_cvref_t<_ExecutionPolicy>;
|
||||
if constexpr (is_same_v<_ExecPol, execution::parallel_policy>) {
|
||||
return execution::seq;
|
||||
@ -146,6 +146,6 @@ const auto& __remove_parallel_policy(_ExecutionPolicy&&) {
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
#endif // defined(_LIBCPP_HAS_PARALLEL_ALGORITHMS) && _LIBCPP_STD_VER >= 17
|
||||
#endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17
|
||||
|
||||
#endif // _LIBCPP_EXECUTION
|
||||
|
@ -635,7 +635,11 @@ module std [system] {
|
||||
private header "__atomic/aliases.h"
|
||||
export atomic
|
||||
}
|
||||
module atomic { private header "__atomic/atomic.h" }
|
||||
module atomic {
|
||||
private header "__atomic/atomic.h"
|
||||
|
||||
export atomic_base
|
||||
}
|
||||
module atomic_base { private header "__atomic/atomic_base.h" }
|
||||
module atomic_flag { private header "__atomic/atomic_flag.h" }
|
||||
module atomic_init { private header "__atomic/atomic_init.h" }
|
||||
|
@ -11,12 +11,13 @@
|
||||
|
||||
// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_NODISCARD_EXT
|
||||
|
||||
// REQUIRES: with-pstl
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-pstl
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
#include <algorithm>
|
||||
#include <execution>
|
||||
#include <iterator>
|
||||
|
||||
void test() {
|
||||
int a[] = {1};
|
||||
|
@ -8,12 +8,13 @@
|
||||
|
||||
// Check that PSTL algorithms are marked [[nodiscard]] as a conforming extension
|
||||
|
||||
// REQUIRES: with-pstl
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-pstl
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
#include <algorithm>
|
||||
#include <execution>
|
||||
#include <iterator>
|
||||
|
||||
void test() {
|
||||
int a[] = {1};
|
||||
|
@ -32,9 +32,6 @@
|
||||
// this test instead.
|
||||
// UNSUPPORTED: transitive-includes-disabled
|
||||
|
||||
// FIXME: This should pass with the PSTL enabled
|
||||
// XFAIL: with-pstl
|
||||
|
||||
// Prevent <ext/hash_map> from generating deprecated warnings for this test.
|
||||
#if defined(__DEPRECATED)
|
||||
# undef __DEPRECATED
|
||||
|
@ -6,12 +6,14 @@ algorithm cstddef
|
||||
algorithm cstdint
|
||||
algorithm cstdlib
|
||||
algorithm cstring
|
||||
algorithm ctime
|
||||
algorithm initializer_list
|
||||
algorithm iosfwd
|
||||
algorithm iterator
|
||||
algorithm limits
|
||||
algorithm memory
|
||||
algorithm new
|
||||
algorithm ratio
|
||||
algorithm stdexcept
|
||||
algorithm type_traits
|
||||
algorithm utility
|
||||
|
|
@ -6,12 +6,14 @@ algorithm cstddef
|
||||
algorithm cstdint
|
||||
algorithm cstdlib
|
||||
algorithm cstring
|
||||
algorithm ctime
|
||||
algorithm initializer_list
|
||||
algorithm iosfwd
|
||||
algorithm iterator
|
||||
algorithm limits
|
||||
algorithm memory
|
||||
algorithm new
|
||||
algorithm ratio
|
||||
algorithm stdexcept
|
||||
algorithm type_traits
|
||||
algorithm utility
|
||||
|
|
@ -6,12 +6,14 @@ algorithm cstddef
|
||||
algorithm cstdint
|
||||
algorithm cstdlib
|
||||
algorithm cstring
|
||||
algorithm ctime
|
||||
algorithm initializer_list
|
||||
algorithm iosfwd
|
||||
algorithm iterator
|
||||
algorithm limits
|
||||
algorithm memory
|
||||
algorithm new
|
||||
algorithm ratio
|
||||
algorithm stdexcept
|
||||
algorithm type_traits
|
||||
algorithm utility
|
||||
|
|
@ -6,12 +6,14 @@ algorithm cstddef
|
||||
algorithm cstdint
|
||||
algorithm cstdlib
|
||||
algorithm cstring
|
||||
algorithm ctime
|
||||
algorithm initializer_list
|
||||
algorithm iosfwd
|
||||
algorithm iterator
|
||||
algorithm limits
|
||||
algorithm memory
|
||||
algorithm new
|
||||
algorithm ratio
|
||||
algorithm stdexcept
|
||||
algorithm type_traits
|
||||
algorithm utility
|
||||
|
|
@ -6,12 +6,14 @@ algorithm cstddef
|
||||
algorithm cstdint
|
||||
algorithm cstdlib
|
||||
algorithm cstring
|
||||
algorithm ctime
|
||||
algorithm initializer_list
|
||||
algorithm iosfwd
|
||||
algorithm iterator
|
||||
algorithm limits
|
||||
algorithm memory
|
||||
algorithm new
|
||||
algorithm ratio
|
||||
algorithm stdexcept
|
||||
algorithm type_traits
|
||||
algorithm utility
|
||||
|
|
@ -2,10 +2,12 @@ algorithm climits
|
||||
algorithm cstddef
|
||||
algorithm cstdint
|
||||
algorithm cstring
|
||||
algorithm ctime
|
||||
algorithm initializer_list
|
||||
algorithm iosfwd
|
||||
algorithm limits
|
||||
algorithm new
|
||||
algorithm ratio
|
||||
algorithm version
|
||||
any cstddef
|
||||
any cstdint
|
||||
|
|
@ -10,7 +10,7 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// REQUIRES: with-pstl
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-pstl
|
||||
|
||||
#include <execution>
|
||||
#include <type_traits>
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// REQUIRES: with-pstl
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-pstl
|
||||
|
||||
// template<class ExecutionPolicy, class ForwardIterator, class T>
|
||||
// void fill(ExecutionPolicy&& exec,
|
||||
@ -61,9 +61,11 @@ struct Test {
|
||||
}
|
||||
};
|
||||
|
||||
#ifndef TEST_HAS_NO_EXCEPTIONS
|
||||
struct ThrowOnCopy {
|
||||
ThrowOnCopy& operator=(const ThrowOnCopy&) { throw int{}; }
|
||||
};
|
||||
#endif
|
||||
|
||||
int main(int, char**) {
|
||||
types::for_each(types::forward_iterator_list<int*>{}, TestIteratorWithPolicies<Test>{});
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// REQUIRES: with-pstl
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-pstl
|
||||
|
||||
// template<class ExecutionPolicy, class ForwardIterator, class Size, class T>
|
||||
// ForwardIterator fill_n(ExecutionPolicy&& exec,
|
||||
@ -61,9 +61,11 @@ struct Test {
|
||||
}
|
||||
};
|
||||
|
||||
#ifndef TEST_HAS_NO_EXCEPTIONS
|
||||
struct ThrowOnCopy {
|
||||
ThrowOnCopy& operator=(const ThrowOnCopy&) { throw int{}; }
|
||||
};
|
||||
#endif
|
||||
|
||||
int main(int, char**) {
|
||||
types::for_each(types::forward_iterator_list<int*>{}, TestIteratorWithPolicies<Test>{});
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// REQUIRES: with-pstl
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-pstl
|
||||
|
||||
// <algorithm>
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// REQUIRES: with-pstl
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-pstl
|
||||
|
||||
// <algorithm>
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// REQUIRES: with-pstl
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-pstl
|
||||
|
||||
// <algorithm>
|
||||
|
||||
@ -63,7 +63,9 @@ struct Test {
|
||||
|
||||
struct ThrowOnCompare {};
|
||||
|
||||
#ifndef TEST_HAS_NO_EXCEPTIONS
|
||||
bool operator==(ThrowOnCompare, ThrowOnCompare) { throw int{}; }
|
||||
#endif
|
||||
|
||||
int main(int, char**) {
|
||||
types::for_each(types::forward_iterator_list<int*>{}, TestIteratorWithPolicies<Test>{});
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// REQUIRES: with-pstl
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-pstl
|
||||
|
||||
// <algorithm>
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// REQUIRES: with-pstl
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-pstl
|
||||
|
||||
// <algorithm>
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// REQUIRES: with-pstl
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-pstl
|
||||
|
||||
// <algorithm>
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// REQUIRES: with-pstl
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-pstl
|
||||
|
||||
// <algorithm>
|
||||
|
||||
|
@ -6,7 +6,9 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// REQUIRES: with-pstl
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-pstl
|
||||
|
||||
// <algorithm>
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// REQUIRES: with-pstl
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-pstl
|
||||
|
||||
#include <execution>
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
// UNSUPPORTED: c++03, c++11, c++14
|
||||
|
||||
// REQUIRES: with-pstl
|
||||
// UNSUPPORTED: libcpp-has-no-incomplete-pstl
|
||||
|
||||
#include <execution>
|
||||
#include <type_traits>
|
||||
|
@ -465,22 +465,6 @@ steps:
|
||||
limit: 2
|
||||
timeout_in_minutes: 120
|
||||
|
||||
- label: "With PSTL support"
|
||||
command: "libcxx/utils/ci/run-buildbot with-pstl"
|
||||
artifact_paths:
|
||||
- "**/test-results.xml"
|
||||
env:
|
||||
CC: "clang-${LLVM_HEAD_VERSION}"
|
||||
CXX: "clang++-${LLVM_HEAD_VERSION}"
|
||||
agents:
|
||||
queue: "libcxx-builders"
|
||||
os: "linux"
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: -1 # Agent was lost
|
||||
limit: 2
|
||||
timeout_in_minutes: 120
|
||||
|
||||
- label: "With LLVM's libunwind"
|
||||
command: "libcxx/utils/ci/run-buildbot generic-with_llvm_unwinder"
|
||||
artifact_paths:
|
||||
|
@ -448,11 +448,6 @@ generic-abi-unstable)
|
||||
generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-abi-unstable.cmake"
|
||||
check-runtimes
|
||||
;;
|
||||
with-pstl)
|
||||
clean
|
||||
generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/With-pstl.cmake"
|
||||
check-runtimes
|
||||
;;
|
||||
apple-system)
|
||||
clean
|
||||
|
||||
|
@ -209,7 +209,6 @@ macros = {
|
||||
'_LIBCPP_HAS_NO_WIDE_CHARACTERS': 'no-wide-characters',
|
||||
'_LIBCPP_HAS_NO_UNICODE': 'libcpp-has-no-unicode',
|
||||
'_LIBCPP_ENABLE_DEBUG_MODE': 'libcpp-has-debug-mode',
|
||||
'_LIBCPP_HAS_PARALLEL_ALGORITHMS': 'with-pstl',
|
||||
}
|
||||
for macro, feature in macros.items():
|
||||
DEFAULT_FEATURES.append(
|
||||
|
@ -184,6 +184,7 @@ DEFAULT_PARAMETERS = [
|
||||
AddCompileFlag('-D_LIBCPP_ENABLE_EXPERIMENTAL'),
|
||||
] if experimental else [
|
||||
AddFeature('libcpp-has-no-incomplete-format'),
|
||||
AddFeature('libcpp-has-no-incomplete-pstl'),
|
||||
]),
|
||||
|
||||
Parameter(name='long_tests', choices=[True, False], type=bool, default=True,
|
||||
|
Loading…
Reference in New Issue
Block a user