From 171c260d64d4a0320f79e53149e96fd8a5f9f9c0 Mon Sep 17 00:00:00 2001 From: PietroGhg Date: Wed, 15 May 2024 15:59:53 +0100 Subject: [PATCH 01/10] [wip] allow shared builds --- clang/lib/CodeGen/CMakeLists.txt | 1 + llvm/lib/CMakeLists.txt | 1 + llvm/lib/SYCLLowerIR/CMakeLists.txt | 2 -- llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt | 14 ++++++++++++++ .../PipelineSYCLNativeCPU.cpp | 0 .../PrepareSYCLNativeCPU.cpp | 0 sycl/plugins/native_cpu/CMakeLists.txt | 9 ++++++++- 7 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt rename llvm/lib/{SYCLLowerIR => SYCLNativeCPUUtils}/PipelineSYCLNativeCPU.cpp (100%) rename llvm/lib/{SYCLLowerIR => SYCLNativeCPUUtils}/PrepareSYCLNativeCPU.cpp (100%) diff --git a/clang/lib/CodeGen/CMakeLists.txt b/clang/lib/CodeGen/CMakeLists.txt index f17ca4bd9ab53..6ffcb6598ad5c 100644 --- a/clang/lib/CodeGen/CMakeLists.txt +++ b/clang/lib/CodeGen/CMakeLists.txt @@ -29,6 +29,7 @@ set(LLVM_LINK_COMPONENTS ScalarOpts Support SYCLLowerIR + SYCLNativeCPUUtils Target TargetParser TransformUtils diff --git a/llvm/lib/CMakeLists.txt b/llvm/lib/CMakeLists.txt index 7d0a02c843a44..d80f251469765 100644 --- a/llvm/lib/CMakeLists.txt +++ b/llvm/lib/CMakeLists.txt @@ -38,6 +38,7 @@ add_subdirectory(LineEditor) add_subdirectory(ProfileData) add_subdirectory(Passes) add_subdirectory(SYCLLowerIR) +add_subdirectory(SYCLNativeCPUUtils) add_subdirectory(TargetParser) add_subdirectory(TextAPI) add_subdirectory(ToolDrivers) diff --git a/llvm/lib/SYCLLowerIR/CMakeLists.txt b/llvm/lib/SYCLLowerIR/CMakeLists.txt index 54946bea7da9e..35ec5f91b2dda 100644 --- a/llvm/lib/SYCLLowerIR/CMakeLists.txt +++ b/llvm/lib/SYCLLowerIR/CMakeLists.txt @@ -65,10 +65,8 @@ add_llvm_component_library(LLVMSYCLLowerIR LocalAccessorToSharedMemory.cpp GlobalOffset.cpp TargetHelpers.cpp - PrepareSYCLNativeCPU.cpp RenameKernelSYCLNativeCPU.cpp ConvertToMuxBuiltinsSYCLNativeCPU.cpp - PipelineSYCLNativeCPU.cpp ADDITIONAL_HEADER_DIRS ${LLVM_MAIN_INCLUDE_DIR}/llvm/SYCLLowerIR diff --git a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt new file mode 100644 index 0000000000000..b6833bab7078b --- /dev/null +++ b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt @@ -0,0 +1,14 @@ +add_llvm_component_library(LLVMSYCLNativeCPUUtils + PipelineSYCLNativeCPU.cpp + PrepareSYCLNativeCPU.cpp + + ADDITIONAL_HEADER_DIRS + ${LLVM_MAIN_INCLUDE_DIR}/llvm/SYCLLowerIR + + LINK_COMPONENTS + Analysis + Core + Support + Passes + ipo + ) diff --git a/llvm/lib/SYCLLowerIR/PipelineSYCLNativeCPU.cpp b/llvm/lib/SYCLNativeCPUUtils/PipelineSYCLNativeCPU.cpp similarity index 100% rename from llvm/lib/SYCLLowerIR/PipelineSYCLNativeCPU.cpp rename to llvm/lib/SYCLNativeCPUUtils/PipelineSYCLNativeCPU.cpp diff --git a/llvm/lib/SYCLLowerIR/PrepareSYCLNativeCPU.cpp b/llvm/lib/SYCLNativeCPUUtils/PrepareSYCLNativeCPU.cpp similarity index 100% rename from llvm/lib/SYCLLowerIR/PrepareSYCLNativeCPU.cpp rename to llvm/lib/SYCLNativeCPUUtils/PrepareSYCLNativeCPU.cpp diff --git a/sycl/plugins/native_cpu/CMakeLists.txt b/sycl/plugins/native_cpu/CMakeLists.txt index cf0b14f71699f..e7f442798c585 100644 --- a/sycl/plugins/native_cpu/CMakeLists.txt +++ b/sycl/plugins/native_cpu/CMakeLists.txt @@ -85,13 +85,20 @@ if(NATIVECPU_USE_OCK) set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS vecz) install(TARGETS multi_llvm EXPORT;LLVMExports) set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS multi_llvm) + target_compile_definitions(LLVMSYCLNativeCPUUtils PRIVATE NATIVECPU_USE_OCK) target_compile_definitions(LLVMSYCLLowerIR PRIVATE NATIVECPU_USE_OCK) target_include_directories(LLVMSYCLLowerIR PRIVATE ${oneapi-ck_SOURCE_DIR}/modules/compiler/multi_llvm/include ${oneapi-ck_SOURCE_DIR}/modules/cargo/include ${oneapi-ck_SOURCE_DIR}/modules/compiler/vecz/include + ${oneapi-ck_SOURCE_DIR}/modules/compiler/compiler_pipeline/include ${oneapi-ck_SOURCE_DIR}/modules/compiler/utils/include) - target_link_libraries(LLVMSYCLLowerIR PRIVATE compiler-pipeline vecz) + target_include_directories(LLVMSYCLNativeCPUUtils PRIVATE + ${oneapi-ck_SOURCE_DIR}/modules/compiler/multi_llvm/include + ${oneapi-ck_SOURCE_DIR}/modules/cargo/include + ${oneapi-ck_SOURCE_DIR}/modules/compiler/vecz/include + ${oneapi-ck_SOURCE_DIR}/modules/compiler/utils/include) + target_link_libraries(LLVMSYCLNativeCPUUtils PRIVATE compiler-pipeline vecz) target_compile_definitions(pi_native_cpu PRIVATE NATIVECPU_USE_OCK) endif() From 81392b2884de7dc878afee553970feaa3f0589e8 Mon Sep 17 00:00:00 2001 From: PietroGhg Date: Wed, 15 May 2024 16:39:37 +0100 Subject: [PATCH 02/10] move native cpu files --- llvm/lib/SYCLLowerIR/CMakeLists.txt | 2 -- llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt | 5 +++++ .../ConvertToMuxBuiltinsSYCLNativeCPU.cpp | 0 .../RenameKernelSYCLNativeCPU.cpp | 0 4 files changed, 5 insertions(+), 2 deletions(-) rename llvm/lib/{SYCLLowerIR => SYCLNativeCPUUtils}/ConvertToMuxBuiltinsSYCLNativeCPU.cpp (100%) rename llvm/lib/{SYCLLowerIR => SYCLNativeCPUUtils}/RenameKernelSYCLNativeCPU.cpp (100%) diff --git a/llvm/lib/SYCLLowerIR/CMakeLists.txt b/llvm/lib/SYCLLowerIR/CMakeLists.txt index 35ec5f91b2dda..ba044ef830d29 100644 --- a/llvm/lib/SYCLLowerIR/CMakeLists.txt +++ b/llvm/lib/SYCLLowerIR/CMakeLists.txt @@ -65,8 +65,6 @@ add_llvm_component_library(LLVMSYCLLowerIR LocalAccessorToSharedMemory.cpp GlobalOffset.cpp TargetHelpers.cpp - RenameKernelSYCLNativeCPU.cpp - ConvertToMuxBuiltinsSYCLNativeCPU.cpp ADDITIONAL_HEADER_DIRS ${LLVM_MAIN_INCLUDE_DIR}/llvm/SYCLLowerIR diff --git a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt index b6833bab7078b..9546a124d3b2c 100644 --- a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt +++ b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt @@ -1,6 +1,9 @@ add_llvm_component_library(LLVMSYCLNativeCPUUtils PipelineSYCLNativeCPU.cpp PrepareSYCLNativeCPU.cpp + RenameKernelSYCLNativeCPU.cpp + ConvertToMuxBuiltinsSYCLNativeCPU.cpp + ADDITIONAL_HEADER_DIRS ${LLVM_MAIN_INCLUDE_DIR}/llvm/SYCLLowerIR @@ -10,5 +13,7 @@ add_llvm_component_library(LLVMSYCLNativeCPUUtils Core Support Passes + Target + TargetParser ipo ) diff --git a/llvm/lib/SYCLLowerIR/ConvertToMuxBuiltinsSYCLNativeCPU.cpp b/llvm/lib/SYCLNativeCPUUtils/ConvertToMuxBuiltinsSYCLNativeCPU.cpp similarity index 100% rename from llvm/lib/SYCLLowerIR/ConvertToMuxBuiltinsSYCLNativeCPU.cpp rename to llvm/lib/SYCLNativeCPUUtils/ConvertToMuxBuiltinsSYCLNativeCPU.cpp diff --git a/llvm/lib/SYCLLowerIR/RenameKernelSYCLNativeCPU.cpp b/llvm/lib/SYCLNativeCPUUtils/RenameKernelSYCLNativeCPU.cpp similarity index 100% rename from llvm/lib/SYCLLowerIR/RenameKernelSYCLNativeCPU.cpp rename to llvm/lib/SYCLNativeCPUUtils/RenameKernelSYCLNativeCPU.cpp From 78ee26b93645bfcfda37806861a348511d450ce2 Mon Sep 17 00:00:00 2001 From: PietroGhg Date: Wed, 15 May 2024 16:52:47 +0100 Subject: [PATCH 03/10] remove unnecessary target properties --- sycl/plugins/native_cpu/CMakeLists.txt | 7 ------- 1 file changed, 7 deletions(-) diff --git a/sycl/plugins/native_cpu/CMakeLists.txt b/sycl/plugins/native_cpu/CMakeLists.txt index e7f442798c585..39d52e9953ce4 100644 --- a/sycl/plugins/native_cpu/CMakeLists.txt +++ b/sycl/plugins/native_cpu/CMakeLists.txt @@ -86,13 +86,6 @@ if(NATIVECPU_USE_OCK) install(TARGETS multi_llvm EXPORT;LLVMExports) set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS multi_llvm) target_compile_definitions(LLVMSYCLNativeCPUUtils PRIVATE NATIVECPU_USE_OCK) - target_compile_definitions(LLVMSYCLLowerIR PRIVATE NATIVECPU_USE_OCK) - target_include_directories(LLVMSYCLLowerIR PRIVATE - ${oneapi-ck_SOURCE_DIR}/modules/compiler/multi_llvm/include - ${oneapi-ck_SOURCE_DIR}/modules/cargo/include - ${oneapi-ck_SOURCE_DIR}/modules/compiler/vecz/include - ${oneapi-ck_SOURCE_DIR}/modules/compiler/compiler_pipeline/include - ${oneapi-ck_SOURCE_DIR}/modules/compiler/utils/include) target_include_directories(LLVMSYCLNativeCPUUtils PRIVATE ${oneapi-ck_SOURCE_DIR}/modules/compiler/multi_llvm/include ${oneapi-ck_SOURCE_DIR}/modules/cargo/include From 21977679277f128ff69820880c19c0567229ef3a Mon Sep 17 00:00:00 2001 From: PietroGhg Date: Thu, 16 May 2024 09:43:41 +0100 Subject: [PATCH 04/10] link to TransformUtils --- llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt index 9546a124d3b2c..aa5d7cb8cb871 100644 --- a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt +++ b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt @@ -15,5 +15,6 @@ add_llvm_component_library(LLVMSYCLNativeCPUUtils Passes Target TargetParser + TransformUtils ipo ) From 842c895b9b2a253064331c2da98bd07f94917872 Mon Sep 17 00:00:00 2001 From: PietroGhg Date: Thu, 16 May 2024 09:52:16 +0100 Subject: [PATCH 05/10] move OCK fetchcontent to SYCLNativeCPUUtils --- llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt | 72 ++++++++++++++++++++++ sycl/plugins/native_cpu/CMakeLists.txt | 69 +-------------------- 2 files changed, 73 insertions(+), 68 deletions(-) diff --git a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt index aa5d7cb8cb871..5d87b074f2535 100644 --- a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt +++ b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt @@ -18,3 +18,75 @@ add_llvm_component_library(LLVMSYCLNativeCPUUtils TransformUtils 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) + +if(NATIVECPU_USE_OCK) + if(NATIVECPU_OCK_USE_FETCHCONTENT) + set(OCK_GIT_INTERNAL_REPO "https://github.com/codeplaysoftware/oneapi-construction-kit.git") + # commit bd7eadaf7ffc7d74c88dd309119e858b7ffae0cf + # Merge: e4f71dc16 792461086 + # Author: Colin Davidson + # Date: Tue May 7 09:40:38 2024 +0100 + # Merge pull request #448 from coldav/colin/support_compiler_passes_only + # Add top level directory which can be used to just build compiler passes + set(OCK_GIT_INTERNAL_TAG bd7eadaf7ffc7d74c88dd309119e858b7ffae0cf) + + # 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() + include(FetchContent) + FetchContent_Declare(oneapi-ck + GIT_REPOSITORY "${OCK_GIT_INTERNAL_REPO}" + GIT_TAG "${OCK_GIT_INTERNAL_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}") + 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}) + 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) + + install(TARGETS compiler-pipeline + EXPORT;LLVMExports + LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT compiler-pipeline + ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT compiler-pipeline + RUNTIME DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT compiler-pipeline) + set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS compiler-pipeline) + install(TARGETS vecz + EXPORT;LLVMExports + LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT vecz + ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT vecz + RUNTIME DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT vecz) + set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS vecz) + install(TARGETS multi_llvm EXPORT;LLVMExports) + set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS multi_llvm) + target_compile_definitions(LLVMSYCLNativeCPUUtils PRIVATE NATIVECPU_USE_OCK) + target_include_directories(LLVMSYCLNativeCPUUtils PRIVATE + ${oneapi-ck_SOURCE_DIR}/modules/compiler/multi_llvm/include + ${oneapi-ck_SOURCE_DIR}/modules/cargo/include + ${oneapi-ck_SOURCE_DIR}/modules/compiler/vecz/include + ${oneapi-ck_SOURCE_DIR}/modules/compiler/utils/include) + target_link_libraries(LLVMSYCLNativeCPUUtils PRIVATE compiler-pipeline vecz) + +endif() diff --git a/sycl/plugins/native_cpu/CMakeLists.txt b/sycl/plugins/native_cpu/CMakeLists.txt index 39d52e9953ce4..6015784dc3bb7 100644 --- a/sycl/plugins/native_cpu/CMakeLists.txt +++ b/sycl/plugins/native_cpu/CMakeLists.txt @@ -23,76 +23,9 @@ add_sycl_plugin(native_cpu UnifiedRuntimeCommon ) -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) if(NATIVECPU_USE_OCK) - if(NATIVECPU_OCK_USE_FETCHCONTENT) - set(OCK_GIT_INTERNAL_REPO "https://github.com/codeplaysoftware/oneapi-construction-kit.git") - # commit bd7eadaf7ffc7d74c88dd309119e858b7ffae0cf - # Merge: e4f71dc16 792461086 - # Author: Colin Davidson - # Date: Tue May 7 09:40:38 2024 +0100 - # Merge pull request #448 from coldav/colin/support_compiler_passes_only - # Add top level directory which can be used to just build compiler passes - set(OCK_GIT_INTERNAL_TAG bd7eadaf7ffc7d74c88dd309119e858b7ffae0cf) - - # 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() - include(FetchContent) - FetchContent_Declare(oneapi-ck - GIT_REPOSITORY "${OCK_GIT_INTERNAL_REPO}" - GIT_TAG "${OCK_GIT_INTERNAL_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}") - 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}) - 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) - - install(TARGETS compiler-pipeline - EXPORT;LLVMExports - LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT compiler-pipeline - ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT compiler-pipeline - RUNTIME DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT compiler-pipeline) - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS compiler-pipeline) - install(TARGETS vecz - EXPORT;LLVMExports - LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT vecz - ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT vecz - RUNTIME DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT vecz) - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS vecz) - install(TARGETS multi_llvm EXPORT;LLVMExports) - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS multi_llvm) - target_compile_definitions(LLVMSYCLNativeCPUUtils PRIVATE NATIVECPU_USE_OCK) - target_include_directories(LLVMSYCLNativeCPUUtils PRIVATE - ${oneapi-ck_SOURCE_DIR}/modules/compiler/multi_llvm/include - ${oneapi-ck_SOURCE_DIR}/modules/cargo/include - ${oneapi-ck_SOURCE_DIR}/modules/compiler/vecz/include - ${oneapi-ck_SOURCE_DIR}/modules/compiler/utils/include) - target_link_libraries(LLVMSYCLNativeCPUUtils PRIVATE compiler-pipeline vecz) target_compile_definitions(pi_native_cpu PRIVATE NATIVECPU_USE_OCK) - endif() + set_target_properties(pi_native_cpu PROPERTIES LINKER_LANGUAGE CXX) From 3850f28ecb3175e73e2128f7f35dbbc120679236 Mon Sep 17 00:00:00 2001 From: PietroGhg Date: Thu, 16 May 2024 11:57:53 +0100 Subject: [PATCH 06/10] move NATIVECPU_USE_OCK option to SYCLNativeCPUUtils --- llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt | 1 + sycl/plugins/unified_runtime/CMakeLists.txt | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt index 5d87b074f2535..b0f7f420aaae5 100644 --- a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt +++ b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt @@ -23,6 +23,7 @@ set(OCK_SOURCE_DIR "" CACHE PATH "Root of the local checkout of the oneAPI Const 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) if(NATIVECPU_USE_OCK) if(NATIVECPU_OCK_USE_FETCHCONTENT) diff --git a/sycl/plugins/unified_runtime/CMakeLists.txt b/sycl/plugins/unified_runtime/CMakeLists.txt index 43e061dbb46ad..5f913d1ed9e17 100644 --- a/sycl/plugins/unified_runtime/CMakeLists.txt +++ b/sycl/plugins/unified_runtime/CMakeLists.txt @@ -283,7 +283,6 @@ endif() if ("native_cpu" IN_LIST SYCL_ENABLE_PLUGINS) add_dependencies(sycl-runtime-libraries ur_adapter_native_cpu) - option(NATIVECPU_USE_OCK "Use the oneAPI Construction Kit for Native CPU" ON) if(NATIVECPU_USE_OCK) message(STATUS "Compiling Native CPU adapter with OCK support.") From 584811946981dba766346432576e50d5499966d0 Mon Sep 17 00:00:00 2001 From: PietroGhg Date: Fri, 17 May 2024 12:10:33 +0100 Subject: [PATCH 07/10] update ock tag --- llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt index b0f7f420aaae5..8b83e65e73e82 100644 --- a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt +++ b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt @@ -28,13 +28,13 @@ option(NATIVECPU_USE_OCK "Use the oneAPI Construction Kit for Native CPU" ON) if(NATIVECPU_USE_OCK) if(NATIVECPU_OCK_USE_FETCHCONTENT) set(OCK_GIT_INTERNAL_REPO "https://github.com/codeplaysoftware/oneapi-construction-kit.git") - # commit bd7eadaf7ffc7d74c88dd309119e858b7ffae0cf - # Merge: e4f71dc16 792461086 - # Author: Colin Davidson - # Date: Tue May 7 09:40:38 2024 +0100 - # Merge pull request #448 from coldav/colin/support_compiler_passes_only - # Add top level directory which can be used to just build compiler passes - set(OCK_GIT_INTERNAL_TAG bd7eadaf7ffc7d74c88dd309119e858b7ffae0cf) + # commit 05e6e1b211704224fbdc6394d85d637f57fafdaf + # Merge: 256027e8 fbc2e567 + # Author: Pietro Ghiglio + # Date: Fri May 17 13:08:15 2024 +0200 + # Merge pull request #458 from PietroGhg/pietro/link_aggressiveinstcombine + # Link vecz to aggressiveinstcombine + set(OCK_GIT_INTERNAL_TAG 05e6e1b211704224fbdc6394d85d637f57fafdaf) # Overwrite OCK_GIT_INTERNAL_REPO/OCK_GIT_INTERNAL_TAG if the corresponding options are set if(OCK_GIT_REPO) From 1dd1bf47516442357e91e3054b4c017d4a4ffa42 Mon Sep 17 00:00:00 2001 From: PietroGhg Date: Mon, 20 May 2024 13:40:23 +0100 Subject: [PATCH 08/10] Formatting --- llvm/lib/SYCLNativeCPUUtils/PipelineSYCLNativeCPU.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/llvm/lib/SYCLNativeCPUUtils/PipelineSYCLNativeCPU.cpp b/llvm/lib/SYCLNativeCPUUtils/PipelineSYCLNativeCPU.cpp index bfed3660de282..410d0aeb3f243 100644 --- a/llvm/lib/SYCLNativeCPUUtils/PipelineSYCLNativeCPU.cpp +++ b/llvm/lib/SYCLNativeCPUUtils/PipelineSYCLNativeCPU.cpp @@ -22,9 +22,9 @@ #include "compiler/utils/prepare_barriers_pass.h" #include "compiler/utils/sub_group_analysis.h" #include "compiler/utils/work_item_loops_pass.h" -#include "llvm/Transforms/IPO/AlwaysInliner.h" #include "vecz/pass.h" #include "vecz/vecz_target_info.h" +#include "llvm/Transforms/IPO/AlwaysInliner.h" #endif using namespace llvm; @@ -85,5 +85,4 @@ void llvm::sycl::utils::addSYCLNativeCPUBackendPasses( #endif MPM.addPass(PrepareSYCLNativeCPUPass()); MPM.addPass(RenameKernelSYCLNativeCPUPass()); - } From 337c4fbbd93b62e08d3f761a207513546dae6a92 Mon Sep 17 00:00:00 2001 From: PietroGhg Date: Mon, 20 May 2024 15:45:27 +0100 Subject: [PATCH 09/10] avoid fetching ock if native cpu is disabled --- llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt index 8b83e65e73e82..4eab10e5b8b09 100644 --- a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt +++ b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt @@ -25,6 +25,11 @@ set(OCK_GIT_TAG "" CACHE STRING "Git tag for the oneAPI Construction Kit FetchCo 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. +if(NOT "native_cpu" IN_LIST SYCL_ENABLE_PLUGINS) + set(NATIVECPU_USE_OCK Off) +endif() + if(NATIVECPU_USE_OCK) if(NATIVECPU_OCK_USE_FETCHCONTENT) set(OCK_GIT_INTERNAL_REPO "https://github.com/codeplaysoftware/oneapi-construction-kit.git") From 3ffe9e459b2063039f81b10626e75f3fbbac6afa Mon Sep 17 00:00:00 2001 From: PietroGhg Date: Mon, 20 May 2024 16:49:43 +0100 Subject: [PATCH 10/10] properly set cached variable --- 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 4eab10e5b8b09..a16ddc83e7443 100644 --- a/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt +++ b/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt @@ -27,7 +27,7 @@ option(NATIVECPU_USE_OCK "Use the oneAPI Construction Kit for Native CPU" ON) # Don't fetch OCK if Native CPU is not enabled. if(NOT "native_cpu" IN_LIST SYCL_ENABLE_PLUGINS) - set(NATIVECPU_USE_OCK Off) + set(NATIVECPU_USE_OCK Off CACHE BOOL "Use the oneAPI Construction Kit for Native CPU" FORCE) endif() if(NATIVECPU_USE_OCK)