llvm-project/clang/lib/Headers
Artem Belevich fbc56a904f [CUDA] Added partial support for CUDA-9.1
Clang can use CUDA-9.1 now, though new APIs (are not implemented yet.

The major change is that headers in CUDA-9.1 went through substantial
changes that started in CUDA-9.0 which required substantial changes
in the cuda compatibility headers provided by clang.

There are two major issues:
* CUDA SDK no longer provides declarations for libdevice functions.
* A lot of device-side functions have become nvcc's builtins and
  CUDA headers no longer contain their implementations.

This patch changes the way CUDA headers are handled if we compile
with CUDA 9.x. Both 9.0 and 9.1 are affected.

* Clang provides its own declarations of libdevice functions.
* For CUDA-9.x clang now provides implementation of device-side
  'standard library' functions using libdevice.

This patch should not affect compilation with CUDA-8. There may be
some observable differences for CUDA-9.0, though they are not expected
to affect functionality.

Tested: CUDA test-suite tests for all supported combinations of:
        CUDA: 7.0,7.5,8.0,9.0,9.1
        GPU: sm_20, sm_35, sm_60, sm_70

Differential Revision: https://reviews.llvm.org/D42513

llvm-svn: 323713
2018-01-30 00:00:12 +00:00
..
cuda_wrappers [CUDA] Fix std::min on device side to return the min, not the max. 2017-11-11 01:25:44 +00:00
CMakeLists.txt [CUDA] Added partial support for CUDA-9.1 2018-01-30 00:00:12 +00:00
__clang_cuda_builtin_vars.h [CUDA] Rename cuda_builtin_vars.h to __clang_cuda_builtin_vars.h. 2016-10-08 22:16:08 +00:00
__clang_cuda_cmath.h [CUDA] Remove implementations of nexttoward. 2017-11-17 01:15:43 +00:00
__clang_cuda_complex_builtins.h [CUDA] Re-land support for <complex> (r283683 and r283680). 2016-10-11 17:36:03 +00:00
__clang_cuda_device_functions.h [CUDA] Added partial support for CUDA-9.1 2018-01-30 00:00:12 +00:00
__clang_cuda_intrinsics.h [CUDA] More fixes for __shfl_* intrinsics. 2017-12-21 23:52:09 +00:00
__clang_cuda_libdevice_declares.h [CUDA] Added partial support for CUDA-9.1 2018-01-30 00:00:12 +00:00
__clang_cuda_math_forward_declares.h [CUDA] Remove implementations of nexttoward. 2017-11-17 01:15:43 +00:00
__clang_cuda_runtime_wrapper.h [CUDA] Added partial support for CUDA-9.1 2018-01-30 00:00:12 +00:00
__stddef_max_align_t.h
__wmmintrin_aes.h [DOXYGEN] Improved doxygen comments for x86 intrinsics headers. 2016-12-09 18:35:50 +00:00
__wmmintrin_pclmul.h [DOXYGEN] Improved doxygen comments for x86 intrinsics. 2016-12-27 00:49:38 +00:00
adxintrin.h
altivec.h [PPC] Make altivec conversion function macros. 2017-05-30 11:37:29 +00:00
ammintrin.h [DOXYGEN] Improved doxygen comments for x86 intrinsics headers. 2016-12-09 18:35:50 +00:00
arm64intr.h [clang] Add ARM64 support to armintr.h for MSVC compatibility 2017-07-26 05:29:40 +00:00
arm_acle.h [ARM] ACLE Chapter 9 intrinsics 2017-05-04 08:37:59 +00:00
armintr.h Headers: Add ARM support to intrin.h for MSVC compatibility 2016-08-06 17:58:24 +00:00
avx2intrin.h [X86] Lower _mm[256|512]_[mask[z]]_avg_epu[8|16] intrinsics to native llvm IR 2017-09-12 07:46:32 +00:00
avx512bitalgintrin.h [x86][icelake][bitalg] 2017-12-27 10:01:00 +00:00
avx512bwintrin.h [X86] Implement old kunpck intrinsics using vector ops on vXi1 instead of integer shift/and/or 2018-01-14 19:23:50 +00:00
avx512cdintrin.h lowering broadcastm 2017-11-06 07:04:12 +00:00
avx512dqintrin.h [X86] Implement broadcastf32x2 and broadcasti32x2 intrinsics using __builtin_shufflevector instead builtins 2017-08-30 16:15:12 +00:00
avx512erintrin.h Fixing problem with rsqrt28_sd 2016-06-05 15:57:49 +00:00
avx512fintrin.h [X86] Implement old kunpck intrinsics using vector ops on vXi1 instead of integer shift/and/or 2018-01-14 19:23:50 +00:00
avx512ifmaintrin.h [AVX512] Remove space in -1 constants. NFC 2016-06-04 05:43:37 +00:00
avx512ifmavlintrin.h [AVX512] Remove space in -1 constants. NFC 2016-06-04 05:43:37 +00:00
avx512pfintrin.h [Clang][avx512][Intrinsics] adding prefetch gather intrinsics 2016-06-14 13:45:17 +00:00
avx512vbmi2intrin.h [x86][icelake][vbmi2] 2017-12-27 11:25:07 +00:00
avx512vbmiintrin.h [Clang][AVX512] Making cosmetic changes 2016-07-12 12:42:27 +00:00
avx512vbmivlintrin.h [clang][AVX512][Builtin] adding missing intrinsics for vpmultishiftqb{128|256|512} instruction set . 2016-05-23 15:04:39 +00:00
avx512vlbitalgintrin.h [x86][icelake][bitalg] 2017-12-27 10:01:00 +00:00
avx512vlbwintrin.h [X86] test/testn intrinsics lowering to IR. clang side 2017-11-13 12:50:52 +00:00
avx512vlcdintrin.h lowering broadcastm 2017-11-06 07:04:12 +00:00
avx512vldqintrin.h [X86] Implement broadcastf32x2 and broadcasti32x2 intrinsics using __builtin_shufflevector instead builtins 2017-08-30 16:15:12 +00:00
avx512vlintrin.h [X86] test/testn intrinsics lowering to IR. clang side 2017-11-13 12:50:52 +00:00
avx512vlvbmi2intrin.h [x86][icelake][vbmi2] 2017-12-27 11:25:07 +00:00
avx512vlvnniintrin.h [x86][icelake][vnni] 2017-12-27 10:37:51 +00:00
avx512vnniintrin.h [x86][icelake][vnni] 2017-12-27 10:37:51 +00:00
avx512vpopcntdqintrin.h [X86] Adding avx512_vpopcntdq feature set and its intrinsics 2017-05-25 13:44:11 +00:00
avx512vpopcntdqvlintrin.h [X86] Add the two files I forgot to commit in r320915. 2017-12-16 06:10:24 +00:00
avxintrin.h [DOXYGEN] Fix doxygen and content issues in avxintrin.h 2018-01-08 21:21:17 +00:00
bmi2intrin.h
bmiintrin.h [DOXYGEN] Corrected typos and incorrect parameters description. 2017-07-12 20:18:55 +00:00
cetintrin.h Control-Flow Enforcement Technology - Shadow Stack and Indirect Branch Tracking support (Clang side) 2017-11-26 12:34:54 +00:00
clflushoptintrin.h [X86] Correct type for argument to clflushopt intrinsic. 2017-10-11 16:06:08 +00:00
clwbintrin.h [X86] Add CLWB intrinsic. clang part 2017-10-12 18:57:15 +00:00
clzerointrin.h [X86] Clzero flag addition and inclusion under znver1 2017-02-09 06:10:14 +00:00
cpuid.h [X86] Add more CPUID bits to cpuid.h to match gcc and support icelake features. 2017-12-20 00:46:09 +00:00
emmintrin.h [DOXYGEN] Fix doxygen and content issues in emmintrin.h 2018-01-02 20:39:29 +00:00
f16cintrin.h Recommit r299321 '[X86] Add __extension__ to f16c macro intrinsics to suppress warnings about compound literals when compiled for with earlier language standards enabled.' 2017-04-03 22:59:30 +00:00
float.h This adds the _Float16 preprocessor macro definitions. 2017-09-13 15:23:19 +00:00
fma4intrin.h [X86] Use separate builtins for fma4 scalar intrinsics. Use negations to remove some of the scalar fma3 builtins. 2017-11-25 19:32:12 +00:00
fmaintrin.h [X86] Use separate builtins for fma4 scalar intrinsics. Use negations to remove some of the scalar fma3 builtins. 2017-11-25 19:32:12 +00:00
fxsrintrin.h [DOXYGEN] Improved doxygen comments for x86 intrinsics headers. 2016-12-09 18:35:50 +00:00
gfniintrin.h [x86][icelake][gfni] 2017-12-27 08:37:47 +00:00
htmintrin.h Update functions in clang supplied headers to use the compiler reserved 2016-02-12 02:22:53 +00:00
htmxlintrin.h Fix parsing of htmxlintrin.h in C++ mode 2017-03-20 22:31:33 +00:00
ia32intrin.h Add some MS aliases for existing intrinsics 2016-09-14 21:19:43 +00:00
immintrin.h [X86] Add rdpid command line option and intrinsics. 2018-01-20 18:36:52 +00:00
intrin.h [Headers] Fix the return type of _InterlockedCompareExchange_rel 2017-09-14 07:04:59 +00:00
inttypes.h Headers: wordsmith error message 2016-06-17 00:27:02 +00:00
iso646.h
limits.h
lwpintrin.h [X86][LWP] Add clang support for LWP instructions. 2017-05-08 12:09:45 +00:00
lzcntintrin.h Add doxygen comments for lzcntintrin.h's intrinsics. 2016-11-18 06:26:01 +00:00
mm3dnow.h [X86] Add void to the argument list of intrinsics that don't take arguments since empty argument list mean something else in C. 2016-06-09 05:14:28 +00:00
mm_malloc.h
mmintrin.h [DOXYGEN] Corrected typos and incorrect parameters description. 2017-07-12 20:18:55 +00:00
module.modulemap [AArch64] Add ARMv8.2-A FP16 scalar intrinsics 2018-01-19 23:11:18 +00:00
msa.h [mips] MSA intrinsics header file 2016-09-20 15:07:36 +00:00
mwaitxintrin.h Clean up: remove trailing spaces in x86 intrinsic headers. 2016-05-28 00:18:59 +00:00
nmmintrin.h
opencl-c.h [NFC] fix trivial typos in comments 2018-01-29 05:15:18 +00:00
pkuintrin.h Update functions in clang supplied headers to use the compiler reserved 2016-02-12 02:22:53 +00:00
pmmintrin.h [DOXYGEN] Fix doxygen and content issues in pmmintrin.h 2018-01-02 20:42:53 +00:00
popcntintrin.h [DOXYGEN] Improved doxygen comments for x86 intrinsics headers. 2016-12-09 18:35:50 +00:00
prfchwintrin.h [DOXYGEN] Minor improvements in doxygen comments. 2017-05-15 03:25:04 +00:00
rdseedintrin.h
rtmintrin.h
s390intrin.h
shaintrin.h
smmintrin.h [DOXYGEN] Fix doxygen and content issues in smmintrin.h 2018-01-02 20:45:29 +00:00
stdalign.h
stdarg.h Guard __gnuc_va_list typedef. 2017-01-23 19:09:21 +00:00
stdatomic.h Use __CLANG_ATOMIC_TYPE_LOCK_FREE macros in `stdatomic.h` 2017-04-20 23:07:38 +00:00
stdbool.h In stdbool.h, define bool, false, true only in gnu++98 2017-12-08 08:28:08 +00:00
stddef.h
stdint.h Headers: Make the type of SIZE_MAX the same as size_t 2017-04-27 21:49:45 +00:00
stdnoreturn.h
tbmintrin.h Update functions in clang supplied headers to use the compiler reserved 2016-02-12 02:22:53 +00:00
tgmath.h [Headers] Reapply: Add #include_next for tgmath.h on Darwin 2017-03-16 23:19:00 +00:00
tmmintrin.h [DOXYGEN] Minor improvements in doxygen comments. 2017-05-15 03:25:04 +00:00
unwind.h [Headers] Fix typoed __ARM_DWARF_EH__ ifdefs 2017-10-19 07:40:45 +00:00
vadefs.h
vaesintrin.h [x86][icelake][vaes] 2017-12-27 08:16:54 +00:00
varargs.h
vecintrin.h [SystemZ] Add support for IBM z14 processor (3/3) 2017-07-17 17:47:35 +00:00
vpclmulqdqintrin.h [x86][icelake][vpclmulqdq] 2017-12-27 09:00:31 +00:00
wmmintrin.h
x86intrin.h [X86][LWP] Removing LWP todo comment. NFCI. 2017-05-09 17:43:16 +00:00
xmmintrin.h [DOXYGEN] Fix doxygen and content issues in xmmintrin.h 2018-01-17 22:53:15 +00:00
xopintrin.h [X86][XOP] Fix type conversion warning in vpcmov generic implementations. 2017-02-18 23:47:34 +00:00
xsavecintrin.h
xsaveintrin.h Revert "[X86] Add xgetbv/x[X86] Add xgetbv xsetbv intrinsics to non-windows platforms" 2016-08-16 16:04:14 +00:00
xsaveoptintrin.h
xsavesintrin.h
xtestintrin.h