@cpp-linter/clang-tidy-win32-x64 12.0.1 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_complex_builtins.h +3 -3
  4. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_device_functions.h +174 -102
  5. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_intrinsics.h +32 -0
  6. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_libdevice_declares.h +6 -0
  7. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_math.h +3 -3
  8. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_runtime_wrapper.h +68 -8
  9. package/lib/clang/14.0.0/include/__clang_cuda_texture_intrinsics.h +740 -0
  10. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_hip_cmath.h +272 -94
  11. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_hip_libdevice_declares.h +24 -12
  12. package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_hip_math.h +48 -2
  13. package/lib/clang/14.0.0/include/__clang_hip_runtime_wrapper.h +137 -0
  14. package/lib/clang/{12.0.1 → 14.0.0}/include/__wmmintrin_aes.h +1 -1
  15. package/lib/clang/{12.0.1 → 14.0.0}/include/altivec.h +1348 -496
  16. package/lib/clang/{12.0.1 → 14.0.0}/include/ammintrin.h +4 -0
  17. package/lib/clang/14.0.0/include/amxintrin.h +494 -0
  18. package/lib/clang/{12.0.1 → 14.0.0}/include/arm_acle.h +61 -0
  19. package/lib/clang/{12.0.1 → 14.0.0}/include/arm_neon.h +5544 -4634
  20. package/lib/clang/14.0.0/include/arm_neon_sve_bridge.h +184 -0
  21. package/lib/clang/{12.0.1 → 14.0.0}/include/arm_sve.h +11791 -5896
  22. package/lib/clang/{12.0.1 → 14.0.0}/include/avx2intrin.h +181 -181
  23. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512bf16intrin.h +3 -3
  24. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512bwintrin.h +71 -71
  25. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512dqintrin.h +365 -365
  26. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512erintrin.h +102 -102
  27. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512fintrin.h +1750 -1606
  28. package/lib/clang/14.0.0/include/avx512fp16intrin.h +3349 -0
  29. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vbmi2intrin.h +48 -48
  30. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vlbf16intrin.h +51 -3
  31. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vlbwintrin.h +94 -94
  32. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vldqintrin.h +134 -134
  33. package/lib/clang/14.0.0/include/avx512vlfp16intrin.h +2068 -0
  34. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vlintrin.h +563 -563
  35. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vlvbmi2intrin.h +96 -96
  36. package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vlvnniintrin.h +8 -8
  37. package/lib/clang/{12.0.1 → 14.0.0}/include/avxintrin.h +189 -192
  38. package/lib/clang/14.0.0/include/builtins.h +16 -0
  39. package/lib/clang/{12.0.1 → 14.0.0}/include/cetintrin.h +10 -0
  40. package/lib/clang/{12.0.1 → 14.0.0}/include/cpuid.h +2 -1
  41. package/lib/clang/14.0.0/include/crc32intrin.h +100 -0
  42. package/lib/clang/{12.0.1 → 14.0.0}/include/cuda_wrappers/complex +8 -0
  43. package/lib/clang/{12.0.1 → 14.0.0}/include/emmintrin.h +21 -17
  44. package/lib/clang/{12.0.1 → 14.0.0}/include/f16cintrin.h +4 -4
  45. package/lib/clang/{12.0.1 → 14.0.0}/include/float.h +15 -6
  46. package/lib/clang/{12.0.1 → 14.0.0}/include/gfniintrin.h +47 -48
  47. package/lib/clang/14.0.0/include/hexagon_circ_brev_intrinsics.h +298 -0
  48. package/lib/clang/14.0.0/include/hexagon_protos.h +8439 -0
  49. package/lib/clang/14.0.0/include/hexagon_types.h +2621 -0
  50. package/lib/clang/14.0.0/include/hvx_hexagon_protos.h +5183 -0
  51. package/lib/clang/{12.0.1 → 14.0.0}/include/ia32intrin.h +6 -6
  52. package/lib/clang/{12.0.1 → 14.0.0}/include/immintrin.h +31 -13
  53. package/lib/clang/{12.0.1 → 14.0.0}/include/intrin.h +63 -19
  54. package/lib/clang/{12.0.1 → 14.0.0}/include/keylockerintrin.h +32 -8
  55. package/lib/clang/{12.0.1 → 14.0.0}/include/limits.h +20 -0
  56. package/lib/clang/{12.0.1 → 14.0.0}/include/mmintrin.h +4 -0
  57. package/lib/clang/{12.0.1 → 14.0.0}/include/nmmintrin.h +4 -0
  58. package/lib/clang/{12.0.1 → 14.0.0}/include/opencl-c-base.h +206 -7
  59. package/lib/clang/{12.0.1 → 14.0.0}/include/opencl-c.h +2187 -797
  60. package/lib/clang/14.0.0/include/openmp_wrappers/__clang_openmp_device_functions.h +106 -0
  61. package/lib/clang/{12.0.1 → 14.0.0}/include/openmp_wrappers/cmath +54 -0
  62. package/lib/clang/{12.0.1 → 14.0.0}/include/openmp_wrappers/complex +11 -8
  63. package/lib/clang/{12.0.1 → 14.0.0}/include/openmp_wrappers/complex.h +9 -1
  64. package/lib/clang/{12.0.1 → 14.0.0}/include/openmp_wrappers/math.h +10 -0
  65. package/lib/clang/{12.0.1 → 14.0.0}/include/openmp_wrappers/new +2 -24
  66. package/lib/clang/{12.0.1 → 14.0.0}/include/pmmintrin.h +4 -0
  67. package/lib/clang/{12.0.1 → 14.0.0}/include/ppc_wrappers/emmintrin.h +3 -2
  68. package/lib/clang/{12.0.1 → 14.0.0}/include/ppc_wrappers/mm_malloc.h +2 -2
  69. package/lib/clang/{12.0.1 → 14.0.0}/include/ppc_wrappers/mmintrin.h +3 -2
  70. package/lib/clang/{12.0.1 → 14.0.0}/include/ppc_wrappers/pmmintrin.h +3 -2
  71. package/lib/clang/{12.0.1 → 14.0.0}/include/ppc_wrappers/smmintrin.h +4 -3
  72. package/lib/clang/{12.0.1 → 14.0.0}/include/ppc_wrappers/tmmintrin.h +3 -2
  73. package/lib/clang/{12.0.1 → 14.0.0}/include/ppc_wrappers/xmmintrin.h +3 -2
  74. package/lib/clang/{12.0.1 → 14.0.0}/include/prfchwintrin.h +5 -2
  75. package/lib/clang/14.0.0/include/riscv_vector.h +95423 -0
  76. package/lib/clang/{12.0.1 → 14.0.0}/include/smmintrin.h +80 -159
  77. package/lib/clang/{12.0.1 → 14.0.0}/include/stdatomic.h +14 -1
  78. package/lib/clang/{12.0.1 → 14.0.0}/include/stdint.h +168 -0
  79. package/lib/clang/{12.0.1 → 14.0.0}/include/tmmintrin.h +10 -6
  80. package/lib/clang/{12.0.1 → 14.0.0}/include/uintrintrin.h +7 -0
  81. package/lib/clang/{12.0.1 → 14.0.0}/include/unwind.h +2 -1
  82. package/lib/clang/{12.0.1 → 14.0.0}/include/vaesintrin.h +22 -21
  83. package/lib/clang/{12.0.1 → 14.0.0}/include/vecintrin.h +206 -77
  84. package/lib/clang/{12.0.1 → 14.0.0}/include/vpclmulqdqintrin.h +8 -6
  85. package/lib/clang/14.0.0/include/wasm_simd128.h +1877 -0
  86. package/lib/clang/{12.0.1 → 14.0.0}/include/wmmintrin.h +4 -0
  87. package/lib/clang/{12.0.1 → 14.0.0}/include/x86gprintrin.h +12 -0
  88. package/lib/clang/{12.0.1 → 14.0.0}/include/xmmintrin.h +9 -5
  89. package/lib/clang/{12.0.1 → 14.0.0}/include/xopintrin.h +31 -31
  90. package/package.json +6 -6
  91. package/lib/clang/12.0.1/include/__clang_hip_runtime_wrapper.h +0 -69
  92. package/lib/clang/12.0.1/include/amxintrin.h +0 -278
  93. package/lib/clang/12.0.1/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -42
  94. package/lib/clang/12.0.1/include/wasm_simd128.h +0 -1167
  95. /package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_builtin_vars.h +0 -0
  96. /package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_cmath.h +0 -0
  97. /package/lib/clang/{12.0.1 → 14.0.0}/include/__clang_cuda_math_forward_declares.h +0 -0
  98. /package/lib/clang/{12.0.1 → 14.0.0}/include/__stddef_max_align_t.h +0 -0
  99. /package/lib/clang/{12.0.1 → 14.0.0}/include/__wmmintrin_pclmul.h +0 -0
  100. /package/lib/clang/{12.0.1 → 14.0.0}/include/adxintrin.h +0 -0
  101. /package/lib/clang/{12.0.1 → 14.0.0}/include/arm64intr.h +0 -0
  102. /package/lib/clang/{12.0.1 → 14.0.0}/include/arm_bf16.h +0 -0
  103. /package/lib/clang/{12.0.1 → 14.0.0}/include/arm_cde.h +0 -0
  104. /package/lib/clang/{12.0.1 → 14.0.0}/include/arm_cmse.h +0 -0
  105. /package/lib/clang/{12.0.1 → 14.0.0}/include/arm_fp16.h +0 -0
  106. /package/lib/clang/{12.0.1 → 14.0.0}/include/arm_mve.h +0 -0
  107. /package/lib/clang/{12.0.1 → 14.0.0}/include/armintr.h +0 -0
  108. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512bitalgintrin.h +0 -0
  109. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512cdintrin.h +0 -0
  110. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512ifmaintrin.h +0 -0
  111. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512ifmavlintrin.h +0 -0
  112. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512pfintrin.h +0 -0
  113. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vbmiintrin.h +0 -0
  114. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vbmivlintrin.h +0 -0
  115. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vlbitalgintrin.h +0 -0
  116. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vlcdintrin.h +0 -0
  117. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vlvp2intersectintrin.h +0 -0
  118. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vnniintrin.h +0 -0
  119. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vp2intersectintrin.h +0 -0
  120. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vpopcntdqintrin.h +0 -0
  121. /package/lib/clang/{12.0.1 → 14.0.0}/include/avx512vpopcntdqvlintrin.h +0 -0
  122. /package/lib/clang/{12.0.1 → 14.0.0}/include/avxvnniintrin.h +0 -0
  123. /package/lib/clang/{12.0.1 → 14.0.0}/include/bmi2intrin.h +0 -0
  124. /package/lib/clang/{12.0.1 → 14.0.0}/include/bmiintrin.h +0 -0
  125. /package/lib/clang/{12.0.1 → 14.0.0}/include/cet.h +0 -0
  126. /package/lib/clang/{12.0.1 → 14.0.0}/include/cldemoteintrin.h +0 -0
  127. /package/lib/clang/{12.0.1 → 14.0.0}/include/clflushoptintrin.h +0 -0
  128. /package/lib/clang/{12.0.1 → 14.0.0}/include/clwbintrin.h +0 -0
  129. /package/lib/clang/{12.0.1 → 14.0.0}/include/clzerointrin.h +0 -0
  130. /package/lib/clang/{12.0.1 → 14.0.0}/include/cuda_wrappers/algorithm +0 -0
  131. /package/lib/clang/{12.0.1 → 14.0.0}/include/cuda_wrappers/new +0 -0
  132. /package/lib/clang/{12.0.1 → 14.0.0}/include/enqcmdintrin.h +0 -0
  133. /package/lib/clang/{12.0.1 → 14.0.0}/include/fma4intrin.h +0 -0
  134. /package/lib/clang/{12.0.1 → 14.0.0}/include/fmaintrin.h +0 -0
  135. /package/lib/clang/{12.0.1 → 14.0.0}/include/fxsrintrin.h +0 -0
  136. /package/lib/clang/{12.0.1 → 14.0.0}/include/hresetintrin.h +0 -0
  137. /package/lib/clang/{12.0.1 → 14.0.0}/include/htmintrin.h +0 -0
  138. /package/lib/clang/{12.0.1 → 14.0.0}/include/htmxlintrin.h +0 -0
  139. /package/lib/clang/{12.0.1 → 14.0.0}/include/inttypes.h +0 -0
  140. /package/lib/clang/{12.0.1 → 14.0.0}/include/invpcidintrin.h +0 -0
  141. /package/lib/clang/{12.0.1 → 14.0.0}/include/iso646.h +0 -0
  142. /package/lib/clang/{12.0.1 → 14.0.0}/include/lwpintrin.h +0 -0
  143. /package/lib/clang/{12.0.1 → 14.0.0}/include/lzcntintrin.h +0 -0
  144. /package/lib/clang/{12.0.1 → 14.0.0}/include/mm3dnow.h +0 -0
  145. /package/lib/clang/{12.0.1 → 14.0.0}/include/mm_malloc.h +0 -0
  146. /package/lib/clang/{12.0.1 → 14.0.0}/include/module.modulemap +0 -0
  147. /package/lib/clang/{12.0.1 → 14.0.0}/include/movdirintrin.h +0 -0
  148. /package/lib/clang/{12.0.1 → 14.0.0}/include/msa.h +0 -0
  149. /package/lib/clang/{12.0.1 → 14.0.0}/include/mwaitxintrin.h +0 -0
  150. /package/lib/clang/{12.0.1 → 14.0.0}/include/openmp_wrappers/complex_cmath.h +0 -0
  151. /package/lib/clang/{12.0.1 → 14.0.0}/include/pconfigintrin.h +0 -0
  152. /package/lib/clang/{12.0.1 → 14.0.0}/include/pkuintrin.h +0 -0
  153. /package/lib/clang/{12.0.1 → 14.0.0}/include/popcntintrin.h +0 -0
  154. /package/lib/clang/{12.0.1 → 14.0.0}/include/ptwriteintrin.h +0 -0
  155. /package/lib/clang/{12.0.1 → 14.0.0}/include/rdseedintrin.h +0 -0
  156. /package/lib/clang/{12.0.1 → 14.0.0}/include/rtmintrin.h +0 -0
  157. /package/lib/clang/{12.0.1 → 14.0.0}/include/s390intrin.h +0 -0
  158. /package/lib/clang/{12.0.1 → 14.0.0}/include/serializeintrin.h +0 -0
  159. /package/lib/clang/{12.0.1 → 14.0.0}/include/sgxintrin.h +0 -0
  160. /package/lib/clang/{12.0.1 → 14.0.0}/include/shaintrin.h +0 -0
  161. /package/lib/clang/{12.0.1 → 14.0.0}/include/stdalign.h +0 -0
  162. /package/lib/clang/{12.0.1 → 14.0.0}/include/stdarg.h +0 -0
  163. /package/lib/clang/{12.0.1 → 14.0.0}/include/stdbool.h +0 -0
  164. /package/lib/clang/{12.0.1 → 14.0.0}/include/stddef.h +0 -0
  165. /package/lib/clang/{12.0.1 → 14.0.0}/include/stdnoreturn.h +0 -0
  166. /package/lib/clang/{12.0.1 → 14.0.0}/include/tbmintrin.h +0 -0
  167. /package/lib/clang/{12.0.1 → 14.0.0}/include/tgmath.h +0 -0
  168. /package/lib/clang/{12.0.1 → 14.0.0}/include/tsxldtrkintrin.h +0 -0
  169. /package/lib/clang/{12.0.1 → 14.0.0}/include/vadefs.h +0 -0
  170. /package/lib/clang/{12.0.1 → 14.0.0}/include/varargs.h +0 -0
  171. /package/lib/clang/{12.0.1 → 14.0.0}/include/waitpkgintrin.h +0 -0
  172. /package/lib/clang/{12.0.1 → 14.0.0}/include/wbnoinvdintrin.h +0 -0
  173. /package/lib/clang/{12.0.1 → 14.0.0}/include/x86intrin.h +0 -0
  174. /package/lib/clang/{12.0.1 → 14.0.0}/include/xsavecintrin.h +0 -0
  175. /package/lib/clang/{12.0.1 → 14.0.0}/include/xsaveintrin.h +0 -0
  176. /package/lib/clang/{12.0.1 → 14.0.0}/include/xsaveoptintrin.h +0 -0
  177. /package/lib/clang/{12.0.1 → 14.0.0}/include/xsavesintrin.h +0 -0
  178. /package/lib/clang/{12.0.1 → 14.0.0}/include/xtestintrin.h +0 -0
@@ -483,4 +483,36 @@ inline __device__ unsigned __funnelshift_rc(unsigned low32, unsigned high32,
483
483
 
484
484
  #endif // !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 320
485
485
 
486
+ #if CUDA_VERSION >= 11000
487
+ extern "C" {
488
+ __device__ inline size_t __nv_cvta_generic_to_global_impl(const void *__ptr) {
489
+ return (size_t)(void __attribute__((address_space(1))) *)__ptr;
490
+ }
491
+ __device__ inline size_t __nv_cvta_generic_to_shared_impl(const void *__ptr) {
492
+ return (size_t)(void __attribute__((address_space(3))) *)__ptr;
493
+ }
494
+ __device__ inline size_t __nv_cvta_generic_to_constant_impl(const void *__ptr) {
495
+ return (size_t)(void __attribute__((address_space(4))) *)__ptr;
496
+ }
497
+ __device__ inline size_t __nv_cvta_generic_to_local_impl(const void *__ptr) {
498
+ return (size_t)(void __attribute__((address_space(5))) *)__ptr;
499
+ }
500
+ __device__ inline void *__nv_cvta_global_to_generic_impl(size_t __ptr) {
501
+ return (void *)(void __attribute__((address_space(1))) *)__ptr;
502
+ }
503
+ __device__ inline void *__nv_cvta_shared_to_generic_impl(size_t __ptr) {
504
+ return (void *)(void __attribute__((address_space(3))) *)__ptr;
505
+ }
506
+ __device__ inline void *__nv_cvta_constant_to_generic_impl(size_t __ptr) {
507
+ return (void *)(void __attribute__((address_space(4))) *)__ptr;
508
+ }
509
+ __device__ inline void *__nv_cvta_local_to_generic_impl(size_t __ptr) {
510
+ return (void *)(void __attribute__((address_space(5))) *)__ptr;
511
+ }
512
+ __device__ inline uint32_t __nvvm_get_smem_pointer(void *__ptr) {
513
+ return __nv_cvta_generic_to_shared_impl(__ptr);
514
+ }
515
+ } // extern "C"
516
+ #endif // CUDA_VERSION >= 11000
517
+
486
518
  #endif // defined(__CLANG_CUDA_INTRINSICS_H__)
@@ -16,6 +16,7 @@ extern "C" {
16
16
 
17
17
  #if defined(__OPENMP_NVPTX__)
18
18
  #define __DEVICE__
19
+ #pragma omp begin assumes ext_spmd_amenable no_openmp
19
20
  #elif defined(__CUDA__)
20
21
  #define __DEVICE__ __device__
21
22
  #endif
@@ -456,6 +457,11 @@ __DEVICE__ double __nv_y1(double __a);
456
457
  __DEVICE__ float __nv_y1f(float __a);
457
458
  __DEVICE__ float __nv_ynf(int __a, float __b);
458
459
  __DEVICE__ double __nv_yn(int __a, double __b);
460
+
461
+ #if defined(__OPENMP_NVPTX__)
462
+ #pragma omp end assumes ext_spmd_amenable no_openmp
463
+ #endif
464
+
459
465
  #if defined(__cplusplus)
460
466
  } // extern "C"
461
467
  #endif
@@ -166,6 +166,8 @@ __DEVICE__ long long llrint(double __a) { return __nv_llrint(__a); }
166
166
  __DEVICE__ long long llrintf(float __a) { return __nv_llrintf(__a); }
167
167
  __DEVICE__ long long llround(double __a) { return __nv_llround(__a); }
168
168
  __DEVICE__ long long llroundf(float __a) { return __nv_llroundf(__a); }
169
+ __DEVICE__ double round(double __a) { return __nv_round(__a); }
170
+ __DEVICE__ float roundf(float __a) { return __nv_roundf(__a); }
169
171
  __DEVICE__ double log(double __a) { return __nv_log(__a); }
170
172
  __DEVICE__ double log10(double __a) { return __nv_log10(__a); }
171
173
  __DEVICE__ float log10f(float __a) { return __nv_log10f(__a); }
@@ -270,8 +272,6 @@ __DEVICE__ float rnorm4df(float __a, float __b, float __c, float __d) {
270
272
  __DEVICE__ float rnormf(int __dim, const float *__t) {
271
273
  return __nv_rnormf(__dim, __t);
272
274
  }
273
- __DEVICE__ double round(double __a) { return __nv_round(__a); }
274
- __DEVICE__ float roundf(float __a) { return __nv_roundf(__a); }
275
275
  __DEVICE__ double rsqrt(double __a) { return __nv_rsqrt(__a); }
276
276
  __DEVICE__ float rsqrtf(float __a) { return __nv_rsqrtf(__a); }
277
277
  __DEVICE__ double scalbn(double __a, int __b) { return __nv_scalbn(__a, __b); }
@@ -345,4 +345,4 @@ __DEVICE__ float ynf(int __a, float __b) { return __nv_ynf(__a, __b); }
345
345
  #pragma pop_macro("__DEVICE_VOID__")
346
346
  #pragma pop_macro("__FAST_OR_SLOW")
347
347
 
348
- #endif // __CLANG_CUDA_DEVICE_FUNCTIONS_H__
348
+ #endif // __CLANG_CUDA_MATH_H__
@@ -41,6 +41,7 @@
41
41
  #include <cmath>
42
42
  #include <cstdlib>
43
43
  #include <stdlib.h>
44
+ #include <string.h>
44
45
  #undef __CUDACC__
45
46
 
46
47
  // Preserve common macros that will be changed below by us or by CUDA
@@ -64,9 +65,9 @@
64
65
  #endif
65
66
 
66
67
  // Make largest subset of device functions available during host
67
- // compilation -- SM_35 for the time being.
68
+ // compilation.
68
69
  #ifndef __CUDA_ARCH__
69
- #define __CUDA_ARCH__ 350
70
+ #define __CUDA_ARCH__ 9999
70
71
  #endif
71
72
 
72
73
  #include "__clang_cuda_builtin_vars.h"
@@ -205,11 +206,6 @@ inline __host__ double __signbitd(double x) {
205
206
  #endif
206
207
 
207
208
  #if CUDA_VERSION >= 9000
208
- // CUDA-9.2 needs host-side memcpy for some host functions in
209
- // device_functions.hpp
210
- #if CUDA_VERSION >= 9020
211
- #include <string.h>
212
- #endif
213
209
  #include "crt/math_functions.hpp"
214
210
  #else
215
211
  #include "math_functions.hpp"
@@ -275,7 +271,38 @@ static inline __device__ void __brkpt(int __c) { __brkpt(); }
275
271
  #undef __CUDABE__
276
272
  #endif
277
273
  #include "sm_20_atomic_functions.hpp"
274
+ // Predicate functions used in `__builtin_assume` need to have no side effect.
275
+ // However, sm_20_intrinsics.hpp doesn't define them with neither pure nor
276
+ // const attribute. Rename definitions from sm_20_intrinsics.hpp and re-define
277
+ // them as pure ones.
278
+ #pragma push_macro("__isGlobal")
279
+ #pragma push_macro("__isShared")
280
+ #pragma push_macro("__isConstant")
281
+ #pragma push_macro("__isLocal")
282
+ #define __isGlobal __ignored_cuda___isGlobal
283
+ #define __isShared __ignored_cuda___isShared
284
+ #define __isConstant __ignored_cuda___isConstant
285
+ #define __isLocal __ignored_cuda___isLocal
278
286
  #include "sm_20_intrinsics.hpp"
287
+ #pragma pop_macro("__isGlobal")
288
+ #pragma pop_macro("__isShared")
289
+ #pragma pop_macro("__isConstant")
290
+ #pragma pop_macro("__isLocal")
291
+ #pragma push_macro("__DEVICE__")
292
+ #define __DEVICE__ static __device__ __forceinline__ __attribute__((const))
293
+ __DEVICE__ unsigned int __isGlobal(const void *p) {
294
+ return __nvvm_isspacep_global(p);
295
+ }
296
+ __DEVICE__ unsigned int __isShared(const void *p) {
297
+ return __nvvm_isspacep_shared(p);
298
+ }
299
+ __DEVICE__ unsigned int __isConstant(const void *p) {
300
+ return __nvvm_isspacep_const(p);
301
+ }
302
+ __DEVICE__ unsigned int __isLocal(const void *p) {
303
+ return __nvvm_isspacep_local(p);
304
+ }
305
+ #pragma pop_macro("__DEVICE__")
279
306
  #include "sm_32_atomic_functions.hpp"
280
307
 
281
308
  // Don't include sm_30_intrinsics.h and sm_32_intrinsics.h. These define the
@@ -330,6 +357,34 @@ static inline __device__ void __brkpt(int __c) { __brkpt(); }
330
357
 
331
358
  #pragma pop_macro("__host__")
332
359
 
360
+ // __clang_cuda_texture_intrinsics.h must be included first in order to provide
361
+ // implementation for __nv_tex_surf_handler that CUDA's headers depend on.
362
+ // The implementation requires c++11 and only works with CUDA-9 or newer.
363
+ #if __cplusplus >= 201103L && CUDA_VERSION >= 9000
364
+ // clang-format off
365
+ #include <__clang_cuda_texture_intrinsics.h>
366
+ // clang-format on
367
+ #else
368
+ #if CUDA_VERSION >= 9000
369
+ // Provide a hint that texture support needs C++11.
370
+ template <typename T> struct __nv_tex_needs_cxx11 {
371
+ const static bool value = false;
372
+ };
373
+ template <class T>
374
+ __host__ __device__ void __nv_tex_surf_handler(const char *name, T *ptr,
375
+ cudaTextureObject_t obj,
376
+ float x) {
377
+ _Static_assert(__nv_tex_needs_cxx11<T>::value,
378
+ "Texture support requires C++11");
379
+ }
380
+ #else
381
+ // Textures in CUDA-8 and older are not supported by clang.There's no
382
+ // convenient way to intercept texture use in these versions, so we can't
383
+ // produce a meaningful error. The source code that attempts to use textures
384
+ // will continue to fail as it does now.
385
+ #endif // CUDA_VERSION
386
+ #endif // __cplusplus >= 201103L && CUDA_VERSION >= 9000
387
+ #include "texture_fetch_functions.h"
333
388
  #include "texture_indirect_functions.h"
334
389
 
335
390
  // Restore state of __CUDA_ARCH__ and __THROW we had on entry.
@@ -349,9 +404,14 @@ extern "C" {
349
404
  __device__ int vprintf(const char *, const char *);
350
405
  __device__ void free(void *) __attribute((nothrow));
351
406
  __device__ void *malloc(size_t) __attribute((nothrow)) __attribute__((malloc));
407
+
408
+ // __assertfail() used to have a `noreturn` attribute. Unfortunately that
409
+ // contributed to triggering the longstanding bug in ptxas when assert was used
410
+ // in sufficiently convoluted code. See
411
+ // https://bugs.llvm.org/show_bug.cgi?id=27738 for the details.
352
412
  __device__ void __assertfail(const char *__message, const char *__file,
353
413
  unsigned __line, const char *__function,
354
- size_t __charSize) __attribute__((noreturn));
414
+ size_t __charSize);
355
415
 
356
416
  // In order for standard assert() macro on linux to work we need to
357
417
  // provide device-side __assert_fail()