Skip to content

Commit b7adb7d

Browse files
committed
[SYCL] Use the sysinstalled vc-intrinsics if available
Signed-off-by: Sarnie, Nick <[email protected]>
1 parent fffc5db commit b7adb7d

File tree

3 files changed

+45
-29
lines changed

3 files changed

+45
-29
lines changed

llvm/lib/SYCLLowerIR/CMakeLists.txt

+42-29
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,49 @@
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)
6-
7-
# Date: Mar 7, 2025
8-
# Update Triple usage after 979c275097
9-
set(LLVMGenXIntrinsics_GIT_TAG 9e1935aedc2101deaab45b2f69f4b43ccf6f2b52)
10-
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)
19-
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}")
25-
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)
29-
30-
target_include_directories(LLVMGenXIntrinsics
31-
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include>
32-
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include>
4+
find_package(LLVMGenXIntrinsics QUIET)
5+
6+
if (NOT LLVMGenXIntrinsics_FOUND)
7+
if (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
8+
find_path(LLVMGenXIntrinsics_INCLUDE_DIR GenXIntrinsics/include PATHS ${CMAKE_PREFIX_PATH})
9+
10+
if (NOT LLVMGenXIntrinsics_INCLUDE_DIR)
11+
set(LLVMGenXIntrinsics_GIT_REPO https://github.com/intel/vc-intrinsics.git)
12+
13+
# Date: Mar 7, 2025
14+
# Update Triple usage after 979c275097
15+
set(LLVMGenXIntrinsics_GIT_TAG 9e1935aedc2101deaab45b2f69f4b43ccf6f2b52)
16+
17+
message(STATUS "vc-intrinsics repo is missing. Will try to download it from ${LLVMGenXIntrinsics_GIT_REPO}")
18+
include(FetchContent)
19+
FetchContent_Declare(vc-intrinsics
20+
GIT_REPOSITORY ${LLVMGenXIntrinsics_GIT_REPO}
21+
GIT_TAG ${LLVMGenXIntrinsics_GIT_TAG}
22+
)
23+
FetchContent_MakeAvailable(vc-intrinsics)
24+
FetchContent_GetProperties(vc-intrinsics)
25+
26+
set(LLVMGenXIntrinsics_SOURCE_DIR ${vc-intrinsics_SOURCE_DIR})
27+
set(LLVMGenXIntrinsics_BINARY_DIR ${vc-intrinsics_BINARY_DIR})
28+
else()
29+
message(STATUS "vc-intrinsics found in system at ${LLVMGenXIntrinsics_INCLUDE_DIR}")
30+
set(LLVMGenXIntrinsics_SOURCE_DIR ${LLVMGenXIntrinsics_INCLUDE_DIR}/..)
31+
set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build)
32+
add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR})
33+
endif()
34+
else (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
35+
# -DLLVMGenXIntrinsics_SOURCE_DIR is provided
36+
message(STATUS "vc-intrinsics are added manually ${LLVMGenXIntrinsics_SOURCE_DIR}")
37+
38+
set(LLVMGenXIntrinsics_BINARY_DIR ${CMAKE_BINARY_DIR}/vc-intrinsics-build)
39+
add_subdirectory(${LLVMGenXIntrinsics_SOURCE_DIR} ${LLVMGenXIntrinsics_BINARY_DIR})
40+
endif (NOT DEFINED LLVMGenXIntrinsics_SOURCE_DIR)
41+
target_include_directories(LLVMGenXIntrinsics
42+
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include>
43+
PUBLIC $<BUILD_INTERFACE:${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include>
3344
)
45+
endif()
46+
3447
endif (NOT TARGET LLVMGenXIntrinsics)
3548

3649
set_property(GLOBAL PROPERTY LLVMGenXIntrinsics_SOURCE_PROP ${LLVMGenXIntrinsics_SOURCE_DIR})

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

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
find_package(LLVMGenXIntrinsics QUIET)
2+
13
set(LLVM_LINK_COMPONENTS
24
BitWriter
35
Core

sycl-jit/jit-compiler/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
find_package(LLVMGenXIntrinsics QUIET)
12

23
add_llvm_library(sycl-jit
34
lib/translation/JITContext.cpp

0 commit comments

Comments
 (0)