[arch-commits] Commit in intel-graphics-compiler/repos/community-testing-x86_64 (3 files)

Bruno Pagani archange at gemini.archlinux.org
Mon Oct 18 12:17:01 UTC 2021


    Date: Monday, October 18, 2021 @ 12:17:01
  Author: archange
Revision: 1030825

archrelease: copy trunk to community-testing-x86_64

Added:
  intel-graphics-compiler/repos/community-testing-x86_64/PKGBUILD
    (from rev 1030824, intel-graphics-compiler/trunk/PKGBUILD)
Deleted:
  intel-graphics-compiler/repos/community-testing-x86_64/PKGBUILD
  intel-graphics-compiler/repos/community-testing-x86_64/llvm12-porting.patch

----------------------+
 PKGBUILD             |  105 ++++++-------
 llvm12-porting.patch |  377 -------------------------------------------------
 2 files changed, 52 insertions(+), 430 deletions(-)

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2021-10-18 12:16:35 UTC (rev 1030824)
+++ PKGBUILD	2021-10-18 12:17:01 UTC (rev 1030825)
@@ -1,53 +0,0 @@
-# Maintainer: Daniel Bermond <dbermond at archlinux.org>
-# Maintainer: Bruno Pagani <archange at archlinux.org>
-
-pkgname=intel-graphics-compiler
-epoch=1
-pkgver=1.0.8173
-pkgrel=1
-pkgdesc="Intel Graphics Compiler for OpenCL"
-arch=(x86_64)
-url="https://github.com/intel/intel-graphics-compiler"
-license=(MIT)
-depends=(llvm-libs intel-opencl-clang ncurses zlib)
-makedepends=(git cmake clang lld llvm python)
-options=(!emptydirs)
-source=(${url}/archive/igc-${pkgver}.tar.gz
-        llvm12-porting.patch
-        igc-revert-stack-analysis.patch::https://github.com/intel/intel-graphics-compiler/commit/c50d77f3c8a92fae6f43b47580e7d485f9ea5327.patch
-        igc-missing-limits-headers.patch::https://github.com/intel/intel-graphics-compiler/commit/8e1a461d3e6b85a6cf018caf6abf4a3ba9a1758d.patch
-        git+https://github.com/intel/vc-intrinsics.git#commit=d9ffe1f9cbe45b296f098669173bcaeff12bfe99)
-sha256sums=('20794f1451b971c82ed824dd65723a6c562158e8061644e596b53417e9daa045'
-            '1f8b1aa9bce25de79cdbbe2589cb5d7a6e05b1b506b01e7af144b21b155754ea'
-            '65b17d5bdc77e68147eacc7671a6e3580968508527bdb8fd032bae830d8daf17'
-            'd943a3d56ae62bde12caf133ab171777b4a73ee50a8d07449831ffc57e73e514'
-            'SKIP')
-
-prepare() {
-    cd ${pkgname}-igc-${pkgver}
-    patch -p1 < ../llvm12-porting.patch
-    patch -p1 -R < ../igc-revert-stack-analysis.patch
-    patch -p1 < ../igc-missing-limits-headers.patch
-}
-
-build() {
-    CXXFLAGS+=' -Wno-error=deprecated-declarations'
-    cmake -B build -S ${pkgname}-igc-${pkgver} \
-        -DCMAKE_BUILD_TYPE=Release \
-        -DCMAKE_INSTALL_PREFIX=/usr \
-        -DCMAKE_INSTALL_LIBDIR=lib \
-        -DIGC_OPTION__ARCHITECTURE_TARGET='Linux64' \
-        -DIGC_OPTION__LLVM_PREFERRED_VERSION='12.0.1' \
-        -DIGC_OPTION__LLVM_MODE=Prebuilds \
-        -DVC_INTRINSICS_SRC="${srcdir}/vc-intrinsics" \
-        -DINSTALL_SPIRVDLL=0 \
-        -DINSTALL_GENX_IR=ON \
-        -Wno-dev
-    make -C build
-}
-
-package() {
-    make -C build DESTDIR="${pkgdir}" install
-    install -D -m644 ${pkgname}-igc-${pkgver}/LICENSE.md -t "${pkgdir}"/usr/share/licenses/${pkgname}
-    mv "${pkgdir}"/usr/lib/igc/NOTICES.txt "${pkgdir}"/usr/share/licenses/${pkgname}
-}

Copied: intel-graphics-compiler/repos/community-testing-x86_64/PKGBUILD (from rev 1030824, intel-graphics-compiler/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2021-10-18 12:17:01 UTC (rev 1030825)
@@ -0,0 +1,52 @@
+# Maintainer: Daniel Bermond <dbermond at archlinux.org>
+# Maintainer: Bruno Pagani <archange at archlinux.org>
+
+pkgname=intel-graphics-compiler
+epoch=1
+pkgver=1.0.8744
+pkgrel=1
+pkgdesc="Intel Graphics Compiler for OpenCL"
+arch=(x86_64)
+url="https://github.com/intel/intel-graphics-compiler"
+license=(MIT)
+depends=(llvm-libs intel-opencl-clang ncurses zlib)
+makedepends=(git cmake clang lld llvm python libunwind)
+options=(!emptydirs)
+source=(${url}/archive/igc-${pkgver}.tar.gz
+        ${pkgname}-fix-lld-prebuilt.patch::https://github.com/intel/intel-graphics-compiler/pull/210.patch
+        git+https://github.com/intel/vc-intrinsics.git#commit=e5ad7e02aa4aa21a3cd7b3e5d1f3ec9b95f58872)
+sha256sums=('1e8ef2dcebb670e7d66de053c2b0c92b8cf8733dae04503bf26dfd7cc798b5ef'
+            'b2da1a00ac59ce7e98fd6cfb554f8974b1500bc1b9973387181414ffa4cffea5'
+            'SKIP')
+
+prepare() {
+    cd ${pkgname}-igc-${pkgver}
+    patch -p1 < ../${pkgname}-fix-lld-prebuilt.patch
+}
+
+build() {
+    # https://github.com/intel/intel-graphics-compiler/issues/209
+    CXXFLAGS+=' -Wno-error=nonnull'
+    cmake -B build -S ${pkgname}-igc-${pkgver} \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_INSTALL_PREFIX=/usr \
+        -DCMAKE_INSTALL_LIBDIR=lib \
+        -DIGC_OPTION__ARCHITECTURE_TARGET='Linux64' \
+        -DIGC_OPTION__CLANG_MODE=Prebuilds \
+        -DIGC_OPTION__LLD_MODE=Prebuilds \
+        -DIGC_OPTION__LLVM_PREFERRED_VERSION='12.0.1' \
+        -DIGC_OPTION__LLVM_MODE=Prebuilds \
+        -DIGC_OPTION__LINK_KHRONOS_SPIRV_TRANSLATOR=ON \
+        -DIGC_OPTION__USE_KHRONOS_SPIRV_TRANSLATOR_IN_VC=ON \
+        -DIGC_OPTION__SPIRV_TRANSLATOR_MODE=Prebuilds \
+        -DVC_INTRINSICS_SRC="${srcdir}/vc-intrinsics" \
+        -DINSTALL_GENX_IR=ON \
+        -Wno-dev
+    make -C build
+}
+
+package() {
+    make -C build DESTDIR="${pkgdir}" install
+    install -D -m644 ${pkgname}-igc-${pkgver}/LICENSE.md -t "${pkgdir}"/usr/share/licenses/${pkgname}
+    mv "${pkgdir}"/usr/lib/igc/NOTICES.txt "${pkgdir}"/usr/share/licenses/${pkgname}
+}

Deleted: llvm12-porting.patch
===================================================================
--- llvm12-porting.patch	2021-10-18 12:16:35 UTC (rev 1030824)
+++ llvm12-porting.patch	2021-10-18 12:17:01 UTC (rev 1030825)
@@ -1,377 +0,0 @@
-diff --git a/IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp b/IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp
---- a/IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp
-+++ b/IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp
-@@ -1561,7 +1561,7 @@ void SPIRVToLLVMDbgTran::transDbgInfo(SPIRVValue *SV, Value *V) {
-             Line->getColumn(), scope, iat);
- 
-         if(scope && !isa<DIFile>(scope))
--            I->setDebugLoc(DebugLoc::get(Line->getLine(), Line->getColumn(),
-+            I->setDebugLoc(DILocation::get(scope->getContext(), Line->getLine(), Line->getColumn(),
-                 scope, iat));
-     }
- }
-@@ -1977,7 +1977,7 @@ SPIRVToLLVM::transType(SPIRVType *T) {
-         auto name = isSubgroupAvcINTELTypeOpCode(OC) ?
-             OCLSubgroupINTELTypeOpCodeMap::rmap(OC) :
-             BuiltinOpaqueGenericTypeOpCodeMap::rmap(OC);
--        auto *pST = M->getTypeByName(name);
-+        auto *pST = StructType::getTypeByName(M->getContext(), name);
-         pST = pST ? pST : StructType::create(*Context, name);
- 
-         return mapType(T, PointerType::get(pST, getOCLOpaqueTypeAddrSpace(OC)));
-diff --git a/IGC/AdaptorOCL/SPIRV/SPIRVUtil.cpp b/IGC/AdaptorOCL/SPIRV/SPIRVUtil.cpp
---- a/IGC/AdaptorOCL/SPIRV/SPIRVUtil.cpp
-+++ b/IGC/AdaptorOCL/SPIRV/SPIRVUtil.cpp
-@@ -76,7 +76,7 @@ saveLLVMModule(Module *M, const std::string &OutputFile) {
- PointerType*
- getOrCreateOpaquePtrType(Module *M, const std::string &Name,
-     unsigned AddrSpace) {
--  auto OpaqueType = M->getTypeByName(Name);
-+  auto OpaqueType = StructType::getTypeByName(M->getContext(), Name);
-   if (!OpaqueType)
-     OpaqueType = StructType::create(M->getContext(), Name);
-   return PointerType::get(OpaqueType, AddrSpace);
-diff --git a/IGC/Compiler/CISACodeGen/AdvMemOpt.cpp b/IGC/Compiler/CISACodeGen/AdvMemOpt.cpp
---- a/IGC/Compiler/CISACodeGen/AdvMemOpt.cpp
-+++ b/IGC/Compiler/CISACodeGen/AdvMemOpt.cpp
-@@ -118,7 +118,7 @@ bool AdvMemOpt::runOnFunction(Function& F) {
-     for (auto I = LI->begin(), E = LI->end(); I != E; ++I)
-         for (auto DFI = df_begin(*I), DFE = df_end(*I); DFI != DFE; ++DFI) {
-             Loop* L = *DFI;
--            if (L->empty())
-+            if (L->getSubLoops().empty())
-                 InnermostLoops.push_back(L);
-         }
- 
-diff --git a/IGC/Compiler/CISACodeGen/LdShrink.cpp b/IGC/Compiler/CISACodeGen/LdShrink.cpp
---- a/IGC/Compiler/CISACodeGen/LdShrink.cpp
-+++ b/IGC/Compiler/CISACodeGen/LdShrink.cpp
-@@ -10,6 +10,7 @@ SPDX-License-Identifier: MIT
- #include <llvm/Pass.h>
- #include <llvm/IR/DataLayout.h>
- #include <llvm/IR/IRBuilder.h>
-+#include <llvm/IR/DerivedTypes.h>
- #include <llvmWrapper/Support/Alignment.h>
- #include <llvm/Support/Debug.h>
- #include <llvm/Support/MathExtras.h>
-@@ -75,9 +76,11 @@ unsigned LdShrink::getExtractIndexMask(LoadInst* LI) const {
-     Type* Ty = VTy->getScalarType();
-     // Skip non-BYTE addressable data types. So far, check integer types
-     // only.
--    if (IntegerType * ITy = dyn_cast<IntegerType>(Ty))
--        if (!ITy->isPowerOf2ByteWidth())
-+    if (IntegerType * ITy = dyn_cast<IntegerType>(Ty)) {
-+        auto BitWidth = ITy->getBitWidth();
-+        if (!((BitWidth > 7) && isPowerOf2_32(BitWidth)))
-             return 0;
-+    }
- 
-     unsigned Mask = 0; // Maxmimally 32 elements.
- 
-diff --git a/IGC/Compiler/CISACodeGen/ShaderCodeGen.cpp b/IGC/Compiler/CISACodeGen/ShaderCodeGen.cpp
---- a/IGC/Compiler/CISACodeGen/ShaderCodeGen.cpp
-+++ b/IGC/Compiler/CISACodeGen/ShaderCodeGen.cpp
-@@ -631,9 +631,9 @@ static void AddLegalizationPasses(CodeGenContext& ctx, IGCPassManager& mpm, PSSi
-         if (IGC_GET_FLAG_VALUE(FunctionControl) == FLAG_FCALL_DEFAULT)
-         {
-             // Don't run IPConstantProp when debugging function calls, to avoid folding function arg/ret constants
--            mpm.add(createIPConstantPropagationPass());
-+            mpm.add(createIPSCCPPass());
-         }
--        mpm.add(createConstantPropagationPass());
-+        mpm.add(createInstSimplifyLegacyPass());
-         mpm.add(createDeadCodeEliminationPass());
-         mpm.add(createCFGSimplificationPass());
-     }
-@@ -1537,8 +1537,8 @@ void OptimizeIR(CodeGenContext* const pContext)
-             // possible which potentially allows late stage code sinking of
-             // those calls by the instruction combiner.
-             mpm.add(createPostOrderFunctionAttrsLegacyPass());
--            mpm.add(createConstantPropagationPass());
--            mpm.add(createIPConstantPropagationPass());
-+            mpm.add(createInstSimplifyLegacyPass());
-+            mpm.add(createIPSCCPPass());
-         }
- 
-         // enable this only when Pooled EU is not supported
-diff --git a/IGC/Compiler/CISACodeGen/Simd32Profitability.cpp b/IGC/Compiler/CISACodeGen/Simd32Profitability.cpp
---- a/IGC/Compiler/CISACodeGen/Simd32Profitability.cpp
-+++ b/IGC/Compiler/CISACodeGen/Simd32Profitability.cpp
-@@ -982,7 +982,7 @@ static bool hasLongStridedLdStInLoop(Function* F, LoopInfo* LI, WIAnalysis* WI)
-     // Collect innermost simple loop.
-     for (auto I = LI->begin(), E = LI->end(); I != E; ++I) {
-         auto L = *I;
--        if (!L->empty())
-+        if (!L->getSubLoops().empty())
-             continue;
-         if (L->getNumBlocks() != 2)
-             continue;
-diff --git a/IGC/Compiler/GenTTI.cpp b/IGC/Compiler/GenTTI.cpp
---- a/IGC/Compiler/GenTTI.cpp
-+++ b/IGC/Compiler/GenTTI.cpp
-@@ -201,7 +201,7 @@ namespace llvm {
- 
-         // Skip non-simple loop.
-         if (L->getNumBlocks() != 1) {
--            if (IGC_IS_FLAG_ENABLED(EnableAdvRuntimeUnroll) && L->empty()) {
-+            if (IGC_IS_FLAG_ENABLED(EnableAdvRuntimeUnroll) && L->getSubLoops().empty()) {
-                 auto countNonPHI = [](BasicBlock* BB) {
-                     unsigned Total = BB->size();
-                     unsigned PHIs = 0;
-diff --git a/IGC/Compiler/Optimizer/OpenCLPasses/AddressSpaceAliasAnalysis/AddressSpaceAliasAnalysis.cpp b/IGC/Compiler/Optimizer/OpenCLPasses/AddressSpaceAliasAnalysis/AddressSpaceAliasAnalysis.cpp
---- a/IGC/Compiler/Optimizer/OpenCLPasses/AddressSpaceAliasAnalysis/AddressSpaceAliasAnalysis.cpp
-+++ b/IGC/Compiler/Optimizer/OpenCLPasses/AddressSpaceAliasAnalysis/AddressSpaceAliasAnalysis.cpp
-@@ -6,6 +6,7 @@ SPDX-License-Identifier: MIT
- 
- ============================= end_copyright_notice ===========================*/
- 
-+#include <llvm/Analysis/TargetLibraryInfo.h>
- #include "llvm/Config/llvm-config.h"
- #include "Compiler/Optimizer/OpenCLPasses/AddressSpaceAliasAnalysis/AddressSpaceAliasAnalysis.h"
- #include "Compiler/CodeGenPublic.h"
-diff --git a/IGC/Compiler/Optimizer/OpenCLPasses/DeviceEnqueueFuncs/TransformBlocks.cpp b/IGC/Compiler/Optimizer/OpenCLPasses/DeviceEnqueueFuncs/TransformBlocks.cpp
---- a/IGC/Compiler/Optimizer/OpenCLPasses/DeviceEnqueueFuncs/TransformBlocks.cpp
-+++ b/IGC/Compiler/Optimizer/OpenCLPasses/DeviceEnqueueFuncs/TransformBlocks.cpp
-@@ -936,7 +936,7 @@ namespace //Anonymous
-         {
-             auto ndrangeStructName = "struct.ndrange_t";
-             auto module = _deviceExecCall->getModule();
--            auto ndrangeTy = module->getTypeByName(ndrangeStructName);
-+            auto ndrangeTy = llvm::StructType::getTypeByName(module->getContext(), ndrangeStructName);
-             if (ndrangeTy == nullptr)
-             {
-                 //create struct type
-diff --git a/IGC/Compiler/Optimizer/OpenCLPasses/WIFuncs/WIFuncResolution.cpp b/IGC/Compiler/Optimizer/OpenCLPasses/WIFuncs/WIFuncResolution.cpp
---- a/IGC/Compiler/Optimizer/OpenCLPasses/WIFuncs/WIFuncResolution.cpp
-+++ b/IGC/Compiler/Optimizer/OpenCLPasses/WIFuncs/WIFuncResolution.cpp
-@@ -12,6 +12,7 @@ SPDX-License-Identifier: MIT
- #include "common/LLVMWarningsPush.hpp"
- #include <llvm/IR/Function.h>
- #include <llvm/IR/Instructions.h>
-+#include <llvm/IR/DerivedTypes.h>
- #include "common/LLVMWarningsPop.hpp"
- #include "Probe/Assertion.h"
- #include <llvmWrapper/Support/Alignment.h>
-diff --git a/IGC/DebugInfo/DebugInfoUtils.hpp b/IGC/DebugInfo/DebugInfoUtils.hpp
---- a/IGC/DebugInfo/DebugInfoUtils.hpp
-+++ b/IGC/DebugInfo/DebugInfoUtils.hpp
-@@ -92,7 +92,7 @@ namespace IGC
-                 IGCLLVM::DIBuilder Builder(M);
-                 llvm::DIGlobalVariable* GV = GVs[j]->getVariable();
-                 llvm::DIScope* scopeToUse = GV->getScope();
--                llvm::DILocation* locToUse = llvm::DebugLoc::get(GV->getLine(), 0, scopeToUse, loc);
-+                llvm::DILocation* locToUse = llvm::DILocation::get(scopeToUse->getContext(), GV->getLine(), 0, scopeToUse, loc);
-                 if (llvm::isa<llvm::DICompileUnit>(GV->getScope()))
-                 {
-                     // Function has no DebugLoc so it is either internal
-diff --git a/IGC/DebugInfo/DwarfDebug.cpp b/IGC/DebugInfo/DwarfDebug.cpp
---- a/IGC/DebugInfo/DwarfDebug.cpp
-+++ b/IGC/DebugInfo/DwarfDebug.cpp
-@@ -2151,9 +2151,9 @@ static DebugLoc getFnDebugLoc(DebugLoc DL, const LLVMContext& Ctx)
-         // Check for number of operands since the compatibility is cheap here.
-         if (SP->getNumOperands() > 19)
-         {
--            return DebugLoc::get(SP->getScopeLine(), 0, SP);
-+            return DILocation::get(SP->getContext(), SP->getScopeLine(), 0, SP);
-         }
--        return DebugLoc::get(SP->getLine(), 0, SP);
-+        return DILocation::get(SP->getContext(), SP->getLine(), 0, SP);
-     }
- 
-     return DebugLoc();
-diff --git a/IGC/VectorCompiler/lib/GenXCodeGen/GenXCFSimplification.cpp b/IGC/VectorCompiler/lib/GenXCodeGen/GenXCFSimplification.cpp
---- a/IGC/VectorCompiler/lib/GenXCodeGen/GenXCFSimplification.cpp
-+++ b/IGC/VectorCompiler/lib/GenXCodeGen/GenXCFSimplification.cpp
-@@ -285,8 +285,8 @@ BasicBlock *GenXCFSimplification::processBranchedOverBlock(BasicBlock *BB)
-         while (Restart) {
-           Restart = false;
-           for (auto ui = I->use_begin(), ue = I->use_end(); ui != ue; ++ui)
--            if (recursivelySimplifyInstruction(
--                  cast<Instruction>(ui->getUser()))) {
-+            if (replaceAndRecursivelySimplify(
-+                  cast<Instruction>(ui->getUser()), nullptr, nullptr, nullptr, nullptr, nullptr)) {
-               Restart = true;
-               break;
-             }
-diff --git a/IGC/VectorCompiler/lib/GenXCodeGen/GenXSubtarget.cpp b/IGC/VectorCompiler/lib/GenXCodeGen/GenXSubtarget.cpp
---- a/IGC/VectorCompiler/lib/GenXCodeGen/GenXSubtarget.cpp
-+++ b/IGC/VectorCompiler/lib/GenXCodeGen/GenXSubtarget.cpp
-@@ -38,7 +38,7 @@ static cl::opt<bool>
-                     cl::desc("Specify what surface should be used for stack"),
-                     cl::init(true));
- 
--void GenXSubtarget::resetSubtargetFeatures(StringRef CPU, StringRef FS) {
-+void GenXSubtarget::resetSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS) {
- 
-   DumpRegAlloc = false;
-   EmitCisa = false;
-@@ -80,13 +80,13 @@ void GenXSubtarget::resetSubtargetFeatures(StringRef CPU, StringRef FS) {
-   if (CPUName.empty())
-     CPUName = "generic";
- 
--  ParseSubtargetFeatures(CPUName, FS);
-+  ParseSubtargetFeatures(CPUName, TuneCPU, FS);
- }
- 
- GenXSubtarget::GenXSubtarget(const Triple &TT, const std::string &CPU,
--                             const std::string &FS)
--    : GenXGenSubtargetInfo(TT, CPU, FS), TargetTriple(TT) {
-+                             const std::string &TC, const std::string &FS)
-+    : GenXGenSubtargetInfo(TT, CPU, TC, FS), TargetTriple(TT) {
- 
--  resetSubtargetFeatures(CPU, FS);
-+  resetSubtargetFeatures(CPU, TC, FS);
- }
- 
-diff --git a/IGC/VectorCompiler/lib/GenXCodeGen/GenXSubtarget.h b/IGC/VectorCompiler/lib/GenXCodeGen/GenXSubtarget.h
---- a/IGC/VectorCompiler/lib/GenXCodeGen/GenXSubtarget.h
-+++ b/IGC/VectorCompiler/lib/GenXCodeGen/GenXSubtarget.h
-@@ -123,7 +123,7 @@ public:
-   // of the specified triple.
-   //
-   GenXSubtarget(const Triple &TT, const std::string &CPU,
--                const std::string &FS);
-+                const std::string &TC, const std::string &FS);
- 
-   unsigned getGRFWidth() const { return 32; }
- 
-@@ -131,10 +131,10 @@ public:
- 
-   // ParseSubtargetFeatures - Parses features string setting specified
-   // subtarget options.  Definition of function is auto generated by tblgen.
--  void ParseSubtargetFeatures(StringRef CPU, StringRef FS);
-+  void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS);
- 
-   // \brief Reset the features for the GenX target.
--  void resetSubtargetFeatures(StringRef CPU, StringRef FS);
-+  void resetSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS);
- 
- public:
- 
-diff --git a/IGC/VectorCompiler/lib/GenXCodeGen/GenXTargetMachine.cpp b/IGC/VectorCompiler/lib/GenXCodeGen/GenXTargetMachine.cpp
---- a/IGC/VectorCompiler/lib/GenXCodeGen/GenXTargetMachine.cpp
-+++ b/IGC/VectorCompiler/lib/GenXCodeGen/GenXTargetMachine.cpp
-@@ -193,7 +193,7 @@ GenXTargetMachine::GenXTargetMachine(const Target &T, const Triple &TT,
-                                  RM ? RM.getValue() : Reloc::Model::Static,
-                                  CM ? CM.getValue() : CodeModel::Model::Small,
-                                  OL),
--      Is64Bit(Is64Bit), Subtarget(TT, CPU.str(), FS.str()) {}
-+      Is64Bit(Is64Bit), Subtarget(TT, CPU.str(), CPU.str(), FS.str()) {}
- 
- GenXTargetMachine::~GenXTargetMachine() = default;
- 
-diff --git a/IGC/VectorCompiler/lib/GenXOpts/CMPacketize/gen_builder.hpp b/IGC/VectorCompiler/lib/GenXOpts/CMPacketize/gen_builder.hpp
---- a/IGC/VectorCompiler/lib/GenXOpts/CMPacketize/gen_builder.hpp
-+++ b/IGC/VectorCompiler/lib/GenXOpts/CMPacketize/gen_builder.hpp
-@@ -122,12 +122,24 @@ CallInst* INT_MIN_REDUCE(Value *Src, bool IsSigned = false)
- 
- CallInst* FP_MAX_REDUCE(Value *Src, bool NoNaN = false)
- {
--    return IRB()->CreateFPMaxReduce(Src, NoNaN);
-+    auto Rdx = IRB()->CreateFPMaxReduce(Src);
-+    if (NoNaN) {
-+        FastMathFlags FMF;
-+        FMF.setNoNaNs();
-+        Rdx->setFastMathFlags(FMF);
-+    }
-+    return Rdx;
- }
- 
- CallInst* FP_MIN_REDUCE(Value *Src, bool NoNaN = false)
- {
--    return IRB()->CreateFPMinReduce(Src, NoNaN);
-+    auto Rdx = IRB()->CreateFPMinReduce(Src);
-+    if (NoNaN) {
-+        FastMathFlags FMF;
-+        FMF.setNoNaNs();
-+        Rdx->setFastMathFlags(FMF);
-+    }
-+    return Rdx;
- }
- 
- CallInst* LIFETIME_START(Value *Ptr, ConstantInt *Size = nullptr)
-@@ -170,9 +182,10 @@ CallInst* GC_STATEPOINT_CALL(uint64_t ID, uint32_t NumPatchBytes, Value *ActualC
-     return IRB()->CreateGCStatepointCall(ID, NumPatchBytes, ActualCallee, CallArgs, DeoptArgs, GCArgs, Name);
- }
- 
--CallInst* GC_STATEPOINT_CALL(uint64_t ID, uint32_t NumPatchBytes, Value *ActualCallee, uint32_t Flags, ArrayRef<Use> CallArgs, ArrayRef<Use> TransitionArgs, ArrayRef<Use> DeoptArgs, ArrayRef<Value *> GCArgs, const Twine &Name = "")
-+CallInst* GC_STATEPOINT_CALL(uint64_t ID, uint32_t NumPatchBytes, Value *ActualCallee, uint32_t Flags, ArrayRef<Value*> CallArgs, ArrayRef<Use> TransitionArgs, ArrayRef<Use> DeoptArgs, ArrayRef<Value *> GCArgs, const Twine &Name = "")
- {
--    return IRB()->CreateGCStatepointCall(ID, NumPatchBytes, ActualCallee, Flags, CallArgs, TransitionArgs, DeoptArgs, GCArgs, Name);
-+    // !
-+    return IRB()->CreateGCStatepointCall(ID, NumPatchBytes, ActualCallee, Flags, CallArgs, Optional(TransitionArgs), Optional(DeoptArgs), GCArgs, Name);
- }
- 
- CallInst* GC_STATEPOINT_CALL(uint64_t ID, uint32_t NumPatchBytes, Value *ActualCallee, ArrayRef<Use> CallArgs, ArrayRef<Value *> DeoptArgs, ArrayRef<Value *> GCArgs, const Twine &Name = "")
-@@ -185,9 +198,10 @@ InvokeInst* GC_STATEPOINT_INVOKE(uint64_t ID, uint32_t NumPatchBytes, Value *Act
-     return IRB()->CreateGCStatepointInvoke(ID, NumPatchBytes, ActualInvokee, NormalDest, UnwindDest, InvokeArgs, DeoptArgs, GCArgs, Name);
- }
- 
--InvokeInst* GC_STATEPOINT_INVOKE(uint64_t ID, uint32_t NumPatchBytes, Value *ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, uint32_t Flags, ArrayRef<Use> InvokeArgs, ArrayRef<Use> TransitionArgs, ArrayRef<Use> DeoptArgs, ArrayRef<Value *> GCArgs, const Twine &Name = "")
-+InvokeInst* GC_STATEPOINT_INVOKE(uint64_t ID, uint32_t NumPatchBytes, Value *ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, uint32_t Flags, ArrayRef<Value*> InvokeArgs, ArrayRef<Use> TransitionArgs, ArrayRef<Use> DeoptArgs, ArrayRef<Value *> GCArgs, const Twine &Name = "")
- {
--    return IRB()->CreateGCStatepointInvoke(ID, NumPatchBytes, ActualInvokee, NormalDest, UnwindDest, Flags, InvokeArgs, TransitionArgs, DeoptArgs, GCArgs, Name);
-+    // !
-+    return IRB()->CreateGCStatepointInvoke(ID, NumPatchBytes, ActualInvokee, NormalDest, UnwindDest, Flags, InvokeArgs, Optional(TransitionArgs), Optional(DeoptArgs), GCArgs, Name);
- }
- 
- InvokeInst* GC_STATEPOINT_INVOKE(uint64_t ID, uint32_t NumPatchBytes, Value *ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef<Use> InvokeArgs, ArrayRef<Value *> DeoptArgs, ArrayRef<Value *> GCArgs, const Twine &Name = "")
-diff --git a/IGC/WrapperLLVM/include/llvmWrapper/Support/TypeSize.h b/IGC/WrapperLLVM/include/llvmWrapper/Support/TypeSize.h
---- a/IGC/WrapperLLVM/include/llvmWrapper/Support/TypeSize.h
-+++ b/IGC/WrapperLLVM/include/llvmWrapper/Support/TypeSize.h
-@@ -17,9 +17,12 @@ using namespace llvm;
- namespace IGCLLVM {
- #if LLVM_VERSION_MAJOR < 11
- inline unsigned getElementCount(unsigned EC) { return EC; }
--#else
-+#elif LLVM_VERSION_MAJOR < 12
- inline ElementCount getElementCount(unsigned EC) {
-   return ElementCount(EC, false);
-+#elif LLVM_VERSION_MAJOR < 13
-+inline ElementCount getElementCount(unsigned EC) {
-+  return LinearPolySize<ElementCount>::getFixed(EC);
- }
- #endif
- } // namespace IGCLLVM
-diff --git a/IGC/WrapperLLVM/include/llvmWrapper/Transforms/Scalar.h b/IGC/WrapperLLVM/include/llvmWrapper/Transforms/Scalar.h
---- 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 == 10 || LLVM_VERSION_MAJOR == 11
-+#elif LLVM_VERSION_MAJOR == 9 || LLVM_VERSION_MAJOR == 10 || LLVM_VERSION_MAJOR == 11 || LLVM_VERSION_MAJOR == 12
-     inline static llvm::Pass * createLoopUnrollPass(
-         int OptLevel = 2, int Threshold = -1, int Count = -1,
-         int AllowPartial = -1, int Runtime = -1,
-@@ -34,7 +34,7 @@ namespace IGCLLVM
-     {
-         return llvm::createLoopUnrollPass(OptLevel, false, false, Threshold, Count, AllowPartial, Runtime, UpperBound, AllowPeeling);
-     }
--#elif LLVM_VERSION_MAJOR >= 12
-+#elif LLVM_VERSION_MAJOR >= 13
-     //DO NOT assume same function signature for all incoming llvm versions! Double check to upgrade!
- #error Not supported llvm version.
- #endif
-diff --git a/IGC/common/igc_resourceDimTypes.h b/IGC/common/igc_resourceDimTypes.h
---- a/IGC/common/igc_resourceDimTypes.h
-+++ b/IGC/common/igc_resourceDimTypes.h
-@@ -11,6 +11,7 @@ SPDX-License-Identifier: MIT
- #include "common/LLVMWarningsPush.hpp"
- #include <llvm/IR/Module.h>
- #include <llvm/IR/IRBuilder.h>
-+#include <llvm/IR/DerivedTypes.h>
- #include "common/LLVMWarningsPop.hpp"
- #include "Probe/Assertion.h"
- 
-@@ -50,6 +51,6 @@ namespace IGC
-             resourceDimTypeId == DIM_2D_TYPE || resourceDimTypeId == DIM_2D_ARRAY_TYPE ||
-             resourceDimTypeId == DIM_3D_TYPE || resourceDimTypeId == DIM_CUBE_TYPE || resourceDimTypeId == DIM_CUBE_ARRAY_TYPE));
- 
--        return module.getTypeByName(ResourceDimensionTypeName[resourceDimTypeId]);
-+        return llvm::StructType::getTypeByName(module.getContext(), ResourceDimensionTypeName[resourceDimTypeId]);
-     }
--}
-\ No newline at end of file
-+}



More information about the arch-commits mailing list