Index: head/devel/intel-graphics-compiler/Makefile =================================================================== --- head/devel/intel-graphics-compiler/Makefile (revision 558990) +++ head/devel/intel-graphics-compiler/Makefile (revision 558991) @@ -1,55 +1,54 @@ # $FreeBSD$ PORTNAME= intel-graphics-compiler DISTVERSIONPREFIX= igc- -DISTVERSION= 1.0.5819 +DISTVERSION= 1.0.5884 CATEGORIES= devel PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ PATCHFILES+= d878880cbb3b.patch:-p1 # https://github.com/intel/intel-graphics-compiler/pull/129 PATCHFILES+= f44eb990ac84.patch:-p1 # https://github.com/intel/intel-graphics-compiler/pull/156 -PATCHFILES+= cf887180a0e3.patch:-p1 # https://github.com/intel/intel-graphics-compiler/pull/156 PATCHFILES+= 02d82a7ccbe6.patch:-p1 # https://github.com/intel/intel-graphics-compiler/pull/156 MAINTAINER= jbeich@FreeBSD.org COMMENT= Intel Graphics Compiler for OpenCL LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE.md ONLY_FOR_ARCHS= amd64 i386 ONLY_FOR_ARCHS_REASON= Only Intel GPUs on x86 are supported LIB_DEPENDS= libopencl-clang.so:devel/opencl-clang USES= bison cmake compiler:c++17-lang python:build USE_GITHUB= yes USE_LDCONFIG= yes GH_ACCOUNT= intel GH_TUPLE= intel:vc-intrinsics:2de2dd4:vcintrin/../vc-intrinsics CMAKE_OFF= INSTALL_SPIRVDLL CFLAGS+= -Wno-macro-redefined # __fastcall PLIST_SUB= ARCH_SUFX=${ARCH:S/i386/32/:S/amd//:S/x86_//} post-patch: # lang/python* don't install unsuffixed symlinks @${REINPLACE_CMD} -i .python \ -e '/EXECUTABLE/s/"python"/"${PYTHON_CMD:T}"/' \ -e '/IGC_PYTHON/s/"python"/"${PYTHON_CMD:T}"/' \ ${WRKSRC}/IGC/CMakeLists.txt \ ${WRKSRC}/IGC/BiFModule/CMakeLists.txt # devel/llvm* have different naming from upstream under PATH @${REINPLACE_CMD} -e '/clang-\$$/s//clang$$/' \ ${WRKSRC}/IGC/BiFModule/CMakeLists.txt # No need to abort on every benign warning enabled by default @${REINPLACE_CMD} -e 's/"-Werror"//; /-Werror/d' \ ${WRKSRC}/IGC/CMakeLists.txt pre-configure: # Only one libLLVM can be loaded, so use the same version as devel/opencl-clang @for f in ${LOCALBASE}/lib/libopencl-clang.so.*; do \ ${REINPLACE_CMD} "/set.*LLVM_VERSION/s/\".*\"/\"$${f##*so.}\"/" \ ${WRKSRC}/IGC/CMakeLists.txt; \ done .include Index: head/devel/intel-graphics-compiler/distinfo =================================================================== --- head/devel/intel-graphics-compiler/distinfo (revision 558990) +++ head/devel/intel-graphics-compiler/distinfo (revision 558991) @@ -1,13 +1,11 @@ -TIMESTAMP = 1607250955 -SHA256 (intel-intel-graphics-compiler-igc-1.0.5819_GH0.tar.gz) = f000414534bc29266f08203213fe9628f241751d992be6690431c0c65a774fac -SIZE (intel-intel-graphics-compiler-igc-1.0.5819_GH0.tar.gz) = 7123768 +TIMESTAMP = 1607752911 +SHA256 (intel-intel-graphics-compiler-igc-1.0.5884_GH0.tar.gz) = 9bf29ef4c70ff7951f67861c21825e5f341716b8cc48af29aef3fc023845d7a7 +SIZE (intel-intel-graphics-compiler-igc-1.0.5884_GH0.tar.gz) = 7169150 SHA256 (intel-vc-intrinsics-2de2dd4_GH0.tar.gz) = 30e6faf9add7c8773aa99641d2f366b7455b267232a47323acda1742640ef643 SIZE (intel-vc-intrinsics-2de2dd4_GH0.tar.gz) = 120395 SHA256 (d878880cbb3b.patch) = f430b2da0d212594ce73f23b279a1435f08dea60f30ec35494411ab0dc0fcf70 SIZE (d878880cbb3b.patch) = 9088 SHA256 (f44eb990ac84.patch) = 4774683855caa8ef44a85a43356b7d509683bbdbef23e31ab6f5e4075715d67c SIZE (f44eb990ac84.patch) = 1547 -SHA256 (cf887180a0e3.patch) = 20c5afc646f61180880fc8e07abcd0feac04bfb190ab27d8af939d459b61a9a0 -SIZE (cf887180a0e3.patch) = 4191 SHA256 (02d82a7ccbe6.patch) = 396198830fb7e55318a870d46e93d93aaa5dca90a7979e3b3f7afcca965f1938 SIZE (02d82a7ccbe6.patch) = 1292 Index: head/devel/intel-graphics-compiler/files/patch-llvm11 =================================================================== --- head/devel/intel-graphics-compiler/files/patch-llvm11 (revision 558990) +++ head/devel/intel-graphics-compiler/files/patch-llvm11 (revision 558991) @@ -1,36 +1,53 @@ +IGC/VectorCompiler/lib/GenXCodeGen/GenXPatternMatch.cpp:2148:16: error: call to 'invertCondition' is ambiguous + Mask = invertCondition(Mask); + ^~~~~~~~~~~~~~~ +IGC/VectorCompiler/lib/GenXCodeGen/GenXUtil.h:206:8: note: candidate function +Value *invertCondition(Value *Condition); + ^ +/usr/local/llvm11/include/llvm/Transforms/Utils/Local.h:557:8: note: candidate function +Value *invertCondition(Value *Condition); + ^ IGC/VectorCompiler/lib/GenXCodeGen/GenXPatternMatch.cpp:2216:41: error: no viable conversion from 'llvm::ElementCount' to 'unsigned int' return ConstantDataVector::getSplat(IGCLLVM::getElementCount(OperandWidth), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/local/llvm11/include/llvm/IR/Constants.h:803:38: note: passing argument to parameter 'NumElts' here static Constant *getSplat(unsigned NumElts, Constant *Elt); ^ - IGC/VectorCompiler/lib/GenXCodeGen/GenXThreadPrivateMemory.cpp:462:37: error: no member named 'getMask' in 'llvm::ShuffleVectorInst' NewVec1, NewVec2, ShuffleVec->getMask(), ShuffleVec->getName() + ".tpm"); ~~~~~~~~~~ ^ ---- IGC/VectorCompiler/lib/GenXCodeGen/GenXPatternMatch.cpp.orig 2020-12-06 10:35:55 UTC +--- IGC/VectorCompiler/lib/GenXCodeGen/GenXPatternMatch.cpp.orig 2020-12-12 06:01:51 UTC +++ IGC/VectorCompiler/lib/GenXCodeGen/GenXPatternMatch.cpp -@@ -2213,7 +2213,7 @@ static void decomposeSdivPow2(Instruction &Sdiv, +@@ -2145,7 +2145,7 @@ static bool mergeToWrRegion(SelectInst *SI) { + Value *Mask = SI->getCondition(); + // Invert mask if needed. + if (Inverted) +- Mask = invertCondition(Mask); ++ Mask = genx::invertCondition(Mask); + // Create new wrregion. + Region WrReg(Wr, BaleInfo()); + WrReg.Mask = Mask; +@@ -2269,7 +2269,7 @@ static void decomposeSdivPow2(Instruction &Sdiv, auto createConstantVector = [](unsigned int OperandWidth, Type *Ty, int Value) { - return ConstantDataVector::getSplat(IGCLLVM::getElementCount(OperandWidth), + return ConstantVector::getSplat(IGCLLVM::getElementCount(OperandWidth), ConstantInt::get(Ty, Value)); }; --- IGC/VectorCompiler/lib/GenXCodeGen/GenXThreadPrivateMemory.cpp.orig 2020-11-21 02:52:12 UTC +++ IGC/VectorCompiler/lib/GenXCodeGen/GenXThreadPrivateMemory.cpp @@ -459,7 +459,11 @@ bool GenXThreadPrivateMemory::replaceShuffleVector( Value *NewVec1 = lookForPtrReplacement(Vec1); Value *NewVec2 = lookForPtrReplacement(Vec2); auto NewShuffleVec = new ShuffleVectorInst( +#if LLVM_VERSION_MAJOR < 11 NewVec1, NewVec2, ShuffleVec->getMask(), ShuffleVec->getName() + ".tpm"); +#else + NewVec1, NewVec2, ShuffleVec->getShuffleMaskForBitcode(), ShuffleVec->getName() + ".tpm"); +#endif NewShuffleVec->insertAfter(ShuffleVec); auto CastToOldTy =