1*4d6fc14bSjoerg// -*- C++ -*- 2*4d6fc14bSjoerg//===--------------------------- __config ---------------------------------===// 3*4d6fc14bSjoerg// 4*4d6fc14bSjoerg// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5*4d6fc14bSjoerg// See https://llvm.org/LICENSE.txt for license information. 6*4d6fc14bSjoerg// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7*4d6fc14bSjoerg// 8*4d6fc14bSjoerg//===----------------------------------------------------------------------===// 9*4d6fc14bSjoerg 10*4d6fc14bSjoerg#ifndef _LIBCPP_EXPERIMENTAL_CONFIG 11*4d6fc14bSjoerg#define _LIBCPP_EXPERIMENTAL_CONFIG 12*4d6fc14bSjoerg 13*4d6fc14bSjoerg#include <__config> 14*4d6fc14bSjoerg 15*4d6fc14bSjoerg#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 16*4d6fc14bSjoerg#pragma GCC system_header 17*4d6fc14bSjoerg#endif 18*4d6fc14bSjoerg 19*4d6fc14bSjoerg#define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL namespace std { namespace experimental { 20*4d6fc14bSjoerg#define _LIBCPP_END_NAMESPACE_EXPERIMENTAL } } 21*4d6fc14bSjoerg#define _VSTD_EXPERIMENTAL std::experimental 22*4d6fc14bSjoerg 23*4d6fc14bSjoerg#define _LIBCPP_BEGIN_NAMESPACE_LFTS _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace fundamentals_v1 { 24*4d6fc14bSjoerg#define _LIBCPP_END_NAMESPACE_LFTS } } } 25*4d6fc14bSjoerg#define _VSTD_LFTS _VSTD_EXPERIMENTAL::fundamentals_v1 26*4d6fc14bSjoerg 27*4d6fc14bSjoerg#define _LIBCPP_BEGIN_NAMESPACE_LFTS_V2 _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace fundamentals_v2 { 28*4d6fc14bSjoerg#define _LIBCPP_END_NAMESPACE_LFTS_V2 } } } 29*4d6fc14bSjoerg#define _VSTD_LFTS_V2 _VSTD_EXPERIMENTAL::fundamentals_v2 30*4d6fc14bSjoerg 31*4d6fc14bSjoerg#define _LIBCPP_BEGIN_NAMESPACE_LFTS_PMR _LIBCPP_BEGIN_NAMESPACE_LFTS namespace pmr { 32*4d6fc14bSjoerg#define _LIBCPP_END_NAMESPACE_LFTS_PMR _LIBCPP_END_NAMESPACE_LFTS } 33*4d6fc14bSjoerg#define _VSTD_LFTS_PMR _VSTD_LFTS::pmr 34*4d6fc14bSjoerg 35*4d6fc14bSjoerg#if defined(_LIBCPP_NO_EXPERIMENTAL_DEPRECATION_WARNING_FILESYSTEM) 36*4d6fc14bSjoerg# define _LIBCPP_DEPRECATED_EXPERIMENTAL_FILESYSTEM /* nothing */ 37*4d6fc14bSjoerg#else 38*4d6fc14bSjoerg# define _LIBCPP_DEPRECATED_EXPERIMENTAL_FILESYSTEM __attribute__((deprecated("std::experimental::filesystem has now been deprecated in favor of C++17's std::filesystem. Please stop using it and start using std::filesystem. This experimental version will be removed in LLVM 11. You can remove this warning by defining the _LIBCPP_NO_EXPERIMENTAL_DEPRECATION_WARNING_FILESYSTEM macro."))) 39*4d6fc14bSjoerg#endif 40*4d6fc14bSjoerg 41*4d6fc14bSjoerg#define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_FILESYSTEM \ 42*4d6fc14bSjoerg _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL namespace filesystem _LIBCPP_DEPRECATED_EXPERIMENTAL_FILESYSTEM { \ 43*4d6fc14bSjoerg inline namespace v1 { 44*4d6fc14bSjoerg 45*4d6fc14bSjoerg#define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_FILESYSTEM \ 46*4d6fc14bSjoerg } } _LIBCPP_END_NAMESPACE_EXPERIMENTAL 47*4d6fc14bSjoerg 48*4d6fc14bSjoerg#define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_COROUTINES \ 49*4d6fc14bSjoerg _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace coroutines_v1 { 50*4d6fc14bSjoerg 51*4d6fc14bSjoerg#define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_COROUTINES \ 52*4d6fc14bSjoerg } _LIBCPP_END_NAMESPACE_EXPERIMENTAL 53*4d6fc14bSjoerg 54*4d6fc14bSjoerg#define _VSTD_CORO _VSTD_EXPERIMENTAL::coroutines_v1 55*4d6fc14bSjoerg 56*4d6fc14bSjoerg#define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_SIMD \ 57*4d6fc14bSjoerg _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace parallelism_v2 { 58*4d6fc14bSjoerg 59*4d6fc14bSjoerg#define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_SIMD \ 60*4d6fc14bSjoerg } _LIBCPP_END_NAMESPACE_EXPERIMENTAL 61*4d6fc14bSjoerg 62*4d6fc14bSjoerg#define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_SIMD_ABI \ 63*4d6fc14bSjoerg _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_SIMD namespace simd_abi { 64*4d6fc14bSjoerg 65*4d6fc14bSjoerg#define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_SIMD_ABI \ 66*4d6fc14bSjoerg } _LIBCPP_END_NAMESPACE_EXPERIMENTAL_SIMD 67*4d6fc14bSjoerg 68*4d6fc14bSjoerg// TODO: support more targets 69*4d6fc14bSjoerg#if defined(__AVX__) 70*4d6fc14bSjoerg#define _LIBCPP_NATIVE_SIMD_WIDTH_IN_BYTES 32 71*4d6fc14bSjoerg#else 72*4d6fc14bSjoerg#define _LIBCPP_NATIVE_SIMD_WIDTH_IN_BYTES 16 73*4d6fc14bSjoerg#endif 74*4d6fc14bSjoerg 75*4d6fc14bSjoerg#endif 76