pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/parallel/pocl
Module Name: pkgsrc
Committed By: adam
Date: Fri May 9 06:05:19 UTC 2025
Modified Files:
pkgsrc/parallel/pocl: Makefile distinfo
Added Files:
pkgsrc/parallel/pocl/patches: patch-cmake_LLVM.cmake
patch-include___kernel.h patch-lib_CL_pocl__llvm__metadata.cc
patch-lib_CL_pocl__llvm__utils.cc
patch-lib_llvmopencl_CMakeLists.txt
patch-lib_llvmopencl_DebugHelpers.cc
patch-lib_llvmopencl_Flatten.cc
patch-lib_llvmopencl_FlattenBarrierSubs.cc
patch-lib_llvmopencl_FlattenGlobals.cc
patch-lib_llvmopencl_LLVMUtils.cc
patch-lib_llvmopencl_MinLegalVecSize.cc
patch-lib_llvmopencl_OptimizeWorkItemFuncCalls.cc
patch-lib_llvmopencl_VariableUniformityAnalysis.cc
patch-lib_llvmopencl_Workgroup.cc
patch-lib_llvmopencl_WorkitemHandler.cc
patch-lib_llvmopencl_linker.cpp
Log Message:
pocl: add LLVM 19 support
To generate a diff of this commit:
cvs rdiff -u -r1.24 -r1.25 pkgsrc/parallel/pocl/Makefile
cvs rdiff -u -r1.10 -r1.11 pkgsrc/parallel/pocl/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/parallel/pocl/patches/patch-cmake_LLVM.cmake \
pkgsrc/parallel/pocl/patches/patch-include___kernel.h \
pkgsrc/parallel/pocl/patches/patch-lib_CL_pocl__llvm__metadata.cc \
pkgsrc/parallel/pocl/patches/patch-lib_CL_pocl__llvm__utils.cc \
pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_CMakeLists.txt \
pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_DebugHelpers.cc \
pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_Flatten.cc \
pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_FlattenBarrierSubs.cc \
pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_FlattenGlobals.cc \
pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_LLVMUtils.cc \
pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_MinLegalVecSize.cc \
pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_OptimizeWorkItemFuncCalls.cc \
pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_VariableUniformityAnalysis.cc \
pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_Workgroup.cc \
pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_WorkitemHandler.cc \
pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_linker.cpp
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/parallel/pocl/Makefile
diff -u pkgsrc/parallel/pocl/Makefile:1.24 pkgsrc/parallel/pocl/Makefile:1.25
--- pkgsrc/parallel/pocl/Makefile:1.24 Tue Apr 22 16:07:26 2025
+++ pkgsrc/parallel/pocl/Makefile Fri May 9 06:05:18 2025
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.24 2025/04/22 16:07:26 nia Exp $
+# $NetBSD: Makefile,v 1.25 2025/05/09 06:05:18 adam Exp $
DISTNAME= pocl-6.0
PKGREVISION= 4
@@ -7,7 +7,7 @@ MASTER_SITES= ${MASTER_SITE_GITHUB:=pocl
GITHUB_TAG= v${PKGVERSION_NOREV}
MAINTAINER= pkgsrc-users%NetBSD.org@localhost
-HOMEPAGE= http://portablecl.org/
+HOMEPAGE= https://portablecl.org/
COMMENT= Portable implementation of the OpenCL standard
LICENSE= mit
Index: pkgsrc/parallel/pocl/distinfo
diff -u pkgsrc/parallel/pocl/distinfo:1.10 pkgsrc/parallel/pocl/distinfo:1.11
--- pkgsrc/parallel/pocl/distinfo:1.10 Sat Aug 3 09:54:16 2024
+++ pkgsrc/parallel/pocl/distinfo Fri May 9 06:05:18 2025
@@ -1,7 +1,23 @@
-$NetBSD: distinfo,v 1.10 2024/08/03 09:54:16 nia Exp $
+$NetBSD: distinfo,v 1.11 2025/05/09 06:05:18 adam Exp $
BLAKE2s (pocl-6.0.tar.gz) = 41c872fa3c88593a4f9eecc1788cabb68b0c34906ec9d88ab545f449f3a0ce75
SHA512 (pocl-6.0.tar.gz) = a24efadbbb81c810cd5c4bbb8abfa75b9bbdfeca786e8471dd75d40a78024d04c1b5c5a7114e75e1eb70a1b6a3756bb47ba741de0f1c4d1416fbce4688d62cc0
Size (pocl-6.0.tar.gz) = 2466652 bytes
+SHA1 (patch-cmake_LLVM.cmake) = 4c056279c8cc9dd4cbf9d7e9eda2940f0090fc2c
+SHA1 (patch-include___kernel.h) = 4b99b4c70772583a869313539fb843ac4e09b3d0
SHA1 (patch-lib_CL_clReleaseCommandBufferKHR.c) = e7ff54e189527b58ff719c51e0d365b3096a7607
SHA1 (patch-lib_CL_devices_proxy_pocl__proxy.c) = 774f4a9425c7d5f2820d4c8858a90ce8299b8897
+SHA1 (patch-lib_CL_pocl__llvm__metadata.cc) = 123c43656130e86ec242012b05654aed320e2ac6
+SHA1 (patch-lib_CL_pocl__llvm__utils.cc) = 2dbc7848bebb9b8d37bffb8b367c465982a0d746
+SHA1 (patch-lib_llvmopencl_CMakeLists.txt) = 7e7dcb754a097496cc76c65c10a4d20d857f3ade
+SHA1 (patch-lib_llvmopencl_DebugHelpers.cc) = 01638488299b5f409d9f1c3478862647b0d9d0f7
+SHA1 (patch-lib_llvmopencl_Flatten.cc) = 8775190c709326d2629b6572244d0e1f319023e9
+SHA1 (patch-lib_llvmopencl_FlattenBarrierSubs.cc) = fdc2d1da22ed23dea333f5a6b465d15a635c7283
+SHA1 (patch-lib_llvmopencl_FlattenGlobals.cc) = b828b0263117c910b6cd1502543cf5791379a9d4
+SHA1 (patch-lib_llvmopencl_LLVMUtils.cc) = 6c665e1dde05357bc9461048172d3fe8013eb302
+SHA1 (patch-lib_llvmopencl_MinLegalVecSize.cc) = b7dd9c3df472eb81754e046b2169b8f1b7013d48
+SHA1 (patch-lib_llvmopencl_OptimizeWorkItemFuncCalls.cc) = 9f61cb59e614a22c72b1d289d87cf038b81a07b2
+SHA1 (patch-lib_llvmopencl_VariableUniformityAnalysis.cc) = be800311ff41a322e4b64eba513b50568b4c7cbe
+SHA1 (patch-lib_llvmopencl_Workgroup.cc) = 258e7b75b7ea9478f7c956744716a7367a8cbbf8
+SHA1 (patch-lib_llvmopencl_WorkitemHandler.cc) = 8b8ccf078250a6378c6f8125692cc6d46abe1364
+SHA1 (patch-lib_llvmopencl_linker.cpp) = 94b313e8639870fd06af84e9ad1257c5eb171867
Added files:
Index: pkgsrc/parallel/pocl/patches/patch-cmake_LLVM.cmake
diff -u /dev/null pkgsrc/parallel/pocl/patches/patch-cmake_LLVM.cmake:1.1
--- /dev/null Fri May 9 06:05:19 2025
+++ pkgsrc/parallel/pocl/patches/patch-cmake_LLVM.cmake Fri May 9 06:05:18 2025
@@ -0,0 +1,19 @@
+$NetBSD: patch-cmake_LLVM.cmake,v 1.1 2025/05/09 06:05:18 adam Exp $
+
+Support LLVM 19.
+
+--- cmake/LLVM.cmake.orig 2025-05-03 06:02:25.986630878 +0000
++++ cmake/LLVM.cmake
+@@ -185,8 +185,11 @@ elseif(LLVM_VERSION MATCHES "^17[.]")
+ elseif(LLVM_VERSION MATCHES "^18[.]")
+ set(LLVM_MAJOR 18)
+ set(LLVM_18_0 1)
++elseif(LLVM_VERSION MATCHES "^19[.]")
++ set(LLVM_MAJOR 19)
++ set(LLVM_19_0 1)
+ else()
+- message(FATAL_ERROR "LLVM version between 14.0 and 18.0 required, found: ${LLVM_VERSION}")
++ message(FATAL_ERROR "LLVM version between 14.0 and 19.0 required, found: ${LLVM_VERSION}")
+ endif()
+
+ #############################################################
Index: pkgsrc/parallel/pocl/patches/patch-include___kernel.h
diff -u /dev/null pkgsrc/parallel/pocl/patches/patch-include___kernel.h:1.1
--- /dev/null Fri May 9 06:05:19 2025
+++ pkgsrc/parallel/pocl/patches/patch-include___kernel.h Fri May 9 06:05:18 2025
@@ -0,0 +1,18 @@
+$NetBSD: patch-include___kernel.h,v 1.1 2025/05/09 06:05:18 adam Exp $
+
+Support LLVM 19.
+
+--- include/_kernel.h.orig 2025-05-03 06:04:20.489478228 +0000
++++ include/_kernel.h
+@@ -143,6 +143,11 @@
+ #undef LLVM_18_0
+ #define LLVM_18_0
+
++#elif (__clang_major__ == 19)
++
++#undef LLVM_19_0
++#define LLVM_19_0
++
+ #else
+
+ #error Unsupported Clang/LLVM version.
Index: pkgsrc/parallel/pocl/patches/patch-lib_CL_pocl__llvm__metadata.cc
diff -u /dev/null pkgsrc/parallel/pocl/patches/patch-lib_CL_pocl__llvm__metadata.cc:1.1
--- /dev/null Fri May 9 06:05:19 2025
+++ pkgsrc/parallel/pocl/patches/patch-lib_CL_pocl__llvm__metadata.cc Fri May 9 06:05:18 2025
@@ -0,0 +1,53 @@
+$NetBSD: patch-lib_CL_pocl__llvm__metadata.cc,v 1.1 2025/05/09 06:05:18 adam Exp $
+
+Support LLVM 19.
+
+--- lib/CL/pocl_llvm_metadata.cc.orig 2024-06-18 12:15:45.000000000 +0000
++++ lib/CL/pocl_llvm_metadata.cc
+@@ -52,10 +52,10 @@ using namespace llvm;
+ static inline bool is_image_type(const llvm::Type &t) {
+ if (t.isPointerTy() && t.getPointerElementType()->isStructTy()) {
+ llvm::StringRef name = t.getPointerElementType()->getStructName();
+- if (name.startswith("opencl.image2d_") ||
+- name.startswith("opencl.image3d_") ||
+- name.startswith("opencl.image1d_") ||
+- name.startswith("struct._pocl_image"))
++ if (name.starts_with("opencl.image2d_") ||
++ name.starts_with("opencl.image3d_") ||
++ name.starts_with("opencl.image1d_") ||
++ name.starts_with("struct._pocl_image"))
+ return true;
+ }
+ return false;
+@@ -64,7 +64,7 @@ static inline bool is_image_type(const l
+ static inline bool is_sampler_type(const llvm::Type &t) {
+ if (t.isPointerTy() && t.getPointerElementType()->isStructTy()) {
+ llvm::StringRef name = t.getPointerElementType()->getStructName();
+- if (name.startswith("opencl.sampler_t"))
++ if (name.starts_with("opencl.sampler_t"))
+ return true;
+ }
+ return false;
+@@ -79,8 +79,8 @@ static inline bool is_image_type(struct
+ llvm::StringRef name(ArgInfo.type_name);
+ if ((has_arg_meta & POCL_HAS_KERNEL_ARG_ACCESS_QUALIFIER) &&
+ (ArgInfo.access_qualifier != CL_KERNEL_ARG_ACCESS_NONE)) {
+- if (name.startswith("image2d_") || name.startswith("image3d_") ||
+- name.startswith("image1d_") || name.startswith("_pocl_image"))
++ if (name.starts_with("image2d_") || name.starts_with("image3d_") ||
++ name.starts_with("image1d_") || name.starts_with("_pocl_image"))
+ return true;
+ }
+ }
+@@ -91,10 +91,7 @@ static inline bool is_sampler_type(struc
+ cl_bitfield has_arg_meta) {
+ assert(has_arg_meta & POCL_HAS_KERNEL_ARG_TYPE_NAME);
+ llvm::StringRef name(ArgInfo.type_name);
+- if (name.equals("sampler_t"))
+- return true;
+- else
+- return false;
++ return name == "sampler_t";
+ }
+ #endif
+
Index: pkgsrc/parallel/pocl/patches/patch-lib_CL_pocl__llvm__utils.cc
diff -u /dev/null pkgsrc/parallel/pocl/patches/patch-lib_CL_pocl__llvm__utils.cc:1.1
--- /dev/null Fri May 9 06:05:19 2025
+++ pkgsrc/parallel/pocl/patches/patch-lib_CL_pocl__llvm__utils.cc Fri May 9 06:05:18 2025
@@ -0,0 +1,86 @@
+$NetBSD: patch-lib_CL_pocl__llvm__utils.cc,v 1.1 2025/05/09 06:05:18 adam Exp $
+
+Support LLVM 19.
+
+--- lib/CL/pocl_llvm_utils.cc.orig 2025-05-03 06:22:51.273436819 +0000
++++ lib/CL/pocl_llvm_utils.cc
+@@ -257,11 +257,17 @@ const char *pocl_get_distro_kernellib_va
+ StringMap<bool> Features;
+
+ #if defined(__i386__) || defined(__x86_64__)
++
++#if LLVM_MAJOR < 19
+ if (!llvm::sys::getHostCPUFeatures(Features)) {
+ POCL_MSG_WARN("LLVM can't get host CPU flags!\n");
+ return NULL;
+ }
+ #else
++ Features = llvm::sys::getHostCPUFeatures();
++#endif
++
++#else
+ return pocl_get_llvm_cpu_name();
+ #endif
+
+@@ -295,11 +301,16 @@ const char *pocl_get_distro_cpu_name(con
+ StringMap<bool> Features;
+
+ #if defined(__i386__) || defined(__x86_64__)
++#if LLVM_MAJOR < 19
+ if (!llvm::sys::getHostCPUFeatures(Features)) {
+ POCL_MSG_WARN("LLVM can't get host CPU flags!\n");
+ return NULL;
+ }
+ #else
++ Features = llvm::sys::getHostCPUFeatures();
++ #endif
++
++#else
+ return pocl_get_llvm_cpu_name();
+ #endif
+
+@@ -327,24 +338,35 @@ int pocl_bitcode_is_triple(const char *b
+ // TODO this should be fixed to not require LLVM eventually,
+ // so that LLVM-less builds also report FMA correctly.
+ int cpu_has_fma() {
+- StringMap<bool> features;
+- bool res = llvm::sys::getHostCPUFeatures(features);
+- return ((res && (features["fma"] || features["fma4"])) ? 1 : 0);
++ StringMap<bool> Features;
++#if LLVM_MAJOR < 19
++ bool Res = llvm::sys::getHostCPUFeatures(Features);
++#else
++ const bool Res = true;
++ Features = llvm::sys::getHostCPUFeatures();
++#endif
++ return ((Res && (Features["fma"] || Features["fma4"])) ? 1 : 0);
+ }
+
+ #define VECWIDTH(x) \
+ std::min(std::max((lane_width / (unsigned)(sizeof(x))), 1U), 16U)
+
+ void cpu_setup_vector_widths(cl_device_id dev) {
+- StringMap<bool> features;
+- bool res = llvm::sys::getHostCPUFeatures(features);
++ StringMap<bool> Features;
++ bool Res = true;
++#if LLVM_MAJOR < 19
++ Res = llvm::sys::getHostCPUFeatures(Features);
++#else
++ Features = llvm::sys::getHostCPUFeatures();
++#endif
++
+ unsigned lane_width = 1;
+- if (res) {
+- if ((features["sse"]) || (features["neon"]))
++ if (Res) {
++ if ((Features["sse"]) || (Features["neon"]))
+ lane_width = 16;
+- if (features["avx"])
++ if (Features["avx"])
+ lane_width = 32;
+- if (features["avx512f"])
++ if (Features["avx512f"])
+ lane_width = 64;
+ }
+ dev->native_vector_width_in_bits = lane_width * 8;
Index: pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_CMakeLists.txt
diff -u /dev/null pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_CMakeLists.txt:1.1
--- /dev/null Fri May 9 06:05:19 2025
+++ pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_CMakeLists.txt Fri May 9 06:05:18 2025
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_llvmopencl_CMakeLists.txt,v 1.1 2025/05/09 06:05:18 adam Exp $
+
+Support LLVM 19.
+
+--- lib/llvmopencl/CMakeLists.txt.orig 2025-05-03 06:28:23.578043394 +0000
++++ lib/llvmopencl/CMakeLists.txt
+@@ -35,8 +35,6 @@ set(LLVMPASSES_SOURCES "AllocasToEntry.c
+ "Barrier.h"
+ "BarrierTailReplication.cc"
+ "BarrierTailReplication.h"
+- "BreakConstantGEPs.cpp"
+- "BreakConstantGEPs.h"
+ "CanonicalizeBarriers.cc"
+ "CanonicalizeBarriers.h"
+ "DebugHelpers.cc"
Index: pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_DebugHelpers.cc
diff -u /dev/null pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_DebugHelpers.cc:1.1
--- /dev/null Fri May 9 06:05:19 2025
+++ pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_DebugHelpers.cc Fri May 9 06:05:18 2025
@@ -0,0 +1,24 @@
+$NetBSD: patch-lib_llvmopencl_DebugHelpers.cc,v 1.1 2025/05/09 06:05:18 adam Exp $
+
+Support LLVM 19.
+
+--- lib/llvmopencl/DebugHelpers.cc.orig 2025-05-03 06:32:07.508288902 +0000
++++ lib/llvmopencl/DebugHelpers.cc
+@@ -82,13 +82,13 @@ static void printBasicBlock(
+ s << ",label=\"" << b->getName().str() << ":\\n";
+
+ // The work-item loop control structures.
+- if (b->getName().startswith("pregion_for_cond")) {
++ if (b->getName().starts_with("pregion_for_cond")) {
+ s << "wi-loop branch\\n";
+- } else if (b->getName().startswith("pregion_for_inc")) {
++ } else if (b->getName().starts_with("pregion_for_inc")) {
+ s << "local_id_* increment\\n";
+- } else if (b->getName().startswith("pregion_for_init")) {
++ } else if (b->getName().starts_with("pregion_for_init")) {
+ s << "wi-loop init\\n";
+- } else if (b->getName().startswith("pregion_for_end")) {
++ } else if (b->getName().starts_with("pregion_for_end")) {
+ s << "wi-loop exit\\n";
+ } else {
+ // analyze the contents of the BB
Index: pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_Flatten.cc
diff -u /dev/null pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_Flatten.cc:1.1
--- /dev/null Fri May 9 06:05:19 2025
+++ pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_Flatten.cc Fri May 9 06:05:18 2025
@@ -0,0 +1,14 @@
+$NetBSD: patch-lib_llvmopencl_Flatten.cc,v 1.1 2025/05/09 06:05:18 adam Exp $
+
+Support LLVM 19.
+
+--- lib/llvmopencl/Flatten.cc.orig 2025-05-03 06:33:52.040026650 +0000
++++ lib/llvmopencl/Flatten.cc
+@@ -74,7 +74,7 @@ static bool flattenAll(Module &M) {
+
+ for (llvm::Module::iterator i = M.begin(), e = M.end(); i != e; ++i) {
+ llvm::Function *f = &*i;
+- if (f->isDeclaration() || f->getName().startswith("__pocl_print") ||
++ if (f->isDeclaration() || f->getName().starts_with("__pocl_print") ||
+ AuxFuncs.find(f->getName().str()) != AuxFuncs.end())
+ continue;
Index: pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_FlattenBarrierSubs.cc
diff -u /dev/null pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_FlattenBarrierSubs.cc:1.1
--- /dev/null Fri May 9 06:05:19 2025
+++ pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_FlattenBarrierSubs.cc Fri May 9 06:05:18 2025
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_llvmopencl_FlattenBarrierSubs.cc,v 1.1 2025/05/09 06:05:18 adam Exp $
+
+Support LLVM 19.
+
+--- lib/llvmopencl/FlattenBarrierSubs.cc.orig 2025-05-03 06:34:58.933958001 +0000
++++ lib/llvmopencl/FlattenBarrierSubs.cc
+@@ -71,7 +71,7 @@ static bool recursivelyInlineBarrierUser
+ CallInst *CallInstr = dyn_cast<CallInst>(Instr);
+ Function *Callee = CallInstr->getCalledFunction();
+
+- if ((Callee == nullptr) || Callee->getName().startswith("llvm."))
++ if ((Callee == nullptr) || Callee->getName().starts_with("llvm."))
+ continue;
+
+ if (llvm::isa<pocl::Barrier>(CallInstr))
Index: pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_FlattenGlobals.cc
diff -u /dev/null pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_FlattenGlobals.cc:1.1
--- /dev/null Fri May 9 06:05:19 2025
+++ pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_FlattenGlobals.cc Fri May 9 06:05:18 2025
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_llvmopencl_FlattenGlobals.cc,v 1.1 2025/05/09 06:05:18 adam Exp $
+
+Support LLVM 19.
+
+--- lib/llvmopencl/FlattenGlobals.cc.orig 2025-05-03 06:29:36.030212660 +0000
++++ lib/llvmopencl/FlattenGlobals.cc
+@@ -111,7 +111,7 @@ static bool flattenGlobals(Module &M) {
+ llvm::Function *f = &*i;
+ if (f->isDeclaration())
+ continue;
+- if (f->getName().equals(barrier)) {
++ if (f->getName() == barrier) {
+ f->removeFnAttr(Attribute::NoInline);
+ f->removeFnAttr(Attribute::OptimizeNone);
+ f->addFnAttr(Attribute::AlwaysInline);
Index: pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_LLVMUtils.cc
diff -u /dev/null pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_LLVMUtils.cc:1.1
--- /dev/null Fri May 9 06:05:19 2025
+++ pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_LLVMUtils.cc Fri May 9 06:05:18 2025
@@ -0,0 +1,49 @@
+$NetBSD: patch-lib_llvmopencl_LLVMUtils.cc,v 1.1 2025/05/09 06:05:18 adam Exp $
+
+Support LLVM 19.
+
+--- lib/llvmopencl/LLVMUtils.cc.orig 2024-06-18 12:15:45.000000000 +0000
++++ lib/llvmopencl/LLVMUtils.cc
+@@ -37,7 +37,6 @@ IGNORE_COMPILER_WARNING("-Wunused-parame
+ #include "AllocasToEntry.h"
+ #include "AutomaticLocals.h"
+ #include "BarrierTailReplication.h"
+-#include "BreakConstantGEPs.h"
+ #include "CanonicalizeBarriers.h"
+ #include "DebugHelpers.h"
+ #include "Flatten.hh"
+@@ -250,7 +249,7 @@ isAutomaticLocal(llvm::Function *F, llvm
+ std::string FuncName = F->getName().str();
+ if (!llvm::isa<llvm::PointerType>(Var.getType()) || Var.isConstant())
+ return false;
+- if (Var.getName().startswith(FuncName + ".")) {
++ if (Var.getName().starts_with(FuncName + ".")) {
+ assert(isGVarUsedByFunction(&Var, F) == true);
+ return true;
+ }
+@@ -421,7 +420,7 @@ bool isKernelToProcess(const llvm::Funct
+ return false;
+ if (!F.hasName())
+ return false;
+- if (F.getName().startswith("@llvm"))
++ if (F.getName().starts_with("@llvm"))
+ return false;
+
+ NamedMDNode *kernels = m->getNamedMetadata("opencl.kernels");
+@@ -456,7 +455,7 @@ void removeUnreachableSwitchCases(llvm::
+ for (Function::iterator FI = F.begin(), FE = F.end(); FI != FE; ++FI) {
+ BasicBlock *BB = &*FI;
+
+- if (BB->hasName() && BB->getName().startswith("default.unreachable")) {
++ if (BB->hasName() && BB->getName().starts_with("default.unreachable")) {
+ #ifdef DEBUG_UNREACHABLE_SWITCH_REMOVAL
+ std::cerr << "##################################################\n";
+ std::cerr << "### converting unreachable block: " << (void *)BB << "\n";
+@@ -578,7 +577,6 @@ void registerPassBuilderPasses(llvm::Pas
+ AllocasToEntry::registerWithPB(PB);
+ AutomaticLocals::registerWithPB(PB);
+ BarrierTailReplication::registerWithPB(PB);
+- BreakConstantGEPs::registerWithPB(PB);
+ CanonicalizeBarriers::registerWithPB(PB);
+ FlattenAll::registerWithPB(PB);
+ FlattenBarrierSubs::registerWithPB(PB);
Index: pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_MinLegalVecSize.cc
diff -u /dev/null pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_MinLegalVecSize.cc:1.1
--- /dev/null Fri May 9 06:05:19 2025
+++ pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_MinLegalVecSize.cc Fri May 9 06:05:18 2025
@@ -0,0 +1,33 @@
+$NetBSD: patch-lib_llvmopencl_MinLegalVecSize.cc,v 1.1 2025/05/09 06:05:18 adam Exp $
+
+Support LLVM 19.
+
+--- lib/llvmopencl/MinLegalVecSize.cc.orig 2025-05-03 06:41:11.677977719 +0000
++++ lib/llvmopencl/MinLegalVecSize.cc
+@@ -133,7 +133,7 @@ static uint64_t getAndFixLargestVecSize(
+ if (Callee == nullptr)
+ continue;
+
+- if (Callee->hasName() && Callee->getName().startswith("llvm."))
++ if (Callee->hasName() && Callee->getName().starts_with("llvm."))
+ continue;
+
+ Calls.push_back(Callee);
+@@ -188,7 +188,7 @@ static bool fixMinVecSize(Module &M) {
+ llvm::Function *F = &*i;
+ if (F->isDeclaration())
+ continue;
+- if (F->hasName() && F->getName().startswith("llvm."))
++ if (F->hasName() && F->getName().starts_with("llvm."))
+ continue;
+
+ // AttributeSet Attrs;
+@@ -219,7 +219,7 @@ static bool fixMinVecSize(Module &M) {
+ llvm::Function *F = &*i;
+ if (F->isDeclaration())
+ continue;
+- if (F->hasName() && F->getName().startswith("llvm."))
++ if (F->hasName() && F->getName().starts_with("llvm."))
+ continue;
+ if (pocl::isKernelToProcess(*F))
+ continue;
Index: pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_OptimizeWorkItemFuncCalls.cc
diff -u /dev/null pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_OptimizeWorkItemFuncCalls.cc:1.1
--- /dev/null Fri May 9 06:05:19 2025
+++ pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_OptimizeWorkItemFuncCalls.cc Fri May 9 06:05:18 2025
@@ -0,0 +1,22 @@
+$NetBSD: patch-lib_llvmopencl_OptimizeWorkItemFuncCalls.cc,v 1.1 2025/05/09 06:05:18 adam Exp $
+
+Support LLVM 19.
+
+--- lib/llvmopencl/OptimizeWorkItemFuncCalls.cc.orig 2025-05-03 06:41:48.048591095 +0000
++++ lib/llvmopencl/OptimizeWorkItemFuncCalls.cc
+@@ -52,13 +52,13 @@ static bool optimizeWorkItemFuncCalls(Fu
+ // Let's avoid reoptimizing pocl_printf in the kernel compiler. It should
+ // be optimized already in the bitcode library, and we do not want to
+ // aggressively inline it to the kernel, causing compile time expansion.
+- if (F.getName().startswith("__pocl_print") &&
++ if (F.getName().starts_with("__pocl_print") &&
+ !F.hasFnAttribute(Attribute::OptimizeNone)) {
+ F.addFnAttr(Attribute::OptimizeNone);
+ F.addFnAttr(Attribute::NoInline);
+ }
+
+- if (F.getName().startswith("_") || F.hasFnAttribute(Attribute::OptimizeNone))
++ if (F.getName().starts_with("_") || F.hasFnAttribute(Attribute::OptimizeNone))
+ return false;
+
+ // Find calls to WI functions and unify them to a single call in the
Index: pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_VariableUniformityAnalysis.cc
diff -u /dev/null pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_VariableUniformityAnalysis.cc:1.1
--- /dev/null Fri May 9 06:05:19 2025
+++ pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_VariableUniformityAnalysis.cc Fri May 9 06:05:19 2025
@@ -0,0 +1,17 @@
+$NetBSD: patch-lib_llvmopencl_VariableUniformityAnalysis.cc,v 1.1 2025/05/09 06:05:19 adam Exp $
+
+Support LLVM 19.
+
+--- lib/llvmopencl/VariableUniformityAnalysis.cc.orig 2025-05-03 06:42:36.209606048 +0000
++++ lib/llvmopencl/VariableUniformityAnalysis.cc
+@@ -339,8 +339,8 @@ bool VariableUniformityAnalysisResult::i
+ CallInst *CallInstr = dyn_cast<CallInst>(user);
+ Function *Callee = CallInstr->getCalledFunction();
+ if (Callee != nullptr &&
+- (Callee->getName().startswith("llvm.lifetime.end") ||
+- Callee->getName().startswith("llvm.lifetime.start"))) {
++ (Callee->getName().starts_with("llvm.lifetime.end") ||
++ Callee->getName().starts_with("llvm.lifetime.start"))) {
+ #ifdef DEBUG_UNIFORMITY_ANALYSIS
+ std::cerr << "### alloca is used by llvm.lifetime" << std::endl;
+ user->dump();
Index: pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_Workgroup.cc
diff -u /dev/null pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_Workgroup.cc:1.1
--- /dev/null Fri May 9 06:05:19 2025
+++ pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_Workgroup.cc Fri May 9 06:05:19 2025
@@ -0,0 +1,48 @@
+$NetBSD: patch-lib_llvmopencl_Workgroup.cc,v 1.1 2025/05/09 06:05:19 adam Exp $
+
+Support LLVM 19.
+
+--- lib/llvmopencl/Workgroup.cc.orig 2025-05-03 06:43:51.271687868 +0000
++++ lib/llvmopencl/Workgroup.cc
+@@ -249,7 +249,7 @@ bool WorkgroupImpl::runOnModule(Module &
+ // linker's switch --wrap=symbol, where calls to the "symbol" are replaced
+ // with "__wrap_symbol" at link time. These functions may not be referenced
+ // until final link and being deleted by LLVM optimizations before it.
+- if (!i->isDeclaration() && !i->getName().startswith("__wrap_"))
++ if (!i->isDeclaration() && !i->getName().starts_with("__wrap_"))
+ i->setLinkage(Function::InternalLinkage);
+ }
+
+@@ -467,11 +467,11 @@ static bool callsPrintf(Function *F) {
+ continue;
+ Function *callee = CallInstr->getCalledFunction();
+
+- if (callee->getName().startswith("llvm."))
++ if (callee->getName().starts_with("llvm."))
+ continue;
+- if (callee->getName().equals("_cl_printf"))
++ if (callee->getName() == "_cl_printf")
+ return true;
+- if (callee->getName().equals("__pocl_printf"))
++ if (callee->getName() == "__pocl_printf")
+ return true;
+ if (callsPrintf(callee))
+ return true;
+@@ -568,7 +568,7 @@ static void replacePrintfCalls(Value *pb
+ if (oldF == nullptr)
+ continue;
+
+- if (oldF->getName().equals("_cl_printf")) {
++ if (oldF->getName() == "_cl_printf") {
+ ops.clear();
+ ops.push_back(pb);
+ ops.push_back(pbp);
+@@ -598,7 +598,7 @@ static void replacePrintfCalls(Value *pb
+ replaceCIMap.insert(
+ std::pair<CallInst *, CallInst *>(CallInstr, NewCI));
+ } else {
+- if (!oldF->getName().startswith("llvm."))
++ if (!oldF->getName().starts_with("llvm."))
+ callsToCheck.push_back(CallInstr);
+ }
+ }
Index: pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_WorkitemHandler.cc
diff -u /dev/null pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_WorkitemHandler.cc:1.1
--- /dev/null Fri May 9 06:05:19 2025
+++ pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_WorkitemHandler.cc Fri May 9 06:05:19 2025
@@ -0,0 +1,15 @@
+$NetBSD: patch-lib_llvmopencl_WorkitemHandler.cc,v 1.1 2025/05/09 06:05:19 adam Exp $
+
+Support LLVM 19.
+
+--- lib/llvmopencl/WorkitemHandler.cc.orig 2024-06-18 12:15:45.000000000 +0000
++++ lib/llvmopencl/WorkitemHandler.cc
+@@ -179,7 +179,7 @@ bool WorkitemHandler::fixUndominatedVari
+ StringRef baseName;
+ std::pair< StringRef, StringRef > pieces =
+ operand->getName().rsplit('.');
+- if (pieces.second.startswith("pocl_"))
++ if (pieces.second.starts_with("pocl_"))
+ baseName = pieces.first;
+ else
+ baseName = operand->getName();
Index: pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_linker.cpp
diff -u /dev/null pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_linker.cpp:1.1
--- /dev/null Fri May 9 06:05:19 2025
+++ pkgsrc/parallel/pocl/patches/patch-lib_llvmopencl_linker.cpp Fri May 9 06:05:19 2025
@@ -0,0 +1,41 @@
+$NetBSD: patch-lib_llvmopencl_linker.cpp,v 1.1 2025/05/09 06:05:19 adam Exp $
+
+Support LLVM 19.
+
+--- lib/llvmopencl/linker.cpp.orig 2025-05-03 06:36:30.822749420 +0000
++++ lib/llvmopencl/linker.cpp
+@@ -121,7 +121,7 @@ static void fixCallingConv(llvm::Module
+ CallInst *CallInstr = dyn_cast<CallInst>(Instr);
+ Function *Callee = CallInstr->getCalledFunction();
+
+- if ((Callee == nullptr) || Callee->getName().startswith("llvm.") ||
++ if ((Callee == nullptr) || Callee->getName().starts_with("llvm.") ||
+ Callee->isDeclaration())
+ continue;
+
+@@ -434,9 +434,9 @@ int link(llvm::Module *Program, const ll
+ if (copy_func_callgraph(r, Lib, Program, vvm)) {
+ Function *f = Program->getFunction(r);
+
+- if (f->getName().equals("__to_local") ||
+- f->getName().equals("__to_global") ||
+- f->getName().equals("__to_private")) {
++ if (f->getName() == "__to_local" ||
++ f->getName() == "__to_global" ||
++ f->getName() == "__to_private") {
+
+ // Special handling for the AS cast built-ins: They do not use
+ // type mangling, which complicates the CPU implementation which
+@@ -478,9 +478,9 @@ int link(llvm::Module *Program, const ll
+ (f->isDeclaration() &&
+ // A target might want to expose the C99 printf in case not supporting
+ // the OpenCL 1.2 printf.
+- !f->getName().equals("printf") &&
+- !f->getName().equals(pocl_sampler_handler) &&
+- !f->getName().startswith(llvm_intrins))
++ f->getName() != "printf" &&
++ f->getName() != pocl_sampler_handler &&
++ !f->getName().starts_with(llvm_intrins))
+ ) {
+ Log.append("Cannot find symbol ");
+ Log.append(r.str());
Home |
Main Index |
Thread Index |
Old Index