Skip to content

Backport packaging improvements to 6.2 #19152

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Jun 26, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion libdevice/cmake/modules/SYCLLibdevice.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ set(compile_opts
set(SYCL_LIBDEVICE_GCC_TOOLCHAIN "" CACHE PATH "Path to GCC installation")

if (NOT SYCL_LIBDEVICE_GCC_TOOLCHAIN STREQUAL "")
list(APPEND compile_opts "--gcc-toolchain=${SYCL_LIBDEVICE_GCC_TOOLCHAIN}")
list(APPEND compile_opts "--gcc-install-dir=${SYCL_LIBDEVICE_GCC_TOOLCHAIN}")
endif()

if (WIN32)
Expand Down Expand Up @@ -479,6 +479,10 @@ set(imf_host_cxx_flags -c
-D__LIBDEVICE_HOST_IMPL__
)

if (NOT SYCL_LIBDEVICE_GCC_TOOLCHAIN STREQUAL "")
list(APPEND imf_host_cxx_flags "--gcc-install-dir=${SYCL_LIBDEVICE_GCC_TOOLCHAIN}")
endif()

macro(mangle_name str output)
string(STRIP "${str}" strippedStr)
string(REGEX REPLACE "^/" "" strippedStr "${strippedStr}")
Expand Down
125 changes: 125 additions & 0 deletions llvm/lib/SYCLLowerIR/#CMakeLists.txt#
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# Lowering of SYCL ESIMD kernels depends on vc-intrinsics
# NOTE: could have been added earlier from llvm/projects
if (NOT TARGET LLVMGenXIntrinsics)
if(NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR AND NOT LLVMGenXIntrinsics_INCLUDE_DIR)
find_package(LLVMGenXIntrinsics QUIET)
endif()

if (NOT LLVMGenXIntrinsics_FOUND)
if (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
find_path(LLVMGenXIntrinsics_INCLUDE_DIR GenXIntrinsics/include PATHS ${CMAKE_PREFIX_PATH})

if (NOT LLVMGenXIntrinsics_INCLUDE_DIR)
set(LLVMGenXIntrinsics_GIT_REPO https://github.com/intel/vc-intrinsics.git)
# Date: Mar 7, 2025
+ # Update Triple usage after 979c275097
+ set(LLVMGenXIntrinsics_GIT_TAG 9e1935aedc2101deaab45b2f69f4b43ccf6f2b52)

# Date: Mar 7, 2025
# Update Triple usage after 979c275097
set(LLVMGenXIntrinsics_GIT_TAG 9e1935aedc2101deaab45b2f69f4b43ccf6f2b52)

message(STATUS "vc-intrinsics repo is missing. Will try to download it from ${LLVMGenXIntrinsics_GIT_REPO}")
include(FetchContent)
FetchContent_Declare(vc-intrinsics
GIT_REPOSITORY ${LLVMGenXIntrinsics_GIT_REPO}
GIT_TAG ${LLVMGenXIntrinsics_GIT_TAG}
)
FetchContent_MakeAvailable(vc-intrinsics)
FetchContent_GetProperties(vc-intrinsics)

set(LLVMGenXIntrinsics_SOURCE_DIR ${vc-intrinsics_SOURCE_DIR})
set(LLVMGenXIntrinsics_BINARY_DIR ${vc-intrinsics_BINARY_DIR})
else()
message(STATUS "vc-intrinsics found in system at ${LLVMGenXIntrinsics_INCLUDE_DIR}")
set(LLVMGenXIntrinsics_SOURCE_DIR ${LLVMGenXIntrinsics_INCLUDE_DIR}/..)
set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build)
add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR})
endif()
else (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
# -DLLVMGenXIntrinsics_SOURCE_DIR is provided
message(STATUS "vc-intrinsics are added manually ${LLVMGenXIntrinsics_SOURCE_DIR}")

set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build)
add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR})
endif (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
target_include_directories(LLVMGenXIntrinsics
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include>
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include>
)
endif()
endif (NOT TARGET LLVMGenXIntrinsics)

set_property(GLOBAL PROPERTY LLVMGenXIntrinsics_SOURCE_PROP ${LLVMGenXIntrinsics_SOURCE_DIR})
set_property(GLOBAL PROPERTY LLVMGenXIntrinsics_BINARY_PROP ${LLVMGenXIntrinsics_BINARY_DIR})

add_llvm_component_library(LLVMSYCLLowerIR
ESIMD/ESIMDOptimizeVecArgCallConv.cpp
ESIMD/ESIMDUtils.cpp
ESIMD/ESIMDVerifier.cpp
ESIMD/ESIMDRemoveHostCode.cpp
ESIMD/ESIMDRemoveOptnoneNoinline.cpp
ESIMD/LowerESIMD.cpp
ESIMD/LowerESIMDKernelAttrs.cpp
RecordSYCLAspectNames.cpp
CleanupSYCLMetadata.cpp
CompileTimePropertiesPass.cpp
DeviceGlobals.cpp
ESIMD/LowerESIMDVLoadVStore.cpp
ESIMD/LowerESIMDSlmReservation.cpp
HostPipes.cpp
LowerInvokeSimd.cpp
LowerWGLocalMemory.cpp
LowerWGScope.cpp
MutatePrintfAddrspace.cpp
SpecConstants.cpp
SYCLAddOptLevelAttribute.cpp
SYCLConditionalCallOnDevice.cpp
SYCLCreateNVVMAnnotations.cpp
SYCLDeviceLibReqMask.cpp
SYCLDeviceRequirements.cpp
SYCLKernelParamOptInfo.cpp
SYCLJointMatrixTransform.cpp
SYCLOptimizeBackToBackBarrier.cpp
SYCLPropagateAspectsUsage.cpp
SYCLPropagateJointMatrixUsage.cpp
SYCLVirtualFunctionsAnalysis.cpp
SYCLUtils.cpp

LocalAccessorToSharedMemory.cpp
GlobalOffset.cpp
TargetHelpers.cpp

SanitizerKernelMetadata.cpp

ADDITIONAL_HEADER_DIRS
${LLVM_MAIN_INCLUDE_DIR}/llvm/SYCLLowerIR
${LLVM_MAIN_SRC_DIR}/projects/vc-intrinsics/GenXIntrinsics/include
${LLVM_BINARY_DIR}/projects/vc-intrinsics/GenXIntrinsics/include

DEPENDS
intrinsics_gen
LLVMGenXIntrinsics
LLVMDemangle
LLVMTransformUtils
DeviceConfigFile

LINK_LIBS
LLVMGenXIntrinsics
LLVMDemangle
LLVMTargetParser
LLVMTransformUtils

LINK_COMPONENTS
Analysis
BitWriter
Core
Demangle
IRPrinter
Support
ipo
)

target_include_directories(LLVMSYCLLowerIR
PRIVATE ${LLVM_MAIN_SRC_DIR}/projects/vc-intrinsics/GenXIntrinsics/include
PRIVATE ${LLVM_BINARY_DIR}/projects/vc-intrinsics/GenXIntrinsics/include)
76 changes: 46 additions & 30 deletions llvm/lib/SYCLLowerIR/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,40 +1,51 @@
# Lowering of SYCL ESIMD kernels depends on vc-intrinsics
# NOTE: could have been added earlier from llvm/projects
if (NOT TARGET LLVMGenXIntrinsics)
if (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
set(LLVMGenXIntrinsics_GIT_REPO https://github.com/intel/vc-intrinsics.git)
if(NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR AND NOT LLVMGenXIntrinsics_INCLUDE_DIR)
find_package(LLVMGenXIntrinsics QUIET)
endif()

# Date: Jul 25, 2024
# Support MMX removal in LLVM upstream
set(LLVMGenXIntrinsics_GIT_TAG 4e51b2467104a257c22788e343dafbdde72e28bb)
if (NOT LLVMGenXIntrinsics_FOUND)
if (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
find_path(LLVMGenXIntrinsics_INCLUDE_DIR GenXIntrinsics/include PATHS ${CMAKE_PREFIX_PATH})

message(STATUS "vc-intrinsics repo is missing. Will try to download it from ${LLVMGenXIntrinsics_GIT_REPO}")
include(FetchContent)
FetchContent_Declare(vc-intrinsics
GIT_REPOSITORY ${LLVMGenXIntrinsics_GIT_REPO}
GIT_TAG ${LLVMGenXIntrinsics_GIT_TAG}
)
FetchContent_MakeAvailable(vc-intrinsics)
FetchContent_GetProperties(vc-intrinsics)
if (NOT LLVMGenXIntrinsics_INCLUDE_DIR)
set(LLVMGenXIntrinsics_GIT_REPO https://github.com/intel/vc-intrinsics.git)

set(LLVMGenXIntrinsics_SOURCE_DIR ${vc-intrinsics_SOURCE_DIR})
set(LLVMGenXIntrinsics_BINARY_DIR ${vc-intrinsics_BINARY_DIR})
else (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
# -DLLVMGenXIntrinsics_SOURCE_DIR is provided
message(STATUS "vc-intrinsics are added manually ${LLVMGenXIntrinsics_SOURCE_DIR}")
# Date: Jul 25, 2024
# Support MMX removal in LLVM upstream
set(LLVMGenXIntrinsics_GIT_TAG 4e51b2467104a257c22788e343dafbdde72e28bb)

set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build)
add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR})
endif (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
message(STATUS "vc-intrinsics repo is missing. Will try to download it from ${LLVMGenXIntrinsics_GIT_REPO}")
include(FetchContent)
FetchContent_Declare(vc-intrinsics
GIT_REPOSITORY ${LLVMGenXIntrinsics_GIT_REPO}
GIT_TAG ${LLVMGenXIntrinsics_GIT_TAG}
)
FetchContent_MakeAvailable(vc-intrinsics)
FetchContent_GetProperties(vc-intrinsics)

target_include_directories(LLVMGenXIntrinsics
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include>
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include>
)
endif (NOT TARGET LLVMGenXIntrinsics)
set(LLVMGenXIntrinsics_SOURCE_DIR ${vc-intrinsics_SOURCE_DIR})
set(LLVMGenXIntrinsics_BINARY_DIR ${vc-intrinsics_BINARY_DIR})
else()
message(STATUS "vc-intrinsics found in system at ${LLVMGenXIntrinsics_INCLUDE_DIR}")
set(LLVMGenXIntrinsics_SOURCE_DIR ${LLVMGenXIntrinsics_INCLUDE_DIR}/..)
set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build)
add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR})
endif()
else (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
# -DLLVMGenXIntrinsics_SOURCE_DIR is provided
message(STATUS "vc-intrinsics are added manually ${LLVMGenXIntrinsics_SOURCE_DIR}")

set_property(GLOBAL PROPERTY LLVMGenXIntrinsics_SOURCE_PROP ${LLVMGenXIntrinsics_SOURCE_DIR})
set_property(GLOBAL PROPERTY LLVMGenXIntrinsics_BINARY_PROP ${LLVMGenXIntrinsics_BINARY_DIR})
set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build)
add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR})
endif (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
target_include_directories(LLVMGenXIntrinsics
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include>
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include>
)
endif()
endif (NOT TARGET LLVMGenXIntrinsics)

add_llvm_component_library(LLVMSYCLLowerIR
ESIMD/ESIMDOptimizeVecArgCallConv.cpp
Expand Down Expand Up @@ -106,5 +117,10 @@ add_llvm_component_library(LLVMSYCLLowerIR
)

target_include_directories(LLVMSYCLLowerIR
PRIVATE ${LLVM_MAIN_SRC_DIR}/projects/vc-intrinsics/GenXIntrinsics/include
PRIVATE ${LLVM_BINARY_DIR}/projects/vc-intrinsics/GenXIntrinsics/include)
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include/>
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_BINARY_DIR}>
)

target_link_libraries(LLVMSYCLLowerIR
PUBLIC LLVMGenXIntrinsics
)
9 changes: 0 additions & 9 deletions llvm/tools/sycl-post-link/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,25 +15,16 @@ set(LLVM_LINK_COMPONENTS
Analysis
)

get_property(LLVMGenXIntrinsics_SOURCE_DIR GLOBAL PROPERTY LLVMGenXIntrinsics_SOURCE_PROP)
get_property(LLVMGenXIntrinsics_BINARY_DIR GLOBAL PROPERTY LLVMGenXIntrinsics_BINARY_PROP)

include_directories(
${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include
${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include)

add_llvm_tool(sycl-post-link
sycl-post-link.cpp
ADDITIONAL_HEADER_DIRS
${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include
${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include

DEPENDS
intrinsics_gen
LLVMGenXIntrinsics
)

setup_host_tool(sycl-post-link SYCL_POST_LINK
sycl-post-link_exe sycl-post-link_target)

target_link_libraries(sycl-post-link PRIVATE LLVMGenXIntrinsics)
1 change: 0 additions & 1 deletion sycl-jit/jit-compiler/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ add_llvm_library(sycl-jit
TargetParser
MC
SYCLLowerIR
GenXIntrinsics
${LLVM_TARGETS_TO_BUILD}

LINK_LIBS
Expand Down
14 changes: 8 additions & 6 deletions sycl/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ if(MSVC)
endif()
endif()

include(FetchEmhash)
include(FetchUnifiedRuntime)

# The change in SYCL_MAJOR_VERSION must be accompanied with the same update in
Expand Down Expand Up @@ -216,9 +217,6 @@ install(FILES
DESTINATION "${SYCL_INCLUDE_DIR}/sycl"
COMPONENT sycl-headers)

include(AddBoostMp11Headers)
include(FetchBoostUnorderedHeaders)

# This is workaround to detect changes (add or modify) in subtree which
# are not detected by copy_directory command.
# TODO: detect and process remove header/directory case
Expand Down Expand Up @@ -253,7 +251,7 @@ add_custom_target(sycl-headers
${OUT_HEADERS_IN_SYCLCOMPAT_DIR}
${OUT_UR_HEADERS}
sycl-device-aspect-macros-header
boost_mp11-headers)
)

add_custom_command(
OUTPUT ${OUT_HEADERS_IN_SYCL_DIR}
Expand All @@ -278,7 +276,6 @@ add_custom_command(
install(DIRECTORY "${sycl_inc_dir}/sycl" DESTINATION ${SYCL_INCLUDE_DIR} COMPONENT sycl-headers)
install(DIRECTORY "${sycl_inc_dir}/CL" DESTINATION ${SYCL_INCLUDE_DIR}/ COMPONENT sycl-headers)
install(DIRECTORY "${sycl_inc_dir}/std" DESTINATION ${SYCL_INCLUDE_DIR} COMPONENT sycl-headers)
install(DIRECTORY ${BOOST_MP11_DESTINATION_DIR} DESTINATION ${SYCL_INCLUDE_DIR}/sycl/detail COMPONENT boost_mp11-headers)
install(DIRECTORY "${sycl_inc_dir}/syclcompat" DESTINATION ${SYCL_INCLUDE_DIR} COMPONENT sycl-headers)
install(FILES "${sycl_inc_dir}/syclcompat.hpp" DESTINATION ${SYCL_INCLUDE_DIR} COMPONENT sycl-headers)
install(FILES "${UNIFIED_RUNTIME_INCLUDE_DIR}/ur_api.h" DESTINATION ${SYCL_INCLUDE_DIR}
Expand Down Expand Up @@ -362,6 +359,12 @@ if (NOT WIN32)
COMPONENT sycl-headers-extras)
endif()

if(SYCL_ENABLE_XPTI_TRACING AND
DEFINED LLVM_EXTERNAL_PROJECTS AND
(NOT "xpti" IN_LIST LLVM_EXTERNAL_PROJECTS OR NOT "xptifw" IN_LIST LLVM_EXTERNAL_PROJECTS))
message(FATAL_ERROR "SYCL_ENABLE_XPTI_TRACING=ON but XPTI is not going to be built")
endif()

if (SYCL_ENABLE_XPTI_TRACING)
if (MSVC)
set(XPTIFW_LIBS xpti xptid xptifw xptifwd)
Expand Down Expand Up @@ -455,7 +458,6 @@ get_property(SYCL_TOOLCHAIN_DEPS GLOBAL PROPERTY SYCL_TOOLCHAIN_INSTALL_COMPONEN
# Listed here are component names contributing the package
set( SYCL_TOOLCHAIN_DEPLOY_COMPONENTS
append-file
boost_mp11-headers
clang
clang-offload-wrapper
clang-offload-bundler
Expand Down
54 changes: 0 additions & 54 deletions sycl/cmake/modules/AddBoostMp11Headers.cmake

This file was deleted.

Loading
Loading