1 /*===------- llvm/Config/llvm-config.h - llvm configuration -------*- C -*-===*/ 2 /* */ 3 /* Part of the LLVM Project, under the Apache License v2.0 with LLVM */ 4 /* Exceptions. */ 5 /* See https://llvm.org/LICENSE.txt for license information. */ 6 /* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception */ 7 /* */ 8 /*===----------------------------------------------------------------------===*/ 9 10 /* This file enumerates variables from the LLVM configuration so that they 11 can be in exported headers and won't override package specific directives. 12 This is a C header that can be included in the llvm-c headers. */ 13 14 #ifndef LLVM_CONFIG_H 15 #define LLVM_CONFIG_H 16 17 #if !defined(__i386__) && defined(_M_IX86) 18 #define __i386__ 1 19 #endif 20 21 #if !defined(__x86_64__) && (defined(_M_AMD64) || defined (_M_X64)) 22 #define __x86_64__ 1 23 #endif 24 25 #define LLVM_CONFIG_H 26 27 /* Define if LLVM_ENABLE_DUMP is enabled */ 28 /* #undef LLVM_ENABLE_DUMP */ 29 30 /* Target triple LLVM will generate code for by default */ 31 /* Doesn't use `cmakedefine` because it is allowed to be empty. */ 32 #if defined(__x86_64__) 33 #define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-apple-darwin" 34 #elif defined(__aarch64__) 35 #define LLVM_DEFAULT_TARGET_TRIPLE "arm64-apple-darwin" 36 #else 37 #error "unknown architecture" 38 #endif 39 40 /* Define if threads enabled */ 41 #define LLVM_ENABLE_THREADS 1 42 43 /* Has gcc/MSVC atomic intrinsics */ 44 #define LLVM_HAS_ATOMICS 1 45 46 /* Host triple LLVM will be executed on */ 47 #if defined(__x86_64__) 48 #define LLVM_HOST_TRIPLE "x86_64-apple-darwin" 49 #elif defined(__aarch64__) 50 #define LLVM_HOST_TRIPLE "arm64-apple-darwin" 51 #else 52 #error "unknown architecture" 53 #endif 54 55 /* LLVM architecture name for the native architecture, if available */ 56 #if defined(__aarch64__) 57 #define LLVM_NATIVE_ARCH AArch64 58 #elif defined(__arm__) 59 #define LLVM_NATIVE_ARCH ARM 60 #elif defined(__i386__) || defined(__x86_64__) 61 #define LLVM_NATIVE_ARCH X86 62 #elif defined(__mips__) 63 #define LLVM_NATIVE_ARCH Mips 64 #elif defined(__powerpc64__) 65 #define LLVM_NATIVE_ARCH PowerPC 66 #elif defined(__riscv) 67 #define LLVM_NATIVE_ARCH RISCV 68 #else 69 #error "unknown architecture" 70 #endif 71 72 /* LLVM name for the native AsmParser init function, if available */ 73 #if defined(__aarch64__) 74 #define LLVM_NATIVE_ASMPARSER LLVMInitializeAArch64AsmParser 75 #elif defined(__arm__) 76 #define LLVM_NATIVE_ASMPARSER LLVMInitializeARMAsmParser 77 #elif defined(__i386__) || defined(__x86_64__) 78 #define LLVM_NATIVE_ASMPARSER LLVMInitializeX86AsmParser 79 #elif defined(__mips__) 80 #define LLVM_NATIVE_ASMPARSER LLVMInitializeMipsAsmParser 81 #elif defined(__powerpc64__) 82 #define LLVM_NATIVE_ASMPARSER LLVMInitializePowerPCAsmParser 83 #elif defined(__riscv) 84 #define LLVM_NATIVE_ASMPARSER LLVMInitializeRISCVAsmParser 85 #else 86 #error "unknown architecture" 87 #endif 88 89 /* LLVM name for the native AsmPrinter init function, if available */ 90 #if defined(__aarch64__) 91 #define LLVM_NATIVE_ASMPRINTER LLVMInitializeAArch64AsmPrinter 92 #elif defined(__arm__) 93 #define LLVM_NATIVE_ASMPRINTER LLVMInitializeARMAsmPrinter 94 #elif defined(__i386__) || defined(__x86_64__) 95 #define LLVM_NATIVE_ASMPRINTER LLVMInitializeX86AsmPrinter 96 #elif defined(__mips__) 97 #define LLVM_NATIVE_ASMPRINTER LLVMInitializeMipsAsmPrinter 98 #elif defined(__powerpc64__) 99 #define LLVM_NATIVE_ASMPRINTER LLVMInitializePowerPCAsmPrinter 100 #elif defined(__riscv) 101 #define LLVM_NATIVE_ASMPRINTER LLVMInitializeRISCVAsmPrinter 102 #else 103 #error "unknown architecture" 104 #endif 105 106 /* LLVM name for the native Disassembler init function, if available */ 107 #if defined(__aarch64__) 108 #define LLVM_NATIVE_DISASSEMBLER LLVMInitializeAArch64Disassembler 109 #elif defined(__arm__) 110 #define LLVM_NATIVE_DISASSEMBLER LLVMInitializeARMDisassembler 111 #elif defined(__i386__) || defined(__x86_64__) 112 #define LLVM_NATIVE_DISASSEMBLER LLVMInitializeX86Disassembler 113 #elif defined(__mips__) 114 #define LLVM_NATIVE_DISASSEMBLER LLVMInitializeMipsDisassembler 115 #elif defined(__powerpc64__) 116 #define LLVM_NATIVE_DISASSEMBLER LLVMInitializePowerPCDisassembler 117 #elif defined(__riscv) 118 #define LLVM_NATIVE_DISASSEMBLER LLVMInitializeRISCVDisassembler 119 #else 120 #error "unknown architecture" 121 #endif 122 123 /* LLVM name for the native Target init function, if available */ 124 #if defined(__aarch64__) 125 #define LLVM_NATIVE_TARGET LLVMInitializeAArch64Target 126 #elif defined(__arm__) 127 #define LLVM_NATIVE_TARGET LLVMInitializeARMTarget 128 #elif defined(__i386__) || defined(__x86_64__) 129 #define LLVM_NATIVE_TARGET LLVMInitializeX86Target 130 #elif defined(__mips__) 131 #define LLVM_NATIVE_TARGET LLVMInitializeMipsTarget 132 #elif defined(__powerpc64__) 133 #define LLVM_NATIVE_TARGET LLVMInitializePowerPCTarget 134 #elif defined(__riscv) 135 #define LLVM_NATIVE_TARGET LLVMInitializeRISCVTarget 136 #else 137 #error "unknown architecture" 138 #endif 139 140 /* LLVM name for the native TargetInfo init function, if available */ 141 #if defined(__aarch64__) 142 #define LLVM_NATIVE_TARGETINFO LLVMInitializeAArch64TargetInfo 143 #elif defined(__arm__) 144 #define LLVM_NATIVE_TARGETINFO LLVMInitializeARMTargetInfo 145 #elif defined(__i386__) || defined(__x86_64__) 146 #define LLVM_NATIVE_TARGETINFO LLVMInitializeX86TargetInfo 147 #elif defined(__mips__) 148 #define LLVM_NATIVE_TARGETINFO LLVMInitializeMipsTargetInfo 149 #elif defined(__powerpc64__) 150 #define LLVM_NATIVE_TARGETINFO LLVMInitializePowerPCTargetInfo 151 #elif defined(__riscv) 152 #define LLVM_NATIVE_TARGETINFO LLVMInitializeRISCVTargetInfo 153 #else 154 #error "unknown architecture" 155 #endif 156 157 /* LLVM name for the native target MC init function, if available */ 158 #if defined(__aarch64__) 159 #define LLVM_NATIVE_TARGETMC LLVMInitializeAArch64TargetMC 160 #elif defined(__arm__) 161 #define LLVM_NATIVE_TARGETMC LLVMInitializeARMTargetMC 162 #elif defined(__i386__) || defined(__x86_64__) 163 #define LLVM_NATIVE_TARGETMC LLVMInitializeX86TargetMC 164 #elif defined(__mips__) 165 #define LLVM_NATIVE_TARGETMC LLVMInitializeMipsTargetMC 166 #elif defined(__powerpc64__) 167 #define LLVM_NATIVE_TARGETMC LLVMInitializePowerPCTargetMC 168 #elif defined(__riscv) 169 #define LLVM_NATIVE_TARGETMC LLVMInitializeRISCVTargetMC 170 #else 171 #error "unknown architecture" 172 #endif 173 174 /* LLVM name for the native target MCA init function, if available */ 175 /* #undef LLVM_NATIVE_TARGETMCA */ 176 177 /* Define if this is Unixish platform */ 178 #define LLVM_ON_UNIX 1 179 180 /* Define if we have the Intel JIT API runtime support library */ 181 #define LLVM_USE_INTEL_JITEVENTS 0 182 183 /* Define if we have the oprofile JIT-support library */ 184 #define LLVM_USE_OPROFILE 0 185 186 /* Define if we have the perf JIT-support library */ 187 #define LLVM_USE_PERF 0 188 189 /* Major version of the LLVM API */ 190 #define LLVM_VERSION_MAJOR 16 191 192 /* Minor version of the LLVM API */ 193 #define LLVM_VERSION_MINOR 0 194 195 /* Patch version of the LLVM API */ 196 #define LLVM_VERSION_PATCH 0 197 198 /* LLVM version string */ 199 #define LLVM_VERSION_STRING "16.0.0" 200 201 /* Whether LLVM records statistics for use with GetStatistics(), 202 * PrintStatistics() or PrintStatisticsJSON() 203 */ 204 #define LLVM_FORCE_ENABLE_STATS 0 205 206 /* Define if we have z3 and want to build it */ 207 /* #undef LLVM_WITH_Z3 */ 208 209 /* Define if we have curl and want to use it */ 210 /* #undef LLVM_ENABLE_CURL */ 211 212 /* Define if we have cpp-httplib and want to use it */ 213 /* #undef LLVM_ENABLE_HTTPLIB */ 214 215 /* Define if zlib compression is available */ 216 #define LLVM_ENABLE_ZLIB 0 217 218 /* Define if zstd compression is available */ 219 #define LLVM_ENABLE_ZSTD 0 220 221 /* Define if LLVM is using tflite instead of libtensorflow */ 222 /* #undef LLVM_HAVE_TFLITE */ 223 224 /* Define to 1 if you have the <sysexits.h> header file. */ 225 #define HAVE_SYSEXITS_H 1 226 227 /* Define if the xar_open() function is supported on this platform. */ 228 #define LLVM_HAVE_LIBXAR 1 229 230 /* Define if building libLLVM shared library */ 231 /* #undef LLVM_BUILD_LLVM_DYLIB */ 232 233 /* Define if building LLVM with BUILD_SHARED_LIBS */ 234 /* #undef LLVM_BUILD_SHARED_LIBS */ 235 236 /* Define if building LLVM with LLVM_FORCE_USE_OLD_TOOLCHAIN_LIBS */ 237 /* #undef LLVM_FORCE_USE_OLD_TOOLCHAIN */ 238 239 /* Define if llvm_unreachable should be optimized with undefined behavior 240 * in non assert builds */ 241 #define LLVM_UNREACHABLE_OPTIMIZE 1 242 243 /* Define to 1 if you have the DIA SDK installed, and to 0 if you don't. */ 244 #define LLVM_ENABLE_DIA_SDK 0 245 246 /* Define if plugins enabled */ 247 #define LLVM_ENABLE_PLUGINS 248 249 #endif 250