aboutsummaryrefslogtreecommitdiffstats
path: root/dynamic-layers/clang-layer
diff options
context:
space:
mode:
Diffstat (limited to 'dynamic-layers/clang-layer')
-rwxr-xr-xdynamic-layers/clang-layer/recipes-core/dnn/files/run-ptest15
-rw-r--r--dynamic-layers/clang-layer/recipes-core/dnn/onednn_3.4.1.bb57
-rw-r--r--dynamic-layers/clang-layer/recipes-devtools/clang/clang_%.bbappend4
-rw-r--r--dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-dont-export-targets-for-binaries.patch68
-rw-r--r--dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-skip-building-tests.patch51
-rw-r--r--dynamic-layers/clang-layer/recipes-devtools/clang/files/BasicBlockUtils-Add-metadata-fixing-in-SplitBlockPre.patch111
-rw-r--r--dynamic-layers/clang-layer/recipes-devtools/clang/files/IndVarSimplify-Do-not-use-SCEV-expander-for-IVCount-.patch146
-rw-r--r--dynamic-layers/clang-layer/recipes-devtools/clang/llvm-project-source.bbappend11
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/allow-to-find-cpp-generation-tool.patch51
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/disable-werror.patch16
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/dont-use-ld-library-path.patch43
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/external-ocloc.patch40
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/f10439aea214984a060566831f63d3aa198ef1b8.patch54
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_19.35.13977.bb43
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_24.13.29138.7.bb65
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch35
-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.patch24
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-skip-execution-of-ElfPackager.patch39
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0002-comment-out-dump-functions.patch87
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Fix-for-buildbreak-when-using-clang-9-compiler.patch405
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch34
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.11.bb34
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.16510.2.bb75
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch49
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-Request-native-clang-only-when-cross-compiling-464.patch60
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/point-to-correct-llvm-tblgen.patch43
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc (renamed from dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_9.0.0.bb)20
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_14.0.0.bb5
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_15.0.0.bb5
30 files changed, 626 insertions, 1095 deletions
diff --git a/dynamic-layers/clang-layer/recipes-core/dnn/files/run-ptest b/dynamic-layers/clang-layer/recipes-core/dnn/files/run-ptest
new file mode 100755
index 00000000..82d4df58
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-core/dnn/files/run-ptest
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+cd tests
+./api-c
+if [ $? -eq 0 ]; then
+ echo 'PASS: api-c'
+else
+ echo 'FAIL: api-c'
+fi
+./test_c_symbols-c
+if [ $? -eq 0 ]; then
+ echo 'PASS: test_c_symbols-c'
+else
+ echo 'FAIL: test_c_symbols-c'
+fi
diff --git a/dynamic-layers/clang-layer/recipes-core/dnn/onednn_3.4.1.bb b/dynamic-layers/clang-layer/recipes-core/dnn/onednn_3.4.1.bb
new file mode 100644
index 00000000..2fa3f627
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-core/dnn/onednn_3.4.1.bb
@@ -0,0 +1,57 @@
+HOMEPAGE = "https://www.oneapi.com"
+SUMMARY = "Deep Neural Network Library"
+DESCRIPTION = "This software is a user mode library that accelerates\
+deep-learning applications and frameworks on Intel architecture."
+LICENSE = "Apache-2.0 & BSD-3-Clause & BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b64000f6e7d52516017622a37a94ce9 \
+ file://tests/gtests/gtest/LICENSE;md5=cbbd27594afd089daa160d3a16dd515a \
+ file://src/cpu/x64/xbyak/COPYRIGHT;md5=3b9bf048d063d54cdb28964db558bcc7 \
+ file://src/common/ittnotify/LICENSE.BSD;md5=e671ff178b24a95a382ba670503c66fb \
+ "
+SECTION = "lib"
+
+inherit pkgconfig cmake ptest
+
+DNN_BRANCH = "rls-v${@'.'.join(d.getVar('PV').split('.')[0:2])}"
+
+S = "${WORKDIR}/git"
+SRCREV = "f5ff0a6de16c130053bec1a1aec3a9b826c66f78"
+SRC_URI = "git://github.com/oneapi-src/oneDNN.git;branch=${DNN_BRANCH};protocol=https \
+ file://run-ptest \
+ "
+
+UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$"
+
+CVE_PRODUCT = "intel:math_kernel_library"
+
+COMPATIBLE_HOST = '(x86_64).*-linux'
+COMPATIBLE_HOST:libc-musl = 'null'
+
+EXTRA_OECMAKE += " \
+ -DDNNL_LIBRARY_TYPE=SHARED \
+ -DDNNL_BUILD_EXAMPLES=ON \
+ -DDNNL_BUILD_TESTS=ON \
+ -DDNNL_CPU_RUNTIME=OMP \
+ -DDNNL_ARCH_OPT_FLAGS="" \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DONEDNN_BUILD_GRAPH=OFF \
+ "
+
+PACKAGECONFIG ??= "gpu"
+PACKAGECONFIG[gpu] = "-DDNNL_GPU_RUNTIME=OCL, , opencl-headers virtual/opencl-icd, intel-compute-runtime"
+
+do_install:append () {
+ install -d ${D}${bindir}/mkl-dnn/tests/benchdnn/inputs
+ install -m 0755 ${B}/tests/benchdnn/benchdnn ${D}${bindir}/mkl-dnn/tests/benchdnn
+ cp -r ${B}/tests/benchdnn/inputs/* ${D}${bindir}/mkl-dnn/tests/benchdnn/inputs
+}
+
+do_install_ptest () {
+ install -d ${D}${PTEST_PATH}/tests
+ install -m 0755 ${B}/tests/api-c ${D}${PTEST_PATH}/tests
+ install -m 0755 ${B}/tests/test_c_symbols-c ${D}${PTEST_PATH}/tests
+}
+
+PACKAGES =+ "${PN}-test"
+
+FILES:${PN}-test = "${bindir}/mkl-dnn/*"
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/clang_%.bbappend b/dynamic-layers/clang-layer/recipes-devtools/clang/clang_%.bbappend
deleted file mode 100644
index 50536c38..00000000
--- a/dynamic-layers/clang-layer/recipes-devtools/clang/clang_%.bbappend
+++ /dev/null
@@ -1,4 +0,0 @@
-FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/files:"
-
-LIBCPLUSPLUS_intel-x86-common = ""
-
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-dont-export-targets-for-binaries.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-dont-export-targets-for-binaries.patch
deleted file mode 100644
index da2475f9..00000000
--- a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-dont-export-targets-for-binaries.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 559fb8f82295ec4dc64a132b6566939b85c1b6fe Mon Sep 17 00:00:00 2001
-From: Anuj Mittal <anuj.mittal@intel.com>
-Date: Thu, 15 Aug 2019 22:34:31 +0800
-Subject: [PATCH] dont export targets for binaries
-
-The projects using LLVM cmake modules look for target binaries in
-sysroot as a result which isn't desirable in this case and isn't needed
-either.
-
-Upstream-Status: Inappropriate [cross-compile specific]
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
----
- llvm/cmake/modules/AddLLVM.cmake | 9 ---------
- llvm/cmake/modules/TableGen.cmake | 6 ------
- 2 files changed, 15 deletions(-)
-
-diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
-index 619e986b8aa..d2bc1a25dd9 100644
---- a/llvm/cmake/modules/AddLLVM.cmake
-+++ b/llvm/cmake/modules/AddLLVM.cmake
-@@ -898,12 +898,6 @@ macro(add_llvm_tool name)
-
- if ( ${name} IN_LIST LLVM_TOOLCHAIN_TOOLS OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
- if( LLVM_BUILD_TOOLS )
-- set(export_to_llvmexports)
-- if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
-- NOT LLVM_DISTRIBUTION_COMPONENTS)
-- set(export_to_llvmexports EXPORT LLVMExports)
-- set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True)
-- endif()
-
- install(TARGETS ${name}
- ${export_to_llvmexports}
-@@ -917,9 +911,6 @@ macro(add_llvm_tool name)
- endif()
- endif()
- endif()
-- if( LLVM_BUILD_TOOLS )
-- set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
-- endif()
- set_target_properties(${name} PROPERTIES FOLDER "Tools")
- endmacro(add_llvm_tool name)
-
-diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake
-index 36c026b5c0f..537acd696d8 100644
---- a/llvm/cmake/modules/TableGen.cmake
-+++ b/llvm/cmake/modules/TableGen.cmake
-@@ -148,15 +148,9 @@ macro(add_tablegen target project)
- endif()
-
- if (${project} STREQUAL LLVM AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY AND LLVM_BUILD_UTILS)
-- set(export_to_llvmexports)
-- if(${target} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
-- NOT LLVM_DISTRIBUTION_COMPONENTS)
-- set(export_to_llvmexports EXPORT LLVMExports)
-- endif()
-
- install(TARGETS ${target}
- ${export_to_llvmexports}
- RUNTIME DESTINATION ${LLVM_TOOLS_INSTALL_DIR})
- endif()
-- set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${target})
- endmacro()
---
-2.17.1
-
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-skip-building-tests.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-skip-building-tests.patch
deleted file mode 100644
index 9a7b8445..00000000
--- a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-skip-building-tests.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 48e50f06b1bbed94cdf5207587161d4bfce7366e Mon Sep 17 00:00:00 2001
-From: Naveen Saini <naveen.kumar.saini@intel.com>
-Date: Wed, 21 Aug 2019 14:35:31 +0800
-Subject: [PATCH] llvm-spirv: skip building tests
-
-Some of these need clang to be built and since we're building this in-tree,
-that leads to problems when compiling libcxx, compiler-rt which aren't built
-in-tree.
-
-Instead of using SPIRV_SKIP_CLANG_BUILD to skip clang build and adding this to
-all components, disable the building of tests altogether.
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
----
- CMakeLists.txt | 10 ----------
- 1 file changed, 10 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 1208741..20ca3e6 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -15,13 +15,6 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
- set(CMAKE_CXX_STANDARD 11)
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
-
-- if(LLVM_INCLUDE_TESTS)
-- set(LLVM_TEST_COMPONENTS
-- llvm-as
-- llvm-dis
-- )
-- endif(LLVM_INCLUDE_TESTS)
--
- find_package(LLVM 9.0.0 REQUIRED
- COMPONENTS
- Analysis
-@@ -56,9 +49,6 @@ set(LLVM_SPIRV_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include)
-
- add_subdirectory(lib/SPIRV)
- add_subdirectory(tools/llvm-spirv)
--if(LLVM_INCLUDE_TESTS)
-- add_subdirectory(test)
--endif(LLVM_INCLUDE_TESTS)
-
- install(
- FILES
---
-2.17.1
-
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/BasicBlockUtils-Add-metadata-fixing-in-SplitBlockPre.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/BasicBlockUtils-Add-metadata-fixing-in-SplitBlockPre.patch
deleted file mode 100644
index cd519971..00000000
--- a/dynamic-layers/clang-layer/recipes-devtools/clang/files/BasicBlockUtils-Add-metadata-fixing-in-SplitBlockPre.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From eeb816d95f0910bd246e37bb2bb3923acf0edf6b Mon Sep 17 00:00:00 2001
-From: Aleksander Us <aleksander.us@intel.com>
-Date: Mon, 26 Aug 2019 15:47:41 +0300
-Subject: [PATCH] [BasicBlockUtils] Add metadata fixing in
- SplitBlockPredecessors.
-
-In case when BB is header of some loop and predecessor is latch of
-this loop, metadata was not attached to newly created basic block.
-This led to loss of loop metadata for other passes.
-
-Upstream-Status: Submitted [https://reviews.llvm.org/D66892]
-
-https://github.com/intel/llvm-patches/commit/8af4449e2d201707f7f2f832b473a0439e255f32
-
-Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
----
- lib/Transforms/Utils/BasicBlockUtils.cpp | 23 ++++++++----
- test/Transforms/LoopSimplify/loop_metadata.ll | 36 +++++++++++++++++++
- 2 files changed, 52 insertions(+), 7 deletions(-)
- create mode 100644 test/Transforms/LoopSimplify/loop_metadata.ll
-
-diff --git a/lib/Transforms/Utils/BasicBlockUtils.cpp b/lib/Transforms/Utils/BasicBlockUtils.cpp
-index 5fa371377c8..3a90ae061fb 100644
---- a/lib/Transforms/Utils/BasicBlockUtils.cpp
-+++ b/lib/Transforms/Utils/BasicBlockUtils.cpp
-@@ -579,24 +579,33 @@ BasicBlock *llvm::SplitBlockPredecessors(BasicBlock *BB,
-
- // The new block unconditionally branches to the old block.
- BranchInst *BI = BranchInst::Create(BB, NewBB);
-+ bool IsBBHeader = LI && LI->isLoopHeader(BB);
-+ Loop *BBLoop = LI ? LI->getLoopFor(BB) : nullptr;
- // Splitting the predecessors of a loop header creates a preheader block.
-- if (LI && LI->isLoopHeader(BB))
-+ if (IsBBHeader)
- // Using the loop start line number prevents debuggers stepping into the
- // loop body for this instruction.
-- BI->setDebugLoc(LI->getLoopFor(BB)->getStartLoc());
-+ BI->setDebugLoc(BBLoop->getStartLoc());
- else
- BI->setDebugLoc(BB->getFirstNonPHIOrDbg()->getDebugLoc());
-
- // Move the edges from Preds to point to NewBB instead of BB.
-- for (unsigned i = 0, e = Preds.size(); i != e; ++i) {
-+ for (BasicBlock *Pred : Preds) {
-+ Instruction *PI = Pred->getTerminator();
- // This is slightly more strict than necessary; the minimum requirement
- // is that there be no more than one indirectbr branching to BB. And
- // all BlockAddress uses would need to be updated.
-- assert(!isa<IndirectBrInst>(Preds[i]->getTerminator()) &&
-+ assert(!isa<IndirectBrInst>(PI) &&
- "Cannot split an edge from an IndirectBrInst");
-- assert(!isa<CallBrInst>(Preds[i]->getTerminator()) &&
-- "Cannot split an edge from a CallBrInst");
-- Preds[i]->getTerminator()->replaceUsesOfWith(BB, NewBB);
-+ assert(!isa<CallBrInst>(PI) && "Cannot split an edge from a CallBrInst");
-+ if (IsBBHeader && BBLoop->contains(Pred) && BBLoop->isLoopLatch(Pred)) {
-+ // Update loop metadata if it exists.
-+ if (MDNode *LoopMD = PI->getMetadata(LLVMContext::MD_loop)) {
-+ BI->setMetadata(LLVMContext::MD_loop, LoopMD);
-+ PI->setMetadata(LLVMContext::MD_loop, nullptr);
-+ }
-+ }
-+ PI->replaceUsesOfWith(BB, NewBB);
- }
-
- // Insert a new PHI node into NewBB for every PHI node in BB and that new PHI
-diff --git a/test/Transforms/LoopSimplify/loop_metadata.ll b/test/Transforms/LoopSimplify/loop_metadata.ll
-new file mode 100644
-index 00000000000..c15c92fe3ae
---- /dev/null
-+++ b/test/Transforms/LoopSimplify/loop_metadata.ll
-@@ -0,0 +1,36 @@
-+; RUN: opt -S -loop-simplify < %s | FileCheck %s
-+
-+; CHECK: for.cond.loopexit:
-+; CHECK: br label %for.cond, !llvm.loop !0
-+; CHECK: br i1 %cmp1, label %for.body1, label %for.cond.loopexit
-+
-+define void @foo() {
-+entry:
-+ br label %for.cond
-+
-+for.cond: ; preds = %for.cond1, %entry
-+ %j = phi i32 [ 0, %entry ], [ %add, %for.cond1 ]
-+ %cmp = icmp ult i32 %j, 8
-+ br i1 %cmp, label %for.body, label %for.end
-+
-+for.body: ; preds = %for.cond
-+ %dummy1 = add i32 1, 1
-+ %add = add nuw nsw i32 %j, 1
-+ br label %for.cond1
-+
-+for.cond1: ; preds = %for.body1, %for.body
-+ %i.0 = phi i32 [ 1, %for.body ], [ %inc, %for.body1 ]
-+ %cmp1 = icmp ult i32 %i.0, 8
-+ br i1 %cmp1, label %for.body1, label %for.cond, !llvm.loop !0
-+
-+for.body1: ; preds = %for.cond1
-+ %dummy2 = add i32 1, 1
-+ %inc = add nuw nsw i32 %i.0, 1
-+ br label %for.cond1
-+
-+for.end: ; preds = %for.cond
-+ ret void
-+}
-+
-+!0 = distinct !{!0, !1}
-+!1 = !{!"llvm.loop.unroll.full"}
---
-2.18.0
-
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/IndVarSimplify-Do-not-use-SCEV-expander-for-IVCount-.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/IndVarSimplify-Do-not-use-SCEV-expander-for-IVCount-.patch
deleted file mode 100644
index 48307deb..00000000
--- a/dynamic-layers/clang-layer/recipes-devtools/clang/files/IndVarSimplify-Do-not-use-SCEV-expander-for-IVCount-.patch
+++ /dev/null
@@ -1,146 +0,0 @@
-From 35e218a886f4c066eabd18685240d55270bd5a6d Mon Sep 17 00:00:00 2001
-From: Aleksander Us <aleksander.us@intel.com>
-Date: Mon, 26 Aug 2019 15:45:47 +0300
-Subject: [PATCH] [IndVarSimplify] Do not use SCEV expander for IVCount in
- LFTR when possible.
-
-SCEV analysis cannot properly cache instruction with poison flags
-(for example, add nsw outside of loop will not be reused by expander).
-This can lead to generating of additional instructions by SCEV expander.
-
-Example IR:
-
- ...
- %maxval = add nuw nsw i32 %a1, %a2
- ...
-for.body:
- ...
- %cmp22 = icmp ult i32 %ivadd, %maxval
- br i1 %cmp22, label %for.body, label %for.end
- ...
-
-SCEV expander will generate copy of %maxval in preheader but without
-nuw/nsw flags. This can be avoided by explicit check that iv count
-value gives the same SCEV expressions as calculated by LFTR.
-
-Upstream-Status: Submitted [https://reviews.llvm.org/D66890]
-
-https://github.com/intel/llvm-patches/commit/fd6a6c97341a56fd21bc32bc940afea751312e8f
-
-Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
----
- lib/Transforms/Scalar/IndVarSimplify.cpp | 12 +++++++++-
- test/Transforms/IndVarSimplify/add_nsw.ll | 23 ++++++++++++++++++++
- test/Transforms/IndVarSimplify/lftr-reuse.ll | 9 +++-----
- test/Transforms/IndVarSimplify/udiv.ll | 1 +
- 4 files changed, 38 insertions(+), 7 deletions(-)
- create mode 100644 test/Transforms/IndVarSimplify/add_nsw.ll
-
-diff --git a/lib/Transforms/Scalar/IndVarSimplify.cpp b/lib/Transforms/Scalar/IndVarSimplify.cpp
-index f9fc698a4a9..5e04dac8aa6 100644
---- a/lib/Transforms/Scalar/IndVarSimplify.cpp
-+++ b/lib/Transforms/Scalar/IndVarSimplify.cpp
-@@ -2375,6 +2375,17 @@ static Value *genLoopLimit(PHINode *IndVar, BasicBlock *ExitingBB,
- if (UsePostInc)
- IVLimit = SE->getAddExpr(IVLimit, SE->getOne(IVLimit->getType()));
-
-+ // If computed limit is equal to old limit then do not use SCEV expander
-+ // because it can lost NUW/NSW flags and create extra instructions.
-+ BranchInst *BI = cast<BranchInst>(ExitingBB->getTerminator());
-+ if (ICmpInst *Cmp = dyn_cast<ICmpInst>(BI->getOperand(0))) {
-+ Value *Limit = Cmp->getOperand(0);
-+ if (!L->isLoopInvariant(Limit))
-+ Limit = Cmp->getOperand(1);
-+ if (SE->getSCEV(Limit) == IVLimit)
-+ return Limit;
-+ }
-+
- // Expand the code for the iteration count.
- assert(SE->isLoopInvariant(IVLimit, L) &&
- "Computed iteration count is not loop invariant!");
-@@ -2383,7 +2394,6 @@ static Value *genLoopLimit(PHINode *IndVar, BasicBlock *ExitingBB,
- // SCEV expression (IVInit) for a pointer type IV value (IndVar).
- Type *LimitTy = ExitCount->getType()->isPointerTy() ?
- IndVar->getType() : ExitCount->getType();
-- BranchInst *BI = cast<BranchInst>(ExitingBB->getTerminator());
- return Rewriter.expandCodeFor(IVLimit, LimitTy, BI);
- }
- }
-diff --git a/test/Transforms/IndVarSimplify/add_nsw.ll b/test/Transforms/IndVarSimplify/add_nsw.ll
-new file mode 100644
-index 00000000000..abd1cbb6c51
---- /dev/null
-+++ b/test/Transforms/IndVarSimplify/add_nsw.ll
-@@ -0,0 +1,23 @@
-+; RUN: opt -indvars -S %s | FileCheck %s
-+
-+target datalayout = "e-p:32:32-i64:64-n8:16:32"
-+
-+; CHECK: for.body.preheader:
-+; CHECK-NOT: add
-+; CHECK: for.body:
-+
-+define void @foo(i32 %a1, i32 %a2) {
-+entry:
-+ %maxval = add nuw nsw i32 %a1, %a2
-+ %cmp = icmp slt i32 %maxval, 1
-+ br i1 %cmp, label %for.end, label %for.body
-+
-+for.body: ; preds = %entry, %for.body
-+ %j.02 = phi i32 [ 0, %entry ], [ %add31, %for.body ]
-+ %add31 = add nuw nsw i32 %j.02, 1
-+ %cmp22 = icmp slt i32 %add31, %maxval
-+ br i1 %cmp22, label %for.body, label %for.end
-+
-+for.end: ; preds = %for.body
-+ ret void
-+}
-diff --git a/test/Transforms/IndVarSimplify/lftr-reuse.ll b/test/Transforms/IndVarSimplify/lftr-reuse.ll
-index 14ae9738696..509d662b767 100644
---- a/test/Transforms/IndVarSimplify/lftr-reuse.ll
-+++ b/test/Transforms/IndVarSimplify/lftr-reuse.ll
-@@ -67,11 +67,9 @@ define void @expandOuterRecurrence(i32 %arg) nounwind {
- ; CHECK-NEXT: [[CMP1:%.*]] = icmp slt i32 0, [[SUB1]]
- ; CHECK-NEXT: br i1 [[CMP1]], label [[OUTER_PREHEADER:%.*]], label [[EXIT:%.*]]
- ; CHECK: outer.preheader:
--; CHECK-NEXT: [[TMP0:%.*]] = add i32 [[ARG]], -1
- ; CHECK-NEXT: br label [[OUTER:%.*]]
- ; CHECK: outer:
--; CHECK-NEXT: [[INDVARS_IV:%.*]] = phi i32 [ [[TMP0]], [[OUTER_PREHEADER]] ], [ [[INDVARS_IV_NEXT:%.*]], [[OUTER_INC:%.*]] ]
--; CHECK-NEXT: [[I:%.*]] = phi i32 [ [[I_INC:%.*]], [[OUTER_INC]] ], [ 0, [[OUTER_PREHEADER]] ]
-+; CHECK-NEXT: [[I:%.*]] = phi i32 [ [[I_INC:%.*]], [[OUTER_INC:%.*]] ], [ 0, [[OUTER_PREHEADER]] ]
- ; CHECK-NEXT: [[SUB2:%.*]] = sub nsw i32 [[ARG]], [[I]]
- ; CHECK-NEXT: [[SUB3:%.*]] = sub nsw i32 [[SUB2]], 1
- ; CHECK-NEXT: [[CMP2:%.*]] = icmp slt i32 0, [[SUB3]]
-@@ -81,14 +79,13 @@ define void @expandOuterRecurrence(i32 %arg) nounwind {
- ; CHECK: inner:
- ; CHECK-NEXT: [[J:%.*]] = phi i32 [ 0, [[INNER_PH]] ], [ [[J_INC:%.*]], [[INNER]] ]
- ; CHECK-NEXT: [[J_INC]] = add nuw nsw i32 [[J]], 1
--; CHECK-NEXT: [[EXITCOND:%.*]] = icmp ne i32 [[J_INC]], [[INDVARS_IV]]
-+; CHECK-NEXT: [[EXITCOND:%.*]] = icmp ne i32 [[J_INC]], [[SUB3]]
- ; CHECK-NEXT: br i1 [[EXITCOND]], label [[INNER]], label [[OUTER_INC_LOOPEXIT:%.*]]
- ; CHECK: outer.inc.loopexit:
- ; CHECK-NEXT: br label [[OUTER_INC]]
- ; CHECK: outer.inc:
- ; CHECK-NEXT: [[I_INC]] = add nuw nsw i32 [[I]], 1
--; CHECK-NEXT: [[INDVARS_IV_NEXT]] = add i32 [[INDVARS_IV]], -1
--; CHECK-NEXT: [[EXITCOND1:%.*]] = icmp ne i32 [[I_INC]], [[TMP0]]
-+; CHECK-NEXT: [[EXITCOND1:%.*]] = icmp ne i32 [[I_INC]], [[SUB1]]
- ; CHECK-NEXT: br i1 [[EXITCOND1]], label [[OUTER]], label [[EXIT_LOOPEXIT:%.*]]
- ; CHECK: exit.loopexit:
- ; CHECK-NEXT: br label [[EXIT]]
-diff --git a/test/Transforms/IndVarSimplify/udiv.ll b/test/Transforms/IndVarSimplify/udiv.ll
-index b3f2c2a6a66..3530343ef4a 100644
---- a/test/Transforms/IndVarSimplify/udiv.ll
-+++ b/test/Transforms/IndVarSimplify/udiv.ll
-@@ -133,6 +133,7 @@ declare i32 @printf(i8* nocapture, ...) nounwind
- ; CHECK-LABEL: @foo(
- ; CHECK: for.body.preheader:
- ; CHECK-NOT: udiv
-+; CHECK: for.body:
-
- define void @foo(double* %p, i64 %n) nounwind {
- entry:
---
-2.18.0
-
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/llvm-project-source.bbappend b/dynamic-layers/clang-layer/recipes-devtools/clang/llvm-project-source.bbappend
deleted file mode 100644
index 8a2cc37f..00000000
--- a/dynamic-layers/clang-layer/recipes-devtools/clang/llvm-project-source.bbappend
+++ /dev/null
@@ -1,11 +0,0 @@
-FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/files:"
-
-SRC_URI_append_intel-x86-common = " \
- file://0001-dont-export-targets-for-binaries.patch \
- file://BasicBlockUtils-Add-metadata-fixing-in-SplitBlockPre.patch;patchdir=llvm \
- file://IndVarSimplify-Do-not-use-SCEV-expander-for-IVCount-.patch;patchdir=llvm \
- git://github.com/KhronosGroup/SPIRV-LLVM-Translator.git;protocol=https;branch=llvm_release_90;destsuffix=git/llvm/projects/llvm-spirv;name=spirv \
- file://0001-skip-building-tests.patch;patchdir=llvm/projects/llvm-spirv \
- "
-
-SRCREV_spirv = "70420631144a6a25613ae37178f2cc1d3607b65b"
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/allow-to-find-cpp-generation-tool.patch b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/allow-to-find-cpp-generation-tool.patch
new file mode 100644
index 00000000..265fcfa2
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/allow-to-find-cpp-generation-tool.patch
@@ -0,0 +1,51 @@
+From a6361d635e5f3046853883f3ac06fb175116933c Mon Sep 17 00:00:00 2001
+From: Dongwon Kim <dongwon.kim@intel.com>
+Date: Sat, 21 Aug 2021 16:09:39 -0700
+Subject: [PATCH] Build not able to locate cpp_generation_tool.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
+Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>
+---
+ shared/source/built_ins/kernels/CMakeLists.txt | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/shared/source/built_ins/kernels/CMakeLists.txt b/shared/source/built_ins/kernels/CMakeLists.txt
+index ed85a37c52..f7c9e79137 100644
+--- a/shared/source/built_ins/kernels/CMakeLists.txt
++++ b/shared/source/built_ins/kernels/CMakeLists.txt
+@@ -107,9 +107,9 @@ function(compile_builtin core_type platform_it builtin bits builtin_options mode
+ )
+ add_custom_command(
+ OUTPUT ${OUTPUT_FILE_CPP}
+- COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${BINARY_OUTPUT}.bin --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --device ${RELEASE_FILENAME}
++ COMMAND cpp_generate_tool --file ${BINARY_OUTPUT}.bin --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --device ${RELEASE_FILENAME}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+- DEPENDS ${OUTPUT_FILES_BINARIES} $<TARGET_FILE:cpp_generate_tool>
++ DEPENDS ${OUTPUT_FILES_BINARIES} cpp_generate_tool
+ )
+ list(APPEND BUILTINS_COMMANDS "${OUTPUT_FILE_CPP}")
+ else()
+@@ -159,9 +159,9 @@ function(generate_cpp_spirv builtin)
+ )
+ add_custom_command(
+ OUTPUT ${OUTPUT_FILE_CPP}
+- COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME}
++ COMMAND cpp_generate_tool --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+- DEPENDS ${GENERATED_SPV_INPUT} $<TARGET_FILE:cpp_generate_tool>
++ DEPENDS ${GENERATED_SPV_INPUT} cpp_generate_tool
+ )
+ set(OUTPUT_LIST_CPP_FILES ${OUTPUT_LIST_CPP_FILES} ${OUTPUT_FILE_CPP} PARENT_SCOPE)
+ else()
+@@ -277,4 +277,4 @@ if(NOT "${OUTPUT_LIST_CPP_FILES}" STREQUAL "")
+ )
+ endif()
+
+-apply_macro_for_each_core_type("SUPPORTED")
+\ No newline at end of file
++apply_macro_for_each_core_type("SUPPORTED")
+--
+2.43.2
+
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/disable-werror.patch b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/disable-werror.patch
new file mode 100644
index 00000000..20d9b847
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/disable-werror.patch
@@ -0,0 +1,16 @@
+Upstream-Status: Inappropriate
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d52e089778..bc0cf35014 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -727,7 +727,7 @@ if(NOT MSVC)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-noexcept-type") # Added for gtest
+ endif()
+ endif()
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Werror=vla")
++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=vla")
+
+ if(USE_SANITIZE_UB)
+ check_cxx_compiler_flag(-fsanitize=undefined COMPILER_SUPPORTS_UNDEFINED_BEHAVIOR_SANITIZER)
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/dont-use-ld-library-path.patch b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/dont-use-ld-library-path.patch
deleted file mode 100644
index b886b95d..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/dont-use-ld-library-path.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 2475dfc1350f73a243c9fc223a9f06af85321d56 Mon Sep 17 00:00:00 2001
-From: Anuj Mittal <anuj.mittal@intel.com>
-Date: Tue, 2 Jul 2019 08:36:34 +0800
-Subject: [PATCH] don't use LD_LIBRARY_PATH for native offline compiler
-
-Let us supply the correct path for it to be able to find the correct
-libraries.
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-
----
- runtime/built_ins/kernels/CMakeLists.txt | 2 +-
- runtime/scheduler/scheduler_binary.cmake | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/runtime/built_ins/kernels/CMakeLists.txt b/runtime/built_ins/kernels/CMakeLists.txt
-index 5dc9fe1b..e258847d 100644
---- a/runtime/built_ins/kernels/CMakeLists.txt
-+++ b/runtime/built_ins/kernels/CMakeLists.txt
-@@ -51,7 +51,7 @@ function(compile_builtin gen_type platform_type builtin)
- if(DEFINED IGDRCL__IGC_LIBRARY_PATH)
- set(cloc_cmd_prefix LD_LIBRARY_PATH=${IGDRCL__IGC_LIBRARY_PATH} $<TARGET_FILE:ocloc>)
- else()
-- set(cloc_cmd_prefix LD_LIBRARY_PATH=$<TARGET_FILE_DIR:ocloc> $<TARGET_FILE:ocloc>)
-+ set(cloc_cmd_prefix ocloc)
- endif()
- endif()
- list(APPEND __cloc__options__ "-cl-kernel-arg-info")
-diff --git a/runtime/scheduler/scheduler_binary.cmake b/runtime/scheduler/scheduler_binary.cmake
-index 1b12592b..ed9f375d 100644
---- a/runtime/scheduler/scheduler_binary.cmake
-+++ b/runtime/scheduler/scheduler_binary.cmake
-@@ -37,7 +37,7 @@ function(compile_kernel target gen_type platform_type kernel)
- if(DEFINED IGDRCL__IGC_LIBRARY_PATH)
- set(cloc_cmd_prefix LD_LIBRARY_PATH=${IGDRCL__IGC_LIBRARY_PATH} $<TARGET_FILE:ocloc>)
- else()
-- set(cloc_cmd_prefix LD_LIBRARY_PATH=$<TARGET_FILE_DIR:ocloc> $<TARGET_FILE:ocloc>)
-+ set(cloc_cmd_prefix ocloc)
- endif()
- endif()
- list(APPEND __cloc__options__ "-cl-kernel-arg-info")
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/external-ocloc.patch b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/external-ocloc.patch
new file mode 100644
index 00000000..5f93b7b6
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/external-ocloc.patch
@@ -0,0 +1,40 @@
+From 1f58c22992ddea4167b01b44448528de427f50d5 Mon Sep 17 00:00:00 2001
+From: Dongwon Kim <dongwon.kim@intel.com>
+Date: Wed, 2 Mar 2022 15:52:45 -0800
+Subject: [PATCH] external ocloc
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>
+---
+ cmake/ocloc_cmd_prefix.cmake | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/cmake/ocloc_cmd_prefix.cmake b/cmake/ocloc_cmd_prefix.cmake
+index 2b44330831..03067c9df0 100644
+--- a/cmake/ocloc_cmd_prefix.cmake
++++ b/cmake/ocloc_cmd_prefix.cmake
+@@ -4,12 +4,14 @@
+ # SPDX-License-Identifier: MIT
+ #
+
+-if(WIN32)
+- set(ocloc_cmd_prefix ocloc)
+-else()
+- if(DEFINED NEO__IGC_LIBRARY_PATH)
+- set(ocloc_cmd_prefix ${CMAKE_COMMAND} -E env "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${NEO__IGC_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib>" $<TARGET_FILE:ocloc>)
++if(NOT DEFINED ocloc_cmd_prefix)
++ if(WIN32)
++ set(ocloc_cmd_prefix ocloc)
+ else()
+- set(ocloc_cmd_prefix ${CMAKE_COMMAND} -E env "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib>" $<TARGET_FILE:ocloc>)
++ if(DEFINED NEO__IGC_LIBRARY_PATH)
++ set(ocloc_cmd_prefix LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${NEO__IGC_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib> $<TARGET_FILE:ocloc>)
++ else()
++ set(ocloc_cmd_prefix LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib> $<TARGET_FILE:ocloc>)
++ endif()
+ endif()
+ endif()
+--
+2.37.3
+
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/f10439aea214984a060566831f63d3aa198ef1b8.patch b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/f10439aea214984a060566831f63d3aa198ef1b8.patch
new file mode 100644
index 00000000..b7fcb3d1
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/f10439aea214984a060566831f63d3aa198ef1b8.patch
@@ -0,0 +1,54 @@
+From f10439aea214984a060566831f63d3aa198ef1b8 Mon Sep 17 00:00:00 2001
+From: Pawel Cieslak <pawel.cieslak@intel.com>
+Date: Tue, 14 May 2024 14:20:24 +0000
+Subject: [PATCH] fix: include <algorithm> where std::find is used
+
+Related-To: NEO-11375
+Signed-off-by: Pawel Cieslak <pawel.cieslak@intel.com>
+
+Upstream-Status: Backport [https://github.com/intel/compute-runtime/commit/f10439aea214984a060566831f63d3aa198ef1b8]
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ .../sources/linux/nl_api/test_sysman_iaf_nl_api_prelim.cpp | 3 ++-
+ shared/test/unit_test/gmm_helper/gmm_resource_info_tests.cpp | 4 +++-
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/level_zero/sysman/test/unit_tests/sources/linux/nl_api/test_sysman_iaf_nl_api_prelim.cpp b/level_zero/sysman/test/unit_tests/sources/linux/nl_api/test_sysman_iaf_nl_api_prelim.cpp
+index 6ab1b751d866..8a224752c8fc 100644
+--- a/level_zero/sysman/test/unit_tests/sources/linux/nl_api/test_sysman_iaf_nl_api_prelim.cpp
++++ b/level_zero/sysman/test/unit_tests/sources/linux/nl_api/test_sysman_iaf_nl_api_prelim.cpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2021-2023 Intel Corporation
++ * Copyright (C) 2021-2024 Intel Corporation
+ *
+ * SPDX-License-Identifier: MIT
+ *
+@@ -13,6 +13,7 @@
+
+ #include "gtest/gtest.h"
+
++#include <algorithm>
+ #include <limits>
+ #include <netlink/handlers.h>
+
+diff --git a/shared/test/unit_test/gmm_helper/gmm_resource_info_tests.cpp b/shared/test/unit_test/gmm_helper/gmm_resource_info_tests.cpp
+index 206c272c5bb2..e961248e73a3 100644
+--- a/shared/test/unit_test/gmm_helper/gmm_resource_info_tests.cpp
++++ b/shared/test/unit_test/gmm_helper/gmm_resource_info_tests.cpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2021-2023 Intel Corporation
++ * Copyright (C) 2021-2024 Intel Corporation
+ *
+ * SPDX-License-Identifier: MIT
+ *
+@@ -17,6 +17,8 @@
+
+ #include "gtest/gtest.h"
+
++#include <algorithm>
++
+ using namespace NEO;
+
+ struct MockGmmHandleAllocator : NEO::GmmHandleAllocator {
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_19.35.13977.bb b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_19.35.13977.bb
deleted file mode 100644
index b3e8f4a1..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_19.35.13977.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "The Intel(R) Graphics Compute Runtime for OpenCL(TM)"
-DESCRIPTION = "The Intel(R) Graphics Compute Runtime for OpenCL(TM) \
-is an open source project to converge Intel's development efforts \
-on OpenCL(TM) compute stacks supporting the GEN graphics hardware \
-architecture."
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae27f47fd6755510247c19e547e4c804 \
- file://third_party/opencl_headers/LICENSE;md5=dcefc90f4c3c689ec0c2489064e7273b"
-
-SRC_URI = "git://github.com/intel/compute-runtime.git;protocol=https \
- "
-
-SRC_URI_append_class-target = " \
- file://dont-use-ld-library-path.patch \
-"
-
-SRCREV = "cb4e5576cb5414ab3af54c49819a4ced305b965b"
-
-S = "${WORKDIR}/git"
-
-DEPENDS += " intel-graphics-compiler gmmlib clang"
-DEPENDS_append_class-target = " intel-compute-runtime-native"
-
-RDEPENDS_${PN} += " intel-graphics-compiler gmmlib"
-
-inherit cmake pkgconfig
-
-COMPATIBLE_HOST = '(x86_64).*-linux'
-COMPATIBLE_HOST_libc-musl = "null"
-
-EXTRA_OECMAKE = " \
- -DBUILD_TYPE=Release \
- -DSKIP_UNIT_TESTS=1 \
- -DCCACHE_ALLOWED=FALSE \
- "
-
-FILES_${PN} += "${libdir}/intel-opencl/libigdrcl.so"
-
-BBCLASSEXTEND = "native nativesdk"
-
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
-EXCLUDE_FROM_WORLD = "1"
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_24.13.29138.7.bb b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_24.13.29138.7.bb
new file mode 100644
index 00000000..7280ed03
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_24.13.29138.7.bb
@@ -0,0 +1,65 @@
+SUMMARY = "The Intel(R) Graphics Compute Runtime for OpenCL(TM)"
+DESCRIPTION = "The Intel(R) Graphics Compute Runtime for OpenCL(TM) \
+is an open source project to converge Intel's development efforts \
+on OpenCL(TM) compute stacks supporting the GEN graphics hardware \
+architecture."
+
+LICENSE = "MIT & Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eca6ec6997e18db166db7109cdbe611c \
+ file://third_party/opencl_headers/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = "git://github.com/intel/compute-runtime.git;protocol=https;branch=releases/24.13 \
+ file://disable-werror.patch \
+ file://allow-to-find-cpp-generation-tool.patch \
+ file://external-ocloc.patch \
+ file://f10439aea214984a060566831f63d3aa198ef1b8.patch \
+ "
+
+SRCREV = "7131387cdbb02d480a225c70daef913a6c024a6e"
+
+S = "${WORKDIR}/git"
+
+DEPENDS += " intel-graphics-compiler gmmlib libva qemu-native"
+
+RDEPENDS:${PN} += " intel-graphics-compiler gmmlib"
+
+inherit cmake pkgconfig qemu
+
+COMPATIBLE_HOST = '(x86_64).*-linux'
+COMPATIBLE_HOST:libc-musl = "null"
+
+EXTRA_OECMAKE = " \
+ -DIGC_DIR=${STAGING_INCDIR}/igc \
+ -DBUILD_TYPE=Release \
+ -DSKIP_UNIT_TESTS=1 \
+ -DCCACHE_ALLOWED=FALSE \
+ -DNEO_DISABLE_LD_LLD=ON \
+ -DNEO_DISABLE_LD_GOLD=ON \
+ "
+
+EXTRA_OECMAKE:append:class-target = " \
+ -Docloc_cmd_prefix=ocloc \
+ -DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \
+ "
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[levelzero] = "-DBUILD_WITH_L0=ON, -DBUILD_WITH_L0=OFF, level-zero"
+
+do_configure:prepend:class-target () {
+ # Write out a qemu wrapper that will be used by cmake.
+ qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${B}/bin'),d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
+ cat > ${WORKDIR}/qemuwrapper << EOF
+#!/bin/sh
+$qemu_binary "\$@"
+EOF
+ chmod +x ${WORKDIR}/qemuwrapper
+}
+
+FILES:${PN} += " \
+ ${libdir}/intel-opencl/libigdrcl.so \
+ ${libdir}/libocloc.so \
+ "
+
+FILES:${PN}-dev = "${includedir}"
+
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
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
new file mode 100644
index 00000000..377081fd
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch
@@ -0,0 +1,35 @@
+From 3d71670f8ad5b54d434c2f5f71713bb1d5433ae4 Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <anuj.mittal@intel.com>
+Date: Tue, 12 Oct 2021 23:46:42 +0800
+Subject: [PATCH] BiF/CMakeLists.txt: remove opt from DEPENDS
+
+Otherwise it starts failing with:
+
+| ninja: error: 'IGC/VectorCompiler/lib/BiF/opt', needed by 'IGC/VectorCompiler/lib/BiF/VCBiFPrintfOCL32.opt.bc', missing and no known rule to make it
+
+We don't need to explicitly make sure opt is built when
+using prebuilt binaries.
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake b/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake
+index d20d7f887..882e09fea 100644
+--- a/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake
++++ b/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake
+@@ -109,7 +109,7 @@ function(vc_build_bif TARGET RES_FILE CMCL_SRC_PATH BIF_NAME PTR_BIT_SIZE)
+ COMMENT "vc_build_bif: Translating CMCL builtins: ${BIF_CLANG_BC_NAME_FINAL} -> ${BIF_OPT_BC_NAME}"
+ COMMAND CMCLTranslatorTool -o ${BIF_CMCL_BC_NAME} ${BIF_CLANG_BC_NAME_FINAL}
+ COMMAND ${LLVM_OPT_EXE} ${IGC_LLVM_DEPENDENT_OPT_FLAGS} --O2 -o ${BIF_OPT_BC_NAME} ${BIF_CMCL_BC_NAME}
+- DEPENDS CMCLTranslatorTool ${LLVM_OPT_EXE} ${BIF_CLANG_BC_PATH_FINAL}
++ DEPENDS CMCLTranslatorTool ${BIF_CLANG_BC_PATH_FINAL}
+ BYPRODUCTS ${BIF_OPT_BC_PATH}
+ SOURCES ${CMCL_SRC_PATH})
+ set(${RES_FILE} ${BIF_OPT_BC_NAME} PARENT_SCOPE)
+--
+2.43.2
+
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 @@
+From e69a3181482e5f442756a61c7b683914072884f1 Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <anuj.mittal@intel.com>
+Date: Mon, 9 Jan 2023 11:43:05 +0800
+Subject: [PATCH] external/SPIRV-Tools: change path to tools and headers
+
+We clone the SPIRV headers and tools in a different directory to ensure
+file path substitutions take place.
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+---
+ external/SPIRV-Tools/CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/external/SPIRV-Tools/CMakeLists.txt b/external/SPIRV-Tools/CMakeLists.txt
+index 9afa5746c..7ca24d5dc 100644
+--- a/external/SPIRV-Tools/CMakeLists.txt
++++ b/external/SPIRV-Tools/CMakeLists.txt
+@@ -43,8 +43,8 @@ else() #By default use build from sources
+ message(STATUS "[SPIRV-Tools] : Building from source")
+ message(STATUS "[SPIRV-Tools] : Current source dir: ${CMAKE_CURRENT_SOURCE_DIR}")
+
+- set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../SPIRV-Headers") # used in subdirectory
+- set(SPIRV-Tools_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../SPIRV-Tools")
++ set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../SPIRV-Headers") # used in subdirectory
++ set(SPIRV-Tools_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../SPIRV-Tools")
+
+ set(SPIRV-Tools_OUTPUT_DIR "${IGC_OPTION__OUTPUT_DIR}/external/SPIRV-Tools/build")
+ 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
new file mode 100644
index 00000000..39443931
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch
@@ -0,0 +1,24 @@
+From 5648568e597acd0fed82aac3e6aef0f95a1b78d1 Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <anuj.mittal@intel.com>
+Date: Thu, 19 May 2022 22:50:09 +0800
+Subject: [PATCH] fix tblgen
+
+Upstream-Status: Inappropriate [OE specific]
+
+---
+ IGC/cmake/igc_llvm.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/IGC/cmake/igc_llvm.cmake b/IGC/cmake/igc_llvm.cmake
+index 10322533c..9020cb3c8 100644
+--- a/IGC/cmake/igc_llvm.cmake
++++ b/IGC/cmake/igc_llvm.cmake
+@@ -52,7 +52,7 @@ else()
+ set(LLVM_OPT_EXE "opt" CACHE STRING "")
+
+ set(LLVM_TABLEGEN_EXE "llvm-tblgen")
+- if(CMAKE_CROSSCOMPILING)
++ if(TRUE)
+ if(DEFINED LLVM_TABLEGEN)
+ set(LLVM_TABLEGEN_EXE ${LLVM_TABLEGEN})
+ else()
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-skip-execution-of-ElfPackager.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-skip-execution-of-ElfPackager.patch
deleted file mode 100644
index 3f3e1d49..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-skip-execution-of-ElfPackager.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 4e903a6914d5124d616cf085e30e8cbaa20afb77 Mon Sep 17 00:00:00 2001
-From: Naveen Saini <naveen.kumar.saini@intel.com>
-Date: Wed, 12 Jun 2019 14:10:23 +0800
-Subject: [PATCH 1/4] skip execution of ElfPackager
-
-ElfPackager adds the ability to convert llvm bitcode into elf files for
-easier partitioning. Skip for now until we start building a native
-version for this.
-
-Upstream-Status: Inappropriate [configuration specific]
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
----
- IGC/ElfPackager/CMakeLists.txt | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/IGC/ElfPackager/CMakeLists.txt b/IGC/ElfPackager/CMakeLists.txt
-index d9487aeb..bc728ada 100644
---- a/IGC/ElfPackager/CMakeLists.txt
-+++ b/IGC/ElfPackager/CMakeLists.txt
-@@ -71,10 +71,10 @@ include_directories (
- ${IGC_SOURCE_DIR}/AdaptorOCL/CLElfLib/
- )
-
--add_custom_command(TARGET ${IGC_BUILD__PROJ__ElfPackager}
-- POST_BUILD
-- COMMAND $<TARGET_FILE:${IGC_BUILD__PROJ__ElfPackager}> -includeSizet -funcList ${CMAKE_CURRENT_SOURCE_DIR}/function_bin.txt ${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc ${IGC_BUILD__BIF_DIR}/igdclbif.bin
-- )
-+#add_custom_command(TARGET ${IGC_BUILD__PROJ__ElfPackager}
-+# POST_BUILD
-+# COMMAND $<TARGET_FILE:${IGC_BUILD__PROJ__ElfPackager}> -includeSizet -funcList ${CMAKE_CURRENT_SOURCE_DIR}/function_bin.txt ${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc ${IGC_BUILD__BIF_DIR}/igdclbif.bin
-+# )
-
-
- add_dependencies("${IGC_BUILD__PROJ__ElfPackager}" "${IGC_BUILD__PROJ__BiFModule_OCL}")
---
-2.17.1
-
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0002-comment-out-dump-functions.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0002-comment-out-dump-functions.patch
deleted file mode 100644
index 517dc36f..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0002-comment-out-dump-functions.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 15a23e549636626cf32b062a5308a29cc53ce360 Mon Sep 17 00:00:00 2001
-From: Naveen Saini <naveen.kumar.saini@intel.com>
-Date: Wed, 21 Aug 2019 17:29:00 +0800
-Subject: [PATCH 2/4] comment out dump functions
-
-Otherwise it leads to errors when linking with lld:
-
-| ld.lld: error: undefined symbol: llvm::Value::dump() const
-| >>> referenced by PreRAScheduler.cpp:252 (build/tmp/work/x86_64-linux/intel-graphics-compiler-native/1.0.10-r0/git/IGC/Compiler/CISACodeGen/PreRAScheduler.cpp:252)
-| >>> PreRAScheduler.cpp.o:(IGC::PreRAScheduler::dumpDDGContents()) in archive IGC/Release/libCompiler.a
-|
-| ld.lld: error: undefined symbol: llvm::Value::dump() const
-| >>> referenced by PreRAScheduler.cpp:855 (build/tmp/work/x86_64-linux/intel-graphics-compiler-native/1.0.10-r0/git/IGC/Compiler/CISACodeGen/PreRAScheduler.cpp:855)
-| >>> PreRAScheduler.cpp.o:(IGC::PreRAScheduler::dumpPriorityQueueContents()) in archive IGC/Release/libCompiler.a
-|
-| ld.lld: error: undefined symbol: llvm::Value::dump() const
-| >>> referenced by PreRAScheduler.cpp:876 (build/tmp/work/x86_64-linux/intel-graphics-compiler-native/1.0.10-r0/git/IGC/Compiler/CISACodeGen/PreRAScheduler.cpp:876)
-| >>> PreRAScheduler.cpp.o:(IGC::PreRAScheduler::dumpPriorityQueueContents()) in archive IGC/Release/libCompiler.a
-|
-| ld.lld: error: undefined symbol: llvm::Value::dump() const
-| >>> referenced by PreRAScheduler.cpp:888 (build/tmp/work/x86_64-linux/intel-graphics-compiler-native/1.0.10-r0/git/IGC/Compiler/CISACodeGen/PreRAScheduler.cpp:888)
-| >>> PreRAScheduler.cpp.o:(IGC::PreRAScheduler::dumpPriorityQueueContents()) in archive IGC/Release/libCompiler.a
-|
-| ld.lld: error: undefined symbol: llvm::Value::dump() const
-| >>> referenced by PreRAScheduler.cpp:902 (build/tmp/work/x86_64-linux/intel-graphics-compiler-native/1.0.10-r0/git/IGC/Compiler/CISACodeGen/PreRAScheduler.cpp:902)
-| >>> PreRAScheduler.cpp.o:(IGC::PreRAScheduler::dumpPriorityQueueContents()) in archive IGC/Release/libCompiler.a
-| clang-8: error: linker command failed with exit code 1 (use -v to see invocation)
-| ninja: build stopped: subcommand failed.
-
-Upstream-Status: Submitted [https://github.com/intel/intel-graphics-compiler/pull/105]
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
----
- IGC/Compiler/CISACodeGen/PreRAScheduler.cpp | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/IGC/Compiler/CISACodeGen/PreRAScheduler.cpp b/IGC/Compiler/CISACodeGen/PreRAScheduler.cpp
-index 62e89c0c..ba01af01 100644
---- a/IGC/Compiler/CISACodeGen/PreRAScheduler.cpp
-+++ b/IGC/Compiler/CISACodeGen/PreRAScheduler.cpp
-@@ -178,8 +178,10 @@ namespace IGC {
- AU.addRequired<RegisterEstimator>();
- }
-
-+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
- void dumpDDGContents();
- void dumpPriorityQueueContents();
-+#endif
-
- void clearDDG();
-
-@@ -228,6 +230,7 @@ IGC_INITIALIZE_PASS_DEPENDENCY(RegisterEstimator)
- IGC_INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass)
- IGC_INITIALIZE_PASS_END(PreRAScheduler, PASS_FLAG, PASS_DESC, PASS_CFG_ONLY, PASS_ANALYSIS)
-
-+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
- void PreRAScheduler::dumpDDGContents()
- {
- IGC_SET_FLAG_VALUE(PrintToConsole, 1);
-@@ -259,6 +262,7 @@ void PreRAScheduler::dumpDDGContents()
-
- IGC_SET_FLAG_VALUE(PrintToConsole, 0);
- }
-+#endif
-
- void PreRAScheduler::clearDDG()
- {
-@@ -841,6 +845,7 @@ bool PreRAScheduler::ScheduleReadyNodes(
- return Changed;
- }
-
-+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
- void PreRAScheduler::dumpPriorityQueueContents()
- {
- llvm::PriorityQueue<Node*, std::vector<Node*>, PreRAScheduler::OrderByLatency> longLatencyQueueCopy = longLatencyDelaySortedReadyQueue;
-@@ -912,6 +917,7 @@ void PreRAScheduler::dumpPriorityQueueContents()
-
- IGC_SET_FLAG_VALUE(PrintToConsole, 0);
- }
-+#endif
-
- bool PreRAScheduler::runOnFunction(Function& F) {
- CodeGenContext* ctx = getAnalysis<CodeGenContextWrapper>().getCodeGenContext();
---
-2.17.1
-
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Fix-for-buildbreak-when-using-clang-9-compiler.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Fix-for-buildbreak-when-using-clang-9-compiler.patch
deleted file mode 100644
index 4af8c17e..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Fix-for-buildbreak-when-using-clang-9-compiler.patch
+++ /dev/null
@@ -1,405 +0,0 @@
-From 598038626dd2c10b96308347718f26cfa3dc509c Mon Sep 17 00:00:00 2001
-From: "Wesierski, Lukasz" <lukasz.wesierski@intel.com>
-Date: Mon, 9 Sep 2019 09:11:20 -0700
-Subject: [PATCH 4/4] Fix for buildbreak when using clang-9 compiler
-
-Fixes #106
-Fxies #111
-
-Change-Id: I291bf03c31b1786a00b8bc2c6d23c5adb8b72e73
-
-Upstream-Status: Backport [https://github.com/intel/intel-graphics-compiler/commit/a332238b46e9fa9e06265d18eb877d095015e6fb]
-
-Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
----
- IGC/AdaptorOCL/SPIRV/libSPIRV/SPIRVEntry.h | 4 +
- .../SPIRV/libSPIRV/SPIRVInstruction.h | 18 +--
- IGC/AdaptorOCL/SPIRV/libSPIRV/SPIRVModule.cpp | 136 +++++++++---------
- IGC/AdaptorOCL/cif/cif/export/registry.h | 3 +-
- IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp | 4 +-
- visa/CISA.l | 2 +-
- visa/CMakeLists.txt | 6 +-
- 7 files changed, 89 insertions(+), 84 deletions(-)
-
-diff --git a/IGC/AdaptorOCL/SPIRV/libSPIRV/SPIRVEntry.h b/IGC/AdaptorOCL/SPIRV/libSPIRV/SPIRVEntry.h
-index 7a2ba855..307ba3f3 100644
---- a/IGC/AdaptorOCL/SPIRV/libSPIRV/SPIRVEntry.h
-+++ b/IGC/AdaptorOCL/SPIRV/libSPIRV/SPIRVEntry.h
-@@ -129,8 +129,12 @@ class SPIRVExtInst;
- void decode(std::istream &I) { getDecoder(I) >> x >> y;}
- #define _SPIRV_DEF_DEC3(x,y,z) \
- void decode(std::istream &I) { getDecoder(I) >> x >> y >> z;}
-+#define _SPIRV_DEF_DEC3_OVERRIDE(x,y,z) \
-+ void decode(std::istream &I) override { getDecoder(I) >> x >> y >> z;}
- #define _SPIRV_DEF_DEC4(x,y,z,u) \
- void decode(std::istream &I) { getDecoder(I) >> x >> y >> z >> u;}
-+#define _SPIRV_DEF_DEC4_OVERRIDE(x,y,z,u) \
-+ void decode(std::istream &I) override { getDecoder(I) >> x >> y >> z >> u;}
- #define _SPIRV_DEF_DEC5(x,y,z,u,v) \
- void decode(std::istream &I) { getDecoder(I) >> x >> y >> z >> u >> v;}
- #define _SPIRV_DEF_DEC6(x,y,z,u,v,w) \
-diff --git a/IGC/AdaptorOCL/SPIRV/libSPIRV/SPIRVInstruction.h b/IGC/AdaptorOCL/SPIRV/libSPIRV/SPIRVInstruction.h
-index 9f4e9d1f..bb85fd04 100644
---- a/IGC/AdaptorOCL/SPIRV/libSPIRV/SPIRVInstruction.h
-+++ b/IGC/AdaptorOCL/SPIRV/libSPIRV/SPIRVInstruction.h
-@@ -727,10 +727,10 @@ public:
- return getValue(ConditionId);
- }
- SPIRVLabel *getTrueLabel() const {
-- return get<SPIRVLabel>(TrueLabelId);
-+ return SPIRVEntry::get<SPIRVLabel>(TrueLabelId);
- }
- SPIRVLabel *getFalseLabel() const {
-- return get<SPIRVLabel>(FalseLabelId);
-+ return SPIRVEntry::get<SPIRVLabel>(FalseLabelId);
- }
- protected:
- void setWordCount(SPIRVWord TheWordCount) {
-@@ -940,7 +940,7 @@ public:
- SPIRVEntry::setWordCount(TheWordCount);
- LoopControlParameters.resize(TheWordCount - FixedWordCount);
- }
-- _SPIRV_DEF_DEC4(MergeBlock, ContinueTarget, LoopControl,
-+ _SPIRV_DEF_DEC4_OVERRIDE(MergeBlock, ContinueTarget, LoopControl,
- LoopControlParameters)
-
- protected:
-@@ -1120,7 +1120,7 @@ public:
-
- SPIRVFunctionCallGeneric(SPIRVModule *BM, SPIRVWord ResId, SPIRVType *TheType,
- const std::vector<SPIRVWord> &TheArgs)
-- : SPIRVInstruction(TheArgs.size() + FixedWordCount, OC, TheType, ResId,
-+ : SPIRVInstruction(TheArgs.size() + FixedWordCount, OC, TheType, ResId, NULL,
- BM),
- Args(TheArgs) {}
- SPIRVFunctionCallGeneric():SPIRVInstruction(OC) {}
-@@ -1152,7 +1152,7 @@ class SPIRVFunctionCall:
- public:
- SPIRVFunctionCall():FunctionId(SPIRVID_INVALID) {}
- SPIRVFunction *getFunction()const {
-- return get<SPIRVFunction>(FunctionId);
-+ return SPIRVEntry::get<SPIRVFunction>(FunctionId);
- }
- _SPIRV_DEF_DEC4(Type, Id, FunctionId, Args)
- void validate()const;
-@@ -1169,8 +1169,8 @@ public:
- const std::vector<SPIRVWord>& TheArgs,
- SPIRVBasicBlock* BB);
- SPIRVFunctionPointerCallINTEL() : CalledValueId(SPIRVID_INVALID) {}
-- SPIRVValue* getCalledValue() const { return get<SPIRVValue>(CalledValueId); }
-- _SPIRV_DEF_DEC4(Type, Id, CalledValueId, Args)
-+ SPIRVValue* getCalledValue() const { return SPIRVEntry::get<SPIRVValue>(CalledValueId); }
-+ _SPIRV_DEF_DEC4_OVERRIDE(Type, Id, CalledValueId, Args)
- void validate() const override;
- bool isOperandLiteral(unsigned Index) const { return false; }
- CapVec getRequiredCapability() const override {
-@@ -1188,8 +1188,8 @@ public:
- SPIRVFunctionPointerINTEL(SPIRVId TheId, SPIRVType* TheType,
- SPIRVFunction* TheFunction, SPIRVBasicBlock* BB);
- SPIRVFunctionPointerINTEL() : SPIRVInstruction(OC), TheFunction(SPIRVID_INVALID) {}
-- SPIRVFunction* getFunction() const { return get<SPIRVFunction>(TheFunction); }
-- _SPIRV_DEF_DEC3(Type, Id, TheFunction)
-+ SPIRVFunction* getFunction() const { return SPIRVEntry::get<SPIRVFunction>(TheFunction); }
-+ _SPIRV_DEF_DEC3_OVERRIDE(Type, Id, TheFunction)
- void validate() const override;
- bool isOperandLiteral(unsigned Index) const { return false; }
- CapVec getRequiredCapability() const override {
-diff --git a/IGC/AdaptorOCL/SPIRV/libSPIRV/SPIRVModule.cpp b/IGC/AdaptorOCL/SPIRV/libSPIRV/SPIRVModule.cpp
-index 353341b5..74ab6e93 100644
---- a/IGC/AdaptorOCL/SPIRV/libSPIRV/SPIRVModule.cpp
-+++ b/IGC/AdaptorOCL/SPIRV/libSPIRV/SPIRVModule.cpp
-@@ -94,126 +94,126 @@ public:
- virtual ~SPIRVModuleImpl();
-
- // Object query functions
-- bool exist(SPIRVId) const;
-- bool exist(SPIRVId, SPIRVEntry **) const;
-+ bool exist(SPIRVId) const override;
-+ bool exist(SPIRVId, SPIRVEntry **) const override;
- SPIRVId getId(SPIRVId Id = SPIRVID_INVALID, unsigned Increment = 1);
-- virtual SPIRVEntry *getEntry(SPIRVId Id) const;
-+ virtual SPIRVEntry *getEntry(SPIRVId Id) const override;
- virtual void addUnknownStructField(
-- SPIRVTypeStruct*, unsigned idx, SPIRVId id);
-- virtual void resolveUnknownStructFields();
-- bool hasDebugInfo() const
-+ SPIRVTypeStruct*, unsigned idx, SPIRVId id) override;
-+ virtual void resolveUnknownStructFields() override;
-+ bool hasDebugInfo() const override
- {
- return getCompilationUnit() != nullptr;
- }
-
- // Error handling functions
-- SPIRVErrorLog &getErrorLog() { return ErrLog;}
-- SPIRVErrorCode getError(std::string &ErrMsg) { return ErrLog.getError(ErrMsg);}
-+ SPIRVErrorLog &getErrorLog() override { return ErrLog;}
-+ SPIRVErrorCode getError(std::string &ErrMsg) override { return ErrLog.getError(ErrMsg);}
-
- // Module query functions
-- SPIRVAddressingModelKind getAddressingModel() { return AddrModel;}
-- SPIRVExtInstSetKind getBuiltinSet(SPIRVId SetId) const;
-- const SPIRVCapSet &getCapability() const { return CapSet;}
-- const std::string &getCompileFlag() const { return CompileFlag;}
-- std::string &getCompileFlag() { return CompileFlag;}
-- void setCompileFlag(const std::string &options) { CompileFlag = options; }
-- bool isSpecConstant(SPIRVWord spec_id) const {
-+ SPIRVAddressingModelKind getAddressingModel() override { return AddrModel;}
-+ SPIRVExtInstSetKind getBuiltinSet(SPIRVId SetId) const override;
-+ const SPIRVCapSet &getCapability() const override { return CapSet;}
-+ const std::string &getCompileFlag() const override { return CompileFlag;}
-+ std::string &getCompileFlag() override { return CompileFlag;}
-+ void setCompileFlag(const std::string &options) override { CompileFlag = options; }
-+ bool isSpecConstant(SPIRVWord spec_id) const override {
- if(SCMap)
- return SCMap->find(spec_id) != SCMap->end();
- else
- return false;
- }
-- uint64_t getSpecConstant(SPIRVWord spec_id) {
-+ uint64_t getSpecConstant(SPIRVWord spec_id) override {
- spirv_assert(isSpecConstant(spec_id) && "Specialization constant was not specialized!");
- return SCMap->at(spec_id);
- }
-- void setSpecConstantMap(SPIRVSpecConstantMap *specConstants) { SCMap = specConstants; }
-- std::set<std::string> &getExtension() { return SPIRVExt;}
-- SPIRVFunction *getFunction(unsigned I) const { return FuncVec[I];}
-- SPIRVVariable *getVariable(unsigned I) const { return VariableVec[I];}
-- virtual SPIRVValue *getValue(SPIRVId TheId) const;
-- virtual std::vector<SPIRVValue *> getValues(const std::vector<SPIRVId>&)const;
-- virtual std::vector<SPIRVId> getIds(const std::vector<SPIRVEntry *>&)const;
-- virtual std::vector<SPIRVId> getIds(const std::vector<SPIRVValue *>&)const;
-- virtual SPIRVType *getValueType(SPIRVId TheId)const;
-+ void setSpecConstantMap(SPIRVSpecConstantMap *specConstants) override { SCMap = specConstants; }
-+ std::set<std::string> &getExtension() override { return SPIRVExt;}
-+ SPIRVFunction *getFunction(unsigned I) const override { return FuncVec[I];}
-+ SPIRVVariable *getVariable(unsigned I) const override { return VariableVec[I];}
-+ virtual SPIRVValue *getValue(SPIRVId TheId) const override;
-+ virtual std::vector<SPIRVValue *> getValues(const std::vector<SPIRVId>&)const override;
-+ virtual std::vector<SPIRVId> getIds(const std::vector<SPIRVEntry *>&)const override;
-+ virtual std::vector<SPIRVId> getIds(const std::vector<SPIRVValue *>&)const override;
-+ virtual SPIRVType *getValueType(SPIRVId TheId)const override;
- virtual std::vector<SPIRVType *> getValueTypes(const std::vector<SPIRVId>&)
-- const;
-- SPIRVMemoryModelKind getMemoryModel() { return MemoryModel;}
-- virtual SPIRVConstant* getLiteralAsConstant(unsigned Literal);
-- unsigned getNumEntryPoints(SPIRVExecutionModelKind EM) const {
-+ const override;
-+ SPIRVMemoryModelKind getMemoryModel() override { return MemoryModel;}
-+ virtual SPIRVConstant* getLiteralAsConstant(unsigned Literal) override;
-+ unsigned getNumEntryPoints(SPIRVExecutionModelKind EM) const override{
- auto Loc = EntryPointVec.find(EM);
- if (Loc == EntryPointVec.end())
- return 0;
- return Loc->second.size();
- }
-- SPIRVFunction *getEntryPoint(SPIRVExecutionModelKind EM, unsigned I) const {
-+ SPIRVFunction *getEntryPoint(SPIRVExecutionModelKind EM, unsigned I) const override {
- auto Loc = EntryPointVec.find(EM);
- if (Loc == EntryPointVec.end())
- return nullptr;
- spirv_assert(I < Loc->second.size());
- return get<SPIRVFunction>(Loc->second[I]);
- }
-- unsigned getNumFunctions() const { return FuncVec.size();}
-- unsigned getNumVariables() const { return VariableVec.size();}
-- SpvSourceLanguage getSourceLanguage(SPIRVWord * Ver = nullptr) const {
-+ unsigned getNumFunctions() const override { return FuncVec.size();}
-+ unsigned getNumVariables() const override { return VariableVec.size();}
-+ SpvSourceLanguage getSourceLanguage(SPIRVWord * Ver = nullptr) const override {
- if (Ver)
- *Ver = SrcLangVer;
- return SrcLang;
- }
-- std::set<std::string> &getSourceExtension() { return SrcExtension;}
-- bool isEntryPoint(SPIRVExecutionModelKind, SPIRVId EP) const;
-+ std::set<std::string> &getSourceExtension() override { return SrcExtension;}
-+ bool isEntryPoint(SPIRVExecutionModelKind, SPIRVId EP) const override;
- const std::string &getModuleProcessed() const { return ModuleProcessed; }
-- const std::vector<SPIRVString *> &getStringVec() const { return StringVec; }
-+ const std::vector<SPIRVString *> &getStringVec() const override { return StringVec; }
-
- // Module changing functions
-- bool importBuiltinSet(const std::string &, SPIRVId *);
-- bool importBuiltinSetWithId(const std::string &, SPIRVId);
-- void optimizeDecorates();
-- void setAddressingModel(SPIRVAddressingModelKind AM) { AddrModel = AM;}
-- void setAlignment(SPIRVValue *, SPIRVWord);
-- void setMemoryModel(SPIRVMemoryModelKind MM) { MemoryModel = MM;}
-- void setName(SPIRVEntry *E, const std::string &Name);
-- void setSourceLanguage(SpvSourceLanguage Lang, SPIRVWord Ver) {
-+ bool importBuiltinSet(const std::string &, SPIRVId *) override;
-+ bool importBuiltinSetWithId(const std::string &, SPIRVId) override;
-+ void optimizeDecorates() override;
-+ void setAddressingModel(SPIRVAddressingModelKind AM) override { AddrModel = AM;}
-+ void setAlignment(SPIRVValue *, SPIRVWord) override;
-+ void setMemoryModel(SPIRVMemoryModelKind MM) override { MemoryModel = MM;}
-+ void setName(SPIRVEntry *E, const std::string &Name) override;
-+ void setSourceLanguage(SpvSourceLanguage Lang, SPIRVWord Ver) override {
- SrcLang = Lang;
- SrcLangVer = Ver;
- }
-- void setModuleProcessed(const std::string& MP) {
-+ void setModuleProcessed(const std::string& MP) override {
- ModuleProcessed = MP;
- }
-
- // Object creation functions
- template<class T> void addTo(std::vector<T *> &V, SPIRVEntry *E);
-- virtual SPIRVEntry *addEntry(SPIRVEntry *E);
-- virtual SPIRVString *getString(const std::string &Str);
-+ virtual SPIRVEntry *addEntry(SPIRVEntry *E) override;
-+ virtual SPIRVString *getString(const std::string &Str) override;
- virtual SPIRVMemberName *addMemberName(SPIRVTypeStruct *ST,
-- SPIRVWord MemberNumber, const std::string &Name);
-+ SPIRVWord MemberNumber, const std::string &Name) override;
- virtual SPIRVLine *addLine(SPIRVString *FileName, SPIRVWord Line,
-- SPIRVWord Column);
-- virtual void addCapability(SPIRVCapabilityKind);
-- virtual const SPIRVDecorateGeneric *addDecorate(const SPIRVDecorateGeneric *);
-- virtual SPIRVDecorationGroup *addDecorationGroup();
-- virtual SPIRVDecorationGroup *addDecorationGroup(SPIRVDecorationGroup *Group);
-+ SPIRVWord Column) override;
-+ virtual void addCapability(SPIRVCapabilityKind) override;
-+ virtual const SPIRVDecorateGeneric *addDecorate(const SPIRVDecorateGeneric *) override;
-+ virtual SPIRVDecorationGroup *addDecorationGroup() override;
-+ virtual SPIRVDecorationGroup *addDecorationGroup(SPIRVDecorationGroup *Group) override;
- virtual SPIRVGroupDecorate *addGroupDecorate(SPIRVDecorationGroup *Group,
-- const std::vector<SPIRVEntry *> &Targets);
-+ const std::vector<SPIRVEntry *> &Targets) override;
- virtual SPIRVGroupDecorateGeneric *addGroupDecorateGeneric(
-- SPIRVGroupDecorateGeneric *GDec);
-+ SPIRVGroupDecorateGeneric *GDec) override;
- virtual SPIRVGroupMemberDecorate *addGroupMemberDecorate(
-- SPIRVDecorationGroup *Group, const std::vector<SPIRVEntry *> &Targets);
-+ SPIRVDecorationGroup *Group, const std::vector<SPIRVEntry *> &Targets) override;
- virtual void addEntryPoint(SPIRVExecutionModelKind ExecModel,
-- SPIRVId EntryPoint);
-- virtual SPIRVForward *addForward(SPIRVType *Ty);
-- virtual SPIRVForward *addForward(SPIRVId, SPIRVType *Ty);
-- virtual SPIRVFunction *addFunction(SPIRVFunction *);
-- virtual SPIRVFunction *addFunction(SPIRVTypeFunction *, SPIRVId);
-- virtual SPIRVEntry *replaceForward(SPIRVForward *, SPIRVEntry *);
-+ SPIRVId EntryPoint) override;
-+ virtual SPIRVForward *addForward(SPIRVType *Ty) override;
-+ virtual SPIRVForward *addForward(SPIRVId, SPIRVType *Ty) override;
-+ virtual SPIRVFunction *addFunction(SPIRVFunction *) override;
-+ virtual SPIRVFunction *addFunction(SPIRVTypeFunction *, SPIRVId) override;
-+ virtual SPIRVEntry *replaceForward(SPIRVForward *, SPIRVEntry *) override;
-
- // Type creation functions
- template<class T> T * addType(T *Ty);
-- virtual SPIRVTypeInt *addIntegerType(unsigned BitWidth);
-+ virtual SPIRVTypeInt *addIntegerType(unsigned BitWidth) override;
-
- // Constant creation functions
-- virtual SPIRVValue *addConstant(SPIRVValue *);
-- virtual SPIRVValue *addConstant(SPIRVType *, uint64_t);
-+ virtual SPIRVValue *addConstant(SPIRVValue *) override;
-+ virtual SPIRVValue *addConstant(SPIRVType *, uint64_t) override;
-
- virtual SPIRVInstruction *addLoopMergeInst(
- SPIRVId MergeBlock, SPIRVId ContinueTarget,
-@@ -226,7 +226,7 @@ public:
- addInstruction(SPIRVInstruction *Inst, SPIRVBasicBlock *BB,
- SPIRVInstruction *InsertBefore = nullptr);
-
-- virtual SPIRVExtInst* getCompilationUnit() const
-+ virtual SPIRVExtInst* getCompilationUnit() const override
- {
- for (auto& item : IdEntryMap)
- {
-@@ -242,7 +242,7 @@ public:
- return nullptr;
- }
-
-- virtual std::vector<SPIRVExtInst*> getGlobalVars()
-+ virtual std::vector<SPIRVExtInst*> getGlobalVars() override
- {
- std::vector<SPIRVExtInst*> globalVars;
-
-@@ -260,7 +260,7 @@ public:
- return globalVars;
- }
-
-- virtual std::vector<SPIRVValue*> parseSpecConstants()
-+ virtual std::vector<SPIRVValue*> parseSpecConstants() override
- {
- std::vector<SPIRVValue*> specConstants;
-
-diff --git a/IGC/AdaptorOCL/cif/cif/export/registry.h b/IGC/AdaptorOCL/cif/cif/export/registry.h
-index a2b893c2..1571a698 100644
---- a/IGC/AdaptorOCL/cif/cif/export/registry.h
-+++ b/IGC/AdaptorOCL/cif/cif/export/registry.h
-@@ -50,7 +50,8 @@ namespace Helpers {
- struct EntryPointInterfaceBase{
- EntryPointInterfaceBase(){
- }
--
-+ virtual ~EntryPointInterfaceBase() = default;
-+
- virtual ICIF * Create(Version_t version, ICIF * parent) const = 0;
- virtual InterfaceId_t GetFirstIncompatible(CIF::CompatibilityDataHandle handle) const = 0;
- virtual void GetSupportedVersions(Version_t &verMin, Version_t &verMax) const = 0;
-diff --git a/IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp b/IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp
-index ebad9b3d..3bde1151 100644
---- a/IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp
-+++ b/IGC/OCLFE/igd_fcl_mcl/source/clang_tb.cpp
-@@ -301,7 +301,7 @@ namespace FCL
- std::string dumpPath = "c:\\Intel\\IGC\\"; // default if something goes wrong
- char custom_dir[256];
- FCLReadIGCRegistry("DumpToCustomDir", custom_dir, sizeof(custom_dir));
-- if (custom_dir != nullptr && strlen(custom_dir) > 0)
-+ if (strlen(custom_dir) > 0)
- {
- dumpPath = custom_dir;
- }
-@@ -321,7 +321,7 @@ namespace FCL
- std::string dumpPath = "/tmp/IntelIGC/"; // default if something goes wrong
- char custom_dir[256];
- FCLReadIGCRegistry("DumpToCustomDir", custom_dir, sizeof(custom_dir));
-- if (custom_dir != nullptr && strlen(custom_dir) > 0)
-+ if (strlen(custom_dir) > 0)
- {
- dumpPath = custom_dir;
- }
-diff --git a/visa/CISA.l b/visa/CISA.l
-index def21e4b..27532695 100644
---- a/visa/CISA.l
-+++ b/visa/CISA.l
-@@ -45,7 +45,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- #pragma warning(default: 4005)
- #endif
-
--#include "CISA.tab.h"
-+#include "CISA.tab.hpp"
-
- #ifdef _DEBUG
- #define TRACE(str) fprintf(yyout, str); ECHO; fprintf(yyout, "\n")
-diff --git a/visa/CMakeLists.txt b/visa/CMakeLists.txt
-index 11d1bf53..551e4edb 100644
---- a/visa/CMakeLists.txt
-+++ b/visa/CMakeLists.txt
-@@ -105,8 +105,8 @@ endif()
- # Set up the bison and flex targets. These commands will set up commands to generate the appropriate
- # source files from the input grammars. It will also set up the dependencies correctly for any
- # library or executable that uses the generated source
--BISON_TARGET(CISAParser CISA.y ${CMAKE_CURRENT_BINARY_DIR}/CISA.tab.c COMPILE_FLAGS "-vt -p CISA")
--FLEX_TARGET(CISAScanner CISA.l ${CMAKE_CURRENT_BINARY_DIR}/lex.CISA.c COMPILE_FLAGS "-PCISA ${WIN_FLEX_FLAG}")
-+BISON_TARGET(CISAParser CISA.y ${CMAKE_CURRENT_BINARY_DIR}/CISA.tab.cpp COMPILE_FLAGS "-vt -p CISA")
-+FLEX_TARGET(CISAScanner CISA.l ${CMAKE_CURRENT_BINARY_DIR}/lex.CISA.cpp COMPILE_FLAGS "-PCISA ${WIN_FLEX_FLAG}")
- ADD_FLEX_BISON_DEPENDENCY(CISAScanner CISAParser)
-
- add_custom_target(CISAScanner_target DEPENDS ${FLEX_CISAScanner_OUTPUTS} ${BISON_CISAParser_OUTPUTS})
-@@ -134,7 +134,7 @@ include_directories(${Jitter_inc_dirs})
-
- # Tell cmake to generate code to compile the flex and bison generated source as c++ rather than c
- # (due to the fact that they are .c files rather than .cpp)
--set_source_files_properties( CISA.tab.c lex.CISA.c PROPERTIES LANGUAGE CXX )
-+set_source_files_properties( CISA.tab.cpp lex.CISA.cpp PROPERTIES LANGUAGE CXX )
-
- set(LocalScheduler_SOURCES
- LocalScheduler/Dependencies_G4IR.cpp
---
-2.17.1
-
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
new file mode 100644
index 00000000..650130a8
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch
@@ -0,0 +1,34 @@
+From 0559332abd04b6c8bc70171d201f43d2e4735336 Mon Sep 17 00:00:00 2001
+From: Lee Chee Yang <chee.yang.lee@intel.com>
+Date: Wed, 2 Sep 2020 08:28:35 +0800
+Subject: [PATCH] Improve Reproducibility for src package
+
+Improve reproducibility for intel-graphics-compiler-src package.
+needs to pass build path as environment variable to the build.
+this only works on bison 3.7 onward, hence check for bison version
+before adding the flags.
+Upstream-Status: Inappropriate [applying --file-prefix-map in such way does not work for upstream]
+Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
+
+---
+ visa/CMakeLists.txt | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/visa/CMakeLists.txt b/visa/CMakeLists.txt
+index 6be467587..930c386a6 100644
+--- a/visa/CMakeLists.txt
++++ b/visa/CMakeLists.txt
+@@ -123,8 +123,11 @@ endif()
+ set(bison_output_file ${CMAKE_CURRENT_BINARY_DIR}/CISA.tab.cpp)
+ set(flex_output_file ${CMAKE_CURRENT_BINARY_DIR}/lex.CISA.cpp)
+
+-BISON_TARGET(CISAParser CISA.y ${bison_output_file} COMPILE_FLAGS "-vt -p CISA")
+-FLEX_TARGET(CISAScanner CISA.l ${flex_output_file} COMPILE_FLAGS "-PCISA ${WIN_FLEX_FLAG}")
++if(BISON_VERSION VERSION_GREATER_EQUAL "3.7.0")
++ set(BISON_EXTRA_FLAGS " --file-prefix-map=$ENV{B}=/igc/ ")
++endif()
++BISON_TARGET(CISAParser CISA.y ${bison_output_file} COMPILE_FLAGS "-l -vt -p CISA ${BISON_EXTRA_FLAGS} ")
++FLEX_TARGET(CISAScanner CISA.l ${flex_output_file} COMPILE_FLAGS "-PCISA -L ${WIN_FLEX_FLAG} ")
+ ADD_FLEX_BISON_DEPENDENCY(CISAScanner CISAParser)
+ set(CISAScanner_dependencies)
+
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.11.bb b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.11.bb
deleted file mode 100644
index 297f4491..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.11.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "The Intel(R) Graphics Compiler for OpenCL(TM)"
-DESCRIPTION = "The Intel(R) Graphics Compiler for OpenCL(TM) is an \
-llvm based compiler for OpenCL(TM) targeting Intel Gen graphics \
-hardware architecture."
-
-LICENSE = "MIT & BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc/LICENSE.TXT;md5=311cfc1a5b54bab8ed34a0b5fba4373e \
- file://IGC/Compiler/LegalizationPass.cpp;beginline=1;endline=25;md5=4abf1738ff96b18e34186eb763e28eeb"
-
-SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https \
- file://0001-skip-execution-of-ElfPackager.patch \
- file://0002-comment-out-dump-functions.patch \
- file://0003-Fix-for-buildbreak-when-using-clang-9-compiler.patch \
- "
-
-SRCREV = "5f96c6db35ffa238fd84314c99a53e6708322d65"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-COMPATIBLE_HOST = '(x86_64).*-linux'
-COMPATIBLE_HOST_libc-musl = "null"
-
-DEPENDS += " flex-native bison-native clang opencl-clang"
-DEPENDS_append_class-target = " clang-cross-x86_64"
-
-RDEPENDS_${PN} += "opencl-clang"
-
-EXTRA_OECMAKE = "-DIGC_PREFERRED_LLVM_VERSION=9.0.0 -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3"
-
-BBCLASSEXTEND = "native nativesdk"
-
-UPSTREAM_CHECK_GITTAGREGEX = "^igc-(?P<pver>(?!19\..*)\d+(\.\d+)+)$"
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.16510.2.bb b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.16510.2.bb
new file mode 100644
index 00000000..24eb97bd
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_1.0.16510.2.bb
@@ -0,0 +1,75 @@
+SUMMARY = "The Intel(R) Graphics Compiler for OpenCL(TM)"
+DESCRIPTION = "The Intel(R) Graphics Compiler for OpenCL(TM) is an \
+llvm based compiler for OpenCL(TM) targeting Intel Gen graphics \
+hardware architecture."
+
+LICENSE = "MIT & Apache-2.0"
+LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc/LICENSE.TXT;md5=311cfc1a5b54bab8ed34a0b5fba4373e \
+ file://LICENSE.md;md5=488d74376edf2765f6e78d271543dde3 \
+ file://NOTICES.txt;md5=b81a52411c84df3419f20bad4d755880"
+
+SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https;name=igc;branch=releases/igc-1.0.16510 \
+ 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=git/SPIRV-Tools;name=spirv-tools;branch=main \
+ git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=git/SPIRV-Headers;name=spirv-headers;branch=main \
+ file://0003-Improve-Reproducibility-for-src-package.patch \
+ file://0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch \
+ file://0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch \
+ "
+
+SRC_URI:append:class-native = " file://0001-fix-tblgen.patch"
+
+SRCREV_igc = "c2495d45f37fadd963ad22eb0cc1a8235a306775"
+SRCREV_vc = "f9c34404d0ea9abad83875a10bd48d88cea90ebd"
+SRCREV_spirv-tools = "f0cc85efdbbe3a46eae90e0f915dc1509836d0fc"
+SRCREV_spirv-headers = "1c6bb2743599e6eb6f37b2969acc0aef812e32e3"
+
+SRCREV_FORMAT = "igc_vc_spirv-tools_spirv-headers"
+
+# Used to replace with relative path in reproducibility patch
+export B
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig qemu python3native
+
+CXXFLAGS:append = " -Wno-error=nonnull"
+
+COMPATIBLE_HOST = '(x86_64).*-linux'
+COMPATIBLE_HOST:libc-musl = "null"
+
+DEPENDS += " flex-native bison-native clang clang-cross-x86_64 opencl-clang qemu-native python3-mako-native"
+
+RDEPENDS:${PN} += "opencl-clang"
+
+PACKAGECONFIG ??= "vc"
+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} \
+ -DVC_INTRINSICS_SRC="${S}/vc-intrinsics" \
+ -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 \
+ -DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \
+ "
+
+do_configure:prepend:class-target () {
+ # Write out a qemu wrapper that will be used by cmake.
+ qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
+ cat > ${WORKDIR}/qemuwrapper << EOF
+#!/bin/sh
+$qemu_binary "\$@"
+EOF
+ chmod +x ${WORKDIR}/qemuwrapper
+}
+
+UPSTREAM_CHECK_GITTAGREGEX = "^igc-(?P<pver>(?!19\..*)\d+(\.\d+)+)$"
+
+FILES:${PN} += " \
+ ${libdir}/igc/NOTICES.txt \
+ "
+
+# libigc.so contains buildpaths
+INSANE_SKIP:${PN} += "buildpaths"
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch
new file mode 100644
index 00000000..031a77c7
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch
@@ -0,0 +1,49 @@
+From 5aea653e611b59c70e529a1bd71885a509831557 Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <anuj.mittal@intel.com>
+Date: Tue, 1 Aug 2023 11:15:31 +0800
+Subject: [PATCH] cl_headers/CMakeLists.txt: use clang from native sysroot
+
+Allow clang to be found in target sysroot for target builds and dont try
+to compile cross binaries, we do that ourselves.
+
+Upstream-Status: Inappropriate [oe-specific]
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ CMakeLists.txt | 8 ++++----
+ cl_headers/CMakeLists.txt | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5864009..60ba39e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -35,10 +35,10 @@ set(CMAKE_MODULE_PATH
+
+ include(CMakeFunctions)
+
+-if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL)
+- include(CrossCompile)
+- llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release)
+-endif()
++#if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL)
++# include(CrossCompile)
++# llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release)
++#endif()
+
+ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+ set(USE_PREBUILT_LLVM ON)
+diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt
+index 16cabb7..4423536 100644
+--- a/cl_headers/CMakeLists.txt
++++ b/cl_headers/CMakeLists.txt
+@@ -1,6 +1,6 @@
+ set(CL_HEADERS_LIB cl_headers)
+ if(USE_PREBUILT_LLVM)
+- find_program(CLANG_COMMAND clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
++ find_program(CLANG_COMMAND clang PATHS ${LLVM_TOOLS_BINARY_DIR})
+ else()
+ set(CLANG_COMMAND $<TARGET_FILE:clang>)
+ endif()
+--
+2.37.3
+
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-Request-native-clang-only-when-cross-compiling-464.patch b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-Request-native-clang-only-when-cross-compiling-464.patch
new file mode 100644
index 00000000..2f1814f8
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-Request-native-clang-only-when-cross-compiling-464.patch
@@ -0,0 +1,60 @@
+From 43c806ef321b1f677a49d28c89fb7ffecf539c2d Mon Sep 17 00:00:00 2001
+From: Tim Creech <timothy.m.creech@intel.com>
+Date: Wed, 28 Jun 2023 03:45:51 -0400
+Subject: [PATCH 2/2] Request native clang only when cross-compiling (#464)
+
+* Request native clang only when cross-compiling
+
+LLVM_USE_HOST_TOOLS may be set if LLVM is configured with
+LLVM_OPTIMIZED_TABLEGEN, which does not necessarily indicate
+cross-compilation or that clang will only execute on the target.
+
+By checking that CMAKE_CROSSCOMPILING is set, we ensure that we only
+build/use clang again if necessary for host execution.
+
+* fixup: CMAKE_CROSSCOMPILING implies LLVM_USE_HOST_TOOLS
+
+Co-authored-by: Wenju He <wenju.he@intel.com>
+
+* fixup: also use CMAKE_CROSSCOMPILING in top-level CMakeLists.txt
+
+---------
+
+Co-authored-by: Wenju He <wenju.he@intel.com>
+
+Upstream-Status: Backport [https://github.com/intel/opencl-clang/commit/53843eee13cfb2357919ee02714a43bef1af0f86]
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ CMakeLists.txt | 2 +-
+ cl_headers/CMakeLists.txt | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e772de9..5864009 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -35,7 +35,7 @@ set(CMAKE_MODULE_PATH
+
+ include(CMakeFunctions)
+
+-if(LLVM_USE_HOST_TOOLS AND OPENCL_CLANG_BUILD_EXTERNAL)
++if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL)
+ include(CrossCompile)
+ llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release)
+ endif()
+diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt
+index 18296c2..16cabb7 100644
+--- a/cl_headers/CMakeLists.txt
++++ b/cl_headers/CMakeLists.txt
+@@ -4,7 +4,7 @@ if(USE_PREBUILT_LLVM)
+ else()
+ set(CLANG_COMMAND $<TARGET_FILE:clang>)
+ endif()
+-if(LLVM_USE_HOST_TOOLS AND NOT OPENCL_CLANG_BUILD_EXTERNAL)
++if(CMAKE_CROSSCOMPILING AND NOT OPENCL_CLANG_BUILD_EXTERNAL)
+ build_native_tool(clang CLANG_COMMAND)
+ endif()
+
+--
+2.37.3
+
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/point-to-correct-llvm-tblgen.patch b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/point-to-correct-llvm-tblgen.patch
deleted file mode 100644
index 417e0221..00000000
--- a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/point-to-correct-llvm-tblgen.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 2ce2619b544678541e0cc56494e2927086718613 Mon Sep 17 00:00:00 2001
-From: Anuj Mittal <anuj.mittal@intel.com>
-Date: Tue, 26 Mar 2019 14:11:29 +0800
-Subject: [PATCH] point to correct llvm-tblgen
-
-Let llvm-tblgen path be passed from recipe itself.
-
-Also since we're going to do the patching ourselves, no need to look for
-git through cmake.
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
----
- CMakeLists.txt | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 1371a67..f83ffcc 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -53,7 +53,7 @@ endif(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
- include(AddLLVM)
- include(TableGen)
-
--find_package(Git REQUIRED)
-+#find_package(Git REQUIRED)
-
- if (NOT WIN32)
- add_subdirectory( linux_linker )
-@@ -138,7 +138,7 @@ endif(NOT USE_PREBUILT_LLVM)
- set (COMPILE_OPTIONS_TD opencl_clang_options.td)
- set (COMPILE_OPTIONS_INC opencl_clang_options.inc)
-
--set(LLVM_TABLEGEN_EXE "llvm-tblgen")
-+#set(LLVM_TABLEGEN_EXE "llvm-tblgen")
- set(LLVM_TARGET_DEFINITIONS ${COMPILE_OPTIONS_TD})
- if(USE_PREBUILT_LLVM)
- set(TABLEGEN_ADDITIONAL -I ${LLVM_INCLUDE_DIRS})
---
-2.17.1
-
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_9.0.0.bb b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc
index 32af900d..31a3fb21 100644
--- a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_9.0.0.bb
+++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc
@@ -5,30 +5,30 @@ DESCRIPTION = "Common clang has OpenCL-oriented API and is capable \
LICENSE = "NCSA"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e8a15bf1416762a09ece07e44c79118c"
-SRC_URI = "git://github.com/intel/opencl-clang.git;branch=ocl-open-90;protocol=https \
- file://point-to-correct-llvm-tblgen.patch \
+SRC_URI = "git://github.com/intel/opencl-clang.git;branch=${BRANCH};protocol=https \
+ file://0002-Request-native-clang-only-when-cross-compiling-464.patch \
+ file://0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch \
"
-
-SRCREV = "6f8c329bea44321aef1a1716dd206c1f7bed23cf"
-
S = "${WORKDIR}/git"
inherit cmake
DEPENDS += "clang"
-
-DEPENDS_append_class-target = " opencl-clang-native"
+DEPENDS:append:class-target = " opencl-clang-native"
COMPATIBLE_HOST = '(x86_64).*-linux'
-COMPATIBLE_HOST_libc-musl = "null"
+COMPATIBLE_HOST:libc-musl = "null"
+
+DEPENDS += " spirv-llvm-translator"
EXTRA_OECMAKE += "\
-DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
-DCMAKE_SKIP_RPATH=TRUE \
+ -DPREFERRED_LLVM_VERSION=${LLVMVERSION} \
"
-do_install_append_class-native() {
+do_install:append:class-native() {
install -d ${D}${bindir}
- install -m 0755 ${B}/linux_linker/linux_resource_linker ${D}${bindir}/
+ install -m 0755 ${B}/bin/linux_resource_linker ${D}${bindir}/
}
BBCLASSEXTEND = "native nativesdk"
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_14.0.0.bb b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_14.0.0.bb
new file mode 100644
index 00000000..7e56af75
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_14.0.0.bb
@@ -0,0 +1,5 @@
+require opencl-clang.inc
+
+SRCREV = "980f1691c5babcf824ee10375a04a0d0c5d7d44a"
+
+BRANCH = "ocl-open-140"
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_15.0.0.bb b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_15.0.0.bb
new file mode 100644
index 00000000..e946c31c
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_15.0.0.bb
@@ -0,0 +1,5 @@
+require opencl-clang.inc
+
+SRCREV = "60fd799cc58755c16d951f9ebfde6d0f9b8554dd"
+
+BRANCH = "ocl-open-150"