@@ -34,8 +34,14 @@ set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS
3434 r600/lib/SOURCES ;
3535 r600/libspirv/SOURCES ;
3636 spirv/lib/SOURCES ;
37- spirv64/lib/SOURCES
38- native_cpu-unknown-linux/libspirv/SOURCES
37+ spirv64/lib/SOURCES ;
38+ native_cpu-unknown-linux/libspirv/SOURCES ;
39+ # CLC internal libraries
40+ clc/lib/generic/SOURCES ;
41+ clc/lib/clspv/SOURCES ;
42+ clc/lib/clspv64/SOURCES ;
43+ clc/lib/spirv/SOURCES ;
44+ clc/lib/spirv64/SOURCES ;
3945)
4046
4147set ( LIBCLC_MIN_LLVM 3.9.0 )
@@ -329,6 +335,14 @@ foreach( t ${LIBCLC_TARGETS_TO_BUILD} )
329335 " configuration, some SYCL programs may fail to build." )
330336 endif ()
331337
338+ set ( clc_lib_files )
339+ libclc_configure_lib_source(
340+ clc_lib_files
341+ CLC_INTERNAL
342+ LIB_ROOT_DIR clc
343+ DIRS ${dirs} ${DARCH} ${DARCH} -${OS} ${DARCH} -${VENDOR} -${OS}
344+ )
345+
332346 set ( opencl_lib_files )
333347 set ( opencl_gen_files )
334348
@@ -474,7 +488,8 @@ foreach( t ${LIBCLC_TARGETS_TO_BUILD} )
474488 list ( APPEND build_flags
475489 -D__CLC_INTERNAL
476490 -D${CLC_TARGET_DEFINE}
477- -I${CMAKE_CURRENT_SOURCE_DIR} /generic/include
491+ # All libclc builtin libraries see CLC headers
492+ -I${CMAKE_CURRENT_SOURCE_DIR} /clc/include
478493 # FIXME: Fix libclc to not require disabling this noisy warning
479494 -Wno-bitwise-conditional-parentheses
480495 )
@@ -483,6 +498,20 @@ foreach( t ${LIBCLC_TARGETS_TO_BUILD} )
483498 list ( APPEND build_flags -mcpu=${cpu} )
484499 endif ()
485500
501+ add_libclc_builtin_set(
502+ CLC_INTERNAL
503+ ARCH ${ARCH}
504+ ARCH_SUFFIX clc-${arch_suffix}
505+ TRIPLE ${clang_triple}
506+ COMPILE_FLAGS ${build_flags}
507+ OPT_FLAGS ${opt_flags}
508+ LIB_FILES ${clc_lib_files}
509+ )
510+
511+ list ( APPEND build_flags
512+ -I${CMAKE_CURRENT_SOURCE_DIR} /generic/include
513+ )
514+
486515 add_libclc_builtin_set(
487516 ARCH ${ARCH}
488517 ARCH_SUFFIX libspirv-${arch_suffix}
@@ -493,8 +522,9 @@ foreach( t ${LIBCLC_TARGETS_TO_BUILD} )
493522 LIB_FILES ${libspirv_lib_files}
494523 GEN_FILES ${libspirv_gen_files}
495524 ALIASES ${${d} _aliases}
496- GENERATE_TARGET "generate_convert_spirv.cl" "generate_convert_core.cl"
497525 PARENT_TARGET libspirv-builtins
526+ # Link in the CLC builtins and internalize their symbols
527+ INTERNAL_LINK_DEPENDENCIES $<TARGET_PROPERTY:builtins.link.clc-${arch_suffix} ,TARGET_FILE>
498528 )
499529
500530 add_libclc_builtin_set(
@@ -506,8 +536,9 @@ foreach( t ${LIBCLC_TARGETS_TO_BUILD} )
506536 LIB_FILES ${opencl_lib_files}
507537 GEN_FILES ${opencl_gen_files}
508538 ALIASES ${${d} _aliases}
509- GENERATE_TARGET "generate_convert_clc.cl"
510539 PARENT_TARGET libopencl-builtins
540+ # Link in the CLC builtins and internalize their symbols
541+ INTERNAL_LINK_DEPENDENCIES $<TARGET_PROPERTY:builtins.link.clc-${arch_suffix} ,TARGET_FILE>
511542 )
512543 endforeach ( d )
513544endforeach ( t )
0 commit comments