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