1.6 release

This commit is contained in:
Serge Guelton 2020-12-18 08:01:20 +01:00
parent ac317e40b4
commit 2912b89182
6 changed files with 11 additions and 420 deletions

View File

@ -1,25 +0,0 @@
From 76179ea2fae3efa996bd850e09b5f3ba73ff5144 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Tue, 11 Aug 2020 14:23:42 +0000
Subject: [PATCH] Add missing include
---
lib/CL/pocl_llvm_build.cc | 2 ++
1 file changed, 2 insertions(+)
diff --git a/lib/CL/pocl_llvm_build.cc b/lib/CL/pocl_llvm_build.cc
index 5db8d7cb..197171f4 100644
--- a/lib/CL/pocl_llvm_build.cc
+++ b/lib/CL/pocl_llvm_build.cc
@@ -40,6 +40,8 @@ IGNORE_COMPILER_WARNING("-Wstrict-aliasing")
#include <clang/Frontend/TextDiagnosticPrinter.h>
#include "clang/Lex/PreprocessorOptions.h"
+#include <llvm/Support/Host.h>
+
#ifdef LLVM_OLDER_THAN_10_0
#include "llvm/ADT/ArrayRef.h"
#endif
--
2.26.2

View File

@ -1,17 +1,7 @@
From 0a25388105d2b8a01191939f04e355543b0aed51 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Thu, 19 Sep 2019 17:45:32 -0700
Subject: [PATCH] Fix build failure
---
lib/CL/devices/pthread/pthread_scheduler.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/CL/devices/pthread/pthread_scheduler.c b/lib/CL/devices/pthread/pthread_scheduler.c
index 0515f7b..4b09a43 100644
--- a/lib/CL/devices/pthread/pthread_scheduler.c
+++ b/lib/CL/devices/pthread/pthread_scheduler.c
@@ -405,7 +405,7 @@ check_cmd_queue_for_device (thread_data *td)
diff -Naur pocl-1.6.orig/lib/CL/devices/pthread/pthread_scheduler.c pocl-1.6/lib/CL/devices/pthread/pthread_scheduler.c
--- pocl-1.6.orig/lib/CL/devices/pthread/pthread_scheduler.c 2020-12-18 07:47:41.000000000 +0100
+++ pocl-1.6/lib/CL/devices/pthread/pthread_scheduler.c 2020-12-18 07:48:03.000000000 +0100
@@ -409,7 +409,7 @@
cl_device_id subd = cmd->device;
if (shall_we_run_this (td, subd))
{
@ -20,6 +10,3 @@ index 0515f7b..4b09a43 100644
return cmd;
}
}
--
1.8.3.1

View File

@ -1,167 +0,0 @@
From dae742fae9978c524ec849a90d0b40a9682fb172 Mon Sep 17 00:00:00 2001
From: KOLANICH <kolan_n@mail.ru>
Date: Mon, 22 Jun 2020 15:53:45 +0300
Subject: [PATCH] Fixing llvm11 support due to recent changes:
https://github.com/llvm/llvm-project/commit/4f04db4b5439f390c48408f9b94875810e88ffc6
https://github.com/llvm/llvm-project/commit/a58b62b4a2b96c31b49338b262b609db746449e8
https://github.com/llvm/llvm-project/commit/4aae4e3f48b9156755c4cfc7ad63fe2a7029d9d7
.
---
lib/llvmopencl/HandleSamplerInitialization.cc | 4 +++
lib/llvmopencl/HandleSamplerInitialization.h | 1 -
lib/llvmopencl/Workgroup.cc | 35 +++++++++++++++++--
lib/llvmopencl/WorkitemLoops.cc | 4 +++
4 files changed, 41 insertions(+), 3 deletions(-)
diff --git a/lib/llvmopencl/HandleSamplerInitialization.cc b/lib/llvmopencl/HandleSamplerInitialization.cc
index 4cbc5617..5d65c48f 100644
--- a/lib/llvmopencl/HandleSamplerInitialization.cc
+++ b/lib/llvmopencl/HandleSamplerInitialization.cc
@@ -79,7 +79,11 @@ HandleSamplerInitialization::runOnFunction(Function &F) {
// get the type of the return value of __translate_sampler
// this may not always be opencl.sampler_t, it could be a remapped type.
+#ifdef LLVM_OLDER_THAN_11_0
Type *type = C->getCalledValue()->getType();
+#else
+ Type *type = C->getCalledOperand()->getType();
+#endif
PointerType *pt = dyn_cast<PointerType>(type);
FunctionType *ft = dyn_cast<FunctionType>(pt->getPointerElementType());
Type *rettype = ft->getReturnType();
diff --git a/lib/llvmopencl/HandleSamplerInitialization.h b/lib/llvmopencl/HandleSamplerInitialization.h
index e8274e50..dc7539e2 100644
--- a/lib/llvmopencl/HandleSamplerInitialization.h
+++ b/lib/llvmopencl/HandleSamplerInitialization.h
@@ -27,7 +27,6 @@
IGNORE_COMPILER_WARNING("-Wunused-parameter")
#include <llvm/IR/Function.h>
-#include <llvm/PassAnalysisSupport.h>
#include <llvm/Pass.h>
POP_COMPILER_DIAGS
diff --git a/lib/llvmopencl/Workgroup.cc b/lib/llvmopencl/Workgroup.cc
index 357049a1..0ae2f34c 100644
--- a/lib/llvmopencl/Workgroup.cc
+++ b/lib/llvmopencl/Workgroup.cc
@@ -35,7 +35,9 @@ IGNORE_COMPILER_WARNING("-Wunused-parameter")
#include <llvm/Analysis/ConstantFolding.h>
#include <llvm/IR/BasicBlock.h>
+#ifdef LLVM_OLDER_THAN_11_0
#include <llvm/IR/CallSite.h>
+#endif
#include <llvm/IR/Constants.h>
#include <llvm/IR/DerivedTypes.h>
#include <llvm/IR/IRBuilder.h>
@@ -517,10 +519,15 @@ static void replacePrintfCalls(Value *pb, Value *pbp, Value *pbc, bool isKernel,
for (unsigned i = 0; i < j; ++i)
ops.push_back(CallInstr->getOperand(i));
- CallSite CS(CallInstr);
CallInst *NewCI = CallInst::Create(poclPrintf, ops);
NewCI->setCallingConv(poclPrintf->getCallingConv());
+#ifdef LLVM_OLDER_THAN_11_0
+ CallSite CS(CallInstr);
NewCI->setTailCall(CS.isTailCall());
+#else
+ auto *CB = dyn_cast<CallBase>(CallInstr);
+ NewCI->setTailCall(CB->isTailCall());
+#endif
replaceCIMap.insert(
std::pair<CallInst *, CallInst *>(CallInstr, NewCI));
@@ -719,7 +726,11 @@ Workgroup::createWrapper(Function *F, FunctionMapping &printfCache) {
// needed for printf
InlineFunctionInfo IFI;
+#ifdef LLVM_OLDER_THAN_11_0
InlineFunction(c, IFI);
+#else
+ InlineFunction(*c, IFI);
+#endif
if (currentPoclDevice->device_side_printf) {
Function *poclPrintf = M->getFunction("__pocl_printf");
@@ -989,7 +1000,11 @@ Workgroup::createDefaultWorkgroupLauncher(llvm::Function *F) {
new llvm::AllocaInst(ArgElementType, ParamType->getAddressSpace(),
ConstantInt::get(IntegerType::get(*C, 32), 1),
#ifndef LLVM_OLDER_THAN_10_0
+#ifndef LLVM_OLDER_THAN_11_0
+ llvm::Align(
+#else
llvm::MaybeAlign(
+#endif
#endif
MAX_EXTENDED_ALIGNMENT
#ifndef LLVM_OLDER_THAN_10_0
@@ -1012,7 +1027,11 @@ Workgroup::createDefaultWorkgroupLauncher(llvm::Function *F) {
Arg = new llvm::AllocaInst(ArgElementType, ParamType->getAddressSpace(),
ElementCount,
#ifndef LLVM_OLDER_THAN_10_0
+#ifndef LLVM_OLDER_THAN_11_0
+ llvm::Align(
+#else
llvm::MaybeAlign(
+#endif
#endif
MAX_EXTENDED_ALIGNMENT
#ifndef LLVM_OLDER_THAN_10_0
@@ -1213,7 +1232,11 @@ Workgroup::createArgBufferWorkgroupLauncher(Function *Func,
unwrap(ArgElementType), LLVMGetPointerAddressSpace(ParamType),
unwrap(LLVMConstInt(Int32Type, 1, 0)),
#ifndef LLVM_OLDER_THAN_10_0
+#ifndef LLVM_OLDER_THAN_11_0
+ llvm::Align(
+#else
llvm::MaybeAlign(
+#endif
#endif
MAX_EXTENDED_ALIGNMENT
#ifndef LLVM_OLDER_THAN_10_0
@@ -1248,7 +1271,11 @@ Workgroup::createArgBufferWorkgroupLauncher(Function *Func,
unwrap(LLVMGetElementType(ParamType)),
LLVMGetPointerAddressSpace(ParamType), unwrap(ElementCount),
#ifndef LLVM_OLDER_THAN_10_0
+#ifndef LLVM_OLDER_THAN_11_0
+ llvm::Align(
+#else
llvm::MaybeAlign(
+#endif
#endif
MAX_EXTENDED_ALIGNMENT
#ifndef LLVM_OLDER_THAN_10_0
@@ -1362,7 +1389,11 @@ Workgroup::createGridLauncher(Function *KernFunc, Function *WGFunc,
LLVMBuildRetVoid(Builder);
InlineFunctionInfo IFI;
- InlineFunction(dyn_cast<CallInst>(llvm::unwrap(Call)), IFI);
+#ifndef LLVM_OLDER_THAN_11_0
+ InlineFunction(*dyn_cast<CallInst>(llvm::unwrap(Call)), IFI);
+#else
+ InlineFunction(dyn_cast<CallInst>(llvm::unwrap(Call)), IFI);
+#endif
}
/**
diff --git a/lib/llvmopencl/WorkitemLoops.cc b/lib/llvmopencl/WorkitemLoops.cc
index 69daa3fa..64294111 100644
--- a/lib/llvmopencl/WorkitemLoops.cc
+++ b/lib/llvmopencl/WorkitemLoops.cc
@@ -990,7 +990,11 @@ WorkitemLoops::GetContextArray(llvm::Instruction *instruction,
size. */
Alloca->setAlignment(
#ifndef LLVM_OLDER_THAN_10_0
+#ifndef LLVM_OLDER_THAN_11_0
+ llvm::Align(
+#else
llvm::MaybeAlign(
+#endif
#endif
CONTEXT_ARRAY_ALIGN
#ifndef LLVM_OLDER_THAN_10_0
--
2.26.2

View File

@ -1,205 +0,0 @@
From 3fa73c66ca2582dc45024e5c3a4bd5a170570ee5 Mon Sep 17 00:00:00 2001
From: KOLANICH <kolan_n@mail.ru>
Date: Mon, 3 Feb 2020 11:55:10 +0300
Subject: [PATCH] LLVM11 support
---
cmake/LLVM.cmake | 6 +++++-
config.h.in.cmake | 4 ++++
include/CMakeLists.txt | 2 +-
include/_kernel.h | 24 ++++++------------------
include/_libclang_versions_checks.h | 24 ++++++++++++++++++++++++
include/pocl.h | 22 ++--------------------
lib/CL/pocl_llvm_wg.cc | 4 ++--
lib/kernel/CMakeLists.txt | 1 +
8 files changed, 45 insertions(+), 42 deletions(-)
create mode 100644 include/_libclang_versions_checks.h
diff --git a/cmake/LLVM.cmake b/cmake/LLVM.cmake
index 33c45750..b41e75a9 100644
--- a/cmake/LLVM.cmake
+++ b/cmake/LLVM.cmake
@@ -37,6 +37,7 @@ else()
# search for any version
find_program(LLVM_CONFIG
NAMES
+ "llvm-config-mp-11.0" "llvm-config-11" "llvm-config110"
"llvm-config-mp-10.0" "llvm-config-10" "llvm-config100"
"llvm-config-mp-9.0" "llvm-config-9" "llvm-config90"
"llvm-config-mp-8.0" "llvm-config-8" "llvm-config80"
@@ -180,8 +181,11 @@ elseif(LLVM_VERSION MATCHES "^9[.]")
elseif(LLVM_VERSION MATCHES "^10[.]")
set(LLVM_MAJOR 10)
set(LLVM_10_0 1)
+elseif(LLVM_VERSION MATCHES "^11[.]")
+ set(LLVM_MAJOR 11)
+ set(LLVM_11_0 1)
else()
- message(FATAL_ERROR "LLVM version between 6.0 and 10.0 required, found: ${LLVM_VERSION}")
+ message(FATAL_ERROR "LLVM version between 6.0 and 11.0 required, found: ${LLVM_VERSION}")
endif()
#############################################################
diff --git a/config.h.in.cmake b/config.h.in.cmake
index 42c63f77..7c6c0eb4 100644
--- a/config.h.in.cmake
+++ b/config.h.in.cmake
@@ -152,6 +152,10 @@
#cmakedefine LLVM_10_0
+#cmakedefine LLVM_11_0
+
+#cmakedefine LLVM_MAJOR @LLVM_VERSION_MAJOR@
+
#cmakedefine LLVM_BUILD_MODE_DEBUG
#ifndef LLVM_VERSION
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
index 321df9d5..31883269 100644
--- a/include/CMakeLists.txt
+++ b/include/CMakeLists.txt
@@ -27,7 +27,7 @@ add_subdirectory("CL")
set(PRIVATE_HEADERS _enable_all_exts.h _builtin_renames.h
_kernel.h _clang_opencl.h
- _kernel_c.h _kernel_constants.h
+ _kernel_c.h _kernel_constants.h _libclang_versions_checks.h
pocl_types.h pocl_device.h pocl.h pocl_spir.h
pocl_image_types.h)
diff --git a/include/_kernel.h b/include/_kernel.h
index 427794e3..90154648 100644
--- a/include/_kernel.h
+++ b/include/_kernel.h
@@ -143,32 +143,20 @@
# undef LLVM_10_0
# define LLVM_10_0
+#elif (__clang_major__ == 11)
+
+# undef LLVM_11_0
+# define LLVM_11_0
#else
#error Unsupported Clang/LLVM version.
#endif
-#ifndef LLVM_10_0
-#define LLVM_OLDER_THAN_10_0 1
-
-#ifndef LLVM_9_0
-#define LLVM_OLDER_THAN_9_0 1
-
-#ifndef LLVM_8_0
-#define LLVM_OLDER_THAN_8_0 1
+#define CLANG_MAJOR __clang_major__
+#include "_libclang_versions_checks.h"
-#ifndef LLVM_7_0
-#define LLVM_OLDER_THAN_7_0 1
-#ifndef LLVM_6_0
-#define LLVM_OLDER_THAN_6_0 1
-
-#endif
-#endif
-#endif
-#endif
-#endif
/****************************************************************************/
diff --git a/include/_libclang_versions_checks.h b/include/_libclang_versions_checks.h
new file mode 100644
index 00000000..1ba0ce4d
--- /dev/null
+++ b/include/_libclang_versions_checks.h
@@ -0,0 +1,24 @@
+
+#if CLANG_MAJOR < 11
+#define LLVM_OLDER_THAN_11_0 1
+#endif
+
+#if CLANG_MAJOR < 10
+#define LLVM_OLDER_THAN_10_0 1
+#endif
+
+#if CLANG_MAJOR < 9
+#define LLVM_OLDER_THAN_9_0 1
+#endif
+
+#if CLANG_MAJOR < 8
+#define LLVM_OLDER_THAN_8_0 1
+#endif
+
+#if CLANG_MAJOR < 7
+#define LLVM_OLDER_THAN_7_0 1
+#endif
+
+#if CLANG_MAJOR < 6
+#define LLVM_OLDER_THAN_6_0 1
+#endif
diff --git a/include/pocl.h b/include/pocl.h
index 1fad38cc..4c175c07 100644
--- a/include/pocl.h
+++ b/include/pocl.h
@@ -369,25 +369,7 @@ struct _cl_command_node
cl_int ready;
};
-#ifndef LLVM_10_0
-#define LLVM_OLDER_THAN_10_0 1
-
-#ifndef LLVM_9_0
-#define LLVM_OLDER_THAN_9_0 1
-
-#ifndef LLVM_8_0
-#define LLVM_OLDER_THAN_8_0 1
-
-#ifndef LLVM_7_0
-#define LLVM_OLDER_THAN_7_0 1
-
-#ifndef LLVM_6_0
-#define LLVM_OLDER_THAN_6_0 1
-
-#endif
-#endif
-#endif
-#endif
-#endif
+#define CLANG_MAJOR LLVM_MAJOR
+#include "_libclang_versions_checks.h"
#endif /* POCL_H */
diff --git a/lib/CL/pocl_llvm_wg.cc b/lib/CL/pocl_llvm_wg.cc
index b8e4ac5f..561a80ad 100644
--- a/lib/CL/pocl_llvm_wg.cc
+++ b/lib/CL/pocl_llvm_wg.cc
@@ -625,8 +625,8 @@ int pocl_llvm_codegen(cl_device_id Device, void *Modp, char **Output,
#ifdef DUMP_LLVM_PASS_TIMINGS
llvm::reportAndResetTimings();
#endif
- std::string O = SOS.str(); // flush
- const char *Cstr = O.c_str();
+ auto O = SOS.str(); // flush
+ const char *Cstr = O.data();
size_t S = O.size();
*Output = (char *)malloc(S);
*OutputSize = S;
diff --git a/lib/kernel/CMakeLists.txt b/lib/kernel/CMakeLists.txt
index e2cfd71e..1f0c9cff 100644
--- a/lib/kernel/CMakeLists.txt
+++ b/lib/kernel/CMakeLists.txt
@@ -229,6 +229,7 @@ add_custom_command( OUTPUT "${CMAKE_BINARY_DIR}/kernellib_hash.h"
DEPENDS ${KERNEL_BC_LIST}
"${CMAKE_SOURCE_DIR}/include/_kernel.h"
"${CMAKE_SOURCE_DIR}/include/_kernel_c.h"
+ "${CMAKE_SOURCE_DIR}/include/_libclang_versions_checks.h"
"${CMAKE_SOURCE_DIR}/include/pocl_types.h"
COMMENT "Generating SHA1 of all kernel libs..."
VERBATIM)
--
2.26.2

View File

@ -2,9 +2,9 @@
%global with_tests 1
Name: pocl
%global ver 1.5
%global ver 1.6
Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(string.lower(ver))}
Release: 11%{?dist}
Release: 1%{?dist}
Summary: Portable Computing Language - an OpenCL implementation
# The whole code is under MIT
# except include/utlist.h which is under BSD (and unbundled) and
@ -12,10 +12,8 @@ Summary: Portable Computing Language - an OpenCL implementation
License: MIT and BSD and (GPLv3+ or LGPLv3+)
URL: http://portablecl.org/
Source0: https://github.com/pocl/pocl/archive/v%{version}/%{name}-%{version}.tar.gz
Patch0: 0001-Fix-build-failure.patch
Patch1: 0001-LLVM11-support.patch
Patch2: 0001-Fixing-llvm11-support-due-to-recent-changes.patch
Patch3: 0001-Add-missing-include.patch
BuildRequires: cmake
BuildRequires: clang clang-devel
@ -123,6 +121,9 @@ find . -depth -name utlist* -print -delete
%{_libdir}/pkgconfig/%{name}.pc
%changelog
* Fri Dec 18 2020 sguelton@redhat.com - 1.6-1
- 1.6 release
* Wed Dec 02 2020 sguelton@redhat.com - 1.5-11
- Rebuilt for LLVM 11.0.1-rc1

View File

@ -1 +1 @@
SHA512 (pocl-1.5.tar.gz) = a9c2879b6f0c0d9a78035ba8ed7531b8fa795074864ee5bab265d7dafedac9637025f994719f00f8d9e25bf5068bd9b074d95b964e5d2c0eddb8d8837e6e5da3
SHA512 (pocl-1.6.tar.gz) = ecd3a3867a62a2a555183741fa4586eeefae00514d66d15a79b9094ff0a0248b213f62ab23b3e61bdb1042e760cd34b07e546f97b304ac86c3f861a9161df1b1