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