summaryrefslogtreecommitdiffstats
path: root/dynamic-layers/clang-layer/recipes-opencl/igc
diff options
context:
space:
mode:
Diffstat (limited to 'dynamic-layers/clang-layer/recipes-opencl/igc')
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch30
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch31
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch11
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch10
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/c707d1e2244aec988bdd5d2a7473ef3a32a5bac7.patch143
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/d1761dfc3ca6b54bac0ee213389a65f84d2aa9b7.patch77
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/e09e752949e7af0231884d1b11ea907e3e8b1611.patch49
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.16510.2.bb (renamed from dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.12812.9.bb)47
8 files changed, 78 insertions, 320 deletions
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch
index 0dd75537..377081fd 100644
--- a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch
@@ -1,4 +1,4 @@
1From 16fb6c022380bbb3c48f21372fcb1da7f30d3903 Mon Sep 17 00:00:00 2001 1From 3d71670f8ad5b54d434c2f5f71713bb1d5433ae4 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com> 2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Tue, 12 Oct 2021 23:46:42 +0800 3Date: Tue, 12 Oct 2021 23:46:42 +0800
4Subject: [PATCH] BiF/CMakeLists.txt: remove opt from DEPENDS 4Subject: [PATCH] BiF/CMakeLists.txt: remove opt from DEPENDS
@@ -14,22 +14,22 @@ Upstream-Status: Inappropriate
14 14
15Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> 15Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
16--- 16---
17 IGC/VectorCompiler/lib/BiF/CMakeLists.txt | 2 +- 17 IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake | 2 +-
18 1 file changed, 1 insertion(+), 1 deletion(-) 18 1 file changed, 1 insertion(+), 1 deletion(-)
19 19
20diff --git a/IGC/VectorCompiler/lib/BiF/CMakeLists.txt b/IGC/VectorCompiler/lib/BiF/CMakeLists.txt 20diff --git a/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake b/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake
21index be8e5557e..07ab40382 100644 21index d20d7f887..882e09fea 100644
22--- a/IGC/VectorCompiler/lib/BiF/CMakeLists.txt 22--- a/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake
23+++ b/IGC/VectorCompiler/lib/BiF/CMakeLists.txt 23+++ b/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake
24@@ -112,7 +112,7 @@ function(vc_build_bif RES_FILE CMCL_SRC_PATH BIF_NAME PTR_BIT_SIZE) 24@@ -109,7 +109,7 @@ function(vc_build_bif TARGET RES_FILE CMCL_SRC_PATH BIF_NAME PTR_BIT_SIZE)
25 add_custom_command(OUTPUT ${BIF_OPT_BC_PATH} 25 COMMENT "vc_build_bif: Translating CMCL builtins: ${BIF_CLANG_BC_NAME_FINAL} -> ${BIF_OPT_BC_NAME}"
26 COMMAND ${LLVM_OPT_EXE} --O2 -o ${BIF_OPT_BC_NAME} ${BIF_CMCL_BC_NAME} 26 COMMAND CMCLTranslatorTool -o ${BIF_CMCL_BC_NAME} ${BIF_CLANG_BC_NAME_FINAL}
27 COMMENT "vc_build_bif: running opt with O2: ${BIF_CMCL_BC_NAME} -> ${BIF_OPT_BC_NAME}" 27 COMMAND ${LLVM_OPT_EXE} ${IGC_LLVM_DEPENDENT_OPT_FLAGS} --O2 -o ${BIF_OPT_BC_NAME} ${BIF_CMCL_BC_NAME}
28- DEPENDS opt ${BIF_CMCL_BC_PATH}) 28- DEPENDS CMCLTranslatorTool ${LLVM_OPT_EXE} ${BIF_CLANG_BC_PATH_FINAL}
29+ DEPENDS ${BIF_CMCL_BC_PATH}) 29+ DEPENDS CMCLTranslatorTool ${BIF_CLANG_BC_PATH_FINAL}
30 BYPRODUCTS ${BIF_OPT_BC_PATH}
31 SOURCES ${CMCL_SRC_PATH})
30 set(${RES_FILE} ${BIF_OPT_BC_NAME} PARENT_SCOPE) 32 set(${RES_FILE} ${BIF_OPT_BC_NAME} PARENT_SCOPE)
31 endfunction()
32
33-- 33--
342.35.3 342.43.2
35 35
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch
new file mode 100644
index 00000000..dca75e22
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch
@@ -0,0 +1,31 @@
1From e69a3181482e5f442756a61c7b683914072884f1 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Mon, 9 Jan 2023 11:43:05 +0800
4Subject: [PATCH] external/SPIRV-Tools: change path to tools and headers
5
6We clone the SPIRV headers and tools in a different directory to ensure
7file path substitutions take place.
8
9Upstream-Status: Inappropriate
10
11Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
12
13---
14 external/SPIRV-Tools/CMakeLists.txt | 4 ++--
15 1 file changed, 2 insertions(+), 2 deletions(-)
16
17diff --git a/external/SPIRV-Tools/CMakeLists.txt b/external/SPIRV-Tools/CMakeLists.txt
18index 9afa5746c..7ca24d5dc 100644
19--- a/external/SPIRV-Tools/CMakeLists.txt
20+++ b/external/SPIRV-Tools/CMakeLists.txt
21@@ -43,8 +43,8 @@ else() #By default use build from sources
22 message(STATUS "[SPIRV-Tools] : Building from source")
23 message(STATUS "[SPIRV-Tools] : Current source dir: ${CMAKE_CURRENT_SOURCE_DIR}")
24
25- set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../SPIRV-Headers") # used in subdirectory
26- set(SPIRV-Tools_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../SPIRV-Tools")
27+ set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../SPIRV-Headers") # used in subdirectory
28+ set(SPIRV-Tools_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../SPIRV-Tools")
29
30 set(SPIRV-Tools_OUTPUT_DIR "${IGC_OPTION__OUTPUT_DIR}/external/SPIRV-Tools/build")
31 set(IGC_BUILD__SPIRV-Headers_DIR "${SPIRV-Headers_SOURCE_DIR}")
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch
index 24367f19..39443931 100644
--- a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch
@@ -1,17 +1,19 @@
1From 5329f00de484b470152e2bd3a5ab6dac45668b13 Mon Sep 17 00:00:00 2001 1From 5648568e597acd0fed82aac3e6aef0f95a1b78d1 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com> 2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Thu, 19 May 2022 22:50:09 +0800 3Date: Thu, 19 May 2022 22:50:09 +0800
4Subject: [PATCH] fix tblgen 4Subject: [PATCH] fix tblgen
5 5
6Upstream-Status: Inappropriate [OE specific]
7
6--- 8---
7 IGC/cmake/igc_llvm.cmake | 2 +- 9 IGC/cmake/igc_llvm.cmake | 2 +-
8 1 file changed, 1 insertion(+), 1 deletion(-) 10 1 file changed, 1 insertion(+), 1 deletion(-)
9 11
10diff --git a/IGC/cmake/igc_llvm.cmake b/IGC/cmake/igc_llvm.cmake 12diff --git a/IGC/cmake/igc_llvm.cmake b/IGC/cmake/igc_llvm.cmake
11index 89c03fc49..85be9ae08 100644 13index 10322533c..9020cb3c8 100644
12--- a/IGC/cmake/igc_llvm.cmake 14--- a/IGC/cmake/igc_llvm.cmake
13+++ b/IGC/cmake/igc_llvm.cmake 15+++ b/IGC/cmake/igc_llvm.cmake
14@@ -48,7 +48,7 @@ else() 16@@ -52,7 +52,7 @@ else()
15 set(LLVM_OPT_EXE "opt" CACHE STRING "") 17 set(LLVM_OPT_EXE "opt" CACHE STRING "")
16 18
17 set(LLVM_TABLEGEN_EXE "llvm-tblgen") 19 set(LLVM_TABLEGEN_EXE "llvm-tblgen")
@@ -20,6 +22,3 @@ index 89c03fc49..85be9ae08 100644
20 if(DEFINED LLVM_TABLEGEN) 22 if(DEFINED LLVM_TABLEGEN)
21 set(LLVM_TABLEGEN_EXE ${LLVM_TABLEGEN}) 23 set(LLVM_TABLEGEN_EXE ${LLVM_TABLEGEN})
22 else() 24 else()
23--
242.35.3
25
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch
index 7dd36aec..650130a8 100644
--- a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch
@@ -1,7 +1,7 @@
1From c2b7f30dd56568482b1b7c2f22bafdf68736fc88 Mon Sep 17 00:00:00 2001 1From 0559332abd04b6c8bc70171d201f43d2e4735336 Mon Sep 17 00:00:00 2001
2From: Lee Chee Yang <chee.yang.lee@intel.com> 2From: Lee Chee Yang <chee.yang.lee@intel.com>
3Date: Wed, 2 Sep 2020 08:28:35 +0800 3Date: Wed, 2 Sep 2020 08:28:35 +0800
4Subject: [PATCH 3/5] Improve Reproducibility for src package 4Subject: [PATCH] Improve Reproducibility for src package
5 5
6Improve reproducibility for intel-graphics-compiler-src package. 6Improve reproducibility for intel-graphics-compiler-src package.
7needs to pass build path as environment variable to the build. 7needs to pass build path as environment variable to the build.
@@ -9,12 +9,13 @@ this only works on bison 3.7 onward, hence check for bison version
9before adding the flags. 9before adding the flags.
10Upstream-Status: Inappropriate [applying --file-prefix-map in such way does not work for upstream] 10Upstream-Status: Inappropriate [applying --file-prefix-map in such way does not work for upstream]
11Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> 11Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
12
12--- 13---
13 visa/CMakeLists.txt | 7 +++++-- 14 visa/CMakeLists.txt | 7 +++++--
14 1 file changed, 5 insertions(+), 2 deletions(-) 15 1 file changed, 5 insertions(+), 2 deletions(-)
15 16
16diff --git a/visa/CMakeLists.txt b/visa/CMakeLists.txt 17diff --git a/visa/CMakeLists.txt b/visa/CMakeLists.txt
17index 65dbb4934..8cd607a69 100644 18index 6be467587..930c386a6 100644
18--- a/visa/CMakeLists.txt 19--- a/visa/CMakeLists.txt
19+++ b/visa/CMakeLists.txt 20+++ b/visa/CMakeLists.txt
20@@ -123,8 +123,11 @@ endif() 21@@ -123,8 +123,11 @@ endif()
@@ -31,6 +32,3 @@ index 65dbb4934..8cd607a69 100644
31 ADD_FLEX_BISON_DEPENDENCY(CISAScanner CISAParser) 32 ADD_FLEX_BISON_DEPENDENCY(CISAScanner CISAParser)
32 set(CISAScanner_dependencies) 33 set(CISAScanner_dependencies)
33 34
34--
352.20.1
36
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/c707d1e2244aec988bdd5d2a7473ef3a32a5bac7.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/c707d1e2244aec988bdd5d2a7473ef3a32a5bac7.patch
deleted file mode 100644
index 750a0494..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/igc/files/c707d1e2244aec988bdd5d2a7473ef3a32a5bac7.patch
+++ /dev/null
@@ -1,143 +0,0 @@
1From c707d1e2244aec988bdd5d2a7473ef3a32a5bac7 Mon Sep 17 00:00:00 2001
2From: Artem Gindinson <artem.gindinson@intel.com>
3Date: Thu, 17 Nov 2022 18:51:03 +0000
4Subject: [PATCH] Disable opaque pointers in IGC stack for LLVM 15+
5
6While IGC is a long way from supporting opaque pointers, LLVM 15 has them
7enabled by default. Enforce typed pointers explicitly within all LLVM
8pipelines employed by our stack (unless CMake instructs otherwise).
9
10Upstream-Status: Backport
11Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
12---
13 IGC/BiFModule/CMakeLists.txt | 4 ++--
14 IGC/CMakeLists.txt | 4 ++++
15 IGC/Compiler/CodeGenContext.cpp | 3 +++
16 IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp | 4 ++++
17 IGC/VectorCompiler/lib/BiF/CMakeLists.txt | 4 ++--
18 IGC/cmake/igc_llvm.cmake | 24 +++++++++++++++++++++++
19 6 files changed, 39 insertions(+), 4 deletions(-)
20
21diff --git a/IGC/BiFModule/CMakeLists.txt b/IGC/BiFModule/CMakeLists.txt
22index 60fc5cf8d7d..e87288ca6da 100644
23--- a/IGC/BiFModule/CMakeLists.txt
24+++ b/IGC/BiFModule/CMakeLists.txt
25@@ -251,7 +251,7 @@ function(igc_bif_build_bc)
26 add_custom_command(
27 OUTPUT "${_bcTempFilePath}"
28 COMMAND "${CMAKE_COMMAND}" -E compare_files ${BiFModule_PREBUILD_SHA_PATH} ${BiFModule_SRC_SHA_PATH} || "${CMAKE_COMMAND}" -E make_directory "${_outBcFileDir}"
29- COMMAND "${CMAKE_COMMAND}" -E compare_files ${BiFModule_PREBUILD_SHA_PATH} ${BiFModule_SRC_SHA_PATH} || "$<TARGET_FILE:clang-tool>" -cc1 -x cl -fblocks -fpreserve-vec3-type -opencl-builtins "-triple=${_archTriple}" -w -emit-llvm-bc -o "${_bcTempFilePath}" ${_pchFlags} ${_incFileFlags} ${_includeDirsFlags} ${_defineFlags} ${_options_DEFAULT} ${_options_CL} "${_srcFilePath}"
30+ COMMAND "${CMAKE_COMMAND}" -E compare_files ${BiFModule_PREBUILD_SHA_PATH} ${BiFModule_SRC_SHA_PATH} || "$<TARGET_FILE:clang-tool>" -cc1 ${IGC_LLVM_DEPENDENT_CLANG_FLAGS} -x cl -fblocks -fpreserve-vec3-type -opencl-builtins "-triple=${_archTriple}" -w -emit-llvm-bc -o "${_bcTempFilePath}" ${_pchFlags} ${_incFileFlags} ${_includeDirsFlags} ${_defineFlags} ${_options_DEFAULT} ${_options_CL} "${_srcFilePath}"
31 DEPENDS clang-tool ${_pchFilePath} ${_incFilePaths} "${_srcFilePath}" ${_dependencies}
32 COMMENT "BiF: \"${_outBcFileName}\": Compiling OpenCL source: \"${_srcFileName}\""
33 )
34@@ -351,7 +351,7 @@ function(igc_bif_build_bc)
35 add_custom_command(
36 OUTPUT "${_bcTempFilePath}"
37 COMMAND "${CMAKE_COMMAND}" -E compare_files ${BiFModule_PREBUILD_SHA_PATH} ${BiFModule_SRC_SHA_PATH} || "${CMAKE_COMMAND}" -E make_directory "${_outBcFileDir}"
38- COMMAND "${CMAKE_COMMAND}" -E compare_files ${BiFModule_PREBUILD_SHA_PATH} ${BiFModule_SRC_SHA_PATH} || "${bif-llvm-opt_exe}" -O2 -o "${_bcTempFilePath}" ${_options_DEFAULT} ${_options_OPT} ${_bcFiles}
39+ COMMAND "${CMAKE_COMMAND}" -E compare_files ${BiFModule_PREBUILD_SHA_PATH} ${BiFModule_SRC_SHA_PATH} || "${bif-llvm-opt_exe}" -O2 -o "${_bcTempFilePath}" ${IGC_LLVM_DEPENDENT_OPT_ARGS} ${_options_DEFAULT} ${_options_OPT} ${_bcFiles}
40 DEPENDS ${_bcFiles} ${_dependencies}
41 COMMENT "BiF: \"${_outBcFileName}\": Optmizing output .bc."
42 )
43diff --git a/IGC/CMakeLists.txt b/IGC/CMakeLists.txt
44index 930a552121c..66ea2a3b5ca 100644
45--- a/IGC/CMakeLists.txt
46+++ b/IGC/CMakeLists.txt
47@@ -275,6 +275,10 @@ endif()
48 # Remove this condition after transition period is over
49 option(IGC_OPTION__USE_KHRONOS_SPIRV_TRANSLATOR_IN_SC "[Experimental] Enable usage of Khronos SPIRV-LLVM-Translator in Scalar Compiler" OFF)
50
51+# TODO: Change this flag to opt-out or remove completely once
52+# opaque pointers are fully supported within the IGC stack.
53+option(IGC_OPTION__LLVM_OPAQUE_POINTERS_ENABLED "[Experimental] Allow usage of opaque pointers within LLVM transformations" OFF)
54+
55 option(IGC_OPTION__ENABLE_LIT_TESTS "Enable lit testing for IGC compiler. May require additional tools like llvm lit and opt" OFF)
56
57 set(IGC_OPTION__BIF_SRC_OCL_DIR "${IGC_SOURCE_DIR}/BiFModule"
58diff --git a/IGC/Compiler/CodeGenContext.cpp b/IGC/Compiler/CodeGenContext.cpp
59index 4abd6e4bf4a..0058571cd27 100644
60--- a/IGC/Compiler/CodeGenContext.cpp
61+++ b/IGC/Compiler/CodeGenContext.cpp
62@@ -231,6 +231,9 @@ namespace IGC
63 {
64 CreateResourceDimensionTypes(*this);
65 }
66+#ifdef __IGC_OPAQUE_POINTERS_FORCE_DISABLED__
67+ this->setOpaquePointers(false);
68+#endif
69 }
70
71 void LLVMContextWrapper::AddRef()
72diff --git a/IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp b/IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp
73index ef0e5cacd96..c26bfcea74c 100644
74--- a/IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp
75+++ b/IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp
76@@ -1494,6 +1494,10 @@ namespace TC
77 optionsEx += " -debug-info-kind=line-tables-only -dwarf-version=4";
78 }
79
80+#ifdef __IGC_OPAQUE_POINTERS_FORCE_DISABLED__
81+ optionsEx += " -no-opaque-pointers";
82+#endif
83+
84 std::string extensionsFromInternalOptions = GetSubstring(pInternalOptions, "-cl-ext=");
85
86 std::string extensions;
87diff --git a/IGC/VectorCompiler/lib/BiF/CMakeLists.txt b/IGC/VectorCompiler/lib/BiF/CMakeLists.txt
88index 3181a13403c..6235fc1d21e 100644
89--- a/IGC/VectorCompiler/lib/BiF/CMakeLists.txt
90+++ b/IGC/VectorCompiler/lib/BiF/CMakeLists.txt
91@@ -90,7 +90,7 @@ function(vc_build_bif RES_FILE CMCL_SRC_PATH BIF_NAME PTR_BIT_SIZE)
92
93 add_custom_command(OUTPUT "${BIF_CLANG_BC_PATH}"
94 COMMAND clang-tool -cc1 ${CMCL_INCLUDES} ${VC_INCLUDES} ${UTILS_HEADERS}
95- ${EXTRA_CLANG_INCLUDES} ${EXTRA_CLANG_FLAGS}
96+ ${EXTRA_CLANG_INCLUDES} ${IGC_LLVM_DEPENDENT_CLANG_FLAGS} ${EXTRA_CLANG_FLAGS}
97 -x cl -cl-std=clc++ -triple=${SPIR_TARGET}
98 -O2 -disable-llvm-passes -emit-llvm-bc -o "${BIF_CLANG_BC_NAME}" ${CMCL_SRC}
99 COMMENT "vc_build_bif: Compiling CMCL source ${CMCL_SRC} to BC ${BIF_CLANG_BC_NAME}"
100@@ -110,7 +110,7 @@ function(vc_build_bif RES_FILE CMCL_SRC_PATH BIF_NAME PTR_BIT_SIZE)
101 COMMENT "vc_build_bif: Translating CMCL builtins: ${BIF_CLANG_BC_NAME_FINAL} -> ${BIF_CMCL_BC_NAME}"
102 DEPENDS CMCLTranslatorTool ${BIF_CLANG_BC_PATH_FINAL})
103 add_custom_command(OUTPUT ${BIF_OPT_BC_PATH}
104- COMMAND ${LLVM_OPT_EXE} --O2 -o ${BIF_OPT_BC_NAME} ${BIF_CMCL_BC_NAME}
105+ COMMAND ${LLVM_OPT_EXE} ${IGC_LLVM_DEPENDENT_OPT_FLAGS} --O2 -o ${BIF_OPT_BC_NAME} ${BIF_CMCL_BC_NAME}
106 COMMENT "vc_build_bif: running opt with O2: ${BIF_CMCL_BC_NAME} -> ${BIF_OPT_BC_NAME}"
107 DEPENDS opt ${BIF_CMCL_BC_PATH})
108 set(${RES_FILE} ${BIF_OPT_BC_NAME} PARENT_SCOPE)
109diff --git a/IGC/cmake/igc_llvm.cmake b/IGC/cmake/igc_llvm.cmake
110index c0f74dcea14..96e3b0d1117 100644
111--- a/IGC/cmake/igc_llvm.cmake
112+++ b/IGC/cmake/igc_llvm.cmake
113@@ -69,6 +69,30 @@ list(TRANSFORM LLVM_INCLUDE_DIRS PREPEND "-I=" OUTPUT_VARIABLE LLVM_TABLEGEN_FLA
114 # Add major version definition for llvm wrapper.
115 add_compile_definitions(LLVM_VERSION_MAJOR=${LLVM_VERSION_MAJOR})
116
117+set(IGC_LLVM_DEPENDENT_CLANG_FLAGS "")
118+set(IGC_LLVM_DEPENDENT_OPT_FLAGS "")
119+
120+# Disable the opaque pointers' usage explicitly, unless the block below deems that unnecessary
121+set(IGC_OPAQUE_POINTERS_FORCE_DISABLED ON)
122+if(IGC_OPTION__LLVM_OPAQUE_POINTERS_ENABLED)
123+ if(LLVM_VERSION_MAJOR LESS 14)
124+ message(WARNING "IGC_OPTION__LLVM_OPAQUE_POINTERS_ENABLED ignored: opaque pointers are not available prior to LLVM 14")
125+ endif()
126+ set(IGC_OPAQUE_POINTERS_FORCE_DISABLED OFF)
127+elseif(LLVM_VERSION_MAJOR LESS 15)
128+ # Opaque pointers are either absent (LLVM <14) or disabled by default. No need to force-disable
129+ set(IGC_OPAQUE_POINTERS_FORCE_DISABLED OFF)
130+endif(IGC_OPTION__LLVM_OPAQUE_POINTERS_ENABLED)
131+
132+if(IGC_OPAQUE_POINTERS_FORCE_DISABLED)
133+ # Once we've figured out that explicit disabling is needed, propagate
134+ # corresponding options to all the in-tree calls of clang/opt tools.
135+ list(APPEND IGC_LLVM_DEPENDENT_CLANG_FLAGS "-no-opaque-pointers")
136+ list(APPEND IGC_LLVM_DEPENDENT_OPT_FLAGS "-opaque-pointers=0")
137+ # Also inform the preprocessor.
138+ add_compile_definitions(__IGC_OPAQUE_POINTERS_FORCE_DISABLED__)
139+endif()
140+
141 # Include LLVM headers as system ones.
142 # This will disable warnings on linux.
143 include_directories(SYSTEM ${LLVM_INCLUDE_DIRS})
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/d1761dfc3ca6b54bac0ee213389a65f84d2aa9b7.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/d1761dfc3ca6b54bac0ee213389a65f84d2aa9b7.patch
deleted file mode 100644
index a96be212..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/igc/files/d1761dfc3ca6b54bac0ee213389a65f84d2aa9b7.patch
+++ /dev/null
@@ -1,77 +0,0 @@
1From d1761dfc3ca6b54bac0ee213389a65f84d2aa9b7 Mon Sep 17 00:00:00 2001
2From: Artem Gindinson <artem.gindinson@intel.com>
3Date: Mon, 28 Nov 2022 14:33:44 +0000
4Subject: [PATCH] Explicitly cast pointers to `int` in BiFModule (LLVM 15)
5
6Starting from version 15, Clang defaults to
7`-Werror=int-conversion`. Add explicit casts in OpenCL C builtins'
8code where necessary for LLVM 15 buildability.
9
10Upstream-Status: Backport
11Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
12
13---
14 IGC/BiFModule/Implementation/group.cl | 4 ++--
15 IGC/BiFModule/Languages/OpenCL/IBiF_Images.cl | 8 ++++----
16 2 files changed, 6 insertions(+), 6 deletions(-)
17
18diff --git a/IGC/BiFModule/Implementation/group.cl b/IGC/BiFModule/Implementation/group.cl
19index dd6cfd6ba26..df9a2f64f4f 100644
20--- a/IGC/BiFModule/Implementation/group.cl
21+++ b/IGC/BiFModule/Implementation/group.cl
22@@ -1897,13 +1897,13 @@ void SPIRV_OVERLOADABLE SPIRV_BUILTIN(SubgroupImageBlockWriteINTEL, _img2d_wo_v2
23 global Img2d_wo* image, int2 coord, TYPE data) \
24 { \
25 int id = (int)__builtin_astype(image, __global void*); \
26- INTERNAL_FUNC(image, coord, data); \
27+ INTERNAL_FUNC((int)image, coord, data); \
28 } \
29 void SPIRV_OVERLOADABLE SPIRV_BUILTIN(SubgroupImageBlockWriteINTEL, _img2d_rw_v2i32_##TYPE_ABBR, )( \
30 global Img2d_rw* image, int2 coord, TYPE data) \
31 { \
32 int id = (int)__builtin_astype(image, __global void*); \
33- INTERNAL_FUNC(image, coord, data); \
34+ INTERNAL_FUNC((int)image, coord, data); \
35 }
36
37 #ifdef cl_intel_subgroups_char
38diff --git a/IGC/BiFModule/Languages/OpenCL/IBiF_Images.cl b/IGC/BiFModule/Languages/OpenCL/IBiF_Images.cl
39index 062b4f3f49f..1d9d158e9c5 100644
40--- a/IGC/BiFModule/Languages/OpenCL/IBiF_Images.cl
41+++ b/IGC/BiFModule/Languages/OpenCL/IBiF_Images.cl
42@@ -379,7 +379,7 @@ INLINE int4 OVERLOADABLE read_imagei(read_only image1d_array_t image_array, samp
43
44 INLINE uint4 OVERLOADABLE read_imageui(read_only image1d_array_t image_array, sampler_t sampler, int2 coords) {
45 int id = (int)__builtin_astype(image_array, __global void*);
46- int IDimage_array = __builtin_astype(image_array, __global void*);
47+ int IDimage_array = (int)__builtin_astype(image_array, __global void*);
48 int dt = __builtin_IB_get_image_array_size(IDimage_array);
49 float layer = clamp(rint((float)coords.y), 0.0f, (float)(--dt));
50 if ((__builtin_IB_get_address_mode(__builtin_IB_convert_sampler_to_int(sampler)) & 0x07) == CLK_ADDRESS_CLAMP_TO_EDGE)
51@@ -395,7 +395,7 @@ INLINE uint4 OVERLOADABLE read_imageui(read_only image1d_array_t image_array, sa
52
53 INLINE uint4 OVERLOADABLE read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coords) {
54 int id = (int)__builtin_astype(image_array, __global void*);
55- int IDimage_array = __builtin_astype(image_array, __global void*);
56+ int IDimage_array = (int)__builtin_astype(image_array, __global void*);
57 int dt = __builtin_IB_get_image_array_size(IDimage_array);
58 float layer = clamp(rint(coords.y), 0.0f, (float)(--dt));
59 if ((__builtin_IB_get_address_mode(__builtin_IB_convert_sampler_to_int(sampler)) & 0x07) == CLK_ADDRESS_CLAMP)
60@@ -581,7 +581,7 @@ INLINE int4 OVERLOADABLE read_imagei(read_only image2d_array_t image_array, samp
61
62 INLINE uint4 OVERLOADABLE read_imageui(read_only image2d_array_t image_array, sampler_t sampler, int4 coords) {
63 int id = (int)__builtin_astype(image_array, __global void*);
64- int IDimage_array = __builtin_astype(image_array, __global void*);
65+ int IDimage_array = (int)__builtin_astype(image_array, __global void*);
66 int dt = __builtin_IB_get_image_array_size(IDimage_array);
67 float layer = clamp(rint((float)coords.z), 0.0f, (float)(--dt));
68 if ((__builtin_IB_get_address_mode(__builtin_IB_convert_sampler_to_int(sampler)) & 0x07) == CLK_ADDRESS_CLAMP_TO_EDGE)
69@@ -597,7 +597,7 @@ INLINE uint4 OVERLOADABLE read_imageui(read_only image2d_array_t image_array, sa
70
71 INLINE uint4 OVERLOADABLE read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coords) {
72 int id = (int)__builtin_astype(image_array, __global void*);
73- int IDimage_array = __builtin_astype(image_array, __global void*);
74+ int IDimage_array = (int)__builtin_astype(image_array, __global void*);
75 int dt = __builtin_IB_get_image_array_size(IDimage_array);
76 float layer = clamp(rint(coords.z), 0.0f, (float)(--dt));
77 if ((__builtin_IB_get_address_mode(__builtin_IB_convert_sampler_to_int(sampler)) & 0x07) == CLK_ADDRESS_CLAMP)
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/e09e752949e7af0231884d1b11ea907e3e8b1611.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/e09e752949e7af0231884d1b11ea907e3e8b1611.patch
deleted file mode 100644
index 55cb2a7d..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/igc/files/e09e752949e7af0231884d1b11ea907e3e8b1611.patch
+++ /dev/null
@@ -1,49 +0,0 @@
1From e09e752949e7af0231884d1b11ea907e3e8b1611 Mon Sep 17 00:00:00 2001
2From: Artem Gindinson <artem.gindinson@intel.com>
3Date: Fri, 18 Nov 2022 14:48:45 +0000
4Subject: [PATCH] Additional VC fix of pointer element type API usage
5
6Quick fixup to the LLVM 15 buildability in the footsteps of commit
7intel/intel-graphics-compiler@b86c1bf.
8
9Upstream-Status: Backport
10Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
11
12---
13 IGC/VectorCompiler/lib/GenXCodeGen/GenXSimdCFRegion.cpp | 8 ++++----
14 1 file changed, 4 insertions(+), 4 deletions(-)
15
16diff --git a/IGC/VectorCompiler/lib/GenXCodeGen/GenXSimdCFRegion.cpp b/IGC/VectorCompiler/lib/GenXCodeGen/GenXSimdCFRegion.cpp
17index 363d622c24c..c047c545ac8 100644
18--- a/IGC/VectorCompiler/lib/GenXCodeGen/GenXSimdCFRegion.cpp
19+++ b/IGC/VectorCompiler/lib/GenXCodeGen/GenXSimdCFRegion.cpp
20@@ -748,12 +748,12 @@ void GenXPredToSimdCF::insertIfGoto(SimdCFIfRegion &R) {
21 Mask->getName() + ".not");
22 Value *EM = getEM(M);
23 Instruction *OldGotoEM =
24- Builder.CreateLoad(EM->getType()->getPointerElementType(), EM,
25+ Builder.CreateLoad(IGCLLVM::getNonOpaquePtrEltTy(EM->getType()), EM,
26 false /*isVolatile*/, EM->getName());
27 OldGotoEM->setDebugLoc(DL);
28 Value *GotoRMAddr = getRMAddr(Br->getSuccessor(0), SimdWidth);
29 Instruction *OldGotoRM = Builder.CreateLoad(
30- GotoRMAddr->getType()->getPointerElementType(), GotoRMAddr,
31+ IGCLLVM::getNonOpaquePtrEltTy(GotoRMAddr->getType()), GotoRMAddr,
32 false /*isVolatile*/, GotoRMAddr->getName());
33 OldGotoRM->setDebugLoc(DL);
34 Type *GotoTys[] = {OldGotoEM->getType(), OldGotoRM->getType()};
35@@ -798,12 +798,12 @@ void GenXPredToSimdCF::insertIfGoto(SimdCFIfRegion &R) {
36 AfterThens[&R] = AfterThen;
37
38 Builder.SetInsertPoint(AfterThen, AfterThen->begin());
39- auto *OldEM = Builder.CreateLoad(EM->getType()->getPointerElementType(), EM,
40+ auto *OldEM = Builder.CreateLoad(IGCLLVM::getNonOpaquePtrEltTy(EM->getType()), EM,
41 false /*isVolatile*/, EM->getName());
42 OldEM->setDebugLoc(DL);
43 auto *RMAddr = getRMAddr(Br->getSuccessor(0), SimdWidth);
44 auto *RM =
45- Builder.CreateLoad(RMAddr->getType()->getPointerElementType(), RMAddr,
46+ Builder.CreateLoad(IGCLLVM::getNonOpaquePtrEltTy(RMAddr->getType()), RMAddr,
47 false /*isVolatile*/, RMAddr->getName());
48 RM->setDebugLoc(DL);
49 Type *Tys[] = {OldEM->getType(), RM->getType()};
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.12812.9.bb b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.16510.2.bb
index 4cfe7133..24eb97bd 100644
--- a/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.12812.9.bb
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.16510.2.bb
@@ -6,25 +6,23 @@ hardware architecture."
6LICENSE = "MIT & Apache-2.0" 6LICENSE = "MIT & Apache-2.0"
7LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc/LICENSE.TXT;md5=311cfc1a5b54bab8ed34a0b5fba4373e \ 7LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc/LICENSE.TXT;md5=311cfc1a5b54bab8ed34a0b5fba4373e \
8 file://LICENSE.md;md5=488d74376edf2765f6e78d271543dde3 \ 8 file://LICENSE.md;md5=488d74376edf2765f6e78d271543dde3 \
9 file://NOTICES.txt;md5=7f4fbc3eb2c34807465e63b1ec3c9d1a" 9 file://NOTICES.txt;md5=b81a52411c84df3419f20bad4d755880"
10 10
11SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https;name=igc;branch=releases/igc-1.0.12812 \ 11SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https;name=igc;branch=releases/igc-1.0.16510 \
12 git://github.com/intel/vc-intrinsics.git;protocol=https;destsuffix=git/vc-intrinsics;name=vc;nobranch=1 \ 12 git://github.com/intel/vc-intrinsics.git;protocol=https;destsuffix=git/vc-intrinsics;name=vc;nobranch=1 \
13 git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=SPIRV-Tools;name=spirv-tools;branch=sdk-1.3.204 \ 13 git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=git/SPIRV-Tools;name=spirv-tools;branch=main \
14 git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=SPIRV-Headers;name=spirv-headers;branch=master \ 14 git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=git/SPIRV-Headers;name=spirv-headers;branch=main \
15 file://0003-Improve-Reproducibility-for-src-package.patch \ 15 file://0003-Improve-Reproducibility-for-src-package.patch \
16 file://0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch \ 16 file://0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch \
17 file://c707d1e2244aec988bdd5d2a7473ef3a32a5bac7.patch \ 17 file://0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch \
18 file://d1761dfc3ca6b54bac0ee213389a65f84d2aa9b7.patch \
19 file://e09e752949e7af0231884d1b11ea907e3e8b1611.patch \
20 " 18 "
21 19
22SRC_URI:append:class-native = " file://0001-fix-tblgen.patch" 20SRC_URI:append:class-native = " file://0001-fix-tblgen.patch"
23 21
24SRCREV_igc = "17eb3abbaa68a238f63d5d549e0a46cfeb71af80" 22SRCREV_igc = "c2495d45f37fadd963ad22eb0cc1a8235a306775"
25SRCREV_vc = "dafb9926e5047a052ef5263dd4ec4fe5f178e5e0" 23SRCREV_vc = "f9c34404d0ea9abad83875a10bd48d88cea90ebd"
26SRCREV_spirv-tools = "45dd184c790d6bfc78a5a74a10c37e888b1823fa" 24SRCREV_spirv-tools = "f0cc85efdbbe3a46eae90e0f915dc1509836d0fc"
27SRCREV_spirv-headers = "b42ba6d92faf6b4938e6f22ddd186dbdacc98d78" 25SRCREV_spirv-headers = "1c6bb2743599e6eb6f37b2969acc0aef812e32e3"
28 26
29SRCREV_FORMAT = "igc_vc_spirv-tools_spirv-headers" 27SRCREV_FORMAT = "igc_vc_spirv-tools_spirv-headers"
30 28
@@ -33,15 +31,14 @@ export B
33 31
34S = "${WORKDIR}/git" 32S = "${WORKDIR}/git"
35 33
36inherit cmake pkgconfig 34inherit cmake pkgconfig qemu python3native
37 35
38CXXFLAGS:append = " -Wno-error=nonnull" 36CXXFLAGS:append = " -Wno-error=nonnull"
39 37
40COMPATIBLE_HOST = '(x86_64).*-linux' 38COMPATIBLE_HOST = '(x86_64).*-linux'
41COMPATIBLE_HOST:libc-musl = "null" 39COMPATIBLE_HOST:libc-musl = "null"
42 40
43DEPENDS += " flex-native bison-native clang opencl-clang" 41DEPENDS += " flex-native bison-native clang clang-cross-x86_64 opencl-clang qemu-native python3-mako-native"
44DEPENDS:append:class-target = " clang-cross-x86_64 intel-graphics-compiler-native"
45 42
46RDEPENDS:${PN} += "opencl-clang" 43RDEPENDS:${PN} += "opencl-clang"
47 44
@@ -50,27 +47,29 @@ PACKAGECONFIG[vc] = "-DIGC_BUILD__VC_ENABLED=ON -DIGC_OPTION__LINK_KHRONOS_SPIRV
50 47
51EXTRA_OECMAKE = " \ 48EXTRA_OECMAKE = " \
52 -DIGC_OPTION__LLVM_PREFERRED_VERSION=${LLVMVERSION} \ 49 -DIGC_OPTION__LLVM_PREFERRED_VERSION=${LLVMVERSION} \
53 -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3 \
54 -DVC_INTRINSICS_SRC="${S}/vc-intrinsics" \ 50 -DVC_INTRINSICS_SRC="${S}/vc-intrinsics" \
55 -DIGC_OPTION__LLVM_MODE=Prebuilds \ 51 -DIGC_OPTION__LLVM_MODE=Prebuilds \
56 -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ 52 -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
57 -DLLVM_LINK_EXE=${STAGING_BINDIR_NATIVE}/llvm-link \ 53 -DLLVM_LINK_EXE=${STAGING_BINDIR_NATIVE}/llvm-link \
58 -DCLANG_EXE=${STAGING_BINDIR_NATIVE}/clang \ 54 -DCLANG_EXE=${STAGING_BINDIR_NATIVE}/clang \
55 -DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \
59 " 56 "
60 57
61do_install:append:class-native () { 58do_configure:prepend:class-target () {
62 install -d ${D}${bindir} 59 # Write out a qemu wrapper that will be used by cmake.
63 install ${B}/IGC/Release/elf_packager ${D}${bindir}/ 60 qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
64 if ${@bb.utils.contains('PACKAGECONFIG', 'vc', 'true', 'false', d)}; then 61 cat > ${WORKDIR}/qemuwrapper << EOF
65 install ${B}/IGC/Release/CMCLTranslatorTool ${D}${bindir}/ 62#!/bin/sh
66 install ${B}/IGC/Release/vcb ${D}${bindir}/ 63$qemu_binary "\$@"
67 fi 64EOF
65 chmod +x ${WORKDIR}/qemuwrapper
68} 66}
69 67
70BBCLASSEXTEND = "native nativesdk"
71
72UPSTREAM_CHECK_GITTAGREGEX = "^igc-(?P<pver>(?!19\..*)\d+(\.\d+)+)$" 68UPSTREAM_CHECK_GITTAGREGEX = "^igc-(?P<pver>(?!19\..*)\d+(\.\d+)+)$"
73 69
74FILES:${PN} += " \ 70FILES:${PN} += " \
75 ${libdir}/igc/NOTICES.txt \ 71 ${libdir}/igc/NOTICES.txt \
76 " 72 "
73
74# libigc.so contains buildpaths
75INSANE_SKIP:${PN} += "buildpaths"