@@ -60,8 +60,26 @@ static int CeedJitAddDefinitions_Sycl(Ceed ceed, const std::string &kernel_sourc
6060// ------------------------------------------------------------------------------
6161// TODO: Add architecture flags, optimization flags
6262// ------------------------------------------------------------------------------
63- static inline int CeedJitGetFlags_Sycl (std::vector<std::string> &flags) {
63+ static inline int CeedJitGetFlags_Sycl (Ceed ceed, std::vector<std::string> &flags) {
6464 flags = {std::string (" -cl-std=CL3.0" ), std::string (" -Dint32_t=int" ), std::string (" -DCEED_RUNNING_JIT_PASS=1" )};
65+ // Add JIT source root directories as -I include paths
66+ {
67+ const char **jit_source_dirs;
68+ CeedInt num_jit_source_dirs;
69+
70+ CeedCallBackend (CeedGetJitSourceRoots (ceed, &num_jit_source_dirs, &jit_source_dirs));
71+ for (CeedInt i = 0 ; i < num_jit_source_dirs; i++) flags.push_back (std::string (" -I" ) + jit_source_dirs[i]);
72+ CeedCallBackend (CeedRestoreJitSourceRoots (ceed, &jit_source_dirs));
73+ }
74+ // Add user JIT defines as -D flags
75+ {
76+ const char **jit_defines;
77+ CeedInt num_jit_defines;
78+
79+ CeedCallBackend (CeedGetJitDefines (ceed, &num_jit_defines, &jit_defines));
80+ for (CeedInt i = 0 ; i < num_jit_defines; i++) flags.push_back (std::string (" -D" ) + jit_defines[i]);
81+ CeedCallBackend (CeedRestoreJitDefines (ceed, &jit_defines));
82+ }
6583 return CEED_ERROR_SUCCESS;
6684}
6785
@@ -129,7 +147,7 @@ int CeedBuildModule_Sycl(Ceed ceed, const std::string &kernel_source, SyclModule
129147
130148 CeedCallBackend (CeedGetData (ceed, &data));
131149 CeedCallBackend (CeedJitAddDefinitions_Sycl (ceed, kernel_source, jit_source, constants));
132- CeedCallBackend (CeedJitGetFlags_Sycl (flags));
150+ CeedCallBackend (CeedJitGetFlags_Sycl (ceed, flags));
133151 CeedCallBackend (CeedJitCompileSource_Sycl (ceed, data->sycl_device , jit_source, il_binary, flags));
134152 CeedCallBackend (CeedLoadModule_Sycl (ceed, data->sycl_context , data->sycl_device , il_binary, sycl_module));
135153 return CEED_ERROR_SUCCESS;
0 commit comments