clang
9.0.0
lib
Headers
openmp_wrappers
__clang_openmp_math.h
Go to the documentation of this file.
1
/*===---- __clang_openmp_math.h - OpenMP target math support ---------------===
2
*
3
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
* See https://llvm.org/LICENSE.txt for license information.
5
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
*
7
*===-----------------------------------------------------------------------===
8
*/
9
10
#if defined(__NVPTX__) && defined(_OPENMP)
11
/// TODO:
12
/// We are currently reusing the functionality of the Clang-CUDA code path
13
/// as an alternative to the host declarations provided by math.h and cmath.
14
/// This is suboptimal.
15
///
16
/// We should instead declare the device functions in a similar way, e.g.,
17
/// through OpenMP 5.0 variants, and afterwards populate the module with the
18
/// host declarations by unconditionally including the host math.h or cmath,
19
/// respectively. This is actually what the Clang-CUDA code path does, using
20
/// __device__ instead of variants to avoid redeclarations and get the desired
21
/// overload resolution.
22
23
#define __CUDA__
24
25
#if defined(__cplusplus)
26
#include <
__clang_cuda_cmath.h
>
27
#endif
28
29
#undef __CUDA__
30
31
/// Magic macro for stopping the math.h/cmath host header from being included.
32
#define __CLANG_NO_HOST_MATH__
33
34
#endif
35
__clang_cuda_cmath.h
Generated on Thu Sep 19 2019 15:18:34 for clang by
1.8.13