Skip to content

Commit 5905a22

Browse files
author
Martin Wehking
committed
Refactor CMake and remove reduntant bools
1 parent 58bc0a8 commit 5905a22

File tree

3 files changed

+122
-77
lines changed

3 files changed

+122
-77
lines changed

clang/lib/Driver/ToolChains/SYCL.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ SYCL::getDeviceLibraries(const Compilation &C, const llvm::Triple &TargetTriple,
255255
<< A->getSpelling() << Val;
256256
}
257257
DeviceLibLinkInfo[Val] = !NoDeviceLibs && !IgnoreSingleLibs;
258-
PrintUnusedLibWarning = IgnoreSingleLibs && !NoDeviceLibs && true;
258+
PrintUnusedLibWarning = IgnoreSingleLibs && !NoDeviceLibs;
259259
}
260260
if (PrintUnusedLibWarning)
261261
C.getDriver().Diag(diag::warn_ignored_clang_option)

libclc/cmake/modules/AddLibclc.cmake

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -219,41 +219,47 @@ function(add_libclc_alias alias target)
219219

220220
endfunction(add_libclc_alias alias target)
221221

222-
# runs opt and prepare-builtins on a bitcode file specified by lib_tgt
223-
# LIB_TGT string
222+
# Runs opt and prepare-builtins on a bitcode file specified by lib_tgt
223+
#
224+
# ARGUMENTS:
225+
# * LIB_TGT string
224226
# Target name that becomes dependent on the out file named LIB_TGT.bc
225-
# IN_FILE string
227+
# * IN_FILE string
226228
# Target name of the input bytecode file
227-
# OUT_DIR string
229+
# * OUT_DIR string
228230
# Name of the directory where the output should be placed
229-
# DEPENDENCIES <string> ...
231+
# * DEPENDENCIES <string> ...
230232
# List of extra dependencies to inject
231-
function(opt_prepare out_file)
232-
cmake_parse_arguments(OPT "" "LIB_TGT;IN_FILE;OUT_DIR" "DEPENDENCIES" ${ARGN})
233-
add_custom_command( OUTPUT ${OPT_LIB_TGT}.bc
234-
COMMAND libclc::opt ${ARG_OPT_FLAGS} -o ${OPT_LIB_TGT}.bc
235-
${OPT_IN_FILE}
236-
DEPENDS libclc::opt ${OPT_IN_FILE} ${OPT_DEPENDENCIES}
233+
function(process_bc out_file)
234+
cmake_parse_arguments(ARG
235+
""
236+
"LIB_TGT;IN_FILE;OUT_DIR"
237+
"DEPENDENCIES"
238+
${ARGN})
239+
add_custom_command( OUTPUT ${ARG_LIB_TGT}.bc
240+
COMMAND libclc::opt -o ${ARG_LIB_TGT}.bc
241+
${ARG_IN_FILE}
242+
DEPENDS libclc::opt ${ARG_IN_FILE} ${ARG_DEPENDENCIES}
237243
)
238-
add_custom_target( ${OPT_LIB_TGT}
239-
ALL DEPENDS ${OPT_LIB_TGT}.bc
244+
add_custom_target( ${ARG_LIB_TGT}
245+
ALL DEPENDS ${ARG_LIB_TGT}.bc
240246
)
241-
set_target_properties( ${OPT_LIB_TGT}
242-
PROPERTIES TARGET_FILE ${OPT_LIB_TGT}.bc
247+
set_target_properties( ${ARG_LIB_TGT}
248+
PROPERTIES TARGET_FILE ${ARG_LIB_TGT}.bc
243249
)
244250

245-
set( builtins_opt_lib $<TARGET_PROPERTY:${OPT_LIB_TGT},TARGET_FILE> )
251+
set( builtins_opt_lib $<TARGET_PROPERTY:${ARG_LIB_TGT},TARGET_FILE> )
246252

247253
# Add prepare target
248-
add_custom_command( OUTPUT ${OPT_OUT_DIR}/${out_file}
249-
COMMAND prepare_builtins -o ${OPT_OUT_DIR}/${out_file}
254+
add_custom_command( OUTPUT ${ARG_OUT_DIR}/${out_file}
255+
COMMAND prepare_builtins -o ${ARG_OUT_DIR}/${out_file}
250256
${builtins_opt_lib}
251-
DEPENDS ${builtins_opt_lib} ${OPT_LIB_TGT} prepare_builtins )
257+
DEPENDS ${builtins_opt_lib} ${ARG_LIB_TGT} prepare_builtins )
252258
add_custom_target( prepare-${out_file} ALL
253-
DEPENDS ${OPT_OUT_DIR}/${out_file}
259+
DEPENDS ${ARG_OUT_DIR}/${out_file}
254260
)
255261
set_target_properties( prepare-${out_file}
256-
PROPERTIES TARGET_FILE ${OPT_OUT_DIR}/${out_file}
262+
PROPERTIES TARGET_FILE ${ARG_OUT_DIR}/${out_file}
257263
)
258264
endfunction()
259265

@@ -344,8 +350,10 @@ macro(add_libclc_builtin_set arch_suffix)
344350

345351
set( builtins_opt_lib_tgt builtins.opt.${arch_suffix} )
346352

347-
opt_prepare(${arch_suffix}.bc LIB_TGT ${builtins_opt_lib_tgt} IN_FILE
348-
${builtins_link_lib} OUT_DIR ${LIBCLC_LIBRARY_OUTPUT_INTDIR}
353+
process_bc(${arch_suffix}.bc
354+
LIB_TGT ${builtins_opt_lib_tgt}
355+
IN_FILE ${builtins_link_lib}
356+
OUT_DIR ${LIBCLC_LIBRARY_OUTPUT_INTDIR}
349357
DEPENDS ${builtins_link_lib_tgt})
350358

351359
# Add dependency to top-level pseudo target to ease making other

libdevice/cmake/modules/SYCLLibdevice.cmake

Lines changed: 90 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -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()
188194
set(crt_obj_deps wrapper.h device.h spirv_vars.h sycl-compiler)
189195
set(complex_obj_deps device_complex.h device.h sycl-compiler)
190196
set(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)
193198
set(itt_obj_deps device_itt.h spirv_vars.h device.h sycl-compiler)
194199
set(bfloat16_obj_deps sycl-headers sycl-compiler)
195200
if (NOT MSVC)
@@ -203,86 +208,108 @@ endif()
203208

204209
if("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)
216222
endif()
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})
245263
if(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})
248267
else()
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)
252272
endif()
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.
272301
file(MAKE_DIRECTORY ${obj_binary_dir}/libdevice)
273302
set(imf_fallback_src_dir ${obj_binary_dir}/libdevice)
274303
set(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()
336362
endmacro()
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()
420449
endforeach()
@@ -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

Comments
 (0)