On Fri, 2021-08-27 at 10:11 +0200, Böszörményi Zoltán wrote: > Hi, > > sorry for the previous rant. I can see that the temporary > LLVM 12 compat patch is part of current master in IGC. > > I have submitted the LLVM 13 fixes against IGC at > https://github.com/intel/intel-graphics-compiler/pull/196 > and added the requested legal header in the v2 patch.
Thank you. IGC build passes but it's now causing a segfault while compiling compute-runtime-native which executes ocloc: cd builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/git/shared/source/built_ins/kernels && LD_LIBRARY_PATH=builddir/build/tmp/work/x86_64-linux/intel-compute- runtime-native/21.33.20678-r0/build/bin builddir/build/tmp/work/x86_64- linux/intel-compute-runtime-native/21.33.20678-r0/build/bin/ocloc -file copy_buffer_to_buffer_stateless.builtin_kernel -device glk -cl-intel- greater-than-4GB-buffer-required -32 -output bindful_copy_buffer_to_buffer_stateless -out_dir builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/build/bin/built_ins/x64/gen9 -options -cl-kernel- arg-info [0]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678- r0/build/bin/libocloc.so(_ZN16SafetyGuardLinux9sigActionEiP9siginfo_tPv +0x30) [0x7f2efd0db330] [1]: builddir/build/tmp/sysroots-uninative/x86_64- linux/lib/libc.so.6(+0x419d0) [0x7f2efce919d0] [2]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/recipe-sysroot-native/usr/lib/./libLLVM- 13.so(_ZN4llvm11PointerType3getEPNS_4TypeEj+0xe) [0x7f2ef771a19e] [3]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/recipe-sysroot- native/usr/lib/libigc.so.1(+0x2b6745) [0x7f2eefc94745] [4]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/recipe-sysroot- native/usr/lib/libigc.so.1(+0x2d927a) [0x7f2eefcb727a] [5]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/recipe-sysroot- native/usr/lib/libigc.so.1(+0x2daafd) [0x7f2eefcb8afd] [6]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/recipe-sysroot- native/usr/lib/libigc.so.1(+0x2e011a) [0x7f2eefcbe11a] [7]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/recipe-sysroot- native/usr/lib/libigc.so.1(+0x2e5437) [0x7f2eefcc3437] [8]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/recipe-sysroot- native/usr/lib/libigc.so.1(+0x2e5b36) [0x7f2eefcc3b36] [9]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/recipe-sysroot- native/usr/lib/libigc.so.1(+0x2230f7) [0x7f2eefc010f7] [10]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/recipe-sysroot- native/usr/lib/libigc.so.1(+0x223957) [0x7f2eefc01957] [11]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/recipe-sysroot- native/usr/lib/libigc.so.1(+0x227ec3) [0x7f2eefc05ec3] [12]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/recipe-sysroot- native/usr/lib/libigc.so.1(+0x2f4086) [0x7f2eefcd2086] [13]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/recipe-sysroot- native/usr/lib/libigc.so.1(+0x2f6e23) [0x7f2eefcd4e23] [14]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678- r0/build/bin/libocloc.so(_ZN3NEO15OfflineCompiler15buildSourceCodeEv+0x 4b9) [0x7f2efd0aa769] [15]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678- r0/build/bin/libocloc.so(_ZN3NEO15OfflineCompiler5buildEv+0x45) [0x7f2efd0ad005] [16]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/build/bin/libocloc.so(+0x88177) [0x7f2efd0db177] [17]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678- r0/build/bin/libocloc.so(_Z20buildWithSafetyGuardPN3NEO15OfflineCompile rE+0xa7) [0x7f2efd0db257] [18]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/build/bin/libocloc.so(oclocInvoke+0x7d0) [0x7f2efd0981a0] [19]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/build/bin/ocloc(main+0x23) [0x400813] [20]: builddir/build/tmp/sysroots-uninative/x86_64- linux/lib/libc.so.6(+0x2d51b) [0x7f2efce7d51b] [21]: builddir/build/tmp/sysroots-uninative/x86_64- linux/lib/libc.so.6(__libc_start_main+0x7c) [0x7f2efce7d5cc] [22]: builddir/build/tmp/work/x86_64-linux/intel-compute-runtime- native/21.33.20678-r0/build/bin/ocloc(_start+0x29) [0x400849] Thanks, Anuj > > Best regards, > Zoltán Böszörményi > > 2021. 08. 27. 9:49 keltezéssel, Böszörményi Zoltán írta: > > Hi, > > > > Is it worth it? I sent a patch for IGC to build with LLVM 12 > > back in February (which was reviewed, internally merged, > > then reverted) so there's still a patch in meta-intel called > > 0005-Temporary-LLVM-12-compatiblity-fix.patch to fix building > > with LLVM 13. > > > > Anyway, there's an issue I raised against IGC: > > https://github.com/intel/intel-graphics-compiler/issues/193 > > > > and against the meta-intel mirror at: > > https://github.com/YoeDistro/meta-intel/issues/3 > > and the PR: > > https://github.com/YoeDistro/meta-intel/pull/4 > > > > Best regards, > > Zoltán Böszörményi > > > > 2021. 08. 27. 9:36 keltezéssel, Mittal, Anuj írta: > > > > > > > > > > -----Original Message----- > > > > From: > > > > [email protected] <[email protected] > > > > > On Behalf > > > > Of zboszor via lists.yoctoproject.org > > > > Sent: Friday, August 27, 2021 03:19 PM > > > > To: [email protected] > > > > Cc: [email protected] > > > > Subject: [meta-intel] [PATCH] intel-graphics-compiler: LLVM 13 > > > > fixes > > > > > > > > From: Zoltán Böszörményi <[email protected]> > > > > > > > > Also add CXXFLAGS=-Wno-error=deprecated-declarations, to turn > > > > some deprecated > > > > LLVM API usage from warnings to errors. > > > > > > Thank you for the fixes. Can you please raise a PR for igc github > > > repository so they can > > > review and add Upstream-Status: Submitted in this patch? > > > > > > Thanks, > > > > > > Anuj > > > > > > > > > > > Signed-off-by: Zoltán Böszörményi <[email protected]> > > > > --- > > > > .../igc/files/0001-LLVM-13-fixes.patch | 436 > > > > ++++++++++++++++++ > > > > .../igc/intel-graphics-compiler_1.0.8365.bb | 3 + > > > > 2 files changed, 439 insertions(+) > > > > create mode 100644 dynamic-layers/clang-layer/recipes- > > > > opencl/igc/files/0001-LLVM- > > > > 13-fixes.patch > > > > > > > > diff --git a/dynamic-layers/clang-layer/recipes- > > > > opencl/igc/files/0001-LLVM-13- > > > > fixes.patch b/dynamic-layers/clang-layer/recipes- > > > > opencl/igc/files/0001-LLVM-13- > > > > fixes.patch > > > > new file mode 100644 > > > > index 00000000..53ea183b > > > > --- /dev/null > > > > +++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001- > > > > LLVM-13-f > > > > +++ ixes.patch > > > > @@ -0,0 +1,436 @@ > > > > +From 6247039d9193adf3813375fefc95071e8f5b4097 Mon Sep 17 > > > > 00:00:00 2001 > > > > +From: Buildbot <[email protected]> > > > > +Date: Fri, 27 Aug 2021 07:07:04 +0000 > > > > +Subject: [PATCH] LLVM 13 fixes > > > > +MIME-Version: 1.0 > > > > +Content-Type: text/plain; charset=UTF-8 > > > > +Content-Transfer-Encoding: 8bit > > > > + > > > > +Signed-off-by: Zoltán Böszörményi <[email protected]> > > > > +--- > > > > + .../LegalizeFunctionSignatures.cpp | 4 ++++ > > > > + IGC/AdaptorOCL/OCL/sp/spp_g8.cpp | 6 ++++- > > > > + IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp | 8 +++++++ > > > > + IGC/AdaptorOCL/SPIRV/SPIRVUtil.cpp | 8 +++++++ > > > > + IGC/Compiler/GenTTI.cpp | 4 ++++ > > > > + IGC/Compiler/GenTTI.h | 4 ++++ > > > > + IGC/Compiler/Optimizer/BuiltInFuncImport.cpp | 4 ++++ > > > > + IGC/Compiler/Optimizer/CodeAssumption.cpp | 5 ++++ > > > > + .../AddressSpaceAliasAnalysis.cpp | 23 > > > > +++++++++++++++++++ > > > > + .../PrivateMemory/PrivateMemoryResolution.cpp | 3 +++ > > > > + IGC/DebugInfo/DwarfDebug.cpp | 8 +++++++ > > > > + IGC/DebugInfo/StreamEmitter.cpp | 14 ++++++++++- > > > > + IGC/ElfPackager/main.cpp | 4 ++++ > > > > + .../BuiltinsFrontendDefinitions.hpp | 2 +- > > > > + .../lib/GenXCodeGen/GenXTargetMachine.h | 4 ++++ > > > > + .../include/llvmWrapper/Transforms/Scalar.h | 2 +- > > > > + IGC/common/LLVMUtils.cpp | 12 ++++++++++ > > > > + visa/iga/IGALibrary/IR/BitSet.hpp | 2 ++ > > > > + 18 files changed, 113 insertions(+), 4 deletions(-) > > > > + > > > > +diff --git a/IGC/AdaptorCommon/LegalizeFunctionSignatures.cpp > > > > +b/IGC/AdaptorCommon/LegalizeFunctionSignatures.cpp > > > > +index ee43be301..395f26c91 100644 > > > > +--- a/IGC/AdaptorCommon/LegalizeFunctionSignatures.cpp > > > > ++++ b/IGC/AdaptorCommon/LegalizeFunctionSignatures.cpp > > > > +@@ -377,7 +377,11 @@ void > > > > LegalizeFunctionSignatures::FixFunctionBody(Module& M) > > > > + } > > > > + > > > > + // Clone the old function body into the new > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ CloneFunctionInto(pNewFunc, pFunc, VMap, > > > > ++CloneFunctionChangeType::DifferentModule, Returns); #else > > > > + CloneFunctionInto(pNewFunc, pFunc, VMap, true, > > > > Returns); > > > > ++#endif > > > > + > > > > + // Merge the BB for when extra instructions were > > > > created > > > > + BasicBlock* ClonedEntryBB = > > > > +cast<BasicBlock>(VMap[&*pFunc->begin()]); > > > > +diff --git a/IGC/AdaptorOCL/OCL/sp/spp_g8.cpp > > > > +b/IGC/AdaptorOCL/OCL/sp/spp_g8.cpp > > > > +index 6f7c711bc..8d8c4e50d 100644 > > > > +--- a/IGC/AdaptorOCL/OCL/sp/spp_g8.cpp > > > > ++++ b/IGC/AdaptorOCL/OCL/sp/spp_g8.cpp > > > > +@@ -387,7 +387,11 @@ bool createElfFileName(std::string &name, > > > > unsigned int > > > > maxNameLen, SIMDMode simd > > > > + unsigned int mode = sys::fs::perms::all_read | > > > > sys::fs::perms::all_write; > > > > + // Every '%' will be replaced with a random character > > > > (0-9 or a-f), taking > > > > care of > > > > multithreaded compilations > > > > + if (std::error_code EC = sys::fs::createUniqueFile( > > > > +- uniqueLockFileName, uniqueLockFileID, > > > > resultUniqueLockFileName, > > > > mode)) > > > > ++ uniqueLockFileName, uniqueLockFileID, > > > > ++resultUniqueLockFileName, #if LLVM_VERSION_MAJOR >= 13 > > > > ++ llvm::sys::fs::OF_None, > > > > ++#endif > > > > ++ mode)) > > > > + { > > > > + IGC_ASSERT_MESSAGE(false, "A uniquely named file > > > > not created"); > > > > + retValue = false; > > > > +diff --git a/IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp > > > > +b/IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp > > > > +index 65e672afe..f28136a6a 100644 > > > > +--- a/IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp > > > > ++++ b/IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp > > > > +@@ -97,7 +97,11 @@ isOpenCLKernel(SPIRVFunction *BF) { > > > > __attr_unused > > > > +static void dumpLLVM(Module *M, const std::string &FName) { > > > > + std::error_code EC; > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ raw_fd_ostream FS(FName, EC, sys::fs::OF_None); #else > > > > + raw_fd_ostream FS(FName, EC, sys::fs::F_None); > > > > ++#endif > > > > + if (!FS.has_error()) { > > > > + FS << *M; > > > > + } > > > > +@@ -2413,7 +2417,11 @@ > > > > SPIRVToLLVM::postProcessFunctionsReturnStruct(Function *F) { > > > > + NewArgIt->setName(OldArgIt->getName()); > > > > + VMap[&*OldArgIt] = &*NewArgIt; > > > > + } > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ CloneFunctionInto(NewF, F, VMap, > > > > ++CloneFunctionChangeType::DifferentModule, Returns); #else > > > > + CloneFunctionInto(NewF, F, VMap, true, Returns); > > > > ++#endif > > > > + auto DL = M->getDataLayout(); > > > > + const auto ptrSize = DL.getPointerSize(); > > > > + > > > > +diff --git a/IGC/AdaptorOCL/SPIRV/SPIRVUtil.cpp > > > > +b/IGC/AdaptorOCL/SPIRV/SPIRVUtil.cpp > > > > +index ecb045b88..0a0893e4a 100644 > > > > +--- a/IGC/AdaptorOCL/SPIRV/SPIRVUtil.cpp > > > > ++++ b/IGC/AdaptorOCL/SPIRV/SPIRVUtil.cpp > > > > +@@ -67,7 +67,11 @@ namespace igc_spv{ > > > > + void > > > > + saveLLVMModule(Module *M, const std::string &OutputFile) { > > > > + std::error_code EC; > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ llvm::ToolOutputFile Out(OutputFile.c_str(), EC, > > > > sys::fs::OF_None); > > > > ++#else > > > > + llvm::ToolOutputFile Out(OutputFile.c_str(), EC, > > > > sys::fs::F_None); > > > > ++#endif > > > > + IGC_ASSERT_EXIT_MESSAGE((!EC), "Failed to open file"); > > > > + IGCLLVM::WriteBitcodeToFile(M, Out.os()); > > > > + Out.keep(); > > > > +@@ -326,7 +330,11 @@ mutateCallInst(Module *M, CallInst *CI, > > > > + } > > > > + } > > > > + > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ CloneFunctionInto(NewF, OldF, VMap, > > > > ++CloneFunctionChangeType::DifferentModule, Returns); #else > > > > + CloneFunctionInto(NewF, OldF, VMap, true, Returns); > > > > ++#endif > > > > + > > > > + // Merge the basic block with Load instruction with the > > > > original entry basic block. > > > > + BasicBlock* ClonedEntryBB = > > > > +cast<BasicBlock>(VMap[&*OldF->begin()]); > > > > +diff --git a/IGC/Compiler/GenTTI.cpp b/IGC/Compiler/GenTTI.cpp > > > > index > > > > +8a74ec287..23c9bc6ed 100644 > > > > +--- a/IGC/Compiler/GenTTI.cpp > > > > ++++ b/IGC/Compiler/GenTTI.cpp > > > > +@@ -461,7 +461,11 @@ namespace llvm { > > > > + // [LLVM-UPGRADE] moved from getCallCost to getUserCost > > > > + // > > > > + > > > > https://github.com/llvm/llvm-project/commit/2641a19981e71c887bece92074e > > > > +00d1af3e716c9#diff-dd4bd65dc55d754674d9a945a0d22911 > > > > + > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ InstructionCost GenIntrinsicsTTIImpl::getUserCost(const User > > > > *U, > > > > ++ArrayRef<const Value *> Operands, TTI::TargetCostKind CostKind) > > > > #else > > > > + int GenIntrinsicsTTIImpl::getUserCost(const User *U, > > > > ArrayRef<const > > > > + Value *> Operands, TTI::TargetCostKind CostKind) > > > > ++#endif > > > > + { > > > > + const Function* F = dyn_cast<Function>(U); > > > > + if(F != nullptr) > > > > +diff --git a/IGC/Compiler/GenTTI.h b/IGC/Compiler/GenTTI.h index > > > > +bab1a5c4a..0b3bf4541 100644 > > > > +--- a/IGC/Compiler/GenTTI.h > > > > ++++ b/IGC/Compiler/GenTTI.h > > > > +@@ -71,8 +71,12 @@ namespace llvm > > > > + , const User * U > > > > + #endif > > > > + ); > > > > ++#else > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ InstructionCost getUserCost(const User *U, > > > > ArrayRef<const Value > > > > ++*> Operands, > > > > + #else > > > > + int getUserCost(const User *U, ArrayRef<const Value *> > > > > + Operands, > > > > ++#endif > > > > + TTI::TargetCostKind CostKind); #endif > > > > + > > > > +diff --git a/IGC/Compiler/Optimizer/BuiltInFuncImport.cpp > > > > +b/IGC/Compiler/Optimizer/BuiltInFuncImport.cpp > > > > +index e7995ebb4..035bfba85 100644 > > > > +--- a/IGC/Compiler/Optimizer/BuiltInFuncImport.cpp > > > > ++++ b/IGC/Compiler/Optimizer/BuiltInFuncImport.cpp > > > > +@@ -880,7 +880,11 @@ void > > > > BIImport::removeFunctionBitcasts(Module& M) > > > > + pDstFunc, > > > > + funcTobeChanged, > > > > + operandMap, > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ > > > > ++CloneFunctionChangeType::LocalChangesOnly, > > > > ++#else > > > > + false, > > > > ++#endif > > > > + Returns, > > > > + ""); > > > > + > > > > +diff --git a/IGC/Compiler/Optimizer/CodeAssumption.cpp > > > > +b/IGC/Compiler/Optimizer/CodeAssumption.cpp > > > > +index e7208a5fa..3ee9bddca 100644 > > > > +--- a/IGC/Compiler/Optimizer/CodeAssumption.cpp > > > > ++++ b/IGC/Compiler/Optimizer/CodeAssumption.cpp > > > > +@@ -272,7 +272,12 @@ bool > > > > CodeAssumption::addAssumption(Function* F, > > > > AssumptionCache* AC) > > > > + // Register assumption > > > > + if (AC) > > > > + { > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ if (auto *aI = > > > > dyn_cast<AssumeInst>(assumeInst)) > > > > ++ AC->registerAssumption(aI); #else > > > > + AC->registerAssumption(assumeInst); > > > > ++#endif > > > > + } > > > > + > > > > + assumptionAdded[PN] = 1; diff --git > > > > +a/IGC/Compiler/Optimizer/OpenCLPasses/AddressSpaceAliasAnalysis/ > > > > Address > > > > +SpaceAliasAnalysis.cpp > > > > +b/IGC/Compiler/Optimizer/OpenCLPasses/AddressSpaceAliasAnalysis/ > > > > Address > > > > +SpaceAliasAnalysis.cpp > > > > +index a2b5927ea..1516e40e8 100644 > > > > +--- > > > > +a/IGC/Compiler/Optimizer/OpenCLPasses/AddressSpaceAliasAnalysis/ > > > > Address > > > > +SpaceAliasAnalysis.cpp > > > > ++++ > > > > b/IGC/Compiler/Optimizer/OpenCLPasses/AddressSpaceAliasAnalysis/A > > > > dd > > > > ++++ ressSpaceAliasAnalysis.cpp > > > > +@@ -7,6 +7,9 @@ SPDX-License-Identifier: MIT > > > > +============================= end_copyright_notice > > > > +===========================*/ > > > > + > > > > + #include "llvm/Config/llvm-config.h" > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++#include <llvm/Analysis/AliasAnalysis.h> #endif > > > > + #include <llvm/Analysis/TargetLibraryInfo.h> > > > > + #include > > > > "Compiler/Optimizer/OpenCLPasses/AddressSpaceAliasAnalysis/Addres > > > > sSpaceAliasA > > > > nalysis.h" > > > > + #include "Compiler/CodeGenPublic.h" > > > > +@@ -45,7 +48,11 @@ namespace { > > > > + PointerType* PtrTy2 = > > > > +dyn_cast<PointerType>(LocB.Ptr->getType()); > > > > + > > > > + if (!PtrTy1 || !PtrTy2) > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ return AliasResult::Kind::NoAlias; #else > > > > + return NoAlias; > > > > ++#endif > > > > + > > > > + unsigned AS1 = PtrTy1->getAddressSpace(); > > > > + unsigned AS2 = PtrTy2->getAddressSpace(); @@ -62,21 > > > > +69,33 > > > > +@@ namespace { > > > > + AS1 != ADDRESS_SPACE_GENERIC && > > > > + AS2 != ADDRESS_SPACE_GENERIC && > > > > + AS1 != AS2) > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ return AliasResult::Kind::NoAlias; #else > > > > + return NoAlias; > > > > ++#endif > > > > + > > > > + > > > > + // Shared local memory doesn't alias any statefull > > > > memory. > > > > + if ((AS1 == ADDRESS_SPACE_LOCAL && AS2 > > > > > ADDRESS_SPACE_NUM_ADDRESSES) || > > > > + (AS1 > ADDRESS_SPACE_NUM_ADDRESSES && AS2 == > > > > ADDRESS_SPACE_LOCAL)) > > > > + { > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ return AliasResult::Kind::NoAlias; #else > > > > + return NoAlias; > > > > ++#endif > > > > + } > > > > + > > > > + // Private memory doesn't alias any stateful memory > > > > + if ((AS1 == ADDRESS_SPACE_PRIVATE && AS2 > > > > > ADDRESS_SPACE_NUM_ADDRESSES) || > > > > + (AS1 > ADDRESS_SPACE_NUM_ADDRESSES && AS2 == > > > > ADDRESS_SPACE_PRIVATE)) > > > > + { > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ return AliasResult::Kind::NoAlias; #else > > > > + return NoAlias; > > > > ++#endif > > > > + } > > > > + > > > > + > > > > +@@ -108,7 +127,11 @@ namespace { > > > > + if ((resourceType[0] != resourceType[1]) || > > > > // different resource > > > > types > > > > + (isDirectAccess[0] && isDirectAccess[1] > > > > && resourceIndex[0] != > > > > resourceIndex[1])) // direct access to different BTIs > > > > + { > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ return AliasResult::Kind::NoAlias; > > > > #else > > > > + return NoAlias; > > > > ++#endif > > > > + } > > > > + } > > > > + } > > > > +diff --git > > > > +a/IGC/Compiler/Optimizer/OpenCLPasses/PrivateMemory/PrivateMemor > > > > yResolu > > > > +tion.cpp > > > > +b/IGC/Compiler/Optimizer/OpenCLPasses/PrivateMemory/PrivateMemor > > > > yResolu > > > > +tion.cpp > > > > +index 48c7e8637..8b9618284 100644 > > > > +--- > > > > +a/IGC/Compiler/Optimizer/OpenCLPasses/PrivateMemory/PrivateMemor > > > > yResolu > > > > +tion.cpp > > > > ++++ > > > > b/IGC/Compiler/Optimizer/OpenCLPasses/PrivateMemory/PrivateMemory > > > > Re > > > > ++++ solution.cpp > > > > +@@ -17,6 +17,9 @@ SPDX-License-Identifier: MIT #include > > > > +"llvmWrapper/IR/DerivedTypes.h" > > > > + #include "llvm/Transforms/Utils/Local.h" > > > > + #include "llvm/IR/DataLayout.h" > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++#include "llvm/IR/DebugInfo.h" > > > > ++#endif > > > > + #include "llvm/IR/DebugInfoMetadata.h" > > > > + #include "llvm/IR/Dominators.h" > > > > + #include "common/LLVMWarningsPop.hpp" > > > > +diff --git a/IGC/DebugInfo/DwarfDebug.cpp > > > > +b/IGC/DebugInfo/DwarfDebug.cpp index f57dd72cb..d984fe86f 100644 > > > > +--- a/IGC/DebugInfo/DwarfDebug.cpp > > > > ++++ b/IGC/DebugInfo/DwarfDebug.cpp > > > > +@@ -857,9 +857,17 @@ CompileUnit* > > > > DwarfDebug::constructCompileUnit(DICompileUnit* DIUnit) > > > > + { > > > > + std::string str; > > > > + str = "Intel OpenCL "; > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ str += > > > > ++toString(op1->getValue()->getUniqueInteger(), 10, false); #else > > > > + str += > > > > + op1->getValue()->getUniqueInteger().toString(10, false); > > > > ++#endif > > > > + str += "."; > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ str += > > > > ++toString(op2->getValue()->getUniqueInteger(), 10, false); #else > > > > + str += > > > > + op2->getValue()->getUniqueInteger().toString(10, false); > > > > ++#endif > > > > + > > > > + NewCU->addString(Die, > > > > dwarf::DW_AT_description, > > > > llvm::StringRef(str)); > > > > + } > > > > +diff --git a/IGC/DebugInfo/StreamEmitter.cpp > > > > +b/IGC/DebugInfo/StreamEmitter.cpp index a38a445d5..e9a5b6279 > > > > 100644 > > > > +--- a/IGC/DebugInfo/StreamEmitter.cpp > > > > ++++ b/IGC/DebugInfo/StreamEmitter.cpp > > > > +@@ -391,11 +391,23 @@ > > > > StreamEmitter::StreamEmitter(raw_pwrite_stream& > > > > +outStream, > > > > + > > > > + MCRegisterInfo* regInfo = nullptr; > > > > + > > > > ++ Triple triple = Triple(GetTargetTriple()); > > > > ++ > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ // Create new MC context > > > > ++ m_pContext = new MCContext(Triple(GetTargetTriple()), > > > > ++ (const > > > > llvm::MCAsmInfo*)m_pAsmInfo, regInfo, > > > > ++ /*MSTI=*/(const > > > > llvm::MCSubtargetInfo > > > > ++*)nullptr, m_pSrcMgr); > > > > ++ > > > > ++ m_pObjFileInfo->initMCObjectFileInfo(*m_pContext, false); > > > > ++ > > > > ++ m_pContext->setObjectFileInfo(m_pObjFileInfo); > > > > ++#else > > > > + // Create new MC context > > > > + m_pContext = new MCContext((const > > > > llvm::MCAsmInfo*)m_pAsmInfo, > > > > + regInfo, m_pObjFileInfo, m_pSrcMgr); > > > > + > > > > +- Triple triple = Triple(GetTargetTriple()); > > > > + m_pObjFileInfo- > > > > >InitMCObjectFileInfo(Triple(GetTargetTriple()), > > > > +false, *m_pContext); > > > > ++#endif > > > > + > > > > + bool is64Bit = GetPointerSize() == 8; > > > > + uint8_t osABI = > > > > MCELFObjectTargetWriter::getOSABI(triple.getOS()); > > > > +diff --git a/IGC/ElfPackager/main.cpp b/IGC/ElfPackager/main.cpp > > > > index > > > > +38a5001c1..5f4d87d96 100644 > > > > +--- a/IGC/ElfPackager/main.cpp > > > > ++++ b/IGC/ElfPackager/main.cpp > > > > +@@ -177,7 +177,11 @@ std::unique_ptr<IGCLLVM::Module> > > > > LocalCloneModule( > > > > + } > > > > + > > > > + SmallVector<ReturnInst*, 8> Returns; // Ignore > > > > returns cloned. > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ CloneFunctionInto(F, &*I, VMap, > > > > ++CloneFunctionChangeType::DifferentModule, Returns); #else > > > > + CloneFunctionInto(F, &*I, VMap, > > > > + /*ModuleLevelChanges=*/true, Returns); > > > > ++#endif > > > > + } > > > > + > > > > + if (I->hasPersonalityFn()) > > > > +diff --git a/IGC/LLVM3DBuilder/BuiltinsFrontendDefinitions.hpp > > > > +b/IGC/LLVM3DBuilder/BuiltinsFrontendDefinitions.hpp > > > > +index b5f66f048..568b42c07 100644 > > > > +--- a/IGC/LLVM3DBuilder/BuiltinsFrontendDefinitions.hpp > > > > ++++ b/IGC/LLVM3DBuilder/BuiltinsFrontendDefinitions.hpp > > > > +@@ -5028,7 +5028,7 @@ llvm::Value* LLVM3DBuilder<preserveNames, > > > > T, > > > > Inserter>::ScalarsToVector( > > > > + IGC_ASSERT(nullptr != resultType); > > > > + llvm::Value* result = llvm::UndefValue::get(resultType); > > > > + > > > > +- for (unsigned i = 0; i < > > > > llvm::cast<llvm::VectorType>(resultType)- > > > > > getNumElements(); i++) > > > > ++ for (unsigned i = 0; i < > > > > ++ llvm::cast<IGCLLVM::FixedVectorType>(resultType)- > > > > >getNumElements(); > > > > ++ i++) > > > > + { > > > > + IGC_ASSERT(nullptr != scalars[i]); > > > > + > > > > +IGC_ASSERT(llvm::cast<llvm::VectorType>(resultType)- > > > > >getElementType() > > > > +== scalars[i]->getType()); diff --git > > > > +a/IGC/VectorCompiler/lib/GenXCodeGen/GenXTargetMachine.h > > > > +b/IGC/VectorCompiler/lib/GenXCodeGen/GenXTargetMachine.h > > > > +index f90bc1bc0..8ce06e93f 100644 > > > > +--- a/IGC/VectorCompiler/lib/GenXCodeGen/GenXTargetMachine.h > > > > ++++ b/IGC/VectorCompiler/lib/GenXCodeGen/GenXTargetMachine.h > > > > +@@ -97,7 +97,11 @@ public: > > > > + bool shouldBuildLookupTables() { return false; } > > > > + unsigned getFlatAddressSpace() { return 4; } > > > > + > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ InstructionCost getUserCost(const User *U, ArrayRef<const > > > > Value *> > > > > ++Operands #else > > > > + int getUserCost(const User *U, ArrayRef<const Value *> > > > > Operands > > > > ++#endif > > > > + #if LLVM_VERSION_MAJOR >= 11 > > > > + , > > > > + TTI::TargetCostKind CostKind diff --git > > > > +a/IGC/WrapperLLVM/include/llvmWrapper/Transforms/Scalar.h > > > > +b/IGC/WrapperLLVM/include/llvmWrapper/Transforms/Scalar.h > > > > +index 1df041372..022141d15 100644 > > > > +--- a/IGC/WrapperLLVM/include/llvmWrapper/Transforms/Scalar.h > > > > ++++ b/IGC/WrapperLLVM/include/llvmWrapper/Transforms/Scalar.h > > > > +@@ -26,7 +26,7 @@ namespace IGCLLVM > > > > + { > > > > + return llvm::createLoopUnrollPass(OptLevel, false, > > > > Threshold, Count, > > > > AllowPartial, Runtime, UpperBound, AllowPeeling); > > > > + } > > > > +-#elif LLVM_VERSION_MAJOR >= 9 && LLVM_VERSION_MAJOR <= 12 > > > > ++#elif LLVM_VERSION_MAJOR >= 9 && LLVM_VERSION_MAJOR <= 13 > > > > + inline static llvm::Pass * createLoopUnrollPass( > > > > + int OptLevel = 2, int Threshold = -1, int Count = -1, > > > > + int AllowPartial = -1, int Runtime = -1, diff --git > > > > +a/IGC/common/LLVMUtils.cpp b/IGC/common/LLVMUtils.cpp index > > > > +ed2cfc413..ae9df5d63 100644 > > > > +--- a/IGC/common/LLVMUtils.cpp > > > > ++++ b/IGC/common/LLVMUtils.cpp > > > > +@@ -132,7 +132,11 @@ bool IGCPassManager::isInList(const > > > > StringRef& N, const > > > > StringRef& List) const > > > > + size_t endPos = List.find_first_of(Separators, > > > > startPos); > > > > + size_t len = (endPos != StringRef::npos ? endPos - > > > > startPos : endPos); > > > > + StringRef Name = List.substr(startPos, len); > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ if (Name.equals_insensitive(N)) #else > > > > + if (Name.equals_lower(N)) > > > > ++#endif > > > > + { > > > > + return true; > > > > + } > > > > +@@ -149,7 +153,11 @@ bool IGCPassManager::isPrintBefore(Pass* P) > > > > + // or pass command args > > > > registered in passInfo. > > > > + StringRef > > > > passNameList(IGC_GET_REGKEYSTRING(PrintBefore)); > > > > + StringRef PN = P->getPassName(); > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ if (passNameList.equals_insensitive("all") || > > > > isInList(PN, > > > > ++passNameList)) #else > > > > + if (passNameList.equals_lower("all") || isInList(PN, > > > > + passNameList)) > > > > ++#endif > > > > + return true; > > > > + > > > > + // further check passInfo > > > > +@@ -173,7 +181,11 @@ bool IGCPassManager::isPrintAfter(Pass* P) > > > > + // or pass command args > > > > registered in passInfo. > > > > + StringRef > > > > passNameList(IGC_GET_REGKEYSTRING(PrintAfter)); > > > > + StringRef PN = P->getPassName(); > > > > ++#if LLVM_VERSION_MAJOR >= 13 > > > > ++ if (passNameList.equals_insensitive("all") || > > > > isInList(PN, > > > > ++passNameList)) #else > > > > + if (passNameList.equals_lower("all") || isInList(PN, > > > > + passNameList)) > > > > ++#endif > > > > + return true; > > > > + > > > > + // further check passInfo > > > > +diff --git a/visa/iga/IGALibrary/IR/BitSet.hpp > > > > +b/visa/iga/IGALibrary/IR/BitSet.hpp > > > > +index 43b0d3f92..c6cdd430a 100644 > > > > +--- a/visa/iga/IGALibrary/IR/BitSet.hpp > > > > ++++ b/visa/iga/IGALibrary/IR/BitSet.hpp > > > > +@@ -12,6 +12,8 @@ SPDX-License-Identifier: MIT #include > > > > +"../asserts.hpp" > > > > + #include "common/secure_mem.h" > > > > + > > > > ++#include <stdexcept> > > > > ++#include <limits> > > > > + #include <algorithm> > > > > + #include <bitset> > > > > + #include <cstdint> > > > > +-- > > > > +2.31.1 > > > > + > > > > diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/intel- > > > > graphics- > > > > compiler_1.0.8365.bb b/dynamic-layers/clang-layer/recipes- > > > > opencl/igc/intel-graphics- > > > > compiler_1.0.8365.bb > > > > index 153f4bb4..8d557b07 100644 > > > > --- a/dynamic-layers/clang-layer/recipes-opencl/igc/intel- > > > > graphics- > > > > compiler_1.0.8365.bb > > > > +++ b/dynamic-layers/clang-layer/recipes-opencl/igc/intel- > > > > graphics-compi > > > > +++ ler_1.0.8365.bb > > > > @@ -14,6 +14,7 @@ SRC_URI = "git://github.com/intel/intel- > > > > graphics- > > > > compiler.git;protocol=https; \ > > > > > > > > file://0003-Improve-Reproducibility-for-src-package.patch \ > > > > file://0004-find-external-llvm-tblgen.patch \ > > > > > > > > file://0005-Temporary-LLVM-12-compatiblity-fix.patch \ > > > > + file://0001-LLVM-13-fixes.patch \ > > > > " > > > > > > > > SRCREV = "5d5672d6cc0c415dae76648390026f777004bd99" > > > > @@ -25,6 +26,8 @@ S = "${WORKDIR}/git" > > > > > > > > inherit cmake > > > > > > > > +CXXFLAGS:append = " -Wno-error=deprecated-declarations" > > > > + > > > > COMPATIBLE_HOST = '(x86_64).*-linux' > > > > COMPATIBLE_HOST:libc-musl = "null" > > > > > > > > -- > > > > 2.31.1 > > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#7236): https://lists.yoctoproject.org/g/meta-intel/message/7236 Mute This Topic: https://lists.yoctoproject.org/mt/85180959/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/meta-intel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
