Skip to content

Commit b0596c5

Browse files
aus-inteligcbot
authored andcommitted
Refactor work with LLVM in VC
Remove redundant commands that are already handled by top-level cmake.
1 parent 618a407 commit b0596c5

File tree

3 files changed

+15
-34
lines changed

3 files changed

+15
-34
lines changed

IGC/VectorCompiler/CMakeLists.txt

Lines changed: 9 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -42,60 +42,36 @@ message(STATUS "+++ Source/IGC/VectorCompiler +++")
4242
message(STATUS "[VC] Build proj: ${IGC_BUILD__PROJ__VectorCompiler}")
4343

4444
# --- LLVM ---
45-
if(${IGC_OPTION__LLVM_FROM_SYSTEM} OR (WIN32 AND ${IGC_OPTION__LLVM_PREBUILDS}))
46-
message(STATUS "[VC] Using system llvm")
45+
if(IGC_OPTION__LLVM_FROM_SYSTEM OR IGC_OPTION__LLVM_PREBUILDS)
46+
message(STATUS "[VC] Using system or prebuilt llvm")
4747

48-
# Need to search for llvm-tblgen
4948
find_program(LLVM_TABLEGEN_EXE "llvm-tblgen"
50-
${LLVM_TOOLS_BINARY_DIR}
49+
PATHS ${LLVM_TOOLS_BINARY_DIR}
5150
NO_DEFAULT_PATH
5251
)
53-
if(LLVM_TABLEGEN_EXE-NOTFOUND)
54-
message(FATAL_ERROR "[VC] llvm-tblgen is not found")
52+
if(NOT LLVM_TABLEGEN_EXE)
53+
message(FATAL_ERROR "[VC] Tablegen is not found! Please specify LLVM_TABLEGEN_EXE to tblgen executable")
5554
endif()
5655
message(STATUS "[VC] Found tblgen: ${LLVM_TABLEGEN_EXE}")
57-
58-
# find_package was called by igc cmake, no need to do it again.
5956
else()
60-
# Prebuilt llvm does not have tblgen...
61-
if(${IGC_OPTION__LLVM_PREBUILDS})
62-
message(FATAL_ERROR "[VC] vector compiler with prebuilt llvm is not supported")
63-
endif()
64-
65-
# In last scenario we are building with llvm so every target is defined
66-
# and LLVMConfig will only set needed variables.
6757
message(STATUS "[VC] Using llvm source build")
68-
set(LLVM_BUILD_DIR "${LLVM_SOURCE_DIR}/../../build/src")
69-
set(LLVM_CMAKE_DIR "${LLVM_BUILD_DIR}/lib/cmake/llvm")
70-
message(STATUS "[VC] LLVMConfig.cmake location: ${LLVM_CMAKE_DIR}")
71-
find_package(LLVM REQUIRED
72-
HINTS ${LLVM_CMAKE_DIR}
73-
NO_DEFAULT_PATH
74-
)
7558

76-
# We have executable target, use it.
59+
# Set correct module path.
60+
set(LLVM_CMAKE_DIR "${LLVM_SOURCE_DIR}/cmake/modules")
61+
7762
set(LLVM_TABLEGEN_EXE "llvm-tblgen")
7863
message(STATUS "[VC] Using executable target llvm-tlbgen for tablegenning")
79-
# IGC has its own special cmake for external llvm.
80-
# It sets LLVM_INCLUDE_DIRS instead of LLVM_INCLUDE_DIR.
81-
set(LLVM_INCLUDE_DIR ${LLVM_INCLUDE_DIRS})
8264
endif()
8365

84-
# Now find_package was called in all cases and we have all needed variables.
8566
set(CMAKE_MODULE_PATH
8667
${LLVM_CMAKE_DIR}
8768
${CMAKE_MODULE_PATH}
8869
)
8970

9071
include(AddLLVM)
91-
92-
set(LLVM_MAIN_INCLUDE_DIR ${LLVM_INCLUDE_DIR})
9372
include(TableGen)
9473
# Set LLVM_TABLEGEN_FLAGS manually based on include dirs.
95-
list(TRANSFORM LLVM_INCLUDE_DIR PREPEND "-I=" OUTPUT_VARIABLE LLVM_TABLEGEN_FLAGS)
96-
97-
message(STATUS "[VC] Including llvm headers: ${LLVM_INCLUDE_DIR}")
98-
include_directories(${LLVM_INCLUDE_DIR})
74+
list(TRANSFORM LLVM_INCLUDE_DIRS PREPEND "-I=" OUTPUT_VARIABLE LLVM_TABLEGEN_FLAGS)
9975

10076
# --- VISA ---
10177

IGC/VectorCompiler/cmake/spirv.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,11 @@ set(MAKE_EXEC ${CMAKE_MAKE_PROGRAM})
9797
message(STATUS "[VC] SPIRVDLL_SRC = ${SPIRVDLL_SRC}")
9898
message(STATUS "[VC] SPIRV_SRC = ${SPIRV_SRC}")
9999

100+
# LLVM DIR should be present in external build but can be missing with
101+
# in-tree build so set it manually in this case.
102+
if(NOT LLVM_DIR)
103+
set(LLVM_DIR ${LLVM_BINARY_DIR}/lib/cmake/llvm)
104+
endif()
100105
if(DEFINED SPIRVDLL_SRC)
101106
if(NOT EXISTS ${SPIRVDLL_SRC})
102107
message(FATAL_ERROR "[VC] Cannot find SPIRVDLL sources in ${SPIRVDLL_SRC}")

external/llvm/llvm.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ if(${IGC_OPTION__LLVM_SOURCES})
140140
elseif(${IGC_OPTION__LLVM_PREBUILDS})
141141
message(STATUS "[IGC] IGC will take LLVM prebuilts.")
142142
message(STATUS "[IGC] LLVM prebuilts folder : ${IGC_OPTION__LLVM_PREBUILDS_DIR}")
143-
include(${IGC_LLVM_PATCHER_DIR}/llvm_prebuilt.cmake)
143+
include(${IGC_LLVM_TOOLS_DIR}/llvm_prebuilt.cmake)
144144
elseif(${IGC_OPTION__LLVM_FROM_SYSTEM})
145145
message(STATUS "[IGC] IGC will take LLVM from system.")
146146
endif()

0 commit comments

Comments
 (0)