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 #if defined(__x86_64__)
32 #define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-apple-darwin"
33 #elif defined(__aarch64__)
34 #define LLVM_DEFAULT_TARGET_TRIPLE "arm64-apple-darwin"
35 #else
36 #error "unknown architecture"
37 #endif
38 
39 /* Define if threads enabled */
40 #define LLVM_ENABLE_THREADS 1
41 
42 /* Has gcc/MSVC atomic intrinsics */
43 #define LLVM_HAS_ATOMICS 1
44 
45 /* Host triple LLVM will be executed on */
46 #if defined(__x86_64__)
47 #define LLVM_HOST_TRIPLE "x86_64-apple-darwin"
48 #elif defined(__aarch64__)
49 #define LLVM_HOST_TRIPLE "arm64-apple-darwin"
50 #else
51 #error "unknown architecture"
52 #endif
53 
54 /* LLVM architecture name for the native architecture, if available */
55 #if defined(__aarch64__)
56 #define LLVM_NATIVE_ARCH AArch64
57 #elif defined(__arm__)
58 #define LLVM_NATIVE_ARCH ARM
59 #elif defined(__i386__) || defined(__x86_64__)
60 #define LLVM_NATIVE_ARCH X86
61 #elif defined(__mips__)
62 #define LLVM_NATIVE_ARCH Mips
63 #elif defined(__powerpc64__)
64 #define LLVM_NATIVE_ARCH PowerPC
65 #else
66 #error "unknown architecture"
67 #endif
68 
69 /* LLVM name for the native AsmParser init function, if available */
70 #if defined(__aarch64__)
71 #define LLVM_NATIVE_ASMPARSER LLVMInitializeAArch64AsmParser
72 #elif defined(__arm__)
73 #define LLVM_NATIVE_ASMPARSER LLVMInitializeARMAsmParser
74 #elif defined(__i386__) || defined(__x86_64__)
75 #define LLVM_NATIVE_ASMPARSER LLVMInitializeX86AsmParser
76 #elif defined(__mips__)
77 #define LLVM_NATIVE_ASMPARSER LLVMInitializeMipsAsmParser
78 #elif defined(__powerpc64__)
79 #define LLVM_NATIVE_ASMPARSER LLVMInitializePowerPCAsmParser
80 #else
81 #error "unknown architecture"
82 #endif
83 
84 /* LLVM name for the native AsmPrinter init function, if available */
85 #if defined(__aarch64__)
86 #define LLVM_NATIVE_ASMPRINTER LLVMInitializeAArch64AsmPrinter
87 #elif defined(__arm__)
88 #define LLVM_NATIVE_ASMPRINTER LLVMInitializeARMAsmPrinter
89 #elif defined(__i386__) || defined(__x86_64__)
90 #define LLVM_NATIVE_ASMPRINTER LLVMInitializeX86AsmPrinter
91 #elif defined(__mips__)
92 #define LLVM_NATIVE_ASMPRINTER LLVMInitializeMipsAsmPrinter
93 #elif defined(__powerpc64__)
94 #define LLVM_NATIVE_ASMPRINTER LLVMInitializePowerPCAsmPrinter
95 #else
96 #error "unknown architecture"
97 #endif
98 
99 /* LLVM name for the native Disassembler init function, if available */
100 #if defined(__aarch64__)
101 #define LLVM_NATIVE_DISASSEMBLER LLVMInitializeAArch64Disassembler
102 #elif defined(__arm__)
103 #define LLVM_NATIVE_DISASSEMBLER LLVMInitializeARMDisassembler
104 #elif defined(__i386__) || defined(__x86_64__)
105 #define LLVM_NATIVE_DISASSEMBLER LLVMInitializeX86Disassembler
106 #elif defined(__mips__)
107 #define LLVM_NATIVE_DISASSEMBLER LLVMInitializeMipsDisassembler
108 #elif defined(__powerpc64__)
109 #define LLVM_NATIVE_DISASSEMBLER LLVMInitializePowerPCDisassembler
110 #else
111 #error "unknown architecture"
112 #endif
113 
114 /* LLVM name for the native Target init function, if available */
115 #if defined(__aarch64__)
116 #define LLVM_NATIVE_TARGET LLVMInitializeAArch64Target
117 #elif defined(__arm__)
118 #define LLVM_NATIVE_TARGET LLVMInitializeARMTarget
119 #elif defined(__i386__) || defined(__x86_64__)
120 #define LLVM_NATIVE_TARGET LLVMInitializeX86Target
121 #elif defined(__mips__)
122 #define LLVM_NATIVE_TARGET LLVMInitializeMipsTarget
123 #elif defined(__powerpc64__)
124 #define LLVM_NATIVE_TARGET LLVMInitializePowerPCTarget
125 #else
126 #error "unknown architecture"
127 #endif
128 
129 /* LLVM name for the native TargetInfo init function, if available */
130 #if defined(__aarch64__)
131 #define LLVM_NATIVE_TARGETINFO LLVMInitializeAArch64TargetInfo
132 #elif defined(__arm__)
133 #define LLVM_NATIVE_TARGETINFO LLVMInitializeARMTargetInfo
134 #elif defined(__i386__) || defined(__x86_64__)
135 #define LLVM_NATIVE_TARGETINFO LLVMInitializeX86TargetInfo
136 #elif defined(__mips__)
137 #define LLVM_NATIVE_TARGETINFO LLVMInitializeMipsTargetInfo
138 #elif defined(__powerpc64__)
139 #define LLVM_NATIVE_TARGETINFO LLVMInitializePowerPCTargetInfo
140 #else
141 #error "unknown architecture"
142 #endif
143 
144 /* LLVM name for the native target MC init function, if available */
145 #if defined(__aarch64__)
146 #define LLVM_NATIVE_TARGETMC LLVMInitializeAArch64TargetMC
147 #elif defined(__arm__)
148 #define LLVM_NATIVE_TARGETMC LLVMInitializeARMTargetMC
149 #elif defined(__i386__) || defined(__x86_64__)
150 #define LLVM_NATIVE_TARGETMC LLVMInitializeX86TargetMC
151 #elif defined(__mips__)
152 #define LLVM_NATIVE_TARGETMC LLVMInitializeMipsTargetMC
153 #elif defined(__powerpc64__)
154 #define LLVM_NATIVE_TARGETMC LLVMInitializePowerPCTargetMC
155 #else
156 #error "unknown architecture"
157 #endif
158 
159 /* Define if this is Unixish platform */
160 #define LLVM_ON_UNIX 1
161 
162 /* Define if we have the Intel JIT API runtime support library */
163 #define LLVM_USE_INTEL_JITEVENTS 0
164 
165 /* Define if we have the oprofile JIT-support library */
166 #define LLVM_USE_OPROFILE 0
167 
168 /* Define if we have the perf JIT-support library */
169 #define LLVM_USE_PERF 0
170 
171 /* Major version of the LLVM API */
172 #define LLVM_VERSION_MAJOR 10
173 
174 /* Minor version of the LLVM API */
175 #define LLVM_VERSION_MINOR 0
176 
177 /* Patch version of the LLVM API */
178 #define LLVM_VERSION_PATCH 0
179 
180 /* LLVM version string */
181 #define LLVM_VERSION_STRING "10.0.0"
182 
183 /* Whether LLVM records statistics for use with GetStatistics(),
184  * PrintStatistics() or PrintStatisticsJSON()
185  */
186 #define LLVM_FORCE_ENABLE_STATS 0
187 
188 #endif
189