Skip to content

Commit 95689c0

Browse files
Backport packaging improvements to 6.2 (intel#19152)
We want the next release to have these packaging improvements. Nightly run [here](https://github.com/intel/llvm/actions/runs/15879533409/job/44788058698). --------- Signed-off-by: Sarnie, Nick <[email protected]> Co-authored-by: Udit Kumar Agarwal <[email protected]>
1 parent 3310487 commit 95689c0

25 files changed

+498
-397
lines changed

libdevice/cmake/modules/SYCLLibdevice.cmake

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ set(compile_opts
5555
set(SYCL_LIBDEVICE_GCC_TOOLCHAIN "" CACHE PATH "Path to GCC installation")
5656

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

6161
if (WIN32)
@@ -479,6 +479,10 @@ set(imf_host_cxx_flags -c
479479
-D__LIBDEVICE_HOST_IMPL__
480480
)
481481

482+
if (NOT SYCL_LIBDEVICE_GCC_TOOLCHAIN STREQUAL "")
483+
list(APPEND imf_host_cxx_flags "--gcc-install-dir=${SYCL_LIBDEVICE_GCC_TOOLCHAIN}")
484+
endif()
485+
482486
macro(mangle_name str output)
483487
string(STRIP "${str}" strippedStr)
484488
string(REGEX REPLACE "^/" "" strippedStr "${strippedStr}")

llvm/lib/SYCLLowerIR/#CMakeLists.txt#

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
# Lowering of SYCL ESIMD kernels depends on vc-intrinsics
2+
# NOTE: could have been added earlier from llvm/projects
3+
if (NOT TARGET LLVMGenXIntrinsics)
4+
if(NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR AND NOT LLVMGenXIntrinsics_INCLUDE_DIR)
5+
find_package(LLVMGenXIntrinsics QUIET)
6+
endif()
7+
8+
if (NOT LLVMGenXIntrinsics_FOUND)
9+
if (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
10+
find_path(LLVMGenXIntrinsics_INCLUDE_DIR GenXIntrinsics/include PATHS ${CMAKE_PREFIX_PATH})
11+
12+
if (NOT LLVMGenXIntrinsics_INCLUDE_DIR)
13+
set(LLVMGenXIntrinsics_GIT_REPO https://github.com/intel/vc-intrinsics.git)
14+
# Date: Mar 7, 2025
15+
+ # Update Triple usage after 979c275097
16+
+ set(LLVMGenXIntrinsics_GIT_TAG 9e1935aedc2101deaab45b2f69f4b43ccf6f2b52)
17+
18+
# Date: Mar 7, 2025
19+
# Update Triple usage after 979c275097
20+
set(LLVMGenXIntrinsics_GIT_TAG 9e1935aedc2101deaab45b2f69f4b43ccf6f2b52)
21+
22+
message(STATUS "vc-intrinsics repo is missing. Will try to download it from ${LLVMGenXIntrinsics_GIT_REPO}")
23+
include(FetchContent)
24+
FetchContent_Declare(vc-intrinsics
25+
GIT_REPOSITORY ${LLVMGenXIntrinsics_GIT_REPO}
26+
GIT_TAG ${LLVMGenXIntrinsics_GIT_TAG}
27+
)
28+
FetchContent_MakeAvailable(vc-intrinsics)
29+
FetchContent_GetProperties(vc-intrinsics)
30+
31+
set(LLVMGenXIntrinsics_SOURCE_DIR ${vc-intrinsics_SOURCE_DIR})
32+
set(LLVMGenXIntrinsics_BINARY_DIR ${vc-intrinsics_BINARY_DIR})
33+
else()
34+
message(STATUS "vc-intrinsics found in system at ${LLVMGenXIntrinsics_INCLUDE_DIR}")
35+
set(LLVMGenXIntrinsics_SOURCE_DIR ${LLVMGenXIntrinsics_INCLUDE_DIR}/..)
36+
set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build)
37+
add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR})
38+
endif()
39+
else (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
40+
# -DLLVMGenXIntrinsics_SOURCE_DIR is provided
41+
message(STATUS "vc-intrinsics are added manually ${LLVMGenXIntrinsics_SOURCE_DIR}")
42+
43+
set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build)
44+
add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR})
45+
endif (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
46+
target_include_directories(LLVMGenXIntrinsics
47+
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include>
48+
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include>
49+
)
50+
endif()
51+
endif (NOT TARGET LLVMGenXIntrinsics)
52+
53+
set_property(GLOBAL PROPERTY LLVMGenXIntrinsics_SOURCE_PROP ${LLVMGenXIntrinsics_SOURCE_DIR})
54+
set_property(GLOBAL PROPERTY LLVMGenXIntrinsics_BINARY_PROP ${LLVMGenXIntrinsics_BINARY_DIR})
55+
56+
add_llvm_component_library(LLVMSYCLLowerIR
57+
ESIMD/ESIMDOptimizeVecArgCallConv.cpp
58+
ESIMD/ESIMDUtils.cpp
59+
ESIMD/ESIMDVerifier.cpp
60+
ESIMD/ESIMDRemoveHostCode.cpp
61+
ESIMD/ESIMDRemoveOptnoneNoinline.cpp
62+
ESIMD/LowerESIMD.cpp
63+
ESIMD/LowerESIMDKernelAttrs.cpp
64+
RecordSYCLAspectNames.cpp
65+
CleanupSYCLMetadata.cpp
66+
CompileTimePropertiesPass.cpp
67+
DeviceGlobals.cpp
68+
ESIMD/LowerESIMDVLoadVStore.cpp
69+
ESIMD/LowerESIMDSlmReservation.cpp
70+
HostPipes.cpp
71+
LowerInvokeSimd.cpp
72+
LowerWGLocalMemory.cpp
73+
LowerWGScope.cpp
74+
MutatePrintfAddrspace.cpp
75+
SpecConstants.cpp
76+
SYCLAddOptLevelAttribute.cpp
77+
SYCLConditionalCallOnDevice.cpp
78+
SYCLCreateNVVMAnnotations.cpp
79+
SYCLDeviceLibReqMask.cpp
80+
SYCLDeviceRequirements.cpp
81+
SYCLKernelParamOptInfo.cpp
82+
SYCLJointMatrixTransform.cpp
83+
SYCLOptimizeBackToBackBarrier.cpp
84+
SYCLPropagateAspectsUsage.cpp
85+
SYCLPropagateJointMatrixUsage.cpp
86+
SYCLVirtualFunctionsAnalysis.cpp
87+
SYCLUtils.cpp
88+
89+
LocalAccessorToSharedMemory.cpp
90+
GlobalOffset.cpp
91+
TargetHelpers.cpp
92+
93+
SanitizerKernelMetadata.cpp
94+
95+
ADDITIONAL_HEADER_DIRS
96+
${LLVM_MAIN_INCLUDE_DIR}/llvm/SYCLLowerIR
97+
${LLVM_MAIN_SRC_DIR}/projects/vc-intrinsics/GenXIntrinsics/include
98+
${LLVM_BINARY_DIR}/projects/vc-intrinsics/GenXIntrinsics/include
99+
100+
DEPENDS
101+
intrinsics_gen
102+
LLVMGenXIntrinsics
103+
LLVMDemangle
104+
LLVMTransformUtils
105+
DeviceConfigFile
106+
107+
LINK_LIBS
108+
LLVMGenXIntrinsics
109+
LLVMDemangle
110+
LLVMTargetParser
111+
LLVMTransformUtils
112+
113+
LINK_COMPONENTS
114+
Analysis
115+
BitWriter
116+
Core
117+
Demangle
118+
IRPrinter
119+
Support
120+
ipo
121+
)
122+
123+
target_include_directories(LLVMSYCLLowerIR
124+
PRIVATE ${LLVM_MAIN_SRC_DIR}/projects/vc-intrinsics/GenXIntrinsics/include
125+
PRIVATE ${LLVM_BINARY_DIR}/projects/vc-intrinsics/GenXIntrinsics/include)

llvm/lib/SYCLLowerIR/CMakeLists.txt

Lines changed: 46 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,51 @@
11
# Lowering of SYCL ESIMD kernels depends on vc-intrinsics
22
# NOTE: could have been added earlier from llvm/projects
33
if (NOT TARGET LLVMGenXIntrinsics)
4-
if (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
5-
set(LLVMGenXIntrinsics_GIT_REPO https://github.com/intel/vc-intrinsics.git)
4+
if(NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR AND NOT LLVMGenXIntrinsics_INCLUDE_DIR)
5+
find_package(LLVMGenXIntrinsics QUIET)
6+
endif()
67

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

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

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

26-
set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build)
27-
add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR})
28-
endif (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
19+
message(STATUS "vc-intrinsics repo is missing. Will try to download it from ${LLVMGenXIntrinsics_GIT_REPO}")
20+
include(FetchContent)
21+
FetchContent_Declare(vc-intrinsics
22+
GIT_REPOSITORY ${LLVMGenXIntrinsics_GIT_REPO}
23+
GIT_TAG ${LLVMGenXIntrinsics_GIT_TAG}
24+
)
25+
FetchContent_MakeAvailable(vc-intrinsics)
26+
FetchContent_GetProperties(vc-intrinsics)
2927

30-
target_include_directories(LLVMGenXIntrinsics
31-
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include>
32-
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include>
33-
)
34-
endif (NOT TARGET LLVMGenXIntrinsics)
28+
set(LLVMGenXIntrinsics_SOURCE_DIR ${vc-intrinsics_SOURCE_DIR})
29+
set(LLVMGenXIntrinsics_BINARY_DIR ${vc-intrinsics_BINARY_DIR})
30+
else()
31+
message(STATUS "vc-intrinsics found in system at ${LLVMGenXIntrinsics_INCLUDE_DIR}")
32+
set(LLVMGenXIntrinsics_SOURCE_DIR ${LLVMGenXIntrinsics_INCLUDE_DIR}/..)
33+
set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build)
34+
add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR})
35+
endif()
36+
else (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
37+
# -DLLVMGenXIntrinsics_SOURCE_DIR is provided
38+
message(STATUS "vc-intrinsics are added manually ${LLVMGenXIntrinsics_SOURCE_DIR}")
3539

36-
set_property(GLOBAL PROPERTY LLVMGenXIntrinsics_SOURCE_PROP ${LLVMGenXIntrinsics_SOURCE_DIR})
37-
set_property(GLOBAL PROPERTY LLVMGenXIntrinsics_BINARY_PROP ${LLVMGenXIntrinsics_BINARY_DIR})
40+
set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build)
41+
add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR})
42+
endif (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
43+
target_include_directories(LLVMGenXIntrinsics
44+
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include>
45+
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include>
46+
)
47+
endif()
48+
endif (NOT TARGET LLVMGenXIntrinsics)
3849

3950
add_llvm_component_library(LLVMSYCLLowerIR
4051
ESIMD/ESIMDOptimizeVecArgCallConv.cpp
@@ -106,5 +117,10 @@ add_llvm_component_library(LLVMSYCLLowerIR
106117
)
107118

108119
target_include_directories(LLVMSYCLLowerIR
109-
PRIVATE ${LLVM_MAIN_SRC_DIR}/projects/vc-intrinsics/GenXIntrinsics/include
110-
PRIVATE ${LLVM_BINARY_DIR}/projects/vc-intrinsics/GenXIntrinsics/include)
120+
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include/>
121+
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_BINARY_DIR}>
122+
)
123+
124+
target_link_libraries(LLVMSYCLLowerIR
125+
PUBLIC LLVMGenXIntrinsics
126+
)

llvm/tools/sycl-post-link/CMakeLists.txt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,16 @@ set(LLVM_LINK_COMPONENTS
1515
Analysis
1616
)
1717

18-
get_property(LLVMGenXIntrinsics_SOURCE_DIR GLOBAL PROPERTY LLVMGenXIntrinsics_SOURCE_PROP)
19-
get_property(LLVMGenXIntrinsics_BINARY_DIR GLOBAL PROPERTY LLVMGenXIntrinsics_BINARY_PROP)
20-
2118
include_directories(
2219
${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include
2320
${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include)
2421

2522
add_llvm_tool(sycl-post-link
2623
sycl-post-link.cpp
27-
ADDITIONAL_HEADER_DIRS
28-
${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include
29-
${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include
3024

3125
DEPENDS
3226
intrinsics_gen
33-
LLVMGenXIntrinsics
3427
)
3528

3629
setup_host_tool(sycl-post-link SYCL_POST_LINK
3730
sycl-post-link_exe sycl-post-link_target)
38-
39-
target_link_libraries(sycl-post-link PRIVATE LLVMGenXIntrinsics)

sycl-jit/jit-compiler/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ add_llvm_library(sycl-jit
3434
TargetParser
3535
MC
3636
SYCLLowerIR
37-
GenXIntrinsics
3837
${LLVM_TARGETS_TO_BUILD}
3938

4039
LINK_LIBS

sycl/CMakeLists.txt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ if(MSVC)
8282
endif()
8383
endif()
8484

85+
include(FetchEmhash)
8586
include(FetchUnifiedRuntime)
8687

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

219-
include(AddBoostMp11Headers)
220-
include(FetchBoostUnorderedHeaders)
221-
222220
# This is workaround to detect changes (add or modify) in subtree which
223221
# are not detected by copy_directory command.
224222
# TODO: detect and process remove header/directory case
@@ -253,7 +251,7 @@ add_custom_target(sycl-headers
253251
${OUT_HEADERS_IN_SYCLCOMPAT_DIR}
254252
${OUT_UR_HEADERS}
255253
sycl-device-aspect-macros-header
256-
boost_mp11-headers)
254+
)
257255

258256
add_custom_command(
259257
OUTPUT ${OUT_HEADERS_IN_SYCL_DIR}
@@ -278,7 +276,6 @@ add_custom_command(
278276
install(DIRECTORY "${sycl_inc_dir}/sycl" DESTINATION ${SYCL_INCLUDE_DIR} COMPONENT sycl-headers)
279277
install(DIRECTORY "${sycl_inc_dir}/CL" DESTINATION ${SYCL_INCLUDE_DIR}/ COMPONENT sycl-headers)
280278
install(DIRECTORY "${sycl_inc_dir}/std" DESTINATION ${SYCL_INCLUDE_DIR} COMPONENT sycl-headers)
281-
install(DIRECTORY ${BOOST_MP11_DESTINATION_DIR} DESTINATION ${SYCL_INCLUDE_DIR}/sycl/detail COMPONENT boost_mp11-headers)
282279
install(DIRECTORY "${sycl_inc_dir}/syclcompat" DESTINATION ${SYCL_INCLUDE_DIR} COMPONENT sycl-headers)
283280
install(FILES "${sycl_inc_dir}/syclcompat.hpp" DESTINATION ${SYCL_INCLUDE_DIR} COMPONENT sycl-headers)
284281
install(FILES "${UNIFIED_RUNTIME_INCLUDE_DIR}/ur_api.h" DESTINATION ${SYCL_INCLUDE_DIR}
@@ -362,6 +359,12 @@ if (NOT WIN32)
362359
COMPONENT sycl-headers-extras)
363360
endif()
364361

362+
if(SYCL_ENABLE_XPTI_TRACING AND
363+
DEFINED LLVM_EXTERNAL_PROJECTS AND
364+
(NOT "xpti" IN_LIST LLVM_EXTERNAL_PROJECTS OR NOT "xptifw" IN_LIST LLVM_EXTERNAL_PROJECTS))
365+
message(FATAL_ERROR "SYCL_ENABLE_XPTI_TRACING=ON but XPTI is not going to be built")
366+
endif()
367+
365368
if (SYCL_ENABLE_XPTI_TRACING)
366369
if (MSVC)
367370
set(XPTIFW_LIBS xpti xptid xptifw xptifwd)
@@ -455,7 +458,6 @@ get_property(SYCL_TOOLCHAIN_DEPS GLOBAL PROPERTY SYCL_TOOLCHAIN_INSTALL_COMPONEN
455458
# Listed here are component names contributing the package
456459
set( SYCL_TOOLCHAIN_DEPLOY_COMPONENTS
457460
append-file
458-
boost_mp11-headers
459461
clang
460462
clang-offload-wrapper
461463
clang-offload-bundler

sycl/cmake/modules/AddBoostMp11Headers.cmake

Lines changed: 0 additions & 54 deletions
This file was deleted.

0 commit comments

Comments
 (0)