@@ -34,21 +34,17 @@ std::unique_ptr<llvm::Module> parse_bitcode_file(llvm::StringRef buf, llvm::LLVM
34
34
return parse_bitcode_file (sb, context, #mod); \
35
35
}
36
36
37
- #define DECLARE_NO_INITMOD (mod ) \
38
- std::unique_ptr<llvm::Module> get_initmod_##mod(llvm::LLVMContext *, bool , bool ) { \
39
- user_error << " Halide was compiled without support for this target\n " ; \
40
- return std::unique_ptr<llvm::Module>(); \
41
- } \
42
- std::unique_ptr<llvm::Module> get_initmod_##mod##_ll(llvm::LLVMContext *) { \
43
- user_error << " Halide was compiled without support for this target\n " ; \
44
- return std::unique_ptr<llvm::Module>(); \
37
+ #define DECLARE_NO_INITMOD (mod ) \
38
+ std::unique_ptr<llvm::Module> get_initmod_##mod(llvm::LLVMContext *, bool = false , bool = false ) { \
39
+ user_error << " Halide was compiled without support for this target\n " ; \
40
+ return std::unique_ptr<llvm::Module>(); \
41
+ } \
42
+ std::unique_ptr<llvm::Module> get_initmod_##mod##_ll(llvm::LLVMContext *) { \
43
+ user_error << " Halide was compiled without support for this target\n " ; \
44
+ return std::unique_ptr<llvm::Module>(); \
45
45
}
46
46
47
- #define DECLARE_CPP_INITMOD (mod ) \
48
- DECLARE_INITMOD (mod##_32_debug) \
49
- DECLARE_INITMOD (mod##_64_debug) \
50
- DECLARE_INITMOD (mod##_32) \
51
- DECLARE_INITMOD (mod##_64) \
47
+ #define DECLARE_CPP_INITMOD_LOOKUP (mod ) \
52
48
std::unique_ptr<llvm::Module> get_initmod_##mod(llvm::LLVMContext *context, bool bits_64, bool debug) { \
53
49
if (bits_64) { \
54
50
if (debug) { \
@@ -65,6 +61,13 @@ std::unique_ptr<llvm::Module> parse_bitcode_file(llvm::StringRef buf, llvm::LLVM
65
61
} \
66
62
}
67
63
64
+ #define DECLARE_CPP_INITMOD (mod ) \
65
+ DECLARE_INITMOD (mod##_32_debug) \
66
+ DECLARE_INITMOD (mod##_64_debug) \
67
+ DECLARE_INITMOD (mod##_32) \
68
+ DECLARE_INITMOD (mod##_64) \
69
+ DECLARE_CPP_INITMOD_LOOKUP (mod)
70
+
68
71
#define DECLARE_LL_INITMOD (mod ) \
69
72
DECLARE_INITMOD (mod##_ll)
70
73
@@ -197,14 +200,34 @@ DECLARE_LL_INITMOD(ptx_compute_30)
197
200
DECLARE_LL_INITMOD(ptx_compute_35)
198
201
#endif // WITH_NVPTX
199
202
200
- #ifdef WITH_D3D12
203
+ #if defined( WITH_D3D12) && defined(WITH_X86)
201
204
DECLARE_CPP_INITMOD (windows_d3d12compute_x86)
202
- DECLARE_CPP_INITMOD(windows_d3d12compute_arm)
203
205
#else
204
206
DECLARE_NO_INITMOD (windows_d3d12compute_x86)
205
- DECLARE_NO_INITMOD(windows_d3d12compute_arm)
206
207
#endif
207
208
209
+ #ifdef WITH_D3D12
210
+ #ifdef WITH_ARM
211
+ DECLARE_INITMOD (windows_d3d12compute_arm_32)
212
+ DECLARE_INITMOD(windows_d3d12compute_arm_32_debug)
213
+ #else
214
+ DECLARE_NO_INITMOD (windows_d3d12compute_arm_32)
215
+ DECLARE_NO_INITMOD(windows_d3d12compute_arm_32_debug)
216
+ #endif
217
+
218
+ #ifdef WITH_AARCH64
219
+ DECLARE_INITMOD (windows_d3d12compute_arm_64)
220
+ DECLARE_INITMOD(windows_d3d12compute_arm_64_debug)
221
+ #else
222
+ DECLARE_NO_INITMOD (windows_d3d12compute_arm_64)
223
+ DECLARE_NO_INITMOD(windows_d3d12compute_arm_64_debug)
224
+ #endif
225
+
226
+ DECLARE_CPP_INITMOD_LOOKUP (windows_d3d12compute_arm)
227
+ #else
228
+ DECLARE_NO_INITMOD (windows_d3d12compute_arm)
229
+ #endif // WITH_D3D12
230
+
208
231
#ifdef WITH_X86
209
232
DECLARE_LL_INITMOD (x86_avx2)
210
233
DECLARE_LL_INITMOD(x86_avx)
0 commit comments