llvm-runtime-resources-darwin 0.0.0 → 23.1.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 (372) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +33 -0
  3. package/include/__clang_cuda_builtin_vars.h +121 -0
  4. package/include/__clang_cuda_cmath.h +512 -0
  5. package/include/__clang_cuda_complex_builtins.h +236 -0
  6. package/include/__clang_cuda_device_functions.h +1572 -0
  7. package/include/__clang_cuda_intrinsics.h +975 -0
  8. package/include/__clang_cuda_libdevice_declares.h +468 -0
  9. package/include/__clang_cuda_math.h +353 -0
  10. package/include/__clang_cuda_math_forward_declares.h +289 -0
  11. package/include/__clang_cuda_runtime_wrapper.h +526 -0
  12. package/include/__clang_cuda_texture_intrinsics.h +1177 -0
  13. package/include/__clang_gpu_builtin_vars.h +71 -0
  14. package/include/__clang_gpu_device_functions.h +411 -0
  15. package/include/__clang_gpu_intrinsics.h +242 -0
  16. package/include/__clang_hip_cmath.h +848 -0
  17. package/include/__clang_hip_libdevice_declares.h +238 -0
  18. package/include/__clang_hip_math.h +1405 -0
  19. package/include/__clang_hip_runtime_wrapper.h +170 -0
  20. package/include/__clang_hip_stdlib.h +43 -0
  21. package/include/__clang_spirv_builtins.h +217 -0
  22. package/include/__clang_spirv_libdevice_declares.h +170 -0
  23. package/include/__clang_spirv_math.h +719 -0
  24. package/include/__float_float.h +176 -0
  25. package/include/__float_header_macro.h +12 -0
  26. package/include/__float_infinity_nan.h +20 -0
  27. package/include/__stdarg___gnuc_va_list.h +13 -0
  28. package/include/__stdarg___va_copy.h +12 -0
  29. package/include/__stdarg_header_macro.h +12 -0
  30. package/include/__stdarg_va_arg.h +22 -0
  31. package/include/__stdarg_va_copy.h +12 -0
  32. package/include/__stdarg_va_list.h +13 -0
  33. package/include/__stddef_header_macro.h +12 -0
  34. package/include/__stddef_max_align_t.h +27 -0
  35. package/include/__stddef_null.h +29 -0
  36. package/include/__stddef_nullptr_t.h +29 -0
  37. package/include/__stddef_offsetof.h +17 -0
  38. package/include/__stddef_ptrdiff_t.h +20 -0
  39. package/include/__stddef_rsize_t.h +20 -0
  40. package/include/__stddef_size_t.h +20 -0
  41. package/include/__stddef_unreachable.h +21 -0
  42. package/include/__stddef_wchar_t.h +28 -0
  43. package/include/__stddef_wint_t.h +15 -0
  44. package/include/__wmmintrin_aes.h +140 -0
  45. package/include/__wmmintrin_pclmul.h +48 -0
  46. package/include/adcintrin.h +165 -0
  47. package/include/adxintrin.h +107 -0
  48. package/include/altivec.h +19434 -0
  49. package/include/amdgpuintrin.h +164 -0
  50. package/include/amdhsa_abi.h +83 -0
  51. package/include/ammintrin.h +183 -0
  52. package/include/amo.h +220 -0
  53. package/include/amxavx512intrin.h +596 -0
  54. package/include/amxcomplexintrin.h +167 -0
  55. package/include/amxfp16intrin.h +93 -0
  56. package/include/amxfp8intrin.h +230 -0
  57. package/include/amxintrin.h +492 -0
  58. package/include/amxmovrsintrin.h +48 -0
  59. package/include/andes_vector.h +21 -0
  60. package/include/arm64_neon.h +21 -0
  61. package/include/arm64intr.h +45 -0
  62. package/include/arm_acle.h +866 -0
  63. package/include/arm_bf16.h +20 -0
  64. package/include/arm_cde.h +410 -0
  65. package/include/arm_cmse.h +217 -0
  66. package/include/arm_fp16.h +596 -0
  67. package/include/arm_mve.h +19187 -0
  68. package/include/arm_neon.h +74351 -0
  69. package/include/arm_neon_sve_bridge.h +182 -0
  70. package/include/arm_sme.h +3753 -0
  71. package/include/arm_sve.h +32698 -0
  72. package/include/arm_vector_types.h +432 -0
  73. package/include/armintr.h +31 -0
  74. package/include/avx10_2_512bf16intrin.h +568 -0
  75. package/include/avx10_2_512convertintrin.h +322 -0
  76. package/include/avx10_2_512minmaxintrin.h +127 -0
  77. package/include/avx10_2_512niintrin.h +314 -0
  78. package/include/avx10_2_512satcvtdsintrin.h +307 -0
  79. package/include/avx10_2_512satcvtintrin.h +301 -0
  80. package/include/avx10_2bf16intrin.h +1094 -0
  81. package/include/avx10_2convertintrin.h +3257 -0
  82. package/include/avx10_2copyintrin.h +66 -0
  83. package/include/avx10_2minmaxintrin.h +232 -0
  84. package/include/avx10_2niintrin.h +409 -0
  85. package/include/avx10_2satcvtdsintrin.h +376 -0
  86. package/include/avx10_2satcvtintrin.h +312 -0
  87. package/include/avx2intrin.h +5190 -0
  88. package/include/avx512bf16intrin.h +292 -0
  89. package/include/avx512bitalgintrin.h +75 -0
  90. package/include/avx512bmmintrin.h +174 -0
  91. package/include/avx512bmmvlintrin.h +245 -0
  92. package/include/avx512bwintrin.h +1885 -0
  93. package/include/avx512cdintrin.h +112 -0
  94. package/include/avx512dqintrin.h +1350 -0
  95. package/include/avx512fintrin.h +9351 -0
  96. package/include/avx512fp16intrin.h +3349 -0
  97. package/include/avx512ifmaintrin.h +68 -0
  98. package/include/avx512ifmavlintrin.h +138 -0
  99. package/include/avx512vbmi2intrin.h +364 -0
  100. package/include/avx512vbmiintrin.h +98 -0
  101. package/include/avx512vbmivlintrin.h +179 -0
  102. package/include/avx512vlbf16intrin.h +527 -0
  103. package/include/avx512vlbitalgintrin.h +135 -0
  104. package/include/avx512vlbwintrin.h +3052 -0
  105. package/include/avx512vlcdintrin.h +202 -0
  106. package/include/avx512vldqintrin.h +1156 -0
  107. package/include/avx512vlfp16intrin.h +2090 -0
  108. package/include/avx512vlintrin.h +8067 -0
  109. package/include/avx512vlvbmi2intrin.h +702 -0
  110. package/include/avx512vlvnniintrin.h +308 -0
  111. package/include/avx512vlvp2intersectintrin.h +123 -0
  112. package/include/avx512vnniintrin.h +113 -0
  113. package/include/avx512vp2intersectintrin.h +77 -0
  114. package/include/avx512vpopcntdqintrin.h +62 -0
  115. package/include/avx512vpopcntdqvlintrin.h +105 -0
  116. package/include/avxifmaintrin.h +193 -0
  117. package/include/avxintrin.h +5064 -0
  118. package/include/avxneconvertintrin.h +484 -0
  119. package/include/avxvnniint16intrin.h +451 -0
  120. package/include/avxvnniint8intrin.h +454 -0
  121. package/include/avxvnniintrin.h +238 -0
  122. package/include/bmi2intrin.h +253 -0
  123. package/include/bmiintrin.h +604 -0
  124. package/include/builtins.h +19 -0
  125. package/include/cet.h +66 -0
  126. package/include/cetintrin.h +115 -0
  127. package/include/cldemoteintrin.h +36 -0
  128. package/include/clflushoptintrin.h +36 -0
  129. package/include/clwbintrin.h +38 -0
  130. package/include/clzerointrin.h +38 -0
  131. package/include/cmpccxaddintrin.h +70 -0
  132. package/include/cpuid.h +451 -0
  133. package/include/crc32intrin.h +102 -0
  134. package/include/cuda_wrappers/__utility/declval.h +28 -0
  135. package/include/cuda_wrappers/algorithm +116 -0
  136. package/include/cuda_wrappers/bits/basic_string.h +9 -0
  137. package/include/cuda_wrappers/bits/basic_string.tcc +9 -0
  138. package/include/cuda_wrappers/bits/c++config.h +61 -0
  139. package/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
  140. package/include/cuda_wrappers/cmath +44 -0
  141. package/include/cuda_wrappers/complex +90 -0
  142. package/include/cuda_wrappers/new +108 -0
  143. package/include/emmintrin.h +4940 -0
  144. package/include/endian.h +91 -0
  145. package/include/enqcmdintrin.h +63 -0
  146. package/include/f16cintrin.h +176 -0
  147. package/include/float.h +48 -0
  148. package/include/fma4intrin.h +220 -0
  149. package/include/fmaintrin.h +826 -0
  150. package/include/fuzzer/FuzzedDataProvider.h +397 -0
  151. package/include/fxsrintrin.h +91 -0
  152. package/include/gfniintrin.h +238 -0
  153. package/include/gpuintrin.h +348 -0
  154. package/include/hexagon_circ_brev_intrinsics.h +298 -0
  155. package/include/hexagon_protos.h +8439 -0
  156. package/include/hexagon_types.h +2628 -0
  157. package/include/hlsl_alias_intrinsics_gen.inc +3869 -0
  158. package/include/hlsl_inline_intrinsics_gen.inc +546 -0
  159. package/include/hresetintrin.h +49 -0
  160. package/include/htmintrin.h +212 -0
  161. package/include/htmxlintrin.h +345 -0
  162. package/include/hvx_hexagon_protos.h +5421 -0
  163. package/include/ia32intrin.h +863 -0
  164. package/include/immintrin.h +597 -0
  165. package/include/intrin.h +501 -0
  166. package/include/intrin0.h +256 -0
  167. package/include/inttypes.h +101 -0
  168. package/include/invpcidintrin.h +23 -0
  169. package/include/iso646.h +31 -0
  170. package/include/keylockerintrin.h +518 -0
  171. package/include/larchintrin.h +262 -0
  172. package/include/lasxintrin.h +3999 -0
  173. package/include/limits.h +133 -0
  174. package/include/llvm_libc_wrappers/assert.h +32 -0
  175. package/include/llvm_libc_wrappers/ctype.h +29 -0
  176. package/include/llvm_libc_wrappers/inttypes.h +32 -0
  177. package/include/llvm_libc_wrappers/stdio.h +52 -0
  178. package/include/llvm_libc_wrappers/stdlib.h +32 -0
  179. package/include/llvm_libc_wrappers/string.h +29 -0
  180. package/include/llvm_libc_wrappers/time.h +28 -0
  181. package/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  182. package/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  183. package/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  184. package/include/lsxintrin.h +3752 -0
  185. package/include/lwpintrin.h +136 -0
  186. package/include/lzcntintrin.h +109 -0
  187. package/include/mm3dnow.h +22 -0
  188. package/include/mm_malloc.h +67 -0
  189. package/include/mmintrin.h +1541 -0
  190. package/include/module.modulemap +375 -0
  191. package/include/movdirintrin.h +49 -0
  192. package/include/movrs_avx10_2_512intrin.h +98 -0
  193. package/include/movrs_avx10_2intrin.h +174 -0
  194. package/include/movrsintrin.h +59 -0
  195. package/include/msa.h +573 -0
  196. package/include/mwaitxintrin.h +62 -0
  197. package/include/nmmintrin.h +20 -0
  198. package/include/nvptxintrin.h +208 -0
  199. package/include/opencl-c-base.h +765 -0
  200. package/include/opencl-c.h +18737 -0
  201. package/include/openmp_wrappers/__clang_openmp_device_functions.h +118 -0
  202. package/include/openmp_wrappers/cmath +132 -0
  203. package/include/openmp_wrappers/complex +61 -0
  204. package/include/openmp_wrappers/complex.h +41 -0
  205. package/include/openmp_wrappers/complex_cmath.h +393 -0
  206. package/include/openmp_wrappers/math.h +71 -0
  207. package/include/openmp_wrappers/new +48 -0
  208. package/include/pconfigintrin.h +40 -0
  209. package/include/pkuintrin.h +34 -0
  210. package/include/pmmintrin.h +302 -0
  211. package/include/popcntintrin.h +59 -0
  212. package/include/ppc_wrappers/bmi2intrin.h +134 -0
  213. package/include/ppc_wrappers/bmiintrin.h +165 -0
  214. package/include/ppc_wrappers/emmintrin.h +2269 -0
  215. package/include/ppc_wrappers/immintrin.h +27 -0
  216. package/include/ppc_wrappers/mm_malloc.h +45 -0
  217. package/include/ppc_wrappers/mmintrin.h +1453 -0
  218. package/include/ppc_wrappers/nmmintrin.h +26 -0
  219. package/include/ppc_wrappers/pmmintrin.h +145 -0
  220. package/include/ppc_wrappers/smmintrin.h +683 -0
  221. package/include/ppc_wrappers/tmmintrin.h +453 -0
  222. package/include/ppc_wrappers/x86gprintrin.h +17 -0
  223. package/include/ppc_wrappers/x86intrin.h +28 -0
  224. package/include/ppc_wrappers/xmmintrin.h +1827 -0
  225. package/include/prfchiintrin.h +61 -0
  226. package/include/prfchwintrin.h +57 -0
  227. package/include/profile/InstrProfData.inc +1063 -0
  228. package/include/profile/instr_prof_interface.h +88 -0
  229. package/include/ptrauth.h +485 -0
  230. package/include/ptwriteintrin.h +37 -0
  231. package/include/raointintrin.h +203 -0
  232. package/include/rdpruintrin.h +57 -0
  233. package/include/rdseedintrin.h +105 -0
  234. package/include/riscv_bitmanip.h +202 -0
  235. package/include/riscv_corev_alu.h +130 -0
  236. package/include/riscv_crypto.h +178 -0
  237. package/include/riscv_mips.h +36 -0
  238. package/include/riscv_nds.h +92 -0
  239. package/include/riscv_ntlh.h +28 -0
  240. package/include/riscv_packed_simd.h +644 -0
  241. package/include/riscv_vector.h +465 -0
  242. package/include/rtmintrin.h +45 -0
  243. package/include/s390intrin.h +25 -0
  244. package/include/sanitizer/allocator_interface.h +106 -0
  245. package/include/sanitizer/asan_interface.h +398 -0
  246. package/include/sanitizer/common_interface_defs.h +507 -0
  247. package/include/sanitizer/coverage_interface.h +36 -0
  248. package/include/sanitizer/dfsan_interface.h +220 -0
  249. package/include/sanitizer/hwasan_interface.h +109 -0
  250. package/include/sanitizer/linux_syscall_hooks.h +3112 -0
  251. package/include/sanitizer/lsan_interface.h +89 -0
  252. package/include/sanitizer/msan_interface.h +135 -0
  253. package/include/sanitizer/netbsd_syscall_hooks.h +5005 -0
  254. package/include/sanitizer/rtsan_interface.h +75 -0
  255. package/include/sanitizer/safestack_interface.h +50 -0
  256. package/include/sanitizer/scudo_interface.h +38 -0
  257. package/include/sanitizer/tsan_interface.h +316 -0
  258. package/include/sanitizer/tsan_interface_atomic.h +223 -0
  259. package/include/sanitizer/tysan_interface.h +36 -0
  260. package/include/sanitizer/ubsan_interface.h +64 -0
  261. package/include/serializeintrin.h +30 -0
  262. package/include/sgxintrin.h +60 -0
  263. package/include/sha512intrin.h +200 -0
  264. package/include/shaintrin.h +190 -0
  265. package/include/sifive_vector.h +192 -0
  266. package/include/sm3intrin.h +238 -0
  267. package/include/sm4evexintrin.h +32 -0
  268. package/include/sm4intrin.h +269 -0
  269. package/include/smmintrin.h +2352 -0
  270. package/include/spirvintrin.h +167 -0
  271. package/include/stdalign.h +24 -0
  272. package/include/stdarg.h +75 -0
  273. package/include/stdatomic.h +204 -0
  274. package/include/stdbool.h +39 -0
  275. package/include/stdckdint.h +42 -0
  276. package/include/stdcountof.h +15 -0
  277. package/include/stddef.h +139 -0
  278. package/include/stddefer.h +19 -0
  279. package/include/stdint.h +835 -0
  280. package/include/stdnoreturn.h +35 -0
  281. package/include/tbmintrin.h +128 -0
  282. package/include/tgmath.h +1368 -0
  283. package/include/tmmintrin.h +779 -0
  284. package/include/tsxldtrkintrin.h +56 -0
  285. package/include/uintrintrin.h +157 -0
  286. package/include/unwind.h +332 -0
  287. package/include/usermsrintrin.h +51 -0
  288. package/include/vadefs.h +51 -0
  289. package/include/vaesintrin.h +86 -0
  290. package/include/varargs.h +16 -0
  291. package/include/vecintrin.h +12868 -0
  292. package/include/velintrin.h +71 -0
  293. package/include/velintrin_approx.h +120 -0
  294. package/include/velintrin_gen.h +1257 -0
  295. package/include/vpclmulqdqintrin.h +30 -0
  296. package/include/waitpkgintrin.h +42 -0
  297. package/include/wasm_simd128.h +2160 -0
  298. package/include/wbnoinvdintrin.h +24 -0
  299. package/include/wmmintrin.h +23 -0
  300. package/include/x86gprintrin.h +49 -0
  301. package/include/x86intrin.h +35 -0
  302. package/include/xmmintrin.h +3176 -0
  303. package/include/xopintrin.h +780 -0
  304. package/include/xsavecintrin.h +84 -0
  305. package/include/xsaveintrin.h +63 -0
  306. package/include/xsaveoptintrin.h +34 -0
  307. package/include/xsavesintrin.h +44 -0
  308. package/include/xtestintrin.h +27 -0
  309. package/include/yvals_core.h +25 -0
  310. package/include/zos_wrappers/builtins.h +18 -0
  311. package/include/zos_wrappers/grp.h +19 -0
  312. package/include/zos_wrappers/locale.h +19 -0
  313. package/include/zos_wrappers/math.h +31 -0
  314. package/include/zos_wrappers/poll.h +19 -0
  315. package/include/zos_wrappers/stdlib.h +20 -0
  316. package/include/zos_wrappers/string.h +19 -0
  317. package/include/zos_wrappers/time.h +19 -0
  318. package/include/zos_wrappers/variant.h +19 -0
  319. package/index.js +5 -0
  320. package/lib/darwin/libclang_rt.asan_abi_ios.a +0 -0
  321. package/lib/darwin/libclang_rt.asan_abi_iossim.a +0 -0
  322. package/lib/darwin/libclang_rt.asan_abi_osx.a +0 -0
  323. package/lib/darwin/libclang_rt.asan_ios_dynamic.dylib +0 -0
  324. package/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib +0 -0
  325. package/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
  326. package/lib/darwin/libclang_rt.cc_kext.a +0 -0
  327. package/lib/darwin/libclang_rt.cc_kext_ios.a +0 -0
  328. package/lib/darwin/libclang_rt.fuzzer_interceptors_ios.a +0 -0
  329. package/lib/darwin/libclang_rt.fuzzer_interceptors_iossim.a +0 -0
  330. package/lib/darwin/libclang_rt.fuzzer_interceptors_osx.a +0 -0
  331. package/lib/darwin/libclang_rt.fuzzer_ios.a +0 -0
  332. package/lib/darwin/libclang_rt.fuzzer_iossim.a +0 -0
  333. package/lib/darwin/libclang_rt.fuzzer_no_main_ios.a +0 -0
  334. package/lib/darwin/libclang_rt.fuzzer_no_main_iossim.a +0 -0
  335. package/lib/darwin/libclang_rt.fuzzer_no_main_osx.a +0 -0
  336. package/lib/darwin/libclang_rt.fuzzer_osx.a +0 -0
  337. package/lib/darwin/libclang_rt.ios.a +0 -0
  338. package/lib/darwin/libclang_rt.iossim.a +0 -0
  339. package/lib/darwin/libclang_rt.lsan_ios_dynamic.dylib +0 -0
  340. package/lib/darwin/libclang_rt.lsan_iossim_dynamic.dylib +0 -0
  341. package/lib/darwin/libclang_rt.lsan_osx_dynamic.dylib +0 -0
  342. package/lib/darwin/libclang_rt.osx.a +0 -0
  343. package/lib/darwin/libclang_rt.profile_ios.a +0 -0
  344. package/lib/darwin/libclang_rt.profile_iossim.a +0 -0
  345. package/lib/darwin/libclang_rt.profile_osx.a +0 -0
  346. package/lib/darwin/libclang_rt.rtsan_ios_dynamic.dylib +0 -0
  347. package/lib/darwin/libclang_rt.rtsan_iossim_dynamic.dylib +0 -0
  348. package/lib/darwin/libclang_rt.rtsan_osx_dynamic.dylib +0 -0
  349. package/lib/darwin/libclang_rt.stats_client_ios.a +0 -0
  350. package/lib/darwin/libclang_rt.stats_client_iossim.a +0 -0
  351. package/lib/darwin/libclang_rt.stats_client_osx.a +0 -0
  352. package/lib/darwin/libclang_rt.stats_ios_dynamic.dylib +0 -0
  353. package/lib/darwin/libclang_rt.stats_iossim_dynamic.dylib +0 -0
  354. package/lib/darwin/libclang_rt.stats_osx_dynamic.dylib +0 -0
  355. package/lib/darwin/libclang_rt.tsan_ios_dynamic.dylib +0 -0
  356. package/lib/darwin/libclang_rt.tsan_iossim_dynamic.dylib +0 -0
  357. package/lib/darwin/libclang_rt.tsan_osx_dynamic.dylib +0 -0
  358. package/lib/darwin/libclang_rt.tysan_ios_dynamic.dylib +0 -0
  359. package/lib/darwin/libclang_rt.tysan_iossim_dynamic.dylib +0 -0
  360. package/lib/darwin/libclang_rt.tysan_osx_dynamic.dylib +0 -0
  361. package/lib/darwin/libclang_rt.ubsan_ios_dynamic.dylib +0 -0
  362. package/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib +0 -0
  363. package/lib/darwin/libclang_rt.ubsan_minimal_ios.a +0 -0
  364. package/lib/darwin/libclang_rt.ubsan_minimal_ios_dynamic.dylib +0 -0
  365. package/lib/darwin/libclang_rt.ubsan_minimal_iossim.a +0 -0
  366. package/lib/darwin/libclang_rt.ubsan_minimal_iossim_dynamic.dylib +0 -0
  367. package/lib/darwin/libclang_rt.ubsan_minimal_osx.a +0 -0
  368. package/lib/darwin/libclang_rt.ubsan_minimal_osx_dynamic.dylib +0 -0
  369. package/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib +0 -0
  370. package/package.json +40 -1
  371. package/share/asan_ignorelist.txt +14 -0
  372. package/share/cfi_ignorelist.txt +17 -0
@@ -0,0 +1,116 @@
1
+ /*===---- algorithm - CUDA wrapper for <algorithm> -------------------------===
2
+ *
3
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ * of this software and associated documentation files (the "Software"), to deal
5
+ * in the Software without restriction, including without limitation the rights
6
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ * copies of the Software, and to permit persons to whom the Software is
8
+ * furnished to do so, subject to the following conditions:
9
+ *
10
+ * The above copyright notice and this permission notice shall be included in
11
+ * all copies or substantial portions of the Software.
12
+ *
13
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ * THE SOFTWARE.
20
+ *
21
+ *===-----------------------------------------------------------------------===
22
+ */
23
+
24
+ #ifndef __CLANG_CUDA_WRAPPERS_ALGORITHM
25
+ #define __CLANG_CUDA_WRAPPERS_ALGORITHM
26
+
27
+ // This header defines __device__ overloads of std::min/max.
28
+ //
29
+ // Ideally we'd declare these functions only if we're <= C++11. In C++14,
30
+ // these functions are constexpr, and so are implicitly __host__ __device__.
31
+ //
32
+ // However, the compiler being in C++14 mode does not imply that the standard
33
+ // library supports C++14. There is no macro we can test to check that the
34
+ // stdlib has constexpr std::min/max. Thus we have to unconditionally define
35
+ // our device overloads.
36
+ //
37
+ // A host+device function cannot be overloaded, and a constexpr function
38
+ // implicitly become host device if there's no explicitly host or device
39
+ // overload preceding it. So the simple thing to do would be to declare our
40
+ // device min/max overloads, and then #include_next <algorithm>. This way our
41
+ // device overloads would come first, and so if we have a C++14 stdlib, its
42
+ // min/max won't become host+device and conflict with our device overloads.
43
+ //
44
+ // But that also doesn't work. libstdc++ is evil and declares std::min/max in
45
+ // an internal header that is included *before* <algorithm>. Thus by the time
46
+ // we're inside of this file, std::min/max may already have been declared, and
47
+ // thus we can't prevent them from becoming host+device if they're constexpr.
48
+ //
49
+ // Therefore we perpetrate the following hack: We mark our __device__ overloads
50
+ // with __attribute__((enable_if(true, ""))). This causes the signature of the
51
+ // function to change without changing anything else about it. (Except that
52
+ // overload resolution will prefer it over the __host__ __device__ version
53
+ // rather than considering them equally good).
54
+
55
+ #include_next <algorithm>
56
+
57
+ // We need to define these overloads in exactly the namespace our standard
58
+ // library uses (including the right inline namespace), otherwise they won't be
59
+ // picked up by other functions in the standard library (e.g. functions in
60
+ // <complex>). Thus the ugliness below.
61
+ #ifdef _LIBCPP_BEGIN_NAMESPACE_STD
62
+ _LIBCPP_BEGIN_NAMESPACE_STD
63
+ #else
64
+ namespace std {
65
+ #ifdef _GLIBCXX_BEGIN_NAMESPACE_VERSION
66
+ _GLIBCXX_BEGIN_NAMESPACE_VERSION
67
+ #endif
68
+ #endif
69
+
70
+ #pragma push_macro("_CPP14_CONSTEXPR")
71
+ #if __cplusplus >= 201402L
72
+ #define _CPP14_CONSTEXPR constexpr
73
+ #else
74
+ #define _CPP14_CONSTEXPR
75
+ #endif
76
+
77
+ template <class __T, class __Cmp>
78
+ __attribute__((enable_if(true, "")))
79
+ inline _CPP14_CONSTEXPR __host__ __device__ const __T &
80
+ max(const __T &__a, const __T &__b, __Cmp __cmp) {
81
+ return __cmp(__a, __b) ? __b : __a;
82
+ }
83
+
84
+ template <class __T>
85
+ __attribute__((enable_if(true, "")))
86
+ inline _CPP14_CONSTEXPR __host__ __device__ const __T &
87
+ max(const __T &__a, const __T &__b) {
88
+ return __a < __b ? __b : __a;
89
+ }
90
+
91
+ template <class __T, class __Cmp>
92
+ __attribute__((enable_if(true, "")))
93
+ inline _CPP14_CONSTEXPR __host__ __device__ const __T &
94
+ min(const __T &__a, const __T &__b, __Cmp __cmp) {
95
+ return __cmp(__b, __a) ? __b : __a;
96
+ }
97
+
98
+ template <class __T>
99
+ __attribute__((enable_if(true, "")))
100
+ inline _CPP14_CONSTEXPR __host__ __device__ const __T &
101
+ min(const __T &__a, const __T &__b) {
102
+ return __b < __a ? __b : __a;
103
+ }
104
+
105
+ #pragma pop_macro("_CPP14_CONSTEXPR")
106
+
107
+ #ifdef _LIBCPP_END_NAMESPACE_STD
108
+ _LIBCPP_END_NAMESPACE_STD
109
+ #else
110
+ #ifdef _GLIBCXX_BEGIN_NAMESPACE_VERSION
111
+ _GLIBCXX_END_NAMESPACE_VERSION
112
+ #endif
113
+ } // namespace std
114
+ #endif
115
+
116
+ #endif // __CLANG_CUDA_WRAPPERS_ALGORITHM
@@ -0,0 +1,9 @@
1
+ // CUDA headers define __noinline__ which interferes with libstdc++'s use of
2
+ // `__attribute((__noinline__))`. In order to avoid compilation error,
3
+ // temporarily unset __noinline__ when we include affected libstdc++ header.
4
+
5
+ #pragma push_macro("__noinline__")
6
+ #undef __noinline__
7
+ #include_next "bits/basic_string.h"
8
+
9
+ #pragma pop_macro("__noinline__")
@@ -0,0 +1,9 @@
1
+ // CUDA headers define __noinline__ which interferes with libstdc++'s use of
2
+ // `__attribute((__noinline__))`. In order to avoid compilation error,
3
+ // temporarily unset __noinline__ when we include affected libstdc++ header.
4
+
5
+ #pragma push_macro("__noinline__")
6
+ #undef __noinline__
7
+ #include_next "bits/basic_string.tcc"
8
+
9
+ #pragma pop_macro("__noinline__")
@@ -0,0 +1,61 @@
1
+ // libstdc++ uses the non-constexpr function std::__glibcxx_assert_fail()
2
+ // to trigger compilation errors when the __glibcxx_assert(cond) macro
3
+ // is used in a constexpr context.
4
+ // Compilation fails when using code from the libstdc++ (such as std::array) on
5
+ // device code, since these assertions invoke a non-constexpr host function from
6
+ // device code.
7
+ //
8
+ // To work around this issue, we declare our own device version of the function
9
+
10
+ #ifndef __CLANG_CUDA_WRAPPERS_BITS_CPP_CONFIG
11
+ #define __CLANG_CUDA_WRAPPERS_BITS_CPP_CONFIG
12
+
13
+ #include_next <bits/c++config.h>
14
+
15
+ #ifdef _LIBCPP_BEGIN_NAMESPACE_STD
16
+ _LIBCPP_BEGIN_NAMESPACE_STD
17
+ #else
18
+ namespace std {
19
+ #ifdef _GLIBCXX_BEGIN_NAMESPACE_VERSION
20
+ _GLIBCXX_BEGIN_NAMESPACE_VERSION
21
+ #endif
22
+
23
+ #pragma push_macro("CUDA_NOEXCEPT")
24
+ #if __cplusplus >= 201103L
25
+ #define CUDA_NOEXCEPT noexcept
26
+ #else
27
+ #define CUDA_NOEXCEPT
28
+ #endif
29
+
30
+ __attribute__((device, noreturn)) inline void
31
+ __glibcxx_assert_fail(const char *file, int line, const char *function,
32
+ const char *condition) CUDA_NOEXCEPT {
33
+ #ifdef _GLIBCXX_VERBOSE_ASSERT
34
+ if (file && function && condition)
35
+ __builtin_printf("%s:%d: %s: Assertion '%s' failed.\n", file, line,
36
+ function, condition);
37
+ else if (function)
38
+ __builtin_printf("%s: Undefined behavior detected.\n", function);
39
+ #endif
40
+ __builtin_abort();
41
+ }
42
+
43
+ #endif
44
+ __attribute__((device, noreturn, __always_inline__,
45
+ __visibility__("default"))) inline void
46
+ __glibcxx_assert_fail() CUDA_NOEXCEPT {
47
+ __builtin_abort();
48
+ }
49
+
50
+ #pragma pop_macro("CUDA_NOEXCEPT")
51
+
52
+ #ifdef _LIBCPP_END_NAMESPACE_STD
53
+ _LIBCPP_END_NAMESPACE_STD
54
+ #else
55
+ #ifdef _GLIBCXX_BEGIN_NAMESPACE_VERSION
56
+ _GLIBCXX_END_NAMESPACE_VERSION
57
+ #endif
58
+ } // namespace std
59
+ #endif
60
+
61
+ #endif
@@ -0,0 +1,9 @@
1
+ // CUDA headers define __noinline__ which interferes with libstdc++'s use of
2
+ // `__attribute((__noinline__))`. In order to avoid compilation error,
3
+ // temporarily unset __noinline__ when we include affected libstdc++ header.
4
+
5
+ #pragma push_macro("__noinline__")
6
+ #undef __noinline__
7
+ #include_next "bits/shared_ptr_base.h"
8
+
9
+ #pragma pop_macro("__noinline__")
@@ -0,0 +1,44 @@
1
+ /*===---- cmath - CUDA wrapper for <cmath> ---------------------------------===
2
+ *
3
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ * of this software and associated documentation files (the "Software"), to deal
5
+ * in the Software without restriction, including without limitation the rights
6
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ * copies of the Software, and to permit persons to whom the Software is
8
+ * furnished to do so, subject to the following conditions:
9
+ *
10
+ * The above copyright notice and this permission notice shall be included in
11
+ * all copies or substantial portions of the Software.
12
+ *
13
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ * THE SOFTWARE.
20
+ *
21
+ *===-----------------------------------------------------------------------===
22
+ */
23
+
24
+ #ifndef __CLANG_CUDA_WRAPPERS_CMATH
25
+ #define __CLANG_CUDA_WRAPPERS_CMATH
26
+
27
+ #if __has_include_next(<cmath>)
28
+ #include_next <cmath>
29
+ #else
30
+ #error "Could not find standard C++ header 'cmath'. Add -v to your compilation command to check the include paths being searched. You may need to install the appropriate standard C++ library package corresponding to the search path."
31
+ #endif
32
+
33
+ #if defined(_LIBCPP_STD_VER)
34
+
35
+ // libc++ will need long double variants of these functions, but CUDA does not
36
+ // provide them. We'll provide their declarations, which should allow the
37
+ // headers to parse, but would not allow accidental use of them on a GPU.
38
+
39
+ __attribute__((device)) long double logb(long double);
40
+ __attribute__((device)) long double scalbn(long double, int);
41
+
42
+ #endif // _LIBCPP_STD_VER
43
+
44
+ #endif // include guard
@@ -0,0 +1,90 @@
1
+ /*===---- complex - CUDA wrapper for <complex> ------------------------------===
2
+ *
3
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ * of this software and associated documentation files (the "Software"), to deal
5
+ * in the Software without restriction, including without limitation the rights
6
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ * copies of the Software, and to permit persons to whom the Software is
8
+ * furnished to do so, subject to the following conditions:
9
+ *
10
+ * The above copyright notice and this permission notice shall be included in
11
+ * all copies or substantial portions of the Software.
12
+ *
13
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ * THE SOFTWARE.
20
+ *
21
+ *===-----------------------------------------------------------------------===
22
+ */
23
+
24
+ #ifndef __CLANG_CUDA_WRAPPERS_COMPLEX
25
+ #define __CLANG_CUDA_WRAPPERS_COMPLEX
26
+
27
+ // Wrapper around <complex> that forces its functions to be __host__
28
+ // __device__.
29
+
30
+ // First, include host-only headers we think are likely to be included by
31
+ // <complex>, so that the pragma below only applies to <complex> itself.
32
+ #if __cplusplus >= 201103L
33
+ #include <type_traits>
34
+ #endif
35
+ #include <stdexcept>
36
+ #include <cmath>
37
+ #include <sstream>
38
+
39
+ // Next, include our <algorithm> wrapper, to ensure that device overloads of
40
+ // std::min/max are available.
41
+ #include <algorithm>
42
+
43
+ #pragma clang force_cuda_host_device begin
44
+
45
+ // When compiling for device, ask libstdc++ to use its own implements of
46
+ // complex functions, rather than calling builtins (which resolve to library
47
+ // functions that don't exist when compiling CUDA device code).
48
+ //
49
+ // This is a little dicey, because it causes libstdc++ to define a different
50
+ // set of overloads on host and device.
51
+ //
52
+ // // Present only when compiling for host.
53
+ // __host__ __device__ void complex<float> sin(const complex<float>& x) {
54
+ // return __builtin_csinf(x);
55
+ // }
56
+ //
57
+ // // Present when compiling for host and for device.
58
+ // template <typename T>
59
+ // void __host__ __device__ complex<T> sin(const complex<T>& x) {
60
+ // return complex<T>(sin(x.real()) * cosh(x.imag()),
61
+ // cos(x.real()), sinh(x.imag()));
62
+ // }
63
+ //
64
+ // This is safe because when compiling for device, all function calls in
65
+ // __host__ code to sin() will still resolve to *something*, even if they don't
66
+ // resolve to the same function as they resolve to when compiling for host. We
67
+ // don't care that they don't resolve to the right function because we won't
68
+ // codegen this host code when compiling for device.
69
+
70
+ #pragma push_macro("_GLIBCXX_USE_C99_COMPLEX")
71
+ #pragma push_macro("_GLIBCXX_USE_C99_COMPLEX_TR1")
72
+ #define _GLIBCXX_USE_C99_COMPLEX 0
73
+ #define _GLIBCXX_USE_C99_COMPLEX_TR1 0
74
+
75
+ // Work around a compatibility issue with libstdc++ 11.1.0
76
+ // https://bugs.llvm.org/show_bug.cgi?id=50383
77
+ #pragma push_macro("__failed_assertion")
78
+ #if _GLIBCXX_RELEASE == 11
79
+ #define __failed_assertion __cuda_failed_assertion
80
+ #endif
81
+
82
+ #include_next <complex>
83
+
84
+ #pragma pop_macro("__failed_assertion")
85
+ #pragma pop_macro("_GLIBCXX_USE_C99_COMPLEX_TR1")
86
+ #pragma pop_macro("_GLIBCXX_USE_C99_COMPLEX")
87
+
88
+ #pragma clang force_cuda_host_device end
89
+
90
+ #endif // include guard
@@ -0,0 +1,108 @@
1
+ /*===---- new - CUDA wrapper for <new> -------------------------------------===
2
+ *
3
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ * of this software and associated documentation files (the "Software"), to deal
5
+ * in the Software without restriction, including without limitation the rights
6
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ * copies of the Software, and to permit persons to whom the Software is
8
+ * furnished to do so, subject to the following conditions:
9
+ *
10
+ * The above copyright notice and this permission notice shall be included in
11
+ * all copies or substantial portions of the Software.
12
+ *
13
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ * THE SOFTWARE.
20
+ *
21
+ *===-----------------------------------------------------------------------===
22
+ */
23
+
24
+ #ifndef __CLANG_CUDA_WRAPPERS_NEW
25
+ #define __CLANG_CUDA_WRAPPERS_NEW
26
+
27
+ #include_next <new>
28
+
29
+ #if !defined(__device__)
30
+ // The header has been included too early from the standard C++ library
31
+ // and CUDA-specific macros are not available yet.
32
+ // Undo the include guard and try again later.
33
+ #undef __CLANG_CUDA_WRAPPERS_NEW
34
+ #else
35
+
36
+ #pragma push_macro("CUDA_NOEXCEPT")
37
+ #if __cplusplus >= 201103L
38
+ #define CUDA_NOEXCEPT noexcept
39
+ #else
40
+ #define CUDA_NOEXCEPT
41
+ #endif
42
+
43
+ // Device overrides for non-placement new and delete.
44
+ __device__ inline void *operator new(__SIZE_TYPE__ size) {
45
+ if (size == 0) {
46
+ size = 1;
47
+ }
48
+ return ::malloc(size);
49
+ }
50
+ __device__ inline void *operator new(__SIZE_TYPE__ size,
51
+ const std::nothrow_t &) CUDA_NOEXCEPT {
52
+ return ::operator new(size);
53
+ }
54
+
55
+ __device__ inline void *operator new[](__SIZE_TYPE__ size) {
56
+ return ::operator new(size);
57
+ }
58
+ __device__ inline void *operator new[](__SIZE_TYPE__ size,
59
+ const std::nothrow_t &) {
60
+ return ::operator new(size);
61
+ }
62
+
63
+ __device__ inline void operator delete(void* ptr) CUDA_NOEXCEPT {
64
+ if (ptr) {
65
+ ::free(ptr);
66
+ }
67
+ }
68
+ __device__ inline void operator delete(void *ptr,
69
+ const std::nothrow_t &) CUDA_NOEXCEPT {
70
+ ::operator delete(ptr);
71
+ }
72
+
73
+ __device__ inline void operator delete[](void* ptr) CUDA_NOEXCEPT {
74
+ ::operator delete(ptr);
75
+ }
76
+ __device__ inline void operator delete[](void *ptr,
77
+ const std::nothrow_t &) CUDA_NOEXCEPT {
78
+ ::operator delete(ptr);
79
+ }
80
+
81
+ // Sized delete, C++14 only.
82
+ #if __cplusplus >= 201402L
83
+ __device__ inline void operator delete(void *ptr,
84
+ __SIZE_TYPE__ size) CUDA_NOEXCEPT {
85
+ ::operator delete(ptr);
86
+ }
87
+ __device__ inline void operator delete[](void *ptr,
88
+ __SIZE_TYPE__ size) CUDA_NOEXCEPT {
89
+ ::operator delete(ptr);
90
+ }
91
+ #endif
92
+
93
+ // Device overrides for placement new and delete.
94
+ #if !(_LIBCPP_STD_VER >= 26 || __cpp_lib_constexpr_new >= 202406L)
95
+ __device__ inline void *operator new(__SIZE_TYPE__, void *__ptr) CUDA_NOEXCEPT {
96
+ return __ptr;
97
+ }
98
+ __device__ inline void *operator new[](__SIZE_TYPE__, void *__ptr) CUDA_NOEXCEPT {
99
+ return __ptr;
100
+ }
101
+ #endif
102
+ __device__ inline void operator delete(void *, void *) CUDA_NOEXCEPT {}
103
+ __device__ inline void operator delete[](void *, void *) CUDA_NOEXCEPT {}
104
+
105
+ #pragma pop_macro("CUDA_NOEXCEPT")
106
+
107
+ #endif // __device__
108
+ #endif // include guard