Skip to content

Commit 3354c80

Browse files
matborzyszkowskiigcbot
authored andcommitted
Restore VC build for Interim mode
Restore VC build for Interim mode and possibility to patch vc-intrinsics llvmWrapper
1 parent 8239cba commit 3354c80

File tree

4 files changed

+109
-2
lines changed

4 files changed

+109
-2
lines changed

IGC/CMakeLists.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -424,8 +424,6 @@ endif()
424424
if(IGC_BUILD_LLVM_INTERIM)
425425
message(STATUS "[IGC] IGC_BUILD_LLVM_INTERIM = ${IGC_BUILD_LLVM_INTERIM}")
426426
add_compile_definitions(IGC_LLVM_TRUNK_REVISION)
427-
# Temporary disable VC for Interim
428-
set(IGC_BUILD__VC_ENABLED OFF)
429427
endif()
430428

431429
# Enable vector compiler for Linux and Windows
@@ -437,6 +435,11 @@ if(NOT DEFINED IGC_BUILD__VC_ENABLED)
437435
endif()
438436

439437

438+
if(IGC_BUILD_LLVM_INTERIM AND IGC_BUILD__VC_ENABLED)
439+
# Add vc-intrinsics patcher for Interim mode
440+
include("${IGC_SOURCE_DIR}/../external/vc-intrinsics/CMakeLists.txt")
441+
endif()
442+
440443
# ======================================== Path helper variables =======================================
441444

442445
set(IGC_BUILD__IGC_SRC_DIR "${IGC_SOURCE_DIR}")
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#=========================== begin_copyright_notice ============================
2+
#
3+
# Copyright (C) 2024 Intel Corporation
4+
#
5+
# SPDX-License-Identifier: MIT
6+
#
7+
#============================ end_copyright_notice =============================
8+
9+
# This code is responsible for applying patches to vc-intrinsics LLVM Wrapper.
10+
11+
cmake_minimum_required(VERSION 3.13.4 FATAL_ERROR)
12+
13+
set(IGC_VC_INTRINSICS_PATCHES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../external/vc-intrinsics/patches")
14+
set(IGC_VC_INTRINSICS_SOURCE_DIR "${BS_DIR_EXTERNAL_COMPONENTS}/cmc/vc-intrinsics")
15+
16+
message(STATUS "[VC-INTRINSICS PATCHER] Applying patches from ${IGC_VC_INTRINSICS_PATCHES_DIR}")
17+
18+
file(GLOB IGC_VC_INTRINSICS_PATCHES "${IGC_VC_INTRINSICS_PATCHES_DIR}/*.patch")
19+
20+
find_program(GIT NAMES git git.cmd)
21+
22+
if(NOT GIT)
23+
message(FATAL_ERROR "[VC-INTRINSICS PATCHER] Git not found")
24+
endif()
25+
26+
foreach(PATCH_FILE ${IGC_VC_INTRINSICS_PATCHES})
27+
message(STATUS "[VC-INTRINSICS PATCHER] Applying patch ${PATCH_FILE} to ${IGC_VC_INTRINSICS_SOURCE_DIR}")
28+
execute_process(
29+
COMMAND ${GIT} apply --unsafe-paths --directory=${IGC_VC_INTRINSICS_SOURCE_DIR} ${PATCH_FILE}
30+
RESULT_VARIABLE PATCH_RESULT
31+
)
32+
if(NOT PATCH_RESULT EQUAL 0)
33+
message(FATAL_ERROR "[VC-INTRINSICS PATCHER] Failed to apply patch ${PATCH_FILE} to ${IGC_VC_INTRINSICS_SOURCE_DIR}")
34+
endif()
35+
endforeach()
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*========================== begin_copyright_notice ============================
2+
3+
Copyright (C) 2024 Intel Corporation
4+
5+
SPDX-License-Identifier: MIT
6+
7+
============================= end_copyright_notice ===========================*/
8+
9+
diff --git a/GenXIntrinsics/include/llvmVCWrapper/Analysis/InstructionSimplify.h b/GenXIntrinsics/include/llvmVCWrapper/Analysis/InstructionSimplify.h
10+
index d6eaf74..2573f32 100644
11+
--- a/GenXIntrinsics/include/llvmVCWrapper/Analysis/InstructionSimplify.h
12+
+++ b/GenXIntrinsics/include/llvmVCWrapper/Analysis/InstructionSimplify.h
13+
@@ -26,7 +26,7 @@ inline llvm::Value *SimplifyInsertElementInst(llvm::Value *Vec,
14+
llvm::Value *Elt,
15+
llvm::Value *Idx,
16+
const llvm::SimplifyQuery &Q) {
17+
-#if VC_INTR_LLVM_VERSION_MAJOR <= 14
18+
+#if (VC_INTR_LLVM_VERSION_MAJOR <= 14) || defined (IGC_LLVM_TRUNK_REVISION)
19+
return llvm::SimplifyInsertElementInst(Vec, Elt, Idx, Q);
20+
#else
21+
return llvm::simplifyInsertElementInst(Vec, Elt, Idx, Q);
22+
@@ -36,7 +36,7 @@ inline llvm::Value *SimplifyInsertElementInst(llvm::Value *Vec,
23+
inline llvm::Value *SimplifyExtractElementInst(llvm::Value *Vec,
24+
llvm::Value *Idx,
25+
const llvm::SimplifyQuery &Q) {
26+
-#if VC_INTR_LLVM_VERSION_MAJOR <= 14
27+
+#if (VC_INTR_LLVM_VERSION_MAJOR <= 14) || defined (IGC_LLVM_TRUNK_REVISION)
28+
return llvm::SimplifyExtractElementInst(Vec, Idx, Q);
29+
#else
30+
return llvm::simplifyExtractElementInst(Vec, Idx, Q);
31+
@@ -46,7 +46,7 @@ inline llvm::Value *SimplifyExtractElementInst(llvm::Value *Vec,
32+
inline llvm::Value *SimplifyCastInst(unsigned CastOpc, llvm::Value *Op,
33+
llvm::Type *Ty,
34+
const llvm::SimplifyQuery &Q) {
35+
-#if VC_INTR_LLVM_VERSION_MAJOR <= 14
36+
+#if (VC_INTR_LLVM_VERSION_MAJOR <= 14) || defined (IGC_LLVM_TRUNK_REVISION)
37+
return llvm::SimplifyCastInst(CastOpc, Op, Ty, Q);
38+
#else
39+
return llvm::simplifyCastInst(CastOpc, Op, Ty, Q);
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*========================== begin_copyright_notice ============================
2+
3+
Copyright (C) 2024 Intel Corporation
4+
5+
SPDX-License-Identifier: MIT
6+
7+
============================= end_copyright_notice ===========================*/
8+
9+
diff --git a/GenXIntrinsics/include/llvmVCWrapper/IR/Instructions.h b/GenXIntrinsics/include/llvmVCWrapper/IR/Instructions.h
10+
index 074efe0..bc188bb 100644
11+
--- a/GenXIntrinsics/include/llvmVCWrapper/IR/Instructions.h
12+
+++ b/GenXIntrinsics/include/llvmVCWrapper/IR/Instructions.h
13+
@@ -54,7 +54,7 @@ inline llvm::ArrayRef<int> getShuffleMask(llvm::ArrayRef<int> Mask,
14+
15+
template <class ArgKind>
16+
inline ArgKind &getValue(VCINTR::Optional<ArgKind> &opt) {
17+
-#if VC_INTR_LLVM_VERSION_MAJOR < 15
18+
+#if (VC_INTR_LLVM_VERSION_MAJOR < 15) || defined (IGC_LLVM_TRUNK_REVISION)
19+
return opt.getValue();
20+
#else
21+
return opt.value();
22+
@@ -63,7 +63,7 @@ inline ArgKind &getValue(VCINTR::Optional<ArgKind> &opt) {
23+
24+
template <class ArgKind>
25+
inline const ArgKind &getValue(const VCINTR::Optional<ArgKind> &opt) {
26+
-#if VC_INTR_LLVM_VERSION_MAJOR < 15
27+
+#if (VC_INTR_LLVM_VERSION_MAJOR < 15) || defined (IGC_LLVM_TRUNK_REVISION)
28+
return opt.getValue();
29+
#else
30+
return opt.value();

0 commit comments

Comments
 (0)