diff options
Diffstat (limited to 'dynamic-layers/clang-layer')
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" |