aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2022-01-27 09:28:01 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2022-01-27 09:29:09 +0000
commita5ee676da7a3910530312f386902bd3d1fce4da0 (patch)
tree33fc6afe618f35737cd59b8d8bfb3911ffef8bfe
parentdd09d7d3693a3c82e3537eb5f444f3d62226df91 (diff)
downloadports-a5ee676da7a3910530312f386902bd3d1fce4da0.tar.gz
ports-a5ee676da7a3910530312f386902bd3d1fce4da0.zip
devel/ispc: Update 1.16.1 -> 1.17.0
The project has renamed its option GENX to XE. Rename the port option accordingly. Reported by: portscout
-rw-r--r--devel/ispc/Makefile29
-rw-r--r--devel/ispc/distinfo6
-rw-r--r--devel/ispc/files/patch-CMakeLists.txt4
-rw-r--r--devel/ispc/files/patch-cmake_GenerateBuiltins.cmake4
-rw-r--r--devel/ispc/files/patch-src_func.cpp17
-rw-r--r--devel/ispc/files/patch-src_ispc.cpp25
-rw-r--r--devel/ispc/files/patch-src_llvmutil.cpp4
-rw-r--r--devel/ispc/files/patch-src_module.cpp27
-rw-r--r--devel/ispc/files/patch-src_opt.cpp29
9 files changed, 34 insertions, 111 deletions
diff --git a/devel/ispc/Makefile b/devel/ispc/Makefile
index 05624cbf9db3..45717a4afdf0 100644
--- a/devel/ispc/Makefile
+++ b/devel/ispc/Makefile
@@ -2,8 +2,7 @@
PORTNAME= ispc
DISTVERSIONPREFIX= v
-DISTVERSION= 1.16.1
-PORTREVISION= 3
+DISTVERSION= 1.17.0
CATEGORIES= devel
MAINTAINER= yuri@FreeBSD.org
@@ -20,7 +19,9 @@ BUILD_DEPENDS= ${LOCALBASE}/bin/flex:textproc/flex \
LIB_DEPENDS= libLLVM.so:devel/llvm${LLVM_VERSION}
USES= bison cmake compiler:c++14-lang python:build,test shebangfix
+USE_LDCONFIG= yes
USE_GITHUB= yes
+
SHEBANG_FILES= *.py
CONFIGURE_ENV= PATH=${LOCALBASE}/llvm${LLVM_VERSION}/bin:${PATH}
@@ -31,20 +32,22 @@ BINARY_ALIAS= flex=${LOCALBASE}/bin/flex python=${PYTHON_CMD} m4=${LOCALBASE}/bi
PLIST_FILES= bin/ispc \
bin/check_isa
-OPTIONS_DEFINE_amd64= GENX
-OPTIONS_DEFAULT_amd64= GENX
+OPTIONS_DEFINE_amd64= XE
+OPTIONS_DEFAULT_amd64= XE
-GENX_DESC= Intel GPU 8/16-wide SIMD support
-GENX_BUILD_DEPENDS= ${LOCALBASE}/llvm${LLVM_VERSION}/lib/libLLVMGenXIntrinsics.a:devel/vc-intrinsics@llvm${LLVM_VERSION}
-GENX_LIB_DEPENDS= libze_loader.so:devel/level-zero \
+XE_DESC= Enable Intel Xe support
+XE_BUILD_DEPENDS= ${LOCALBASE}/llvm${LLVM_VERSION}/lib/libLLVMGenXIntrinsics.a:devel/vc-intrinsics@llvm${LLVM_VERSION}
+XE_LIB_DEPENDS= libze_loader.so:devel/level-zero \
libLLVMSPIRVLib.so.${LLVM_VERSION}:devel/spirv-llvm-translator@llvm${LLVM_VERSION}
-GENX_CMAKE_BOOL= GENX_ENABLED
-GENX_CMAKE_BOOL_OFF= ISPCRT_BUILD_TESTS
-GENX_CMAKE_ON= -DGENX_DEPS_DIR:PATH="${LOCALBASE}/llvm${LLVM_VERSION}"
-GENX_PLIST_FILES= include/ispcrt/ispcrt.h \
+XE_CMAKE_BOOL= XE_ENABLED
+XE_CMAKE_BOOL_OFF= ISPCRT_BUILD_TESTS
+XE_CMAKE_ON= -DXE_DEPS_DIR:PATH="${LOCALBASE}/llvm${LLVM_VERSION}" -DISPC_INCLUDE_XE_EXAMPLES=OFF
+XE_PLIST_FILES= include/ispcrt/ispcrt.h \
include/ispcrt/ispcrt.hpp \
include/ispcrt/ispcrt.isph \
+ lib/cmake/ispcrt-${PORTVERSION}/Finddpcpp_compiler.cmake \
lib/cmake/ispcrt-${PORTVERSION}/Findlevel_zero.cmake \
+ lib/cmake/ispcrt-${PORTVERSION}/interop.cmake \
lib/cmake/ispcrt-${PORTVERSION}/ispc.cmake \
lib/cmake/ispcrt-${PORTVERSION}/ispcrtConfig.cmake \
lib/cmake/ispcrt-${PORTVERSION}/ispcrt_Exports-%%CMAKE_BUILD_TYPE%%.cmake \
@@ -61,9 +64,9 @@ GENX_PLIST_FILES= include/ispcrt/ispcrt.h \
#LLVM_VERSION= ${LLVM_DEFAULT}
#.endif
-LLVM_VERSION?= 11 # 13 fails on some systems with: Assertion failed: (PointeeType && "Must specify element type"), function Create
+LLVM_VERSION?= 13
-do-test: # some tests fail: https://github.com/ispc/ispc/issues/1868
+do-test: # some tests fail: https://github.com/ispc/ispc/issues/1868, https://github.com/ispc/ispc/issues/2244
@cd ${WRKSRC} && ISPC_HOME=${BUILD_WRKSRC}/bin ./run_tests.py
test-check-all: # the upstream claims that some of these checks are broken without using their patched llvm version, hence using llvm-devel
diff --git a/devel/ispc/distinfo b/devel/ispc/distinfo
index d4928fc12244..a36a0aa08200 100644
--- a/devel/ispc/distinfo
+++ b/devel/ispc/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1626566179
-SHA256 (ispc-ispc-v1.16.1_GH0.tar.gz) = e5dcd0d85df6ed5feb454ad9ec295083a07d7459fcaba00d5dd6266ceb476399
-SIZE (ispc-ispc-v1.16.1_GH0.tar.gz) = 19549428
+TIMESTAMP = 1643247706
+SHA256 (ispc-ispc-v1.17.0_GH0.tar.gz) = 37fb1055d6c6b232e112d8d50145d726824ed4d8da93a7396315dceba6c76e62
+SIZE (ispc-ispc-v1.17.0_GH0.tar.gz) = 19436681
diff --git a/devel/ispc/files/patch-CMakeLists.txt b/devel/ispc/files/patch-CMakeLists.txt
index a014710ff101..2c540960cbae 100644
--- a/devel/ispc/files/patch-CMakeLists.txt
+++ b/devel/ispc/files/patch-CMakeLists.txt
@@ -1,4 +1,4 @@
---- CMakeLists.txt.orig 2020-08-28 19:43:13 UTC
+--- CMakeLists.txt.orig 2022-01-15 08:35:15 UTC
+++ CMakeLists.txt
@@ -45,12 +45,17 @@ set(ISPC_BUILD TRUE)
project(${PROJECT_NAME})
@@ -18,5 +18,5 @@
-option(ARM_ENABLED "Enable ARM support" ON)
+option(ARM_ENABLED "Enable ARM support" ${ARM_HOST})
option(WASM_ENABLED "Enable experimental Web Assembly support" OFF)
- option(GENX_ENABLED "Enable GenX support" OFF)
+ option(XE_ENABLED "Enable Intel Xe support" OFF)
option(ISPC_INCLUDE_EXAMPLES "Generate build targets for the ISPC examples" ON)
diff --git a/devel/ispc/files/patch-cmake_GenerateBuiltins.cmake b/devel/ispc/files/patch-cmake_GenerateBuiltins.cmake
index e541332c18f1..d256ac87934d 100644
--- a/devel/ispc/files/patch-cmake_GenerateBuiltins.cmake
+++ b/devel/ispc/files/patch-cmake_GenerateBuiltins.cmake
@@ -1,6 +1,6 @@
---- cmake/GenerateBuiltins.cmake.orig 2021-07-15 23:04:31 UTC
+--- cmake/GenerateBuiltins.cmake.orig 2022-01-15 08:35:15 UTC
+++ cmake/GenerateBuiltins.cmake
-@@ -289,6 +289,8 @@ function(builtin_genx_to_cpp bit resultFileName)
+@@ -312,6 +312,8 @@ function(builtin_xe_to_cpp bit resultFileName)
set(os_name "windows")
elseif (APPLE)
set(SKIP ON)
diff --git a/devel/ispc/files/patch-src_func.cpp b/devel/ispc/files/patch-src_func.cpp
deleted file mode 100644
index ffbcebe61294..000000000000
--- a/devel/ispc/files/patch-src_func.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-Regressed by https://github.com/intel/vc-intrinsics/commit/8ee879314584
-
-src/func.cpp:490:44: error: no member named 'Reserved_0' in 'llvm::genx::KernelMDOp'
- mdArgs[llvm::genx::KernelMDOp::Reserved_0] =
- ~~~~~~~~~~~~~~~~~~~~~~~~^
-
---- src/func.cpp.orig 2021-07-15 23:04:31 UTC
-+++ src/func.cpp
-@@ -487,7 +487,7 @@ void Function::emitCode(FunctionEmitContext *ctx, llvm
- llvm::ValueAsMetadata::get(llvm::ConstantInt::getNullValue(i32Type));
- mdArgs[llvm::genx::KernelMDOp::ArgIOKinds] = llvm::MDNode::get(fContext, argInOutKinds);
- mdArgs[llvm::genx::KernelMDOp::ArgTypeDescs] = llvm::MDNode::get(fContext, argTypeDescs);
-- mdArgs[llvm::genx::KernelMDOp::Reserved_0] =
-+ mdArgs[llvm::genx::KernelMDOp::NBarrierCnt] =
- llvm::ValueAsMetadata::get(llvm::ConstantInt::getNullValue(i32Type));
- mdArgs[llvm::genx::KernelMDOp::BarrierCnt] =
- llvm::ValueAsMetadata::get(llvm::ConstantInt::getNullValue(i32Type));
diff --git a/devel/ispc/files/patch-src_ispc.cpp b/devel/ispc/files/patch-src_ispc.cpp
deleted file mode 100644
index e06e096d9b80..000000000000
--- a/devel/ispc/files/patch-src_ispc.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
---- src/ispc.cpp.orig 2021-07-15 23:04:31 UTC
-+++ src/ispc.cpp
-@@ -1464,10 +1464,22 @@ std::string Target::GetTripleString() const {
- triple.setArchName("armv7");
- } else if (m_arch == Arch::aarch64) {
- triple.setArchName("aarch64");
-+ } else if (m_arch == Arch::genx32) {
-+ triple.setArchName("spir");
-+ } else if (m_arch == Arch::genx64) {
-+ triple.setArchName("spir64");
- } else {
- Error(SourcePos(), "Unknown arch.");
- exit(1);
- }
-+#ifdef ISPC_GENX_ENABLED
-+ if (m_arch == Arch::genx32 || m_arch == Arch::genx64) {
-+ //"spir64-unknown-unknown"
-+ triple.setVendor(llvm::Triple::VendorType::UnknownVendor);
-+ triple.setOS(llvm::Triple::OSType::UnknownOS);
-+ return triple.str();
-+ }
-+#endif
- triple.setVendor(llvm::Triple::VendorType::UnknownVendor);
- triple.setOS(llvm::Triple::OSType::FreeBSD);
- break;
diff --git a/devel/ispc/files/patch-src_llvmutil.cpp b/devel/ispc/files/patch-src_llvmutil.cpp
index 53237378ba1e..53e2d9708916 100644
--- a/devel/ispc/files/patch-src_llvmutil.cpp
+++ b/devel/ispc/files/patch-src_llvmutil.cpp
@@ -1,8 +1,8 @@
ISPC devs insist on using dump() functions which LLVM devs consider a debug functionality, and it isn't available in the LLVM packages.
---- src/llvmutil.cpp.orig 2020-01-25 02:15:35 UTC
+--- src/llvmutil.cpp.orig 2022-01-15 08:35:15 UTC
+++ src/llvmutil.cpp
-@@ -1344,7 +1344,7 @@ static void lDumpValue(llvm::Value *v, std::set<llvm::
+@@ -1458,7 +1458,7 @@ static void lDumpValue(llvm::Value *v, std::set<llvm::
return;
fprintf(stderr, " ");
diff --git a/devel/ispc/files/patch-src_module.cpp b/devel/ispc/files/patch-src_module.cpp
index 06bfac61b41f..4eb8cb73a255 100644
--- a/devel/ispc/files/patch-src_module.cpp
+++ b/devel/ispc/files/patch-src_module.cpp
@@ -1,6 +1,6 @@
---- src/module.cpp.orig 2021-07-15 23:04:31 UTC
+--- src/module.cpp.orig 2022-01-15 08:35:15 UTC
+++ src/module.cpp
-@@ -102,7 +102,7 @@
+@@ -105,7 +105,7 @@
#define OCLOC_LIBRARY_NAME "ocloc64.dll"
#elif defined(_WIN32)
#define OCLOC_LIBRARY_NAME "ocloc32.dll"
@@ -9,26 +9,3 @@
#define OCLOC_LIBRARY_NAME "libocloc.so"
#else
#error "Unexpected platform"
-@@ -1149,7 +1149,7 @@ bool Module::translateToSPIRV(llvm::Module *module, st
- llvm::cl::desc("Allow DWARF operations not listed in the OpenCL.DebugInfo.100 "
- "specification (experimental, may produce incompatible SPIR-V "
- "module)"));
--#if ISPC_LLVM_VERSION < ISPC_LLVM_12_0
-+#if ISPC_LLVM_VERSION >= ISPC_LLVM_13_0
- Opts.setSPIRVAllowUnknownIntrinsics({"llvm.genx"});
- #else
- llvm::cl::opt<bool> SPIRVAllowUnknownIntrinsics(
-@@ -1314,7 +1314,12 @@ bool Module::writeObjectFileOrAssembly(llvm::TargetMachine *targetMachine, llvm::Module *module, OutputType outputType,
- llvm::CodeGenFileType fileType = (outputType == Object) ? llvm::CGFT_ObjectFile : llvm::CGFT_AssemblyFile;
- bool binary = (fileType == llvm::CGFT_ObjectFile);
-
-- llvm::sys::fs::OpenFlags flags = binary ? llvm::sys::fs::F_None : llvm::sys::fs::F_Text;
-+ llvm::sys::fs::OpenFlags flags = binary ?
-+#if ISPC_LLVM_VERSION >= ISPC_LLVM_13_0
-+ llvm::sys::fs::OF_None : llvm::sys::fs::OF_Text;
-+#else
-+ llvm::sys::fs::F_None : llvm::sys::fs::F_Text;
-+#endif
-
- std::error_code error;
-
diff --git a/devel/ispc/files/patch-src_opt.cpp b/devel/ispc/files/patch-src_opt.cpp
index 3bf08c14a7d0..d396f5dbd312 100644
--- a/devel/ispc/files/patch-src_opt.cpp
+++ b/devel/ispc/files/patch-src_opt.cpp
@@ -1,8 +1,8 @@
ISPC devs insist on using dump() functions which LLVM devs consider a debug functionality, and it isn't available in the LLVM packages.
---- src/opt.cpp.orig 2020-01-25 02:15:35 UTC
+--- src/opt.cpp.orig 2022-01-15 08:35:15 UTC
+++ src/opt.cpp
-@@ -144,7 +144,7 @@ static llvm::Pass *CreateFixBooleanSelectPass();
+@@ -155,7 +155,7 @@ static llvm::Pass *CreateMangleOpenCLBuiltins();
getenv("FUNC"), strlen(getenv("FUNC")))))) { \
fprintf(stderr, "Start of " NAME "\n"); \
fprintf(stderr, "---------------\n"); \
@@ -11,7 +11,7 @@ ISPC devs insist on using dump() functions which LLVM devs consider a debug func
fprintf(stderr, "---------------\n\n"); \
} else /* eat semicolon */
-@@ -154,7 +154,7 @@ static llvm::Pass *CreateFixBooleanSelectPass();
+@@ -165,7 +165,7 @@ static llvm::Pass *CreateMangleOpenCLBuiltins();
getenv("FUNC"), strlen(getenv("FUNC")))))) { \
fprintf(stderr, "End of " NAME " %s\n", modifiedAny ? "** CHANGES **" : ""); \
fprintf(stderr, "---------------\n"); \
@@ -20,7 +20,7 @@ ISPC devs insist on using dump() functions which LLVM devs consider a debug func
fprintf(stderr, "---------------\n\n"); \
} else /* eat semicolon */
#else
-@@ -442,7 +442,7 @@ void Optimize(llvm::Module *module, int optLevel) {
+@@ -467,7 +467,7 @@ void ispc::Optimize(llvm::Module *module, int optLevel
#ifndef ISPC_NO_DUMPS
if (g->debugPrint) {
printf("*** Code going into optimization ***\n");
@@ -29,7 +29,7 @@ ISPC devs insist on using dump() functions which LLVM devs consider a debug func
}
#endif
DebugPassManager optPM;
-@@ -655,7 +655,7 @@ void Optimize(llvm::Module *module, int optLevel) {
+@@ -811,7 +811,7 @@ void ispc::Optimize(llvm::Module *module, int optLevel
#ifndef ISPC_NO_DUMPS
if (g->debugPrint) {
printf("\n*****\nFINAL OUTPUT\n*****\n");
@@ -38,7 +38,7 @@ ISPC devs insist on using dump() functions which LLVM devs consider a debug func
}
#endif
}
-@@ -1728,11 +1728,11 @@ lExtractUniformsFromOffset(llvm::Value **basePtr, llvm
+@@ -1933,11 +1933,11 @@ lExtractUniformsFromOffset(llvm::Value **basePtr, llvm
llvm::Value *offsetScale,
llvm::Instruction *insertBefore) {
#if 1
@@ -53,7 +53,7 @@ ISPC devs insist on using dump() functions which LLVM devs consider a debug func
printf("-----\n");
#endif
-@@ -4217,7 +4217,7 @@ char DebugPass::ID = 0;
+@@ -4746,7 +4746,7 @@ char DebugPass::ID = 0;
bool DebugPass::runOnModule(llvm::Module &module) {
fprintf(stderr, "%s", str_output);
fflush(stderr);
@@ -62,18 +62,3 @@ ISPC devs insist on using dump() functions which LLVM devs consider a debug func
return true;
}
-@@ -4687,7 +4687,13 @@ void DebugPassFile::run(llvm::Module &module, bool init)
- std::error_code EC;
- char fname[100];
- snprintf(fname, sizeof(fname), "%s_%d_%s.ll", init ? "init" : "ir", pnum, sanitize(std::string(pname)).c_str());
-- llvm::raw_fd_ostream OS(fname, EC, llvm::sys::fs::F_None);
-+ llvm::raw_fd_ostream OS(fname, EC,
-+#if ISPC_LLVM_VERSION >= ISPC_LLVM_13_0
-+ llvm::sys::fs::OF_None
-+#else
-+ llvm::sys::fs::F_None
-+#endif
-+ );
- Assert(!EC && "IR dump file creation failed!");
- module.print(OS, 0);
- }