From 65514c507720088a58ca90b415766475af11509f Mon Sep 17 00:00:00 2001 From: "Sarnie, Nick" Date: Mon, 4 Aug 2025 11:19:03 -0700 Subject: [PATCH 1/2] [SYCL] [NativeCPU][CMake] Simplify OCK CMake handling Signed-off-by: Sarnie, Nick --- llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt | 50 ++++++++++------------ 1 file changed, 23 insertions(+), 27 deletions(-) diff --git a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt index 85e50be268f42..1f1d1914c8a59 100644 --- a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt +++ b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt @@ -19,10 +19,6 @@ add_llvm_component_library(LLVMSYCLNativeCPUUtils ipo ) -set(OCK_SOURCE_DIR "" CACHE PATH "Root of the local checkout of the oneAPI Construction Kit") -set(OCK_GIT_REPO "" CACHE STRING "Git repository for the oneAPI Construction Kit FetchContent") -set(OCK_GIT_TAG "" CACHE STRING "Git tag for the oneAPI Construction Kit FetchContent") -option(NATIVECPU_OCK_USE_FETCHCONTENT "Use FetchContent to acquire oneAPI Construction Kit source code" On) option(NATIVECPU_USE_OCK "Use the oneAPI Construction Kit for Native CPU" ON) # Don't fetch OCK if Native CPU is not enabled. @@ -31,8 +27,16 @@ if(NOT "native_cpu" IN_LIST SYCL_ENABLE_BACKENDS) endif() if(NATIVECPU_USE_OCK) - if(NATIVECPU_OCK_USE_FETCHCONTENT) - set(OCK_GIT_INTERNAL_REPO "https://github.com/uxlfoundation/oneapi-construction-kit.git") + set(OCK_SEARCH_LOC "oneapi-construction-kit/compiler_passes") + if(NOT FETCHCONTENT_SOURCE_DIR_ONEAPI-CK) + find_path(OCK_SOURCE_DIR ${OCK_SEARCH_LOC} PATHS ${CMAKE_PREFIX_PATH}) + endif() + if(OCK_SOURCE_DIR) + message(STATUS "Found system source location of oneAPI Construction Kit in ${OCK_SOURCE_DIR}") + set(OCK_SOURCE_DIR "${OCK_SOURCE_DIR}/${OCK_SEARCH_LOC}") + set(OCK_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/oneapi-construction-kit") + else() + set(OCK_GIT_REPO "https://github.com/uxlfoundation/oneapi-construction-kit.git") # commit d0a32d701e34b3285de7ce776ea36abfec673df7 # Merge: a9f848e0e8 56473a8c25 # Author: Harald van Dijk @@ -41,39 +45,31 @@ if(NATIVECPU_USE_OCK) # Merge pull request #878 from hvdijk/specify-fuse-ld-lld # # [RefSi] Explicitly specify -fuse-ld=lld. - set(OCK_GIT_INTERNAL_TAG d0a32d701e34b3285de7ce776ea36abfec673df7) - - # Overwrite OCK_GIT_INTERNAL_REPO/OCK_GIT_INTERNAL_TAG if the corresponding options are set - if(OCK_GIT_REPO) - set(OCK_GIT_INTERNAL_REPO "${OCK_GIT_REPO}") - endif() - if(OCK_GIT_TAG) - set(OCK_GIT_INTERNAL_TAG "${OCK_GIT_TAG}") - endif() + set(OCK_GIT_TAG d0a32d701e34b3285de7ce776ea36abfec673df7) + include(FetchContent) FetchContent_Declare(oneapi-ck - GIT_REPOSITORY "${OCK_GIT_INTERNAL_REPO}" - GIT_TAG "${OCK_GIT_INTERNAL_TAG}" + GIT_REPOSITORY "${OCK_GIT_REPO}" + GIT_TAG "${OCK_GIT_TAG}" ) FetchContent_GetProperties(oneapi-ck) if(NOT oneapi-ck_POPULATED) - message(STATUS "Cloning oneAPI Construction Kit from ${OCK_GIT_INTERNAL_REPO}, tag ${OCK_GIT_INTERNAL_TAG}") + if(FETCHCONTENT_SOURCE_DIR_ONEAPI-CK) + message(STATUS "Using specified oneAPI Consutrction Kit repo location at ${FETCHCONTENT_SOURCE_DIR_ONEAPI-CK}") + else() + message(STATUS "Cloning oneAPI Construction Kit from ${OCK_GIT_REPO}, tag ${OCK_GIT_TAG}") + endif() FetchContent_Populate(oneapi-ck) message(STATUS "oneAPI Construction Kit cloned in ${oneapi-ck_SOURCE_DIR}") - set(OCK_SOURCE_DIR_INTERNAL ${oneapi-ck_SOURCE_DIR}/compiler_passes) - set(OCK_BINARY_DIR_INTERNAL ${oneapi-ck_BINARY_DIR}) + set(OCK_SOURCE_DIR ${oneapi-ck_SOURCE_DIR}/compiler_passes) + set(OCK_BINARY_DIR ${oneapi-ck_BINARY_DIR}) endif() - elseif(OCK_SOURCE_DIR) - set(OCK_SOURCE_DIR_INTERNAL "${OCK_SOURCE_DIR}/compiler_passes") - set(OCK_BINARY_DIR_INTERNAL "${CMAKE_CURRENT_BINARY_DIR}/oneapi-construction-kit") - else() - message(FATAL_ERROR "NATIVECPU_OCK_USE_FETCHCONTENT is Off and OCK_SOURCE_DIR not set") endif() set(CA_ENABLE_API "cl" CACHE STRING "" FORCE) add_subdirectory( - ${OCK_SOURCE_DIR_INTERNAL} - ${OCK_BINARY_DIR_INTERNAL} EXCLUDE_FROM_ALL) + ${OCK_SOURCE_DIR} + ${OCK_BINARY_DIR} EXCLUDE_FROM_ALL) install(TARGETS compiler-pipeline EXPORT;LLVMExports From a9cc1fdf2af2657782fcf85c903efc59820459c6 Mon Sep 17 00:00:00 2001 From: "Sarnie, Nick" Date: Tue, 5 Aug 2025 07:03:43 -0700 Subject: [PATCH 2/2] typo fix Signed-off-by: Sarnie, Nick --- llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt index 1f1d1914c8a59..fb2bf7703ab10 100644 --- a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt +++ b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt @@ -55,7 +55,7 @@ if(NATIVECPU_USE_OCK) FetchContent_GetProperties(oneapi-ck) if(NOT oneapi-ck_POPULATED) if(FETCHCONTENT_SOURCE_DIR_ONEAPI-CK) - message(STATUS "Using specified oneAPI Consutrction Kit repo location at ${FETCHCONTENT_SOURCE_DIR_ONEAPI-CK}") + message(STATUS "Using specified oneAPI Construction Kit repo location at ${FETCHCONTENT_SOURCE_DIR_ONEAPI-CK}") else() message(STATUS "Cloning oneAPI Construction Kit from ${OCK_GIT_REPO}, tag ${OCK_GIT_TAG}") endif()