1*4d88b17bSLouis Dionne// -*- C++ -*- 2*4d88b17bSLouis Dionne//===-- execution ---------------------------------------------------------===// 3*4d88b17bSLouis Dionne// 4*4d88b17bSLouis Dionne// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5*4d88b17bSLouis Dionne// See https://llvm.org/LICENSE.txt for license information. 6*4d88b17bSLouis Dionne// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7*4d88b17bSLouis Dionne// 8*4d88b17bSLouis Dionne//===----------------------------------------------------------------------===// 9*4d88b17bSLouis Dionne 10*4d88b17bSLouis Dionne#ifndef _TEST_SUPPORT_STDLIB_EXECUTION 11*4d88b17bSLouis Dionne#define _TEST_SUPPORT_STDLIB_EXECUTION 12*4d88b17bSLouis Dionne 13*4d88b17bSLouis Dionne// #include_next <execution> // None of the standard libraries PSTL is built on top have the <execution> header yet. 14*4d88b17bSLouis Dionne 15*4d88b17bSLouis Dionne#include <pstl/internal/pstl_config.h> 16*4d88b17bSLouis Dionne#include <pstl/internal/execution_defs.h> 17*4d88b17bSLouis Dionne 18*4d88b17bSLouis Dionne#define _PSTL_EXECUTION_POLICIES_DEFINED 1 19*4d88b17bSLouis Dionne 20*4d88b17bSLouis Dionne#if _PSTL_ALGORITHM_FORWARD_DECLARED 21*4d88b17bSLouis Dionne# include <pstl/internal/glue_algorithm_impl.h> 22*4d88b17bSLouis Dionne#endif 23*4d88b17bSLouis Dionne 24*4d88b17bSLouis Dionne#if _PSTL_MEMORY_FORWARD_DECLARED 25*4d88b17bSLouis Dionne# include <pstl/internal/glue_memory_impl.h> 26*4d88b17bSLouis Dionne#endif 27*4d88b17bSLouis Dionne 28*4d88b17bSLouis Dionne#if _PSTL_NUMERIC_FORWARD_DECLARED 29*4d88b17bSLouis Dionne# include <pstl/internal/glue_numeric_impl.h> 30*4d88b17bSLouis Dionne#endif 31*4d88b17bSLouis Dionne 32*4d88b17bSLouis Dionne#if _PSTL_CPP17_EXECUTION_POLICIES_PRESENT 33*4d88b17bSLouis Dionne_PSTL_PRAGMA_MESSAGE_POLICIES("The <Parallel STL> execution policies are defined in the namespace __pstl::execution") 34*4d88b17bSLouis Dionne#else 35*4d88b17bSLouis Dionne# include <pstl/internal/glue_execution_defs.h> 36*4d88b17bSLouis Dionne_PSTL_PRAGMA_MESSAGE_POLICIES( 37*4d88b17bSLouis Dionne "The <Parallel STL> execution policies are injected into the standard namespace std::execution") 38*4d88b17bSLouis Dionne#endif 39*4d88b17bSLouis Dionne 40*4d88b17bSLouis Dionne//TODO: __pstl::execution namespace is injected into the pstl::execution namespace when the implementation is not a part of 41*4d88b17bSLouis Dionne// standard C++ library 42*4d88b17bSLouis Dionnenamespace pstl 43*4d88b17bSLouis Dionne{ 44*4d88b17bSLouis Dionnenamespace execution 45*4d88b17bSLouis Dionne{ 46*4d88b17bSLouis Dionneusing namespace __pstl::execution; 47*4d88b17bSLouis Dionne} 48*4d88b17bSLouis Dionne} // namespace pstl 49*4d88b17bSLouis Dionne 50*4d88b17bSLouis Dionne#endif /* _TEST_SUPPORT_STDLIB_EXECUTION */ 51