codekingpro/portable-devtools
114k
1// -*- C++ -*-2//===--------------------------- __config ---------------------------------===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9 10#ifndef _LIBCUDACXX_EXPERIMENTAL_CONFIG11#define _LIBCUDACXX_EXPERIMENTAL_CONFIG12 13#include <__config>14 15#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)16# pragma GCC system_header17#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)18# pragma clang system_header19#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)20# pragma system_header21#endif // no system header22 23#define _LIBCUDACXX_BEGIN_NAMESPACE_EXPERIMENTAL namespace std { namespace experimental {24#define _LIBCUDACXX_END_NAMESPACE_EXPERIMENTAL } }25#define _CUDA_VSTD_EXPERIMENTAL std::experimental26 27#define _LIBCUDACXX_BEGIN_NAMESPACE_LFTS _LIBCUDACXX_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace fundamentals_v1 {28#define _LIBCUDACXX_END_NAMESPACE_LFTS } } }29#define _CUDA_VSTD_LFTS _CUDA_VSTD_EXPERIMENTAL::fundamentals_v130 31#define _LIBCUDACXX_BEGIN_NAMESPACE_LFTS_V2 _LIBCUDACXX_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace fundamentals_v2 {32#define _LIBCUDACXX_END_NAMESPACE_LFTS_V2 } } }33#define _CUDA_VSTD_LFTS_V2 _CUDA_VSTD_EXPERIMENTAL::fundamentals_v234 35#define _LIBCUDACXX_BEGIN_NAMESPACE_LFTS_PMR _LIBCUDACXX_BEGIN_NAMESPACE_LFTS namespace pmr {36#define _LIBCUDACXX_END_NAMESPACE_LFTS_PMR _LIBCUDACXX_END_NAMESPACE_LFTS }37#define _CUDA_VSTD_LFTS_PMR _CUDA_VSTD_LFTS::pmr38 39#define _LIBCUDACXX_BEGIN_NAMESPACE_CHRONO_LFTS _LIBCUDACXX_BEGIN_NAMESPACE_STD \40 namespace chrono { namespace experimental { inline namespace fundamentals_v1 {41#define _LIBCUDACXX_END_NAMESPACE_CHRONO_LFTS _LIBCUDACXX_END_NAMESPACE_STD } } }42 43#if defined(_LIBCUDACXX_NO_EXPERIMENTAL_DEPRECATION_WARNING_FILESYSTEM)44# define _LIBCUDACXX_DEPRECATED_EXPERIMENTAL_FILESYSTEM /* nothing */45#else46# define _LIBCUDACXX_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 _LIBCUDACXX_NO_EXPERIMENTAL_DEPRECATION_WARNING_FILESYSTEM macro.")))47#endif48 49#define _LIBCUDACXX_BEGIN_NAMESPACE_EXPERIMENTAL_FILESYSTEM \50 _LIBCUDACXX_BEGIN_NAMESPACE_EXPERIMENTAL namespace filesystem _LIBCUDACXX_DEPRECATED_EXPERIMENTAL_FILESYSTEM { \51 inline namespace v1 {52 53#define _LIBCUDACXX_END_NAMESPACE_EXPERIMENTAL_FILESYSTEM \54 } } _LIBCUDACXX_END_NAMESPACE_EXPERIMENTAL55 56#define _LIBCUDACXX_BEGIN_NAMESPACE_EXPERIMENTAL_COROUTINES \57 _LIBCUDACXX_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace coroutines_v1 {58 59#define _LIBCUDACXX_END_NAMESPACE_EXPERIMENTAL_COROUTINES \60 } _LIBCUDACXX_END_NAMESPACE_EXPERIMENTAL61 62#define _CUDA_VSTD_CORO _CUDA_VSTD_EXPERIMENTAL::coroutines_v163 64#define _LIBCUDACXX_BEGIN_NAMESPACE_EXPERIMENTAL_SIMD \65 _LIBCUDACXX_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace parallelism_v2 {66 67#define _LIBCUDACXX_END_NAMESPACE_EXPERIMENTAL_SIMD \68 } _LIBCUDACXX_END_NAMESPACE_EXPERIMENTAL69 70#define _LIBCUDACXX_BEGIN_NAMESPACE_EXPERIMENTAL_SIMD_ABI \71 _LIBCUDACXX_BEGIN_NAMESPACE_EXPERIMENTAL_SIMD namespace simd_abi {72 73#define _LIBCUDACXX_END_NAMESPACE_EXPERIMENTAL_SIMD_ABI \74 } _LIBCUDACXX_END_NAMESPACE_EXPERIMENTAL_SIMD75 76// TODO: support more targets77#if defined(__AVX__)78#define _LIBCUDACXX_NATIVE_SIMD_WIDTH_IN_BYTES 3279#else80#define _LIBCUDACXX_NATIVE_SIMD_WIDTH_IN_BYTES 1681#endif82 83#endif84 