diff options
| author | Anuj Mittal <anuj.mittal@intel.com> | 2022-12-06 13:17:24 +0800 |
|---|---|---|
| committer | Anuj Mittal <anuj.mittal@intel.com> | 2022-12-06 13:24:06 +0800 |
| commit | d01bcf8747bb311111b85d6d0bb872308a6e6a02 (patch) | |
| tree | b4b01d930b3bd0aeef69e3a873b0d61c53a55adc | |
| parent | f9e2e05f0d4896f4cfe674cbbc08294075ca9a04 (diff) | |
| download | meta-intel-d01bcf8747bb311111b85d6d0bb872308a6e6a02.tar.gz | |
intel-graphics-compiler: upgrade 1.0.12149.1 -> 1.0.12812.9
Upgrade to the latest tag and backport 3 patches to fix build issues
with LLVM 15 [1].
Remove IGC_OPTION__USE_KHRONOS_SPIRV_TRANSLATOR_IN_VC option as it has
been removed upstream [2].
And, make sure CLANG_EXE points to clang in native sysroot.
[1] https://github.com/intel/intel-graphics-compiler/issues/263
[2] https://github.com/intel/intel-graphics-compiler/commit/3fde0acae81b48b5225e1760e1feb9ae44ccdbb2
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
| -rw-r--r-- | dynamic-layers/clang-layer/recipes-opencl/igc/files/c707d1e2244aec988bdd5d2a7473ef3a32a5bac7.patch | 143 | ||||
| -rw-r--r-- | dynamic-layers/clang-layer/recipes-opencl/igc/files/d1761dfc3ca6b54bac0ee213389a65f84d2aa9b7.patch | 77 | ||||
| -rw-r--r-- | dynamic-layers/clang-layer/recipes-opencl/igc/files/e09e752949e7af0231884d1b11ea907e3e8b1611.patch | 49 | ||||
| -rw-r--r-- | dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.12812.9.bb (renamed from dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.12149.1.bb) | 12 |
4 files changed, 277 insertions, 4 deletions
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/c707d1e2244aec988bdd5d2a7473ef3a32a5bac7.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/c707d1e2244aec988bdd5d2a7473ef3a32a5bac7.patch new file mode 100644 index 00000000..750a0494 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/c707d1e2244aec988bdd5d2a7473ef3a32a5bac7.patch | |||
| @@ -0,0 +1,143 @@ | |||
| 1 | From c707d1e2244aec988bdd5d2a7473ef3a32a5bac7 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Artem Gindinson <artem.gindinson@intel.com> | ||
| 3 | Date: Thu, 17 Nov 2022 18:51:03 +0000 | ||
| 4 | Subject: [PATCH] Disable opaque pointers in IGC stack for LLVM 15+ | ||
| 5 | |||
| 6 | While IGC is a long way from supporting opaque pointers, LLVM 15 has them | ||
| 7 | enabled by default. Enforce typed pointers explicitly within all LLVM | ||
| 8 | pipelines employed by our stack (unless CMake instructs otherwise). | ||
| 9 | |||
| 10 | Upstream-Status: Backport | ||
| 11 | Signed-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 | |||
| 21 | diff --git a/IGC/BiFModule/CMakeLists.txt b/IGC/BiFModule/CMakeLists.txt | ||
| 22 | index 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 | ) | ||
| 43 | diff --git a/IGC/CMakeLists.txt b/IGC/CMakeLists.txt | ||
| 44 | index 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" | ||
| 58 | diff --git a/IGC/Compiler/CodeGenContext.cpp b/IGC/Compiler/CodeGenContext.cpp | ||
| 59 | index 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() | ||
| 72 | diff --git a/IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp b/IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp | ||
| 73 | index 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; | ||
| 87 | diff --git a/IGC/VectorCompiler/lib/BiF/CMakeLists.txt b/IGC/VectorCompiler/lib/BiF/CMakeLists.txt | ||
| 88 | index 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) | ||
| 109 | diff --git a/IGC/cmake/igc_llvm.cmake b/IGC/cmake/igc_llvm.cmake | ||
| 110 | index 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 new file mode 100644 index 00000000..a96be212 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/d1761dfc3ca6b54bac0ee213389a65f84d2aa9b7.patch | |||
| @@ -0,0 +1,77 @@ | |||
| 1 | From d1761dfc3ca6b54bac0ee213389a65f84d2aa9b7 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Artem Gindinson <artem.gindinson@intel.com> | ||
| 3 | Date: Mon, 28 Nov 2022 14:33:44 +0000 | ||
| 4 | Subject: [PATCH] Explicitly cast pointers to `int` in BiFModule (LLVM 15) | ||
| 5 | |||
| 6 | Starting from version 15, Clang defaults to | ||
| 7 | `-Werror=int-conversion`. Add explicit casts in OpenCL C builtins' | ||
| 8 | code where necessary for LLVM 15 buildability. | ||
| 9 | |||
| 10 | Upstream-Status: Backport | ||
| 11 | Signed-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 | |||
| 18 | diff --git a/IGC/BiFModule/Implementation/group.cl b/IGC/BiFModule/Implementation/group.cl | ||
| 19 | index 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 | ||
| 38 | diff --git a/IGC/BiFModule/Languages/OpenCL/IBiF_Images.cl b/IGC/BiFModule/Languages/OpenCL/IBiF_Images.cl | ||
| 39 | index 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 new file mode 100644 index 00000000..55cb2a7d --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/e09e752949e7af0231884d1b11ea907e3e8b1611.patch | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | From e09e752949e7af0231884d1b11ea907e3e8b1611 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Artem Gindinson <artem.gindinson@intel.com> | ||
| 3 | Date: Fri, 18 Nov 2022 14:48:45 +0000 | ||
| 4 | Subject: [PATCH] Additional VC fix of pointer element type API usage | ||
| 5 | |||
| 6 | Quick fixup to the LLVM 15 buildability in the footsteps of commit | ||
| 7 | intel/intel-graphics-compiler@b86c1bf. | ||
| 8 | |||
| 9 | Upstream-Status: Backport | ||
| 10 | Signed-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 | |||
| 16 | diff --git a/IGC/VectorCompiler/lib/GenXCodeGen/GenXSimdCFRegion.cpp b/IGC/VectorCompiler/lib/GenXCodeGen/GenXSimdCFRegion.cpp | ||
| 17 | index 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.12149.1.bb b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.12812.9.bb index ed9b47cb..4cfe7133 100644 --- a/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.12149.1.bb +++ b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.12812.9.bb | |||
| @@ -8,18 +8,21 @@ LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc | |||
| 8 | file://LICENSE.md;md5=488d74376edf2765f6e78d271543dde3 \ | 8 | file://LICENSE.md;md5=488d74376edf2765f6e78d271543dde3 \ |
| 9 | file://NOTICES.txt;md5=7f4fbc3eb2c34807465e63b1ec3c9d1a" | 9 | file://NOTICES.txt;md5=7f4fbc3eb2c34807465e63b1ec3c9d1a" |
| 10 | 10 | ||
| 11 | SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https;name=igc;branch=releases/igc-1.0.12149 \ | 11 | SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https;name=igc;branch=releases/igc-1.0.12812 \ |
| 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=SPIRV-Tools;name=spirv-tools;branch=sdk-1.3.204 \ |
| 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=SPIRV-Headers;name=spirv-headers;branch=master \ |
| 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 \ | ||
| 18 | file://d1761dfc3ca6b54bac0ee213389a65f84d2aa9b7.patch \ | ||
| 19 | file://e09e752949e7af0231884d1b11ea907e3e8b1611.patch \ | ||
| 17 | " | 20 | " |
| 18 | 21 | ||
| 19 | SRC_URI:append:class-native = " file://0001-fix-tblgen.patch" | 22 | SRC_URI:append:class-native = " file://0001-fix-tblgen.patch" |
| 20 | 23 | ||
| 21 | SRCREV_igc = "a3d06ca6798d1c70bb0bf274695ac74ce0532ae4" | 24 | SRCREV_igc = "17eb3abbaa68a238f63d5d549e0a46cfeb71af80" |
| 22 | SRCREV_vc = "984bb27baacce6ee5c716c2e64845f2a1928025b" | 25 | SRCREV_vc = "dafb9926e5047a052ef5263dd4ec4fe5f178e5e0" |
| 23 | SRCREV_spirv-tools = "45dd184c790d6bfc78a5a74a10c37e888b1823fa" | 26 | SRCREV_spirv-tools = "45dd184c790d6bfc78a5a74a10c37e888b1823fa" |
| 24 | SRCREV_spirv-headers = "b42ba6d92faf6b4938e6f22ddd186dbdacc98d78" | 27 | SRCREV_spirv-headers = "b42ba6d92faf6b4938e6f22ddd186dbdacc98d78" |
| 25 | 28 | ||
| @@ -43,7 +46,7 @@ DEPENDS:append:class-target = " clang-cross-x86_64 intel-graphics-compiler-nativ | |||
| 43 | RDEPENDS:${PN} += "opencl-clang" | 46 | RDEPENDS:${PN} += "opencl-clang" |
| 44 | 47 | ||
| 45 | PACKAGECONFIG ??= "vc" | 48 | PACKAGECONFIG ??= "vc" |
| 46 | PACKAGECONFIG[vc] = "-DIGC_BUILD__VC_ENABLED=ON -DIGC_OPTION__LINK_KHRONOS_SPIRV_TRANSLATOR=ON -DIGC_OPTION__USE_KHRONOS_SPIRV_TRANSLATOR_IN_VC=ON -DIGC_OPTION__SPIRV_TRANSLATOR_MODE=Prebuilds,-DIGC_BUILD__VC_ENABLED=OFF," | 49 | PACKAGECONFIG[vc] = "-DIGC_BUILD__VC_ENABLED=ON -DIGC_OPTION__LINK_KHRONOS_SPIRV_TRANSLATOR=ON -DIGC_OPTION__SPIRV_TRANSLATOR_MODE=Prebuilds,-DIGC_BUILD__VC_ENABLED=OFF," |
| 47 | 50 | ||
| 48 | EXTRA_OECMAKE = " \ | 51 | EXTRA_OECMAKE = " \ |
| 49 | -DIGC_OPTION__LLVM_PREFERRED_VERSION=${LLVMVERSION} \ | 52 | -DIGC_OPTION__LLVM_PREFERRED_VERSION=${LLVMVERSION} \ |
| @@ -52,6 +55,7 @@ EXTRA_OECMAKE = " \ | |||
| 52 | -DIGC_OPTION__LLVM_MODE=Prebuilds \ | 55 | -DIGC_OPTION__LLVM_MODE=Prebuilds \ |
| 53 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ | 56 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ |
| 54 | -DLLVM_LINK_EXE=${STAGING_BINDIR_NATIVE}/llvm-link \ | 57 | -DLLVM_LINK_EXE=${STAGING_BINDIR_NATIVE}/llvm-link \ |
| 58 | -DCLANG_EXE=${STAGING_BINDIR_NATIVE}/clang \ | ||
| 55 | " | 59 | " |
| 56 | 60 | ||
| 57 | do_install:append:class-native () { | 61 | do_install:append:class-native () { |
