@@ -170,15 +170,21 @@ function(add_devicelibs filename)
170170 ${ARGN} )
171171
172172 foreach (filetype IN LISTS filetypes)
173- compile_lib(${filename} FILETYPE ${filetype} SRC ${ARG_SRC}
174- DEPENDENCIES ${ARG_DEPENDENCIES} EXTRA_OPTS
175- ${ARG_EXTRA_OPTS} ${${filetype} _device_compile_opts})
173+ compile_lib(${filename}
174+ FILETYPE ${filetype}
175+ SRC ${ARG_SRC}
176+ DEPENDENCIES ${ARG_DEPENDENCIES}
177+ EXTRA_OPTS ${ARG_EXTRA_OPTS} ${${filetype} _device_compile_opts})
176178 endforeach ()
177179
178180 foreach (arch IN LISTS devicelib_arch)
179- compile_lib(${filename} --${arch} FILETYPE bc SRC ${ARG_SRC}
180- DEPENDENCIES ${ARG_DEPENDENCIES} EXTRA_OPTS ${ARG_EXTRA_OPTS}
181- ${bc_device_compile_opts} ${compile_opts_${arch} })
181+ compile_lib(${filename} --${arch}
182+ FILETYPE bc
183+ SRC ${ARG_SRC}
184+ DEPENDENCIES ${ARG_DEPENDENCIES}
185+ EXTRA_OPTS ${ARG_EXTRA_OPTS} ${bc_device_compile_opts}
186+ ${compile_opts_${arch} })
187+
182188 append_to_property(${bc_binary_dir} /${filename} --${arch} .bc
183189 PROPERTY_NAME BC_DEVICE_LIBS_${arch} )
184190 endforeach ()
@@ -188,8 +194,7 @@ endfunction()
188194set (crt_obj_deps wrapper.h device.h spirv_vars.h sycl-compiler)
189195set (complex_obj_deps device_complex.h device.h sycl-compiler)
190196set (cmath_obj_deps device_math.h device.h sycl-compiler)
191- set (imf_obj_deps device_imf.hpp imf_half.hpp imf_bf16.hpp imf_rounding_op.hpp
192- imf_impl_utils.hpp device.h sycl-compiler)
197+ set (imf_obj_deps device_imf.hpp imf_half.hpp imf_bf16.hpp imf_rounding_op.hpp imf_impl_utils.hpp device.h sycl-compiler)
193198set (itt_obj_deps device_itt.h spirv_vars.h device.h sycl-compiler)
194199set (bfloat16_obj_deps sycl-headers sycl-compiler)
195200if (NOT MSVC )
@@ -203,86 +208,108 @@ endif()
203208
204209if ("native_cpu" IN_LIST SYCL_ENABLE_PLUGINS)
205210 if (NOT DEFINED NATIVE_CPU_DIR)
206- message ( FATAL_ERROR "Undefined UR variable NATIVE_CPU_DIR.
207- The name may have changed." )
211+ message ( FATAL_ERROR "Undefined UR variable NATIVE_CPU_DIR. The name may have changed." )
208212 endif ()
209- # Include NativeCPU UR adapter path to enable finding header file with
210- # state struct. libsycl-nativecpu_utils is only needed as BC file by
211- # NativeCPU.
213+ # Include NativeCPU UR adapter path to enable finding header file with state struct.
214+ # libsycl-nativecpu_utils is only needed as BC file by NativeCPU.
212215 # Todo: add versions for other targets (for cross-compilation)
213- compile_lib(libsycl-nativecpu_utils FILETYPE bc SRC nativecpu_utils.cpp
214- DEPENDENCIES ${itt_obj_deps} EXTRA_OPTS -I ${NATIVE_CPU_DIR}
215- -fsycl-targets=native_cpu -fsycl-device-only -fsycl-device-obj=llvmir)
216+ compile_lib(libsycl-nativecpu_utils
217+ FILETYPE bc
218+ SRC nativecpu_utils.cpp
219+ DEPENDENCIES ${itt_obj_deps}
220+ EXTRA_OPTS -I ${NATIVE_CPU_DIR} -fsycl-targets=native_cpu -fsycl-device-only
221+ -fsycl-device-obj=llvmir)
216222endif ()
217223
218224# Add all device libraries for each filetype except for the Intel math function
219225# ones.
220- add_devicelibs(libsycl-itt-stubs SRC itt_stubs.cpp
226+ add_devicelibs(libsycl-itt-stubs
227+ SRC itt_stubs.cpp
221228 DEPENDENCIES ${itt_obj_deps} )
222- add_devicelibs(libsycl-itt-compiler-wrappers SRC itt_compiler_wrappers.cpp
229+ add_devicelibs(libsycl-itt-compiler-wrappers
230+ SRC itt_compiler_wrappers.cpp
223231 DEPENDENCIES ${itt_obj_deps} )
224- add_devicelibs(libsycl-itt-user-wrappers SRC itt_user_wrappers.cpp
232+ add_devicelibs(libsycl-itt-user-wrappers
233+ SRC itt_user_wrappers.cpp
225234 DEPENDENCIES ${itt_obj_deps} )
226235
227- add_devicelibs(libsycl-crt SRC crt_wrapper.cpp
236+ add_devicelibs(libsycl-crt
237+ SRC crt_wrapper.cpp
228238 DEPENDENCIES ${crt_obj_deps} )
229- add_devicelibs(libsycl-complex SRC complex_wrapper.cpp
239+ add_devicelibs(libsycl-complex
240+ SRC complex_wrapper.cpp
230241 DEPENDENCIES ${complex_obj_deps} )
231- add_devicelibs(libsycl-complex-fp64 SRC complex_wrapper_fp64.cpp
242+ add_devicelibs(libsycl-complex-fp64
243+ SRC complex_wrapper_fp64.cpp
232244 DEPENDENCIES ${complex_obj_deps} )
233- add_devicelibs(libsycl-cmath SRC cmath_wrapper.cpp
245+ add_devicelibs(libsycl-cmath
246+ SRC cmath_wrapper.cpp
234247 DEPENDENCIES ${cmath_obj_deps} )
235- add_devicelibs(libsycl-cmath-fp64 SRC cmath_wrapper_fp64.cpp
248+ add_devicelibs(libsycl-cmath-fp64
249+ SRC cmath_wrapper_fp64.cpp
236250 DEPENDENCIES ${cmath_obj_deps} )
237- add_devicelibs(libsycl-imf SRC imf_wrapper.cpp
251+ add_devicelibs(libsycl-imf
252+ SRC imf_wrapper.cpp
238253 DEPENDENCIES ${imf_obj_deps} )
239- add_devicelibs(libsycl-imf-fp64 SRC imf_wrapper_fp64.cpp
254+ add_devicelibs(libsycl-imf-fp64
255+ SRC imf_wrapper_fp64.cpp
240256 DEPENDENCIES ${imf_obj_deps} )
241- add_devicelibs(libsycl-imf-bf16 SRC imf_wrapper_bf16.cpp
257+ add_devicelibs(libsycl-imf-bf16
258+ SRC imf_wrapper_bf16.cpp
242259 DEPENDENCIES ${imf_obj_deps} )
243- add_devicelibs(libsycl-bfloat16 SRC bfloat16_wrapper.cpp
260+ add_devicelibs(libsycl-bfloat16
261+ SRC bfloat16_wrapper.cpp
244262 DEPENDENCIES ${cmath_obj_deps} )
245263if (MSVC )
246- add_devicelibs(libsycl-msvc -math SRC msvc_math.cpp
264+ add_devicelibs(libsycl-msvc -math
265+ SRC msvc_math.cpp
247266 DEPENDENCIES ${cmath_obj_deps} )
248267else ()
249- add_devicelibs(libsycl-sanitizer SRC sanitizer_utils.cpp
268+ add_devicelibs(libsycl-sanitizer
269+ SRC sanitizer_utils.cpp
250270 DEPENDENCIES ${sanitizer_obj_deps}
251271 EXTRA_OPTS -fno-sycl-instrument-device-code)
252272endif ()
253273
254- add_devicelibs(libsycl-fallback-cassert SRC fallback-cassert.cpp
255- DEPENDENCIES ${crt_obj_deps} EXTRA_OPTS -fno-sycl-instrument-device-code)
256- add_devicelibs(libsycl-fallback-cstring SRC fallback-cstring.cpp
274+ add_devicelibs(libsycl-fallback-cassert
275+ SRC fallback-cassert.cpp
276+ DEPENDENCIES ${crt_obj_deps}
277+ EXTRA_OPTS -fno-sycl-instrument-device-code)
278+ add_devicelibs(libsycl-fallback-cstring
279+ SRC fallback-cstring.cpp
257280 DEPENDENCIES ${crt_obj_deps} )
258- add_devicelibs(libsycl-fallback-complex SRC fallback-complex.cpp
281+ add_devicelibs(libsycl-fallback-complex
282+ SRC fallback-complex.cpp
259283 DEPENDENCIES ${complex_obj_deps} )
260- add_devicelibs(libsycl-fallback-complex-fp64 SRC fallback-complex-fp64.cpp
284+ add_devicelibs(libsycl-fallback-complex-fp64
285+ SRC fallback-complex-fp64.cpp
261286 DEPENDENCIES ${complex_obj_deps} )
262- add_devicelibs(libsycl-fallback-cmath SRC fallback-cmath.cpp
287+ add_devicelibs(libsycl-fallback-cmath
288+ SRC fallback-cmath.cpp
263289 DEPENDENCIES ${cmath_obj_deps} )
264- add_devicelibs(libsycl-fallback-cmath-fp64 SRC fallback-cmath-fp64.cpp
290+ add_devicelibs(libsycl-fallback-cmath-fp64
291+ SRC fallback-cmath-fp64.cpp
265292 DEPENDENCIES ${cmath_obj_deps} )
266- add_devicelibs(libsycl-fallback-bfloat16 SRC fallback-bfloat16.cpp
293+ add_devicelibs(libsycl-fallback-bfloat16
294+ SRC fallback-bfloat16.cpp
267295 DEPENDENCIES ${bfloat16_obj_deps} )
268- add_devicelibs(libsycl-native-bfloat16 SRC bfloat16_wrapper.cpp
296+ add_devicelibs(libsycl-native-bfloat16
297+ SRC bfloat16_wrapper.cpp
269298 DEPENDENCIES ${bfloat16_obj_deps} )
270299
271300# Create dependency and source lists for Intel math function libraries.
272301file (MAKE_DIRECTORY ${obj_binary_dir} /libdevice)
273302set (imf_fallback_src_dir ${obj_binary_dir} /libdevice)
274303set (imf_src_dir ${CMAKE_CURRENT_SOURCE_DIR} )
275- set (imf_fallback_fp32_deps device.h device_imf.hpp imf_half.hpp
276- imf_rounding_op.hpp imf_impl_utils.hpp
304+ set (imf_fallback_fp32_deps device.h device_imf.hpp imf_half.hpp imf_rounding_op.hpp imf_impl_utils.hpp
277305 imf_utils/integer_misc.cpp
278306 imf_utils/float_convert.cpp
279307 imf_utils/half_convert.cpp
280308 imf_utils/simd_emulate.cpp
281309 imf_utils/fp32_round.cpp
282310 imf/imf_inline_fp32.cpp
283311 imf/imf_fp32_dl.cpp)
284- set (imf_fallback_fp64_deps device.h device_imf.hpp imf_half.hpp
285- imf_rounding_op.hpp imf_impl_utils.hpp
312+ set (imf_fallback_fp64_deps device.h device_imf.hpp imf_half.hpp imf_rounding_op.hpp imf_impl_utils.hpp
286313 imf_utils/double_convert.cpp imf_utils/fp64_round.cpp
287314 imf/imf_inline_fp64.cpp
288315 imf/imf_fp64_dl.cpp)
@@ -330,8 +357,7 @@ macro(add_imf_host_cxx_flags_compile_flags_if_supported)
330357 foreach (flag ${ARGN} )
331358 mangle_name("${flag} " flagname)
332359 check_cxx_compiler_flag("${flag} " "CXX_SUPPORTS_${flagname} _FLAG" )
333- add_imf_host_cxx_flags_compile_flags_if(CXX_SUPPORTS_${flagname} _FLAG
334- ${flag} )
360+ add_imf_host_cxx_flags_compile_flags_if(CXX_SUPPORTS_${flagname} _FLAG ${flag} )
335361 endforeach ()
336362endmacro ()
337363
@@ -413,8 +439,11 @@ foreach(dtype IN ITEMS bf16 fp32 fp64)
413439 endif ()
414440 set (tgt_name imf_fallback_${dtype} _${ftype} )
415441
416- add_lib_imf(${libsycl_name} DIR ${${ftype} _binary_dir} FTYPE
417- ${ftype} DTYPE ${dtype} EXTRA_OPTS ${${ftype} _device_compile_opts}
442+ add_lib_imf(${libsycl_name}
443+ DIR ${${ftype} _binary_dir}
444+ FTYPE ${ftype}
445+ DTYPE ${dtype}
446+ EXTRA_OPTS ${${ftype} _device_compile_opts}
418447 TGT_NAME ${tgt_name} )
419448 endforeach ()
420449endforeach ()
@@ -425,8 +454,11 @@ foreach(arch IN LISTS devicelib_arch)
425454 foreach (dtype IN ITEMS bf16 fp32 fp64)
426455 set (tgt_name imf_fallback_${dtype} _bc_${arch} )
427456
428- add_lib_imf(libsycl-fallback-imf-${arch} -${dtype} ARCH ${arch} DIR
429- ${bc_binary_dir} FTYPE bc DTYPE ${dtype}
457+ add_lib_imf(libsycl-fallback-imf-${arch} -${dtype}
458+ ARCH ${arch}
459+ DIR ${bc_binary_dir}
460+ FTYPE bc
461+ DTYPE ${dtype}
430462 EXTRA_OPTS ${bc_device_compile_opts} ${compile_opts_${arch} }
431463 TGT_NAME ${tgt_name} )
432464
@@ -451,8 +483,10 @@ foreach(arch IN LISTS devicelib_arch)
451483
452484 # Run the optimizer on the resulting bitcode file and call prepare_builtins
453485 # on it, which strips away debug and arch information.
454- opt_prepare(devicelib--${arch} .bc LIB_TGT builtins_${arch} .opt IN_FILE
455- ${builtins_link_lib_${arch} } OUT_DIR ${bc_binary_dir} )
486+ process_bc(devicelib--${arch} .bc
487+ LIB_TGT builtins_${arch} .opt
488+ IN_FILE ${builtins_link_lib_${arch} }
489+ OUT_DIR ${bc_binary_dir} )
456490 add_dependencies (libsycldevice-bc prepare-devicelib--${arch} .bc)
457491 set (complete_${arch} _libdev
458492 $<TARGET_PROPERTY:prepare-devicelib--${arch} .bc,TARGET_FILE>)
@@ -466,8 +500,11 @@ foreach(dtype IN ITEMS bf16 fp32 fp64)
466500 foreach (ftype IN ITEMS obj obj-new-offload)
467501 set (tgt_name imf_fallback_${dtype} _host_${ftype} )
468502
469- add_lib_imf(fallback-imf-${dtype} -host DIR ${${ftype} _binary_dir}
470- FTYPE ${ftype} DTYPE ${dtype} EXTRA_OPTS ${${ftype} _host_compile_opts}
503+ add_lib_imf(fallback-imf-${dtype} -host
504+ DIR ${${ftype} _binary_dir}
505+ FTYPE ${ftype}
506+ DTYPE ${dtype}
507+ EXTRA_OPTS ${${ftype} _host_compile_opts}
471508 TGT_NAME ${tgt_name} )
472509
473510 set (wrapper_name imf_wrapper.cpp)
0 commit comments