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] 3fde0acae8

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
This commit is contained in:
Anuj Mittal 2022-12-06 13:17:24 +08:00
parent f9e2e05f0d
commit d01bcf8747
4 changed files with 277 additions and 4 deletions

View File

@ -0,0 +1,143 @@
From c707d1e2244aec988bdd5d2a7473ef3a32a5bac7 Mon Sep 17 00:00:00 2001
From: Artem Gindinson <artem.gindinson@intel.com>
Date: Thu, 17 Nov 2022 18:51:03 +0000
Subject: [PATCH] Disable opaque pointers in IGC stack for LLVM 15+
While IGC is a long way from supporting opaque pointers, LLVM 15 has them
enabled by default. Enforce typed pointers explicitly within all LLVM
pipelines employed by our stack (unless CMake instructs otherwise).
Upstream-Status: Backport
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
---
IGC/BiFModule/CMakeLists.txt | 4 ++--
IGC/CMakeLists.txt | 4 ++++
IGC/Compiler/CodeGenContext.cpp | 3 +++
IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp | 4 ++++
IGC/VectorCompiler/lib/BiF/CMakeLists.txt | 4 ++--
IGC/cmake/igc_llvm.cmake | 24 +++++++++++++++++++++++
6 files changed, 39 insertions(+), 4 deletions(-)
diff --git a/IGC/BiFModule/CMakeLists.txt b/IGC/BiFModule/CMakeLists.txt
index 60fc5cf8d7d..e87288ca6da 100644
--- a/IGC/BiFModule/CMakeLists.txt
+++ b/IGC/BiFModule/CMakeLists.txt
@@ -251,7 +251,7 @@ function(igc_bif_build_bc)
add_custom_command(
OUTPUT "${_bcTempFilePath}"
COMMAND "${CMAKE_COMMAND}" -E compare_files ${BiFModule_PREBUILD_SHA_PATH} ${BiFModule_SRC_SHA_PATH} || "${CMAKE_COMMAND}" -E make_directory "${_outBcFileDir}"
- 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}"
+ 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}"
DEPENDS clang-tool ${_pchFilePath} ${_incFilePaths} "${_srcFilePath}" ${_dependencies}
COMMENT "BiF: \"${_outBcFileName}\": Compiling OpenCL source: \"${_srcFileName}\""
)
@@ -351,7 +351,7 @@ function(igc_bif_build_bc)
add_custom_command(
OUTPUT "${_bcTempFilePath}"
COMMAND "${CMAKE_COMMAND}" -E compare_files ${BiFModule_PREBUILD_SHA_PATH} ${BiFModule_SRC_SHA_PATH} || "${CMAKE_COMMAND}" -E make_directory "${_outBcFileDir}"
- 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}
+ 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}
DEPENDS ${_bcFiles} ${_dependencies}
COMMENT "BiF: \"${_outBcFileName}\": Optmizing output .bc."
)
diff --git a/IGC/CMakeLists.txt b/IGC/CMakeLists.txt
index 930a552121c..66ea2a3b5ca 100644
--- a/IGC/CMakeLists.txt
+++ b/IGC/CMakeLists.txt
@@ -275,6 +275,10 @@ endif()
# Remove this condition after transition period is over
option(IGC_OPTION__USE_KHRONOS_SPIRV_TRANSLATOR_IN_SC "[Experimental] Enable usage of Khronos SPIRV-LLVM-Translator in Scalar Compiler" OFF)
+# TODO: Change this flag to opt-out or remove completely once
+# opaque pointers are fully supported within the IGC stack.
+option(IGC_OPTION__LLVM_OPAQUE_POINTERS_ENABLED "[Experimental] Allow usage of opaque pointers within LLVM transformations" OFF)
+
option(IGC_OPTION__ENABLE_LIT_TESTS "Enable lit testing for IGC compiler. May require additional tools like llvm lit and opt" OFF)
set(IGC_OPTION__BIF_SRC_OCL_DIR "${IGC_SOURCE_DIR}/BiFModule"
diff --git a/IGC/Compiler/CodeGenContext.cpp b/IGC/Compiler/CodeGenContext.cpp
index 4abd6e4bf4a..0058571cd27 100644
--- a/IGC/Compiler/CodeGenContext.cpp
+++ b/IGC/Compiler/CodeGenContext.cpp
@@ -231,6 +231,9 @@ namespace IGC
{
CreateResourceDimensionTypes(*this);
}
+#ifdef __IGC_OPAQUE_POINTERS_FORCE_DISABLED__
+ this->setOpaquePointers(false);
+#endif
}
void LLVMContextWrapper::AddRef()
diff --git a/IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp b/IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp
index ef0e5cacd96..c26bfcea74c 100644
--- a/IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp
+++ b/IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp
@@ -1494,6 +1494,10 @@ namespace TC
optionsEx += " -debug-info-kind=line-tables-only -dwarf-version=4";
}
+#ifdef __IGC_OPAQUE_POINTERS_FORCE_DISABLED__
+ optionsEx += " -no-opaque-pointers";
+#endif
+
std::string extensionsFromInternalOptions = GetSubstring(pInternalOptions, "-cl-ext=");
std::string extensions;
diff --git a/IGC/VectorCompiler/lib/BiF/CMakeLists.txt b/IGC/VectorCompiler/lib/BiF/CMakeLists.txt
index 3181a13403c..6235fc1d21e 100644
--- a/IGC/VectorCompiler/lib/BiF/CMakeLists.txt
+++ b/IGC/VectorCompiler/lib/BiF/CMakeLists.txt
@@ -90,7 +90,7 @@ function(vc_build_bif RES_FILE CMCL_SRC_PATH BIF_NAME PTR_BIT_SIZE)
add_custom_command(OUTPUT "${BIF_CLANG_BC_PATH}"
COMMAND clang-tool -cc1 ${CMCL_INCLUDES} ${VC_INCLUDES} ${UTILS_HEADERS}
- ${EXTRA_CLANG_INCLUDES} ${EXTRA_CLANG_FLAGS}
+ ${EXTRA_CLANG_INCLUDES} ${IGC_LLVM_DEPENDENT_CLANG_FLAGS} ${EXTRA_CLANG_FLAGS}
-x cl -cl-std=clc++ -triple=${SPIR_TARGET}
-O2 -disable-llvm-passes -emit-llvm-bc -o "${BIF_CLANG_BC_NAME}" ${CMCL_SRC}
COMMENT "vc_build_bif: Compiling CMCL source ${CMCL_SRC} to BC ${BIF_CLANG_BC_NAME}"
@@ -110,7 +110,7 @@ function(vc_build_bif RES_FILE CMCL_SRC_PATH BIF_NAME PTR_BIT_SIZE)
COMMENT "vc_build_bif: Translating CMCL builtins: ${BIF_CLANG_BC_NAME_FINAL} -> ${BIF_CMCL_BC_NAME}"
DEPENDS CMCLTranslatorTool ${BIF_CLANG_BC_PATH_FINAL})
add_custom_command(OUTPUT ${BIF_OPT_BC_PATH}
- COMMAND ${LLVM_OPT_EXE} --O2 -o ${BIF_OPT_BC_NAME} ${BIF_CMCL_BC_NAME}
+ COMMAND ${LLVM_OPT_EXE} ${IGC_LLVM_DEPENDENT_OPT_FLAGS} --O2 -o ${BIF_OPT_BC_NAME} ${BIF_CMCL_BC_NAME}
COMMENT "vc_build_bif: running opt with O2: ${BIF_CMCL_BC_NAME} -> ${BIF_OPT_BC_NAME}"
DEPENDS opt ${BIF_CMCL_BC_PATH})
set(${RES_FILE} ${BIF_OPT_BC_NAME} PARENT_SCOPE)
diff --git a/IGC/cmake/igc_llvm.cmake b/IGC/cmake/igc_llvm.cmake
index c0f74dcea14..96e3b0d1117 100644
--- a/IGC/cmake/igc_llvm.cmake
+++ b/IGC/cmake/igc_llvm.cmake
@@ -69,6 +69,30 @@ list(TRANSFORM LLVM_INCLUDE_DIRS PREPEND "-I=" OUTPUT_VARIABLE LLVM_TABLEGEN_FLA
# Add major version definition for llvm wrapper.
add_compile_definitions(LLVM_VERSION_MAJOR=${LLVM_VERSION_MAJOR})
+set(IGC_LLVM_DEPENDENT_CLANG_FLAGS "")
+set(IGC_LLVM_DEPENDENT_OPT_FLAGS "")
+
+# Disable the opaque pointers' usage explicitly, unless the block below deems that unnecessary
+set(IGC_OPAQUE_POINTERS_FORCE_DISABLED ON)
+if(IGC_OPTION__LLVM_OPAQUE_POINTERS_ENABLED)
+ if(LLVM_VERSION_MAJOR LESS 14)
+ message(WARNING "IGC_OPTION__LLVM_OPAQUE_POINTERS_ENABLED ignored: opaque pointers are not available prior to LLVM 14")
+ endif()
+ set(IGC_OPAQUE_POINTERS_FORCE_DISABLED OFF)
+elseif(LLVM_VERSION_MAJOR LESS 15)
+ # Opaque pointers are either absent (LLVM <14) or disabled by default. No need to force-disable
+ set(IGC_OPAQUE_POINTERS_FORCE_DISABLED OFF)
+endif(IGC_OPTION__LLVM_OPAQUE_POINTERS_ENABLED)
+
+if(IGC_OPAQUE_POINTERS_FORCE_DISABLED)
+ # Once we've figured out that explicit disabling is needed, propagate
+ # corresponding options to all the in-tree calls of clang/opt tools.
+ list(APPEND IGC_LLVM_DEPENDENT_CLANG_FLAGS "-no-opaque-pointers")
+ list(APPEND IGC_LLVM_DEPENDENT_OPT_FLAGS "-opaque-pointers=0")
+ # Also inform the preprocessor.
+ add_compile_definitions(__IGC_OPAQUE_POINTERS_FORCE_DISABLED__)
+endif()
+
# Include LLVM headers as system ones.
# This will disable warnings on linux.
include_directories(SYSTEM ${LLVM_INCLUDE_DIRS})

View File

@ -0,0 +1,77 @@
From d1761dfc3ca6b54bac0ee213389a65f84d2aa9b7 Mon Sep 17 00:00:00 2001
From: Artem Gindinson <artem.gindinson@intel.com>
Date: Mon, 28 Nov 2022 14:33:44 +0000
Subject: [PATCH] Explicitly cast pointers to `int` in BiFModule (LLVM 15)
Starting from version 15, Clang defaults to
`-Werror=int-conversion`. Add explicit casts in OpenCL C builtins'
code where necessary for LLVM 15 buildability.
Upstream-Status: Backport
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
---
IGC/BiFModule/Implementation/group.cl | 4 ++--
IGC/BiFModule/Languages/OpenCL/IBiF_Images.cl | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/IGC/BiFModule/Implementation/group.cl b/IGC/BiFModule/Implementation/group.cl
index dd6cfd6ba26..df9a2f64f4f 100644
--- a/IGC/BiFModule/Implementation/group.cl
+++ b/IGC/BiFModule/Implementation/group.cl
@@ -1897,13 +1897,13 @@ void SPIRV_OVERLOADABLE SPIRV_BUILTIN(SubgroupImageBlockWriteINTEL, _img2d_wo_v2
global Img2d_wo* image, int2 coord, TYPE data) \
{ \
int id = (int)__builtin_astype(image, __global void*); \
- INTERNAL_FUNC(image, coord, data); \
+ INTERNAL_FUNC((int)image, coord, data); \
} \
void SPIRV_OVERLOADABLE SPIRV_BUILTIN(SubgroupImageBlockWriteINTEL, _img2d_rw_v2i32_##TYPE_ABBR, )( \
global Img2d_rw* image, int2 coord, TYPE data) \
{ \
int id = (int)__builtin_astype(image, __global void*); \
- INTERNAL_FUNC(image, coord, data); \
+ INTERNAL_FUNC((int)image, coord, data); \
}
#ifdef cl_intel_subgroups_char
diff --git a/IGC/BiFModule/Languages/OpenCL/IBiF_Images.cl b/IGC/BiFModule/Languages/OpenCL/IBiF_Images.cl
index 062b4f3f49f..1d9d158e9c5 100644
--- a/IGC/BiFModule/Languages/OpenCL/IBiF_Images.cl
+++ b/IGC/BiFModule/Languages/OpenCL/IBiF_Images.cl
@@ -379,7 +379,7 @@ INLINE int4 OVERLOADABLE read_imagei(read_only image1d_array_t image_array, samp
INLINE uint4 OVERLOADABLE read_imageui(read_only image1d_array_t image_array, sampler_t sampler, int2 coords) {
int id = (int)__builtin_astype(image_array, __global void*);
- int IDimage_array = __builtin_astype(image_array, __global void*);
+ int IDimage_array = (int)__builtin_astype(image_array, __global void*);
int dt = __builtin_IB_get_image_array_size(IDimage_array);
float layer = clamp(rint((float)coords.y), 0.0f, (float)(--dt));
if ((__builtin_IB_get_address_mode(__builtin_IB_convert_sampler_to_int(sampler)) & 0x07) == CLK_ADDRESS_CLAMP_TO_EDGE)
@@ -395,7 +395,7 @@ INLINE uint4 OVERLOADABLE read_imageui(read_only image1d_array_t image_array, sa
INLINE uint4 OVERLOADABLE read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coords) {
int id = (int)__builtin_astype(image_array, __global void*);
- int IDimage_array = __builtin_astype(image_array, __global void*);
+ int IDimage_array = (int)__builtin_astype(image_array, __global void*);
int dt = __builtin_IB_get_image_array_size(IDimage_array);
float layer = clamp(rint(coords.y), 0.0f, (float)(--dt));
if ((__builtin_IB_get_address_mode(__builtin_IB_convert_sampler_to_int(sampler)) & 0x07) == CLK_ADDRESS_CLAMP)
@@ -581,7 +581,7 @@ INLINE int4 OVERLOADABLE read_imagei(read_only image2d_array_t image_array, samp
INLINE uint4 OVERLOADABLE read_imageui(read_only image2d_array_t image_array, sampler_t sampler, int4 coords) {
int id = (int)__builtin_astype(image_array, __global void*);
- int IDimage_array = __builtin_astype(image_array, __global void*);
+ int IDimage_array = (int)__builtin_astype(image_array, __global void*);
int dt = __builtin_IB_get_image_array_size(IDimage_array);
float layer = clamp(rint((float)coords.z), 0.0f, (float)(--dt));
if ((__builtin_IB_get_address_mode(__builtin_IB_convert_sampler_to_int(sampler)) & 0x07) == CLK_ADDRESS_CLAMP_TO_EDGE)
@@ -597,7 +597,7 @@ INLINE uint4 OVERLOADABLE read_imageui(read_only image2d_array_t image_array, sa
INLINE uint4 OVERLOADABLE read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coords) {
int id = (int)__builtin_astype(image_array, __global void*);
- int IDimage_array = __builtin_astype(image_array, __global void*);
+ int IDimage_array = (int)__builtin_astype(image_array, __global void*);
int dt = __builtin_IB_get_image_array_size(IDimage_array);
float layer = clamp(rint(coords.z), 0.0f, (float)(--dt));
if ((__builtin_IB_get_address_mode(__builtin_IB_convert_sampler_to_int(sampler)) & 0x07) == CLK_ADDRESS_CLAMP)

View File

@ -0,0 +1,49 @@
From e09e752949e7af0231884d1b11ea907e3e8b1611 Mon Sep 17 00:00:00 2001
From: Artem Gindinson <artem.gindinson@intel.com>
Date: Fri, 18 Nov 2022 14:48:45 +0000
Subject: [PATCH] Additional VC fix of pointer element type API usage
Quick fixup to the LLVM 15 buildability in the footsteps of commit
intel/intel-graphics-compiler@b86c1bf.
Upstream-Status: Backport
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
---
IGC/VectorCompiler/lib/GenXCodeGen/GenXSimdCFRegion.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/IGC/VectorCompiler/lib/GenXCodeGen/GenXSimdCFRegion.cpp b/IGC/VectorCompiler/lib/GenXCodeGen/GenXSimdCFRegion.cpp
index 363d622c24c..c047c545ac8 100644
--- a/IGC/VectorCompiler/lib/GenXCodeGen/GenXSimdCFRegion.cpp
+++ b/IGC/VectorCompiler/lib/GenXCodeGen/GenXSimdCFRegion.cpp
@@ -748,12 +748,12 @@ void GenXPredToSimdCF::insertIfGoto(SimdCFIfRegion &R) {
Mask->getName() + ".not");
Value *EM = getEM(M);
Instruction *OldGotoEM =
- Builder.CreateLoad(EM->getType()->getPointerElementType(), EM,
+ Builder.CreateLoad(IGCLLVM::getNonOpaquePtrEltTy(EM->getType()), EM,
false /*isVolatile*/, EM->getName());
OldGotoEM->setDebugLoc(DL);
Value *GotoRMAddr = getRMAddr(Br->getSuccessor(0), SimdWidth);
Instruction *OldGotoRM = Builder.CreateLoad(
- GotoRMAddr->getType()->getPointerElementType(), GotoRMAddr,
+ IGCLLVM::getNonOpaquePtrEltTy(GotoRMAddr->getType()), GotoRMAddr,
false /*isVolatile*/, GotoRMAddr->getName());
OldGotoRM->setDebugLoc(DL);
Type *GotoTys[] = {OldGotoEM->getType(), OldGotoRM->getType()};
@@ -798,12 +798,12 @@ void GenXPredToSimdCF::insertIfGoto(SimdCFIfRegion &R) {
AfterThens[&R] = AfterThen;
Builder.SetInsertPoint(AfterThen, AfterThen->begin());
- auto *OldEM = Builder.CreateLoad(EM->getType()->getPointerElementType(), EM,
+ auto *OldEM = Builder.CreateLoad(IGCLLVM::getNonOpaquePtrEltTy(EM->getType()), EM,
false /*isVolatile*/, EM->getName());
OldEM->setDebugLoc(DL);
auto *RMAddr = getRMAddr(Br->getSuccessor(0), SimdWidth);
auto *RM =
- Builder.CreateLoad(RMAddr->getType()->getPointerElementType(), RMAddr,
+ Builder.CreateLoad(IGCLLVM::getNonOpaquePtrEltTy(RMAddr->getType()), RMAddr,
false /*isVolatile*/, RMAddr->getName());
RM->setDebugLoc(DL);
Type *Tys[] = {OldEM->getType(), RM->getType()};

View File

@ -8,18 +8,21 @@ LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc
file://LICENSE.md;md5=488d74376edf2765f6e78d271543dde3 \
file://NOTICES.txt;md5=7f4fbc3eb2c34807465e63b1ec3c9d1a"
SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https;name=igc;branch=releases/igc-1.0.12149 \
SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https;name=igc;branch=releases/igc-1.0.12812 \
git://github.com/intel/vc-intrinsics.git;protocol=https;destsuffix=git/vc-intrinsics;name=vc;nobranch=1 \
git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=SPIRV-Tools;name=spirv-tools;branch=sdk-1.3.204 \
git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=SPIRV-Headers;name=spirv-headers;branch=master \
file://0003-Improve-Reproducibility-for-src-package.patch \
file://0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch \
file://c707d1e2244aec988bdd5d2a7473ef3a32a5bac7.patch \
file://d1761dfc3ca6b54bac0ee213389a65f84d2aa9b7.patch \
file://e09e752949e7af0231884d1b11ea907e3e8b1611.patch \
"
SRC_URI:append:class-native = " file://0001-fix-tblgen.patch"
SRCREV_igc = "a3d06ca6798d1c70bb0bf274695ac74ce0532ae4"
SRCREV_vc = "984bb27baacce6ee5c716c2e64845f2a1928025b"
SRCREV_igc = "17eb3abbaa68a238f63d5d549e0a46cfeb71af80"
SRCREV_vc = "dafb9926e5047a052ef5263dd4ec4fe5f178e5e0"
SRCREV_spirv-tools = "45dd184c790d6bfc78a5a74a10c37e888b1823fa"
SRCREV_spirv-headers = "b42ba6d92faf6b4938e6f22ddd186dbdacc98d78"
@ -43,7 +46,7 @@ DEPENDS:append:class-target = " clang-cross-x86_64 intel-graphics-compiler-nativ
RDEPENDS:${PN} += "opencl-clang"
PACKAGECONFIG ??= "vc"
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,"
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,"
EXTRA_OECMAKE = " \
-DIGC_OPTION__LLVM_PREFERRED_VERSION=${LLVMVERSION} \
@ -52,6 +55,7 @@ EXTRA_OECMAKE = " \
-DIGC_OPTION__LLVM_MODE=Prebuilds \
-DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
-DLLVM_LINK_EXE=${STAGING_BINDIR_NATIVE}/llvm-link \
-DCLANG_EXE=${STAGING_BINDIR_NATIVE}/clang \
"
do_install:append:class-native () {