summaryrefslogtreecommitdiff
path: root/dev-util/intel-graphics-compiler/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-07-09 15:43:36 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-07-09 15:43:36 +0100
commit2719f73b6813d11d13a9650cdd2ab8ec6e69385d (patch)
tree8c816148bcbd22757d892089c989ae614eae4f5a /dev-util/intel-graphics-compiler/files
parent0f558761aa2dee1017b4751e4017205e015a9560 (diff)
gentoo resync : 09.07.2022
Diffstat (limited to 'dev-util/intel-graphics-compiler/files')
-rw-r--r--dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.11485-fix-BiF-caching.patch49
-rw-r--r--dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.11485-include-opencl-c.patch11
-rw-r--r--dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.11485-update-raytracing-llvm14.patch186
-rw-r--r--dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.11485-wrap-getNumArgOperands.patch24
4 files changed, 270 insertions, 0 deletions
diff --git a/dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.11485-fix-BiF-caching.patch b/dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.11485-fix-BiF-caching.patch
new file mode 100644
index 000000000000..7ad261e0aa6c
--- /dev/null
+++ b/dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.11485-fix-BiF-caching.patch
@@ -0,0 +1,49 @@
+From 12c99343388eba6e6275856b25e0fa8978585dfb Mon Sep 17 00:00:00 2001
+From: Marcin Naczk <marcin.naczk@intel.com>
+Date: Mon, 13 Jun 2022 08:28:24 +0000
+Subject: [PATCH] Find OpenCl-c.h when clang is take from system.
+
+Find OpenCl-c.h when clang is take from system.
+---
+ IGC/cmake/igc_find_opencl_clang.cmake | 24 +++++++++++++++---------
+ 1 file changed, 15 insertions(+), 9 deletions(-)
+
+diff --git a/IGC/cmake/igc_find_opencl_clang.cmake b/IGC/cmake/igc_find_opencl_clang.cmake
+index dc8924fb7ee..0a54ac68249 100644
+--- a/IGC/cmake/igc_find_opencl_clang.cmake
++++ b/IGC/cmake/igc_find_opencl_clang.cmake
+@@ -94,19 +94,25 @@ if(CCLANG_FROM_SYSTEM)
+ else()
+ set_property(TARGET opencl-clang-lib PROPERTY "IMPORTED_LOCATION" "${SYSTEM_COMMON_CLANG}")
+ endif()
+- find_program(CLANG_GE7 clang-${LLVM_VERSION_MAJOR})
+- if(CLANG_GE7)
+- message(STATUS "[IGC] Found clang-${LLVM_VERSION_MAJOR} executable: ${CLANG_GE7}")
++ find_program(CLANG_EXE clang-${LLVM_VERSION_MAJOR})
++ if(CLANG_EXE)
++ message(STATUS "[IGC] Found clang-${LLVM_VERSION_MAJOR} executable: ${CLANG_EXE}")
+
+ add_executable(clang-tool IMPORTED GLOBAL)
+- set_property(TARGET clang-tool PROPERTY "IMPORTED_LOCATION" "${CLANG_GE7}")
++ set_property(TARGET clang-tool PROPERTY "IMPORTED_LOCATION" "${CLANG_EXE}")
+ set(CL_OPTIONS "-finclude-default-header")
+- if(LLVM_VERSION_MAJOR VERSION_EQUAL 7)
+- message(WARNING "[IGC] : clang-7 should be patched with VME patch (https://reviews.llvm.org/D51484). Assuming that it is. If not, please add -DVME_TYPES_DEFINED=FALSE.")
+- endif()
+- else(CLANG_GE7)
++
++ # Get parent dir of the location of CLANG_EXE
++ get_filename_component(CLANG_EXE_PARENT_DIR ${CLANG_EXE} DIRECTORY)
++ file(GLOB_RECURSE opencl-header ${CLANG_EXE_PARENT_DIR}/../*opencl-c.h)
++ if(opencl-header)
++ message(STATUS "[IGC] Found opencl-c.h: ${opencl-header}")
++ else(opencl-header)
++ message(FATAL_ERROR "[IGC] : Couldn't find opencl-c.h, please provide it.")
++ endif(opencl-header)
++ else(CLANG_EXE)
+ message(FATAL_ERROR "[IGC] : Couldn't find clang-${LLVM_VERSION_MAJOR} executable, please install it.")
+- endif(CLANG_GE7)
++ endif(CLANG_EXE)
+ ###
+ #2. CCLANG_BUILD_PREBUILDS - use prebuilt opencl-clang toolchain
+ elseif(${CCLANG_BUILD_PREBUILDS})
diff --git a/dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.11485-include-opencl-c.patch b/dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.11485-include-opencl-c.patch
new file mode 100644
index 000000000000..dbf4188ad0bc
--- /dev/null
+++ b/dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.11485-include-opencl-c.patch
@@ -0,0 +1,11 @@
+--- a/IGC/cmake/igc_find_opencl_clang.cmake
++++ b/IGC/cmake/igc_find_opencl_clang.cmake
+@@ -104,7 +104,7 @@
+
+ # Get parent dir of the location of CLANG_EXE
+ get_filename_component(CLANG_EXE_PARENT_DIR ${CLANG_EXE} DIRECTORY)
+- file(GLOB_RECURSE opencl-header ${CLANG_EXE_PARENT_DIR}/../*opencl-c.h)
++ file(GLOB_RECURSE opencl-header ${CCLANG_INCLUDE_PREBUILDS_DIR}/*opencl-c.h)
+ if(opencl-header)
+ message(STATUS "[IGC] Found opencl-c.h: ${opencl-header}")
+ else(opencl-header)
diff --git a/dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.11485-update-raytracing-llvm14.patch b/dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.11485-update-raytracing-llvm14.patch
new file mode 100644
index 000000000000..248f8244e32f
--- /dev/null
+++ b/dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.11485-update-raytracing-llvm14.patch
@@ -0,0 +1,186 @@
+From d9535cc5c3e54b21d56c492d4e21cb13c80b9b7a Mon Sep 17 00:00:00 2001
+From: Artem Gindinson <artem.gindinson@intel.com>
+Date: Wed, 22 Jun 2022 11:53:02 +0000
+Subject: [PATCH] Update RayTracing for full LLVM 14 buildability
+
+- Address further casting issues
+- Use pre-existing LLVM wrappers for function argument manipulations
+- Create & use LLVM wrappers for `AAQueryInfo` and
+ `CallBase::getRetDereferenceableBytes()`
+---
+ IGC/AdaptorCommon/RayTracing/AllocaTracking.cpp | 3 ++-
+ IGC/AdaptorCommon/RayTracing/InlineDataPass.cpp | 3 ++-
+ IGC/AdaptorCommon/RayTracing/LowerIntersectionAnyHit.cpp | 2 +-
+ IGC/AdaptorCommon/RayTracing/RTSpillShrinkPass.cpp | 4 ++--
+ IGC/AdaptorCommon/RayTracing/RayTracingFinalizePass.cpp | 4 ++--
+ IGC/AdaptorCommon/RayTracing/StackIDSchedulingPass.cpp | 3 ++-
+ IGC/AdaptorCommon/TypesLegalizationPass.cpp | 2 +-
+ .../include/llvmWrapper/Analysis/AliasAnalysis.h | 7 +++++++
+ IGC/WrapperLLVM/include/llvmWrapper/IR/InstrTypes.h | 9 +++++++++
+ 9 files changed, 28 insertions(+), 9 deletions(-)
+
+diff --git a/IGC/AdaptorCommon/RayTracing/AllocaTracking.cpp b/IGC/AdaptorCommon/RayTracing/AllocaTracking.cpp
+index b5ad27e32ca..67cf302495c 100644
+--- a/IGC/AdaptorCommon/RayTracing/AllocaTracking.cpp
++++ b/IGC/AdaptorCommon/RayTracing/AllocaTracking.cpp
+@@ -19,6 +19,7 @@ SPDX-License-Identifier: MIT
+ #include "common/LLVMWarningsPush.hpp"
+ #include <llvm/IR/Instruction.h>
+ #include <llvm/IR/IntrinsicInst.h>
++#include <llvmWrapper/IR/Instructions.h>
+ #include "common/LLVMWarningsPop.hpp"
+
+ using namespace llvm;
+@@ -129,7 +130,7 @@ void rewriteTypes(
+ "Only handles void right now!");
+
+ SmallVector<Type*, 4> Tys;
+- for (auto &Op : II->arg_operands())
++ for (auto &Op : IGCLLVM::args(II))
+ Tys.push_back(Op->getType());
+
+ auto* NewFTy = FunctionType::get(
+diff --git a/IGC/AdaptorCommon/RayTracing/InlineDataPass.cpp b/IGC/AdaptorCommon/RayTracing/InlineDataPass.cpp
+index 5e4df4e1a86..9433340d259 100644
+--- a/IGC/AdaptorCommon/RayTracing/InlineDataPass.cpp
++++ b/IGC/AdaptorCommon/RayTracing/InlineDataPass.cpp
+@@ -46,6 +46,7 @@ SPDX-License-Identifier: MIT
+ #include <vector>
+ #include "common/LLVMWarningsPush.hpp"
+ #include <llvm/IR/InstIterator.h>
++#include <llvmWrapper/IR/InstrTypes.h>
+ #include "common/LLVMWarningsPop.hpp"
+
+ using namespace llvm;
+@@ -155,7 +156,7 @@ bool BindlessInlineDataPass::runOnModule(Module &M)
+ // the size of the Shader Identifier + the size of the Local arguments
+ const uint64_t dereferenceable_size =
+ sizeof(ShaderIdentifier) +
+- local_buffer_ptr->getDereferenceableBytes(AttributeList::ReturnIndex);
++ IGCLLVM::getRetDereferenceableBytes(local_buffer_ptr);
+
+ // Return a CallInst* representing the InlinedData intrinsic call
+ // In the shader dumps,
+diff --git a/IGC/AdaptorCommon/RayTracing/LowerIntersectionAnyHit.cpp b/IGC/AdaptorCommon/RayTracing/LowerIntersectionAnyHit.cpp
+index 8b6bba69f23..2c3a98d04e3 100644
+--- a/IGC/AdaptorCommon/RayTracing/LowerIntersectionAnyHit.cpp
++++ b/IGC/AdaptorCommon/RayTracing/LowerIntersectionAnyHit.cpp
+@@ -449,7 +449,7 @@ CallInst* LowerIntersectionAnyHit::codeGenReportHit(
+ CustomHitAttrPtr,
+ 4,
+ Attrs,
+- std::min(4U, DL.getABITypeAlignment(AttrTy->getPointerElementType())),
++ std::min(4U, (unsigned)DL.getABITypeAlignment(AttrTy->getPointerElementType())),
+ IRB.getInt64(DL.getTypeAllocSize(AttrTy->getPointerElementType())));
+ }
+
+diff --git a/IGC/AdaptorCommon/RayTracing/RTSpillShrinkPass.cpp b/IGC/AdaptorCommon/RayTracing/RTSpillShrinkPass.cpp
+index 4d42b32af36..d8d7ac3c54f 100644
+--- a/IGC/AdaptorCommon/RayTracing/RTSpillShrinkPass.cpp
++++ b/IGC/AdaptorCommon/RayTracing/RTSpillShrinkPass.cpp
+@@ -61,9 +61,9 @@ class RTSpillShrinkPass : public FunctionPass
+
+ unsigned getAlignment(const DataLayout& DL, StoreInst* ST) const
+ {
+- unsigned Align = ST->getAlignment();
++ unsigned Align = (unsigned)ST->getAlignment();
+ if (Align == 0)
+- Align = DL.getABITypeAlignment(ST->getType());
++ Align = (unsigned)DL.getABITypeAlignment(ST->getType());
+ return Align;
+ }
+
+diff --git a/IGC/AdaptorCommon/RayTracing/RayTracingFinalizePass.cpp b/IGC/AdaptorCommon/RayTracing/RayTracingFinalizePass.cpp
+index 87549a6ce85..797e77a548d 100644
+--- a/IGC/AdaptorCommon/RayTracing/RayTracingFinalizePass.cpp
++++ b/IGC/AdaptorCommon/RayTracing/RayTracingFinalizePass.cpp
+@@ -114,7 +114,7 @@ bool RayTracingFinalizePass::runOnModule(Module &M)
+ {
+ // Temporary WA to ensure we don't page fault on unaligned
+ // acceses.
+- uint32_t Align = LI->getAlignment();
++ uint32_t Align = (uint32_t)LI->getAlignment();
+ if (Align == 0)
+ Align = (uint32_t)DL.getTypeAllocSize(LI->getType());
+
+@@ -125,7 +125,7 @@ bool RayTracingFinalizePass::runOnModule(Module &M)
+ {
+ // Temporary WA to ensure we don't page fault on unaligned
+ // acceses.
+- uint32_t Align = SI->getAlignment();
++ uint32_t Align = (uint32_t)SI->getAlignment();
+ if (Align == 0)
+ Align = (uint32_t)DL.getTypeAllocSize(
+ SI->getValueOperand()->getType());
+diff --git a/IGC/AdaptorCommon/RayTracing/StackIDSchedulingPass.cpp b/IGC/AdaptorCommon/RayTracing/StackIDSchedulingPass.cpp
+index db5490267fd..d352b67a50f 100644
+--- a/IGC/AdaptorCommon/RayTracing/StackIDSchedulingPass.cpp
++++ b/IGC/AdaptorCommon/RayTracing/StackIDSchedulingPass.cpp
+@@ -49,6 +49,7 @@ SPDX-License-Identifier: MIT
+ #include <llvm/IR/Dominators.h>
+ #include <llvm/Analysis/PostDominators.h>
+ #include <llvm/Analysis/LoopInfo.h>
++#include "llvmWrapper/Analysis/AliasAnalysis.h"
+ #include "llvmWrapper/Analysis/MemoryLocation.h"
+ #include "common/LLVMWarningsPop.hpp"
+
+@@ -175,7 +176,7 @@ BasicBlock* StackIDSchedulingPass::schedule(
+ ModRefInfo StackIDSchedulingPass::getModRefInfo(
+ const CallBase* Call, const MemoryLocation& Loc)
+ {
+- AAQueryInfo AAQIP;
++ AAQueryInfo AAQIP = IGCLLVM::makeAAQueryInfo();
+ return AA->getModRefInfo(Call, Loc, AAQIP);
+ }
+
+diff --git a/IGC/AdaptorCommon/TypesLegalizationPass.cpp b/IGC/AdaptorCommon/TypesLegalizationPass.cpp
+index c3570f39d31..10da29ee242 100644
+--- a/IGC/AdaptorCommon/TypesLegalizationPass.cpp
++++ b/IGC/AdaptorCommon/TypesLegalizationPass.cpp
+@@ -207,7 +207,7 @@ TypesLegalizationPass::ResolveValue( Instruction *ip,Value *val,SmallVector<unsi
+ {
+ IGCLLVM::IRBuilder<> builder( ld );
+ Value* gep = CreateGEP( builder,ld->getOperand( 0 ),indices );
+- unsigned alignment = ld->getAlignment();
++ unsigned alignment = (unsigned)ld->getAlignment();
+ unsigned pointerTypeSize = gep->getType()->getPointerElementType()->getScalarSizeInBits() / 8;
+ if ( alignment && pointerTypeSize == alignment )
+ return builder.CreateAlignedLoad( gep, IGCLLVM::getAlign(alignment) );
+diff --git a/IGC/WrapperLLVM/include/llvmWrapper/Analysis/AliasAnalysis.h b/IGC/WrapperLLVM/include/llvmWrapper/Analysis/AliasAnalysis.h
+index 873886cc860..385c04db970 100644
+--- a/IGC/WrapperLLVM/include/llvmWrapper/Analysis/AliasAnalysis.h
++++ b/IGC/WrapperLLVM/include/llvmWrapper/Analysis/AliasAnalysis.h
+@@ -19,6 +19,13 @@ namespace IGCLLVM
+ #else
+ using AliasResultEnum = llvm::AliasResult::Kind;
+ #endif
++inline llvm::AAQueryInfo makeAAQueryInfo() {
++#if LLVM_VERSION_MAJOR >= 14
++ return llvm::AAQueryInfo(new llvm::SimpleCaptureInfo());
++#else
++ return llvm::AAQueryInfo();
++#endif
++}
+ }
+
+ #endif
+diff --git a/IGC/WrapperLLVM/include/llvmWrapper/IR/InstrTypes.h b/IGC/WrapperLLVM/include/llvmWrapper/IR/InstrTypes.h
+index 569eece3fb5..1050c842271 100644
+--- a/IGC/WrapperLLVM/include/llvmWrapper/IR/InstrTypes.h
++++ b/IGC/WrapperLLVM/include/llvmWrapper/IR/InstrTypes.h
+@@ -50,6 +50,15 @@ namespace IGCLLVM
+ CI->addFnAttr(Kind);
+ #else
+ CI->addAttribute(llvm::AttributeList::FunctionIndex, Kind);
++#endif
++ }
++
++ inline uint64_t getRetDereferenceableBytes(llvm::CallBase* Call)
++ {
++#if LLVM_VERSION_MAJOR >= 14
++ return Call->getRetDereferenceableBytes();
++#else
++ return Call->getDereferenceableBytes(llvm::AttributeList::ReturnIndex);
+ #endif
+ }
+ }
diff --git a/dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.11485-wrap-getNumArgOperands.patch b/dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.11485-wrap-getNumArgOperands.patch
new file mode 100644
index 000000000000..23754ccb6b4b
--- /dev/null
+++ b/dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.11485-wrap-getNumArgOperands.patch
@@ -0,0 +1,24 @@
+From 1d5ceafdbc005f3adc58be5af1dc92f068908e16 Mon Sep 17 00:00:00 2001
+From: Artem Gindinson <artem.gindinson@intel.com>
+Date: Mon, 20 Jun 2022 12:38:04 +0000
+Subject: [PATCH] Wrap CallInst::getNumArgOperands calls for LLVM 14
+
+Rework all remaining call sites to rely on the already-existing wrapper
+function.
+---
+ IGC/Compiler/CISACodeGen/HFpackingOpt.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/IGC/Compiler/CISACodeGen/HFpackingOpt.cpp b/IGC/Compiler/CISACodeGen/HFpackingOpt.cpp
+index 69d6151f8bf..e24362d7791 100644
+--- a/IGC/Compiler/CISACodeGen/HFpackingOpt.cpp
++++ b/IGC/Compiler/CISACodeGen/HFpackingOpt.cpp
+@@ -825,7 +825,7 @@ bool HFpackingOpt::findStoreSequence(std::vector<Instruction*>& path, std::vecto
+ uint srciCount = inst->getNumOperands();
+ if (CallInst* cinst = dyn_cast<CallInst>(inst))
+ {
+- srciCount = cinst->getNumArgOperands();
++ srciCount = IGCLLVM::getNumArgOperands(cinst);
+ }
+
+ for (uint srci = 0; srci < srciCount; srci++)