1*58b9f456SAndroid Build Coastguard Worker// -*- C++ -*- 2*58b9f456SAndroid Build Coastguard Worker//===--------------------------- __config ---------------------------------===// 3*58b9f456SAndroid Build Coastguard Worker// 4*58b9f456SAndroid Build Coastguard Worker// The LLVM Compiler Infrastructure 5*58b9f456SAndroid Build Coastguard Worker// 6*58b9f456SAndroid Build Coastguard Worker// This file is dual licensed under the MIT and the University of Illinois Open 7*58b9f456SAndroid Build Coastguard Worker// Source Licenses. See LICENSE.TXT for details. 8*58b9f456SAndroid Build Coastguard Worker// 9*58b9f456SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 10*58b9f456SAndroid Build Coastguard Worker 11*58b9f456SAndroid Build Coastguard Worker#ifndef _LIBCPP_EXPERIMENTAL_CONFIG 12*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_EXPERIMENTAL_CONFIG 13*58b9f456SAndroid Build Coastguard Worker 14*58b9f456SAndroid Build Coastguard Worker#include <__config> 15*58b9f456SAndroid Build Coastguard Worker 16*58b9f456SAndroid Build Coastguard Worker#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 17*58b9f456SAndroid Build Coastguard Worker#pragma GCC system_header 18*58b9f456SAndroid Build Coastguard Worker#endif 19*58b9f456SAndroid Build Coastguard Worker 20*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL namespace std { namespace experimental { 21*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_END_NAMESPACE_EXPERIMENTAL } } 22*58b9f456SAndroid Build Coastguard Worker#define _VSTD_EXPERIMENTAL std::experimental 23*58b9f456SAndroid Build Coastguard Worker 24*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_BEGIN_NAMESPACE_LFTS _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace fundamentals_v1 { 25*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_END_NAMESPACE_LFTS } } } 26*58b9f456SAndroid Build Coastguard Worker#define _VSTD_LFTS _VSTD_EXPERIMENTAL::fundamentals_v1 27*58b9f456SAndroid Build Coastguard Worker 28*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_BEGIN_NAMESPACE_LFTS_V2 _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace fundamentals_v2 { 29*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_END_NAMESPACE_LFTS_V2 } } } 30*58b9f456SAndroid Build Coastguard Worker#define _VSTD_LFTS_V2 _VSTD_EXPERIMENTAL::fundamentals_v2 31*58b9f456SAndroid Build Coastguard Worker 32*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_BEGIN_NAMESPACE_LFTS_PMR _LIBCPP_BEGIN_NAMESPACE_LFTS namespace pmr { 33*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_END_NAMESPACE_LFTS_PMR _LIBCPP_END_NAMESPACE_LFTS } 34*58b9f456SAndroid Build Coastguard Worker#define _VSTD_LFTS_PMR _VSTD_LFTS::pmr 35*58b9f456SAndroid Build Coastguard Worker 36*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_BEGIN_NAMESPACE_CHRONO_LFTS _LIBCPP_BEGIN_NAMESPACE_STD \ 37*58b9f456SAndroid Build Coastguard Worker namespace chrono { namespace experimental { inline namespace fundamentals_v1 { 38*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_END_NAMESPACE_CHRONO_LFTS _LIBCPP_END_NAMESPACE_STD } } } 39*58b9f456SAndroid Build Coastguard Worker 40*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_FILESYSTEM \ 41*58b9f456SAndroid Build Coastguard Worker _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL namespace filesystem { \ 42*58b9f456SAndroid Build Coastguard Worker inline namespace v1 { 43*58b9f456SAndroid Build Coastguard Worker 44*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_FILESYSTEM \ 45*58b9f456SAndroid Build Coastguard Worker } } _LIBCPP_END_NAMESPACE_EXPERIMENTAL 46*58b9f456SAndroid Build Coastguard Worker 47*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_COROUTINES \ 48*58b9f456SAndroid Build Coastguard Worker _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace coroutines_v1 { 49*58b9f456SAndroid Build Coastguard Worker 50*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_COROUTINES \ 51*58b9f456SAndroid Build Coastguard Worker } _LIBCPP_END_NAMESPACE_EXPERIMENTAL 52*58b9f456SAndroid Build Coastguard Worker 53*58b9f456SAndroid Build Coastguard Worker#define _VSTD_CORO _VSTD_EXPERIMENTAL::coroutines_v1 54*58b9f456SAndroid Build Coastguard Worker 55*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_SIMD \ 56*58b9f456SAndroid Build Coastguard Worker _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace parallelism_v2 { 57*58b9f456SAndroid Build Coastguard Worker 58*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_SIMD \ 59*58b9f456SAndroid Build Coastguard Worker } _LIBCPP_END_NAMESPACE_EXPERIMENTAL 60*58b9f456SAndroid Build Coastguard Worker 61*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_SIMD_ABI \ 62*58b9f456SAndroid Build Coastguard Worker _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_SIMD namespace simd_abi { 63*58b9f456SAndroid Build Coastguard Worker 64*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_SIMD_ABI \ 65*58b9f456SAndroid Build Coastguard Worker } _LIBCPP_END_NAMESPACE_EXPERIMENTAL_SIMD 66*58b9f456SAndroid Build Coastguard Worker 67*58b9f456SAndroid Build Coastguard Worker// TODO: support more targets 68*58b9f456SAndroid Build Coastguard Worker#if defined(__AVX__) 69*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_NATIVE_SIMD_WIDTH_IN_BYTES 32 70*58b9f456SAndroid Build Coastguard Worker#else 71*58b9f456SAndroid Build Coastguard Worker#define _LIBCPP_NATIVE_SIMD_WIDTH_IN_BYTES 16 72*58b9f456SAndroid Build Coastguard Worker#endif 73*58b9f456SAndroid Build Coastguard Worker 74*58b9f456SAndroid Build Coastguard Worker#endif 75