xref: /freebsd/lib/clang/include/llvm/Config/llvm-config.h (revision 5f757f3ff9144b609b3c433dfd370cc6bdc191ad)
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 
57*5f757f3fSDimitry Andric /* Define if the AArch64 target is built in */
58*5f757f3fSDimitry Andric #ifdef LLVM_TARGET_ENABLE_AARCH64
59*5f757f3fSDimitry Andric #define LLVM_HAS_AARCH64_TARGET 1
60*5f757f3fSDimitry Andric #else
61*5f757f3fSDimitry Andric #define LLVM_HAS_AARCH64_TARGET 0
62*5f757f3fSDimitry Andric #endif
63*5f757f3fSDimitry Andric 
64*5f757f3fSDimitry Andric /* Define if the AMDGPU target is built in */
65*5f757f3fSDimitry Andric #define LLVM_HAS_AMDGPU_TARGET 0
66*5f757f3fSDimitry Andric 
67*5f757f3fSDimitry Andric /* Define if the ARC target is built in */
68*5f757f3fSDimitry Andric #define LLVM_HAS_ARC_TARGET 0
69*5f757f3fSDimitry Andric 
70*5f757f3fSDimitry Andric /* Define if the ARM target is built in */
71*5f757f3fSDimitry Andric #ifdef LLVM_TARGET_ENABLE_ARM
72*5f757f3fSDimitry Andric #define LLVM_HAS_ARM_TARGET 1
73*5f757f3fSDimitry Andric #else
74*5f757f3fSDimitry Andric #define LLVM_HAS_ARM_TARGET 0
75*5f757f3fSDimitry Andric #endif
76*5f757f3fSDimitry Andric 
77*5f757f3fSDimitry Andric /* Define if the AVR target is built in */
78*5f757f3fSDimitry Andric #define LLVM_HAS_AVR_TARGET 0
79*5f757f3fSDimitry Andric 
80*5f757f3fSDimitry Andric /* Define if the BPF target is built in */
81*5f757f3fSDimitry Andric #ifdef LLVM_TARGET_ENABLE_BPF
82*5f757f3fSDimitry Andric #define LLVM_HAS_BPF_TARGET 1
83*5f757f3fSDimitry Andric #else
84*5f757f3fSDimitry Andric #define LLVM_HAS_BPF_TARGET 0
85*5f757f3fSDimitry Andric #endif
86*5f757f3fSDimitry Andric 
87*5f757f3fSDimitry Andric /* Define if the CSKY target is built in */
88*5f757f3fSDimitry Andric #define LLVM_HAS_CSKY_TARGET 0
89*5f757f3fSDimitry Andric 
90*5f757f3fSDimitry Andric /* Define if the DirectX target is built in */
91*5f757f3fSDimitry Andric #define LLVM_HAS_DIRECTX_TARGET 0
92*5f757f3fSDimitry Andric 
93*5f757f3fSDimitry Andric /* Define if the Hexagon target is built in */
94*5f757f3fSDimitry Andric #define LLVM_HAS_HEXAGON_TARGET 0
95*5f757f3fSDimitry Andric 
96*5f757f3fSDimitry Andric /* Define if the Lanai target is built in */
97*5f757f3fSDimitry Andric #define LLVM_HAS_LANAI_TARGET 0
98*5f757f3fSDimitry Andric 
99*5f757f3fSDimitry Andric /* Define if the LoongArch target is built in */
100*5f757f3fSDimitry Andric #define LLVM_HAS_LOONGARCH_TARGET 0
101*5f757f3fSDimitry Andric 
102*5f757f3fSDimitry Andric /* Define if the M68k target is built in */
103*5f757f3fSDimitry Andric #define LLVM_HAS_M68K_TARGET 0
104*5f757f3fSDimitry Andric 
105*5f757f3fSDimitry Andric /* Define if the Mips target is built in */
106*5f757f3fSDimitry Andric #ifdef LLVM_TARGET_ENABLE_MIPS
107*5f757f3fSDimitry Andric #define LLVM_HAS_MIPS_TARGET 1
108*5f757f3fSDimitry Andric #else
109*5f757f3fSDimitry Andric #define LLVM_HAS_MIPS_TARGET 0
110*5f757f3fSDimitry Andric #endif
111*5f757f3fSDimitry Andric 
112*5f757f3fSDimitry Andric /* Define if the MSP430 target is built in */
113*5f757f3fSDimitry Andric #define LLVM_HAS_MSP430_TARGET 0
114*5f757f3fSDimitry Andric 
115*5f757f3fSDimitry Andric /* Define if the NVPTX target is built in */
116*5f757f3fSDimitry Andric #define LLVM_HAS_NVPTX_TARGET 0
117*5f757f3fSDimitry Andric 
118*5f757f3fSDimitry Andric /* Define if the PowerPC target is built in */
119*5f757f3fSDimitry Andric #ifdef LLVM_TARGET_ENABLE_POWERPC
120*5f757f3fSDimitry Andric #define LLVM_HAS_POWERPC_TARGET 1
121*5f757f3fSDimitry Andric #else
122*5f757f3fSDimitry Andric #define LLVM_HAS_POWERPC_TARGET 0
123*5f757f3fSDimitry Andric #endif
124*5f757f3fSDimitry Andric 
125*5f757f3fSDimitry Andric /* Define if the RISCV target is built in */
126*5f757f3fSDimitry Andric #ifdef LLVM_TARGET_ENABLE_RISCV
127*5f757f3fSDimitry Andric #define LLVM_HAS_RISCV_TARGET 1
128*5f757f3fSDimitry Andric #else
129*5f757f3fSDimitry Andric #define LLVM_HAS_RISCV_TARGET 0
130*5f757f3fSDimitry Andric #endif
131*5f757f3fSDimitry Andric 
132*5f757f3fSDimitry Andric /* Define if the Sparc target is built in */
133*5f757f3fSDimitry Andric #ifdef LLVM_TARGET_ENABLE_SPARC
134*5f757f3fSDimitry Andric #define LLVM_HAS_SPARC_TARGET 1
135*5f757f3fSDimitry Andric #else
136*5f757f3fSDimitry Andric #define LLVM_HAS_SPARC_TARGET 0
137*5f757f3fSDimitry Andric #endif
138*5f757f3fSDimitry Andric 
139*5f757f3fSDimitry Andric /* Define if the SPIRV target is built in */
140*5f757f3fSDimitry Andric #define LLVM_HAS_SPIRV_TARGET 0
141*5f757f3fSDimitry Andric 
142*5f757f3fSDimitry Andric /* Define if the SystemZ target is built in */
143*5f757f3fSDimitry Andric #define LLVM_HAS_SYSTEMZ_TARGET 0
144*5f757f3fSDimitry Andric 
145*5f757f3fSDimitry Andric /* Define if the VE target is built in */
146*5f757f3fSDimitry Andric #define LLVM_HAS_VE_TARGET 0
147*5f757f3fSDimitry Andric 
148*5f757f3fSDimitry Andric /* Define if the WebAssembly target is built in */
149*5f757f3fSDimitry Andric #define LLVM_HAS_WEBASSEMBLY_TARGET 0
150*5f757f3fSDimitry Andric 
151*5f757f3fSDimitry Andric /* Define if the X86 target is built in */
152*5f757f3fSDimitry Andric #ifdef LLVM_TARGET_ENABLE_X86
153*5f757f3fSDimitry Andric #define LLVM_HAS_X86_TARGET 1
154*5f757f3fSDimitry Andric #else
155*5f757f3fSDimitry Andric #define LLVM_HAS_X86_TARGET 0
156*5f757f3fSDimitry Andric #endif
157*5f757f3fSDimitry Andric 
158*5f757f3fSDimitry Andric /* Define if the XCore target is built in */
159*5f757f3fSDimitry Andric #define LLVM_HAS_XCORE_TARGET 0
160*5f757f3fSDimitry Andric 
161*5f757f3fSDimitry Andric /* Define if the Xtensa target is built in */
162*5f757f3fSDimitry Andric #define LLVM_HAS_XTENSA_TARGET 0
163*5f757f3fSDimitry Andric 
164e580952dSDimitry Andric /* Define if this is Unixish platform */
165e580952dSDimitry Andric #define LLVM_ON_UNIX 1
166e580952dSDimitry Andric 
167139f7f9bSDimitry Andric /* Define if we have the Intel JIT API runtime support library */
16809bfd043SDimitry Andric #define LLVM_USE_INTEL_JITEVENTS 0
169139f7f9bSDimitry Andric 
170139f7f9bSDimitry Andric /* Define if we have the oprofile JIT-support library */
17109bfd043SDimitry Andric #define LLVM_USE_OPROFILE 0
172e580952dSDimitry Andric 
1736dfa117fSDimitry Andric /* Define if we have the perf JIT-support library */
1746dfa117fSDimitry Andric #define LLVM_USE_PERF 0
1756dfa117fSDimitry Andric 
176dff0c46cSDimitry Andric /* Major version of the LLVM API */
177*5f757f3fSDimitry Andric #define LLVM_VERSION_MAJOR 18
178dff0c46cSDimitry Andric 
179dff0c46cSDimitry Andric /* Minor version of the LLVM API */
18009bfd043SDimitry Andric #define LLVM_VERSION_MINOR 0
1811ae6788eSDimitry Andric 
18209de9530SDimitry Andric /* Patch version of the LLVM API */
183*5f757f3fSDimitry Andric #define LLVM_VERSION_PATCH 0
18409de9530SDimitry Andric 
1851ae6788eSDimitry Andric /* LLVM version string */
186*5f757f3fSDimitry Andric #define LLVM_VERSION_STRING "18.0.0git"
1876dfa117fSDimitry Andric 
1886dfa117fSDimitry Andric /* Whether LLVM records statistics for use with GetStatistics(),
1896dfa117fSDimitry Andric  * PrintStatistics() or PrintStatisticsJSON()
1906dfa117fSDimitry Andric  */
1916dfa117fSDimitry Andric #define LLVM_FORCE_ENABLE_STATS 0
192ebeff3f9SDimitry Andric 
1935f24ef21SDimitry Andric /* Define if we have z3 and want to build it */
1945f24ef21SDimitry Andric /* #undef LLVM_WITH_Z3 */
1955f24ef21SDimitry Andric 
19604eeddc0SDimitry Andric /* Define if we have curl and want to use it */
19704eeddc0SDimitry Andric /* #undef LLVM_ENABLE_CURL */
19804eeddc0SDimitry Andric 
199753f127fSDimitry Andric /* Define if we have cpp-httplib and want to use it */
200753f127fSDimitry Andric /* #undef LLVM_ENABLE_HTTPLIB */
201753f127fSDimitry Andric 
202d56accc7SDimitry Andric /* Define if zlib compression is available */
203d56accc7SDimitry Andric #define LLVM_ENABLE_ZLIB 1
204d56accc7SDimitry Andric 
205fcaf7f86SDimitry Andric /* Define if zstd compression is available */
206bdd1243dSDimitry Andric #define LLVM_ENABLE_ZSTD 1
207fcaf7f86SDimitry Andric 
208*5f757f3fSDimitry Andric /* Define if LLVM is using tflite */
209bdd1243dSDimitry Andric /* #undef LLVM_HAVE_TFLITE */
2105f24ef21SDimitry Andric 
211e8d8bef9SDimitry Andric /* Define to 1 if you have the <sysexits.h> header file. */
212e8d8bef9SDimitry Andric #define HAVE_SYSEXITS_H 1
213e8d8bef9SDimitry Andric 
21404eeddc0SDimitry Andric /* Define if building libLLVM shared library */
21504eeddc0SDimitry Andric /* #undef LLVM_BUILD_LLVM_DYLIB */
21604eeddc0SDimitry Andric 
21704eeddc0SDimitry Andric /* Define if building LLVM with BUILD_SHARED_LIBS */
21804eeddc0SDimitry Andric /* #undef LLVM_BUILD_SHARED_LIBS */
21904eeddc0SDimitry Andric 
220d56accc7SDimitry Andric /* Define if building LLVM with LLVM_FORCE_USE_OLD_TOOLCHAIN_LIBS */
221d56accc7SDimitry Andric /* #undef LLVM_FORCE_USE_OLD_TOOLCHAIN */
222d56accc7SDimitry Andric 
22381ad6265SDimitry Andric /* Define if llvm_unreachable should be optimized with undefined behavior
22481ad6265SDimitry Andric  * in non assert builds */
22581ad6265SDimitry Andric #define LLVM_UNREACHABLE_OPTIMIZE 1
22681ad6265SDimitry Andric 
22781ad6265SDimitry Andric /* Define to 1 if you have the DIA SDK installed, and to 0 if you don't. */
22881ad6265SDimitry Andric #define LLVM_ENABLE_DIA_SDK 0
22981ad6265SDimitry Andric 
230bdd1243dSDimitry Andric /* Define if plugins enabled */
231bdd1243dSDimitry Andric /* #undef LLVM_ENABLE_PLUGINS */
232bdd1243dSDimitry Andric 
233e580952dSDimitry Andric #endif
234