xref: /freebsd/lib/clang/include/llvm/Config/llvm-config.h (revision 6c05f3a74f30934ee60919cc97e16ec69b542b06)
1268335d0SDimitry Andric /*===------- llvm/Config/llvm-config.h - llvm configuration -------*- C -*-===*/
2e580952dSDimitry Andric /*                                                                            */
386aa9539SDimitry Andric /* Part of the LLVM Project, under the Apache License v2.0 with LLVM          */
486aa9539SDimitry Andric /* Exceptions.                                                                */
586aa9539SDimitry Andric /* See https://llvm.org/LICENSE.txt for license information.                  */
686aa9539SDimitry Andric /* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    */
7e580952dSDimitry Andric /*                                                                            */
8e580952dSDimitry Andric /*===----------------------------------------------------------------------===*/
9e580952dSDimitry Andric 
10268335d0SDimitry Andric /* This file enumerates variables from the LLVM configuration so that they
11268335d0SDimitry Andric    can be in exported headers and won't override package specific directives.
12268335d0SDimitry Andric    This is a C header that can be included in the llvm-c headers. */
13e580952dSDimitry Andric 
14268335d0SDimitry Andric #ifndef LLVM_CONFIG_H
15268335d0SDimitry Andric #define LLVM_CONFIG_H
16e580952dSDimitry Andric 
1702d2ad99SDimitry Andric /* Define if LLVM_ENABLE_DUMP is enabled */
1802d2ad99SDimitry Andric /* #undef LLVM_ENABLE_DUMP */
1902d2ad99SDimitry Andric 
20dff0c46cSDimitry Andric /* Target triple LLVM will generate code for by default */
2181ad6265SDimitry Andric /* Doesn't use `cmakedefine` because it is allowed to be empty. */
22dff0c46cSDimitry Andric /* #undef LLVM_DEFAULT_TARGET_TRIPLE */
23dff0c46cSDimitry Andric 
24dff0c46cSDimitry Andric /* Define if threads enabled */
25cc38b640SDimitry Andric #define LLVM_ENABLE_THREADS 1
26dff0c46cSDimitry Andric 
276122f3e6SDimitry Andric /* Has gcc/MSVC atomic intrinsics */
28cc38b640SDimitry Andric #define LLVM_HAS_ATOMICS 1
296122f3e6SDimitry Andric 
307ae0e2c9SDimitry Andric /* Host triple LLVM will be executed on */
31284c1978SDimitry Andric /* #undef LLVM_HOST_TRIPLE */
327ae0e2c9SDimitry Andric 
33e580952dSDimitry Andric /* LLVM architecture name for the native architecture, if available */
34cbafd263SDimitry Andric /* #undef LLVM_NATIVE_ARCH */
35e580952dSDimitry Andric 
366122f3e6SDimitry Andric /* LLVM name for the native AsmParser init function, if available */
37cbafd263SDimitry Andric /* #undef LLVM_NATIVE_ASMPARSER */
386122f3e6SDimitry Andric 
396122f3e6SDimitry Andric /* LLVM name for the native AsmPrinter init function, if available */
40cbafd263SDimitry Andric /* #undef LLVM_NATIVE_ASMPRINTER */
416122f3e6SDimitry Andric 
42dff0c46cSDimitry Andric /* LLVM name for the native Disassembler init function, if available */
43cbafd263SDimitry Andric /* #undef LLVM_NATIVE_DISASSEMBLER */
44dff0c46cSDimitry Andric 
452754fe60SDimitry Andric /* LLVM name for the native Target init function, if available */
46cbafd263SDimitry Andric /* #undef LLVM_NATIVE_TARGET */
472754fe60SDimitry Andric 
482754fe60SDimitry Andric /* LLVM name for the native TargetInfo init function, if available */
49cbafd263SDimitry Andric /* #undef LLVM_NATIVE_TARGETINFO */
502754fe60SDimitry Andric 
516122f3e6SDimitry Andric /* LLVM name for the native target MC init function, if available */
52cbafd263SDimitry Andric /* #undef LLVM_NATIVE_TARGETMC */
5317a519f9SDimitry Andric 
545e801ac6SDimitry Andric /* LLVM name for the native target MCA init function, if available */
555e801ac6SDimitry Andric /* #undef LLVM_NATIVE_TARGETMCA */
565e801ac6SDimitry Andric 
575f757f3fSDimitry Andric /* Define if the AArch64 target is built in */
585f757f3fSDimitry Andric #ifdef LLVM_TARGET_ENABLE_AARCH64
595f757f3fSDimitry Andric #define LLVM_HAS_AARCH64_TARGET 1
605f757f3fSDimitry Andric #else
615f757f3fSDimitry Andric #define LLVM_HAS_AARCH64_TARGET 0
625f757f3fSDimitry Andric #endif
635f757f3fSDimitry Andric 
645f757f3fSDimitry Andric /* Define if the AMDGPU target is built in */
655f757f3fSDimitry Andric #define LLVM_HAS_AMDGPU_TARGET 0
665f757f3fSDimitry Andric 
675f757f3fSDimitry Andric /* Define if the ARC target is built in */
685f757f3fSDimitry Andric #define LLVM_HAS_ARC_TARGET 0
695f757f3fSDimitry Andric 
705f757f3fSDimitry Andric /* Define if the ARM target is built in */
715f757f3fSDimitry Andric #ifdef LLVM_TARGET_ENABLE_ARM
725f757f3fSDimitry Andric #define LLVM_HAS_ARM_TARGET 1
735f757f3fSDimitry Andric #else
745f757f3fSDimitry Andric #define LLVM_HAS_ARM_TARGET 0
755f757f3fSDimitry Andric #endif
765f757f3fSDimitry Andric 
775f757f3fSDimitry Andric /* Define if the AVR target is built in */
785f757f3fSDimitry Andric #define LLVM_HAS_AVR_TARGET 0
795f757f3fSDimitry Andric 
805f757f3fSDimitry Andric /* Define if the BPF target is built in */
815f757f3fSDimitry Andric #ifdef LLVM_TARGET_ENABLE_BPF
825f757f3fSDimitry Andric #define LLVM_HAS_BPF_TARGET 1
835f757f3fSDimitry Andric #else
845f757f3fSDimitry Andric #define LLVM_HAS_BPF_TARGET 0
855f757f3fSDimitry Andric #endif
865f757f3fSDimitry Andric 
875f757f3fSDimitry Andric /* Define if the CSKY target is built in */
885f757f3fSDimitry Andric #define LLVM_HAS_CSKY_TARGET 0
895f757f3fSDimitry Andric 
905f757f3fSDimitry Andric /* Define if the DirectX target is built in */
915f757f3fSDimitry Andric #define LLVM_HAS_DIRECTX_TARGET 0
925f757f3fSDimitry Andric 
935f757f3fSDimitry Andric /* Define if the Hexagon target is built in */
945f757f3fSDimitry Andric #define LLVM_HAS_HEXAGON_TARGET 0
955f757f3fSDimitry Andric 
965f757f3fSDimitry Andric /* Define if the Lanai target is built in */
975f757f3fSDimitry Andric #define LLVM_HAS_LANAI_TARGET 0
985f757f3fSDimitry Andric 
995f757f3fSDimitry Andric /* Define if the LoongArch target is built in */
1005f757f3fSDimitry Andric #define LLVM_HAS_LOONGARCH_TARGET 0
1015f757f3fSDimitry Andric 
1025f757f3fSDimitry Andric /* Define if the M68k target is built in */
1035f757f3fSDimitry Andric #define LLVM_HAS_M68K_TARGET 0
1045f757f3fSDimitry Andric 
1055f757f3fSDimitry Andric /* Define if the Mips target is built in */
1065f757f3fSDimitry Andric #ifdef LLVM_TARGET_ENABLE_MIPS
1075f757f3fSDimitry Andric #define LLVM_HAS_MIPS_TARGET 1
1085f757f3fSDimitry Andric #else
1095f757f3fSDimitry Andric #define LLVM_HAS_MIPS_TARGET 0
1105f757f3fSDimitry Andric #endif
1115f757f3fSDimitry Andric 
1125f757f3fSDimitry Andric /* Define if the MSP430 target is built in */
1135f757f3fSDimitry Andric #define LLVM_HAS_MSP430_TARGET 0
1145f757f3fSDimitry Andric 
1155f757f3fSDimitry Andric /* Define if the NVPTX target is built in */
1165f757f3fSDimitry Andric #define LLVM_HAS_NVPTX_TARGET 0
1175f757f3fSDimitry Andric 
1185f757f3fSDimitry Andric /* Define if the PowerPC target is built in */
1195f757f3fSDimitry Andric #ifdef LLVM_TARGET_ENABLE_POWERPC
1205f757f3fSDimitry Andric #define LLVM_HAS_POWERPC_TARGET 1
1215f757f3fSDimitry Andric #else
1225f757f3fSDimitry Andric #define LLVM_HAS_POWERPC_TARGET 0
1235f757f3fSDimitry Andric #endif
1245f757f3fSDimitry Andric 
1255f757f3fSDimitry Andric /* Define if the RISCV target is built in */
1265f757f3fSDimitry Andric #ifdef LLVM_TARGET_ENABLE_RISCV
1275f757f3fSDimitry Andric #define LLVM_HAS_RISCV_TARGET 1
1285f757f3fSDimitry Andric #else
1295f757f3fSDimitry Andric #define LLVM_HAS_RISCV_TARGET 0
1305f757f3fSDimitry Andric #endif
1315f757f3fSDimitry Andric 
1325f757f3fSDimitry Andric /* Define if the Sparc target is built in */
1335f757f3fSDimitry Andric #define LLVM_HAS_SPARC_TARGET 0
1345f757f3fSDimitry Andric 
1355f757f3fSDimitry Andric /* Define if the SPIRV target is built in */
1365f757f3fSDimitry Andric #define LLVM_HAS_SPIRV_TARGET 0
1375f757f3fSDimitry Andric 
1385f757f3fSDimitry Andric /* Define if the SystemZ target is built in */
1395f757f3fSDimitry Andric #define LLVM_HAS_SYSTEMZ_TARGET 0
1405f757f3fSDimitry Andric 
1415f757f3fSDimitry Andric /* Define if the VE target is built in */
1425f757f3fSDimitry Andric #define LLVM_HAS_VE_TARGET 0
1435f757f3fSDimitry Andric 
1445f757f3fSDimitry Andric /* Define if the WebAssembly target is built in */
1455f757f3fSDimitry Andric #define LLVM_HAS_WEBASSEMBLY_TARGET 0
1465f757f3fSDimitry Andric 
1475f757f3fSDimitry Andric /* Define if the X86 target is built in */
1485f757f3fSDimitry Andric #ifdef LLVM_TARGET_ENABLE_X86
1495f757f3fSDimitry Andric #define LLVM_HAS_X86_TARGET 1
1505f757f3fSDimitry Andric #else
1515f757f3fSDimitry Andric #define LLVM_HAS_X86_TARGET 0
1525f757f3fSDimitry Andric #endif
1535f757f3fSDimitry Andric 
1545f757f3fSDimitry Andric /* Define if the XCore target is built in */
1555f757f3fSDimitry Andric #define LLVM_HAS_XCORE_TARGET 0
1565f757f3fSDimitry Andric 
1575f757f3fSDimitry Andric /* Define if the Xtensa target is built in */
1585f757f3fSDimitry Andric #define LLVM_HAS_XTENSA_TARGET 0
1595f757f3fSDimitry Andric 
160e580952dSDimitry Andric /* Define if this is Unixish platform */
161e580952dSDimitry Andric #define LLVM_ON_UNIX 1
162e580952dSDimitry Andric 
163139f7f9bSDimitry Andric /* Define if we have the Intel JIT API runtime support library */
16409bfd043SDimitry Andric #define LLVM_USE_INTEL_JITEVENTS 0
165139f7f9bSDimitry Andric 
166139f7f9bSDimitry Andric /* Define if we have the oprofile JIT-support library */
16709bfd043SDimitry Andric #define LLVM_USE_OPROFILE 0
168e580952dSDimitry Andric 
1696dfa117fSDimitry Andric /* Define if we have the perf JIT-support library */
1706dfa117fSDimitry Andric #define LLVM_USE_PERF 0
1716dfa117fSDimitry Andric 
172dff0c46cSDimitry Andric /* Major version of the LLVM API */
1730fca6ea1SDimitry Andric #define LLVM_VERSION_MAJOR 19
174dff0c46cSDimitry Andric 
175dff0c46cSDimitry Andric /* Minor version of the LLVM API */
17636b606aeSDimitry Andric #define LLVM_VERSION_MINOR 1
1771ae6788eSDimitry Andric 
17809de9530SDimitry Andric /* Patch version of the LLVM API */
179*6c05f3a7SDimitry Andric #define LLVM_VERSION_PATCH 7
18009de9530SDimitry Andric 
1811ae6788eSDimitry Andric /* LLVM version string */
182*6c05f3a7SDimitry Andric #define LLVM_VERSION_STRING "19.1.7"
1836dfa117fSDimitry Andric 
1846dfa117fSDimitry Andric /* Whether LLVM records statistics for use with GetStatistics(),
1856dfa117fSDimitry Andric  * PrintStatistics() or PrintStatisticsJSON()
1866dfa117fSDimitry Andric  */
1876dfa117fSDimitry Andric #define LLVM_FORCE_ENABLE_STATS 0
188ebeff3f9SDimitry Andric 
1895f24ef21SDimitry Andric /* Define if we have z3 and want to build it */
1905f24ef21SDimitry Andric /* #undef LLVM_WITH_Z3 */
1915f24ef21SDimitry Andric 
19204eeddc0SDimitry Andric /* Define if we have curl and want to use it */
19304eeddc0SDimitry Andric /* #undef LLVM_ENABLE_CURL */
19404eeddc0SDimitry Andric 
195753f127fSDimitry Andric /* Define if we have cpp-httplib and want to use it */
196753f127fSDimitry Andric /* #undef LLVM_ENABLE_HTTPLIB */
197753f127fSDimitry Andric 
198d56accc7SDimitry Andric /* Define if zlib compression is available */
199d56accc7SDimitry Andric #define LLVM_ENABLE_ZLIB 1
200d56accc7SDimitry Andric 
201fcaf7f86SDimitry Andric /* Define if zstd compression is available */
202bdd1243dSDimitry Andric #define LLVM_ENABLE_ZSTD 1
203fcaf7f86SDimitry Andric 
2045f757f3fSDimitry Andric /* Define if LLVM is using tflite */
205bdd1243dSDimitry Andric /* #undef LLVM_HAVE_TFLITE */
2065f24ef21SDimitry Andric 
207e8d8bef9SDimitry Andric /* Define to 1 if you have the <sysexits.h> header file. */
208e8d8bef9SDimitry Andric #define HAVE_SYSEXITS_H 1
209e8d8bef9SDimitry Andric 
21004eeddc0SDimitry Andric /* Define if building libLLVM shared library */
21104eeddc0SDimitry Andric /* #undef LLVM_BUILD_LLVM_DYLIB */
21204eeddc0SDimitry Andric 
21304eeddc0SDimitry Andric /* Define if building LLVM with BUILD_SHARED_LIBS */
21404eeddc0SDimitry Andric /* #undef LLVM_BUILD_SHARED_LIBS */
21504eeddc0SDimitry Andric 
216d56accc7SDimitry Andric /* Define if building LLVM with LLVM_FORCE_USE_OLD_TOOLCHAIN_LIBS */
217d56accc7SDimitry Andric /* #undef LLVM_FORCE_USE_OLD_TOOLCHAIN */
218d56accc7SDimitry Andric 
21981ad6265SDimitry Andric /* Define if llvm_unreachable should be optimized with undefined behavior
22081ad6265SDimitry Andric  * in non assert builds */
22181ad6265SDimitry Andric #define LLVM_UNREACHABLE_OPTIMIZE 1
22281ad6265SDimitry Andric 
22381ad6265SDimitry Andric /* Define to 1 if you have the DIA SDK installed, and to 0 if you don't. */
22481ad6265SDimitry Andric #define LLVM_ENABLE_DIA_SDK 0
22581ad6265SDimitry Andric 
226bdd1243dSDimitry Andric /* Define if plugins enabled */
227bdd1243dSDimitry Andric /* #undef LLVM_ENABLE_PLUGINS */
228bdd1243dSDimitry Andric 
2290fca6ea1SDimitry Andric /* Define if logf128 is available */
2300fca6ea1SDimitry Andric /* #undef LLVM_HAS_LOGF128 */
2310fca6ea1SDimitry Andric 
232e580952dSDimitry Andric #endif
233