Update to 1.5

This commit is contained in:
Pete Walter 2020-04-03 12:23:27 +01:00
parent 36d2ce8b88
commit 328ac618a8
6 changed files with 7 additions and 582 deletions

View File

@ -1,123 +0,0 @@
From e892494e40b9752303c75231753ee6b6dad5d97f Mon Sep 17 00:00:00 2001
From: Michal Babej <michal.babej@tuni.fi>
Date: Mon, 16 Sep 2019 11:29:41 +0300
Subject: [PATCH 1/3] CMake: Initial LLVM 10.0 support
---
cmake/LLVM.cmake | 10 +++++++++-
config.h.in.cmake | 2 ++
include/_kernel.h | 9 +++++++++
include/pocl.h | 4 ++++
4 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/cmake/LLVM.cmake b/cmake/LLVM.cmake
index ef67685c..a02e2ba7 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-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"
"llvm-config-mp-7.0" "llvm-config-7" "llvm-config70"
@@ -160,20 +161,27 @@ if(LLVM_VERSION MATCHES "^6[.]0")
set(LLVM_OLDER_THAN_7_0 1)
set(LLVM_OLDER_THAN_8_0 1)
set(LLVM_OLDER_THAN_9_0 1)
+ set(LLVM_OLDER_THAN_10_0 1)
elseif(LLVM_VERSION MATCHES "^7[.]")
set(LLVM_MAJOR 7)
set(LLVM_7_0 1)
set(LLVM_OLDER_THAN_8_0 1)
set(LLVM_OLDER_THAN_9_0 1)
+ set(LLVM_OLDER_THAN_10_0 1)
elseif(LLVM_VERSION MATCHES "^8[.]")
set(LLVM_MAJOR 8)
set(LLVM_8_0 1)
set(LLVM_OLDER_THAN_9_0 1)
+ set(LLVM_OLDER_THAN_10_0 1)
elseif(LLVM_VERSION MATCHES "^9[.]")
set(LLVM_MAJOR 9)
set(LLVM_9_0 1)
+ set(LLVM_OLDER_THAN_10_0 1)
+elseif(LLVM_VERSION MATCHES "^10[.]")
+ set(LLVM_MAJOR 10)
+ set(LLVM_10_0 1)
else()
- message(FATAL_ERROR "LLVM version between 6.0 and 9.0 required, found: ${LLVM_VERSION}")
+ message(FATAL_ERROR "LLVM version between 6.0 and 10.0 required, found: ${LLVM_VERSION}")
endif()
#############################################################
diff --git a/config.h.in.cmake b/config.h.in.cmake
index 5112fa6c..be7516c2 100644
--- a/config.h.in.cmake
+++ b/config.h.in.cmake
@@ -150,6 +150,8 @@
#cmakedefine LLVM_9_0
+#cmakedefine LLVM_10_0
+
#cmakedefine LLVM_BUILD_MODE_DEBUG
#ifndef LLVM_VERSION
diff --git a/include/_kernel.h b/include/_kernel.h
index ba6f2a19..427794e3 100644
--- a/include/_kernel.h
+++ b/include/_kernel.h
@@ -138,12 +138,20 @@
# undef LLVM_9_0
# define LLVM_9_0
+#elif (__clang_major__ == 10)
+
+# undef LLVM_10_0
+# define LLVM_10_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
@@ -160,6 +168,7 @@
#endif
#endif
#endif
+#endif
/****************************************************************************/
diff --git a/include/pocl.h b/include/pocl.h
index 9d66844a..1fad38cc 100644
--- a/include/pocl.h
+++ b/include/pocl.h
@@ -369,6 +369,9 @@ 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
@@ -385,5 +388,6 @@ struct _cl_command_node
#endif
#endif
#endif
+#endif
#endif /* POCL_H */
--
2.20.1

View File

@ -1,37 +0,0 @@
From 70c986461ecb16e0bdf1bcd9cdba2d8b065d5b3d Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Thu, 26 Sep 2019 15:33:58 -0700
Subject: [PATCH] Link against libclang-cpp.so
---
cmake/LLVM.cmake | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/cmake/LLVM.cmake b/cmake/LLVM.cmake
index 3184407..3ecfef8 100644
--- a/cmake/LLVM.cmake
+++ b/cmake/LLVM.cmake
@@ -211,10 +211,16 @@ string(REPLACE " -pedantic" "" LLVM_CXXFLAGS "${LLVM_CXXFLAGS}")
string(REGEX REPLACE "-W[^ ]*" "" LLVM_CXXFLAGS "${LLVM_CXXFLAGS}")
# Llvm-config does not include clang libs
-set(CLANG_LIBNAMES clangCodeGen clangFrontendTool clangFrontend clangDriver clangSerialization
- clangParse clangSema clangRewrite clangRewriteFrontend
- clangStaticAnalyzerFrontend clangStaticAnalyzerCheckers
- clangStaticAnalyzerCore clangAnalysis clangEdit clangAST clangASTMatchers clangLex clangBasic)
+if(8 LESS LLVM_MAJOR AND LLVM_LIB_IS_SHARED MATCHES "shared")
+ # Link against a single shared library instead of multiple component shared
+ # libraries.
+ set(CLANG_LIBNAMES clang-cpp)
+else()
+ set(CLANG_LIBNAMES clangCodeGen clangFrontendTool clangFrontend clangDriver clangSerialization
+ clangParse clangSema clangRewrite clangRewriteFrontend
+ clangStaticAnalyzerFrontend clangStaticAnalyzerCheckers
+ clangStaticAnalyzerCore clangAnalysis clangEdit clangAST clangASTMatchers clangLex clangBasic)
+endif()
foreach(LIBNAME ${CLANG_LIBNAMES})
find_library(C_LIBFILE_${LIBNAME} NAMES "${LIBNAME}" HINTS "${LLVM_LIBDIR}")
--
1.8.3.1

View File

@ -1,316 +0,0 @@
From 9899719c0c9d27e18819afaa58c0b3555a40d974 Mon Sep 17 00:00:00 2001
From: KOLANICH <kolan_n@mail.ru>
Date: Tue, 24 Sep 2019 15:02:09 +0300
Subject: [PATCH 2/3] LLVM 10 support Fixes: #772, #773, #774
---
CMakeLists.txt | 10 +++++++
lib/CL/pocl_llvm_build.cc | 38 ++++++++++++++++-------
lib/CL/pocl_llvm_metadata.cc | 1 -
lib/CL/pocl_llvm_utils.cc | 1 -
lib/CL/pocl_llvm_wg.cc | 1 -
lib/llvmopencl/CompilerWarnings.h | 10 +++++++
lib/llvmopencl/RemoveBarrierCalls.h | 4 +++
lib/llvmopencl/WorkItemAliasAnalysis.cc | 17 ++++++++---
lib/llvmopencl/Workgroup.cc | 40 ++++++++++++++++++++++---
lib/llvmopencl/WorkitemLoops.cc | 14 +++++++--
10 files changed, 112 insertions(+), 24 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3361df8a..cbbe6825 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -27,6 +27,16 @@ cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
project(pocl)
+set(LATEST_KNOWN_CXX_STD_VERSION "20")
+set(SUPPORTED_CXX_STD_VERSION "11")
+
+option(ENABLE_LATEST_CXX_STD "Upgrade C++ standard version to ${LATEST_KNOWN_CXX_STD_VERSION}. Required to get rid of unused variables warnings in compilers not supporting [[gnu::*]] attributes. Can bring other benefits, including performance and efficiency ones. Before a pull request build with this disabled." OFF)
+if(ENABLE_LATEST_CXX_STD)
+ set(CMAKE_CXX_STANDARD "${LATEST_KNOWN_CXX_STD_VERSION}")
+else()
+ set(CMAKE_CXX_STANDARD "${SUPPORTED_CXX_STD_VERSION}")
+endif()
+
# Fix behavior of CMAKE_CXX_STANDARD when targeting macOS.
if(POLICY CMP0025)
cmake_policy(SET CMP0025 NEW)
diff --git a/lib/CL/pocl_llvm_build.cc b/lib/CL/pocl_llvm_build.cc
index d65baf0d..881ff02a 100644
--- a/lib/CL/pocl_llvm_build.cc
+++ b/lib/CL/pocl_llvm_build.cc
@@ -40,6 +40,10 @@ IGNORE_COMPILER_WARNING("-Wstrict-aliasing")
#include <clang/Frontend/TextDiagnosticPrinter.h>
#include "clang/Lex/PreprocessorOptions.h"
+#ifdef LLVM_OLDER_THAN_10_0
+#include "llvm/ADT/ArrayRef.h"
+#endif
+
#include "llvm/LinkAllPasses.h"
#include "llvm/Linker/Linker.h"
@@ -48,8 +52,6 @@ IGNORE_COMPILER_WARNING("-Wstrict-aliasing")
#include "llvm/IR/Function.h"
#include "llvm/IR/Module.h"
-#include "llvm/Support/MutexGuard.h"
-
#ifdef ENABLE_RELOCATION
#if defined(__APPLE__)
@@ -104,8 +106,14 @@ load_source(FrontendOptions &fe,
POCL_RETURN_ERROR_ON(pocl_cache_write_program_source(source_file, program),
CL_OUT_OF_HOST_MEMORY, "Could not write program source");
- fe.Inputs.push_back
- (FrontendInputFile(source_file, clang::InputKind::OpenCL));
+ fe.Inputs.push_back(
+ FrontendInputFile(source_file,
+#ifndef LLVM_OLDER_THAN_10_0
+ clang::InputKind(clang::Language::OpenCL)
+#else
+ clang::InputKind::OpenCL
+#endif
+ ));
return 0;
}
@@ -382,9 +390,15 @@ int pocl_llvm_build_program(cl_program program,
if (program->build_log[device_i])
POCL_MEM_FREE(program->build_log[device_i]);
- if (!CompilerInvocation::CreateFromArgs
- (pocl_build, itemcstrs.data(), itemcstrs.data() + itemcstrs.size(),
- diags)) {
+ if (!CompilerInvocation::CreateFromArgs(
+ pocl_build,
+#ifndef LLVM_OLDER_THAN_10_0
+ ArrayRef<const char *>(itemcstrs.data(),
+ itemcstrs.data() + itemcstrs.size()),
+#else
+ itemcstrs.data(), itemcstrs.data() + itemcstrs.size(),
+#endif
+ diags)) {
pocl_cache_create_program_cachedir(program, device_i, NULL, 0,
program_bc_path);
get_build_log(program, device_i, ss_build_log, diagsBuffer,
@@ -395,9 +409,13 @@ int pocl_llvm_build_program(cl_program program,
LangOptions *la = pocl_build.getLangOpts();
PreprocessorOptions &po = pocl_build.getPreprocessorOpts();
- pocl_build.setLangDefaults
- (*la, clang::InputKind::OpenCL, triple, po,
- clang::LangStandard::lang_opencl12);
+ pocl_build.setLangDefaults(*la,
+#ifndef LLVM_OLDER_THAN_10_0
+ clang::InputKind(clang::Language::OpenCL),
+#else
+ clang::InputKind::OpenCL,
+#endif
+ triple, po, clang::LangStandard::lang_opencl12);
// LLVM 3.3 and older do not set that char is signed which is
// defined by the OpenCL C specs (but not by C specs).
diff --git a/lib/CL/pocl_llvm_metadata.cc b/lib/CL/pocl_llvm_metadata.cc
index d88a471d..253d93df 100644
--- a/lib/CL/pocl_llvm_metadata.cc
+++ b/lib/CL/pocl_llvm_metadata.cc
@@ -26,7 +26,6 @@
IGNORE_COMPILER_WARNING("-Wunused-parameter")
#include <llvm/Support/Casting.h>
-#include <llvm/Support/MutexGuard.h>
#include <llvm/IR/Value.h>
#include <llvm/IR/Constants.h>
#include <llvm/IR/Type.h>
diff --git a/lib/CL/pocl_llvm_utils.cc b/lib/CL/pocl_llvm_utils.cc
index 0d99b6d4..1178bfef 100644
--- a/lib/CL/pocl_llvm_utils.cc
+++ b/lib/CL/pocl_llvm_utils.cc
@@ -33,7 +33,6 @@ IGNORE_COMPILER_WARNING("-Wunused-parameter")
#include <llvm/ADT/StringRef.h>
#include <llvm/ADT/StringMap.h>
-#include <llvm/Support/MutexGuard.h>
#include <llvm/Support/Host.h>
#include <llvm/Support/TargetSelect.h>
#include <llvm/Support/SourceMgr.h>
diff --git a/lib/CL/pocl_llvm_wg.cc b/lib/CL/pocl_llvm_wg.cc
index c31fe668..deacba5b 100644
--- a/lib/CL/pocl_llvm_wg.cc
+++ b/lib/CL/pocl_llvm_wg.cc
@@ -38,7 +38,6 @@
IGNORE_COMPILER_WARNING("-Wunused-parameter")
#include <llvm/Support/Casting.h>
-#include <llvm/Support/MutexGuard.h>
#include <llvm/Support/TargetRegistry.h>
#include <llvm/Support/SourceMgr.h>
#include <llvm/Support/CommandLine.h>
diff --git a/lib/llvmopencl/CompilerWarnings.h b/lib/llvmopencl/CompilerWarnings.h
index 41c8e8c5..cbb575d4 100644
--- a/lib/llvmopencl/CompilerWarnings.h
+++ b/lib/llvmopencl/CompilerWarnings.h
@@ -59,5 +59,15 @@
#endif
+#if __cplusplus >= 201703
+ #define IGNORE_UNUSED [[maybe_unused]]
+#else
+ #if defined(__clang__) || defined(__GNUC__)
+ #define IGNORE_UNUSED [[gnu::unused]]
+ #else
+ #define IGNORE_UNUSED
+ #endif
+#endif
+
#endif
diff --git a/lib/llvmopencl/RemoveBarrierCalls.h b/lib/llvmopencl/RemoveBarrierCalls.h
index ee9315df..5f4f5ede 100644
--- a/lib/llvmopencl/RemoveBarrierCalls.h
+++ b/lib/llvmopencl/RemoveBarrierCalls.h
@@ -28,6 +28,10 @@ IGNORE_COMPILER_WARNING("-Wunused-parameter")
#include <llvm/IR/Function.h>
+#ifndef LLVM_OLDER_THAN_10_0
+#include <llvm/Pass.h>
+#endif
+
POP_COMPILER_DIAGS
diff --git a/lib/llvmopencl/WorkItemAliasAnalysis.cc b/lib/llvmopencl/WorkItemAliasAnalysis.cc
index 53b6046c..d0d14b60 100644
--- a/lib/llvmopencl/WorkItemAliasAnalysis.cc
+++ b/lib/llvmopencl/WorkItemAliasAnalysis.cc
@@ -116,10 +116,19 @@ WorkItemAAResult WorkItemAA::run(Function &F, AnalysisManager<Function> *AM) {
return WorkItemAAResult(AM->getResult<WorkItemAA>(F));
}
-bool WorkItemAliasAnalysis::runOnFunction(llvm::Function &) {
- auto &TLIWP = getAnalysis<TargetLibraryInfoWrapperPass>();
- Result.reset(new WorkItemAAResult(TLIWP.getTLI()));
- return false;
+bool WorkItemAliasAnalysis::runOnFunction(
+#ifdef LLVM_OLDER_THAN_10_0
+ IGNORE_UNUSED
+#endif
+ llvm::Function &f) {
+ auto &TLIWP = getAnalysis<TargetLibraryInfoWrapperPass>();
+#ifndef LLVM_OLDER_THAN_10_0
+ auto tli = TLIWP.getTLI(f);
+#else
+ auto tli = TLIWP.getTLI();
+#endif
+ Result.reset(new WorkItemAAResult(tli));
+ return false;
}
// Register this pass...
diff --git a/lib/llvmopencl/Workgroup.cc b/lib/llvmopencl/Workgroup.cc
index afbe224f..bf21e594 100644
--- a/lib/llvmopencl/Workgroup.cc
+++ b/lib/llvmopencl/Workgroup.cc
@@ -992,7 +992,15 @@ Workgroup::createDefaultWorkgroupLauncher(llvm::Function *F) {
Arg =
new llvm::AllocaInst(ArgElementType, ParamType->getAddressSpace(),
ConstantInt::get(IntegerType::get(*C, 32), 1),
- MAX_EXTENDED_ALIGNMENT, "local_auto", Block);
+#ifndef LLVM_OLDER_THAN_10_0
+ llvm::MaybeAlign(
+#endif
+ MAX_EXTENDED_ALIGNMENT
+#ifndef LLVM_OLDER_THAN_10_0
+ )
+#endif
+ ,
+ "local_auto", Block);
} else {
// Dynamic (runtime-set) size local argument.
@@ -1006,7 +1014,15 @@ Workgroup::createDefaultWorkgroupLauncher(llvm::Function *F) {
Value *ElementCount = Builder.CreateUDiv(
LocalArgByteSize, ConstantInt::get(SizeIntType, ElementSize));
Arg = new llvm::AllocaInst(ArgElementType, ParamType->getAddressSpace(),
- ElementCount, MAX_EXTENDED_ALIGNMENT,
+ ElementCount,
+#ifndef LLVM_OLDER_THAN_10_0
+ llvm::MaybeAlign(
+#endif
+ MAX_EXTENDED_ALIGNMENT
+#ifndef LLVM_OLDER_THAN_10_0
+ )
+#endif
+ ,
"local_arg", Block);
}
} else {
@@ -1199,7 +1215,15 @@ Workgroup::createArgBufferWorkgroupLauncher(Function *Func,
// Known static local size (converted automatic local).
LocalArgAlloca = wrap(new llvm::AllocaInst(
unwrap(ArgElementType), LLVMGetPointerAddressSpace(ParamType),
- unwrap(LLVMConstInt(Int32Type, 1, 0)), MAX_EXTENDED_ALIGNMENT,
+ unwrap(LLVMConstInt(Int32Type, 1, 0)),
+#ifndef LLVM_OLDER_THAN_10_0
+ llvm::MaybeAlign(
+#endif
+ MAX_EXTENDED_ALIGNMENT
+#ifndef LLVM_OLDER_THAN_10_0
+ )
+#endif
+ ,
"local_auto", unwrap(Block)));
} else {
@@ -1227,7 +1251,15 @@ Workgroup::createArgBufferWorkgroupLauncher(Function *Func,
LocalArgAlloca = wrap(new llvm::AllocaInst(
unwrap(LLVMGetElementType(ParamType)),
LLVMGetPointerAddressSpace(ParamType), unwrap(ElementCount),
- MAX_EXTENDED_ALIGNMENT, "local_arg", unwrap(Block)));
+#ifndef LLVM_OLDER_THAN_10_0
+ llvm::MaybeAlign(
+#endif
+ MAX_EXTENDED_ALIGNMENT
+#ifndef LLVM_OLDER_THAN_10_0
+ )
+#endif
+ ,
+ "local_arg", unwrap(Block)));
}
Args[i] = LocalArgAlloca;
} else {
diff --git a/lib/llvmopencl/WorkitemLoops.cc b/lib/llvmopencl/WorkitemLoops.cc
index 18332863..69daa3fa 100644
--- a/lib/llvmopencl/WorkitemLoops.cc
+++ b/lib/llvmopencl/WorkitemLoops.cc
@@ -988,10 +988,18 @@ WorkitemLoops::GetContextArray(llvm::Instruction *instruction,
accesses to them. Also, LLVM 3.3 seems to produce illegal
code at least with Core i5 when aligned only at the element
size. */
- Alloca->setAlignment(CONTEXT_ARRAY_ALIGN);
+ Alloca->setAlignment(
+#ifndef LLVM_OLDER_THAN_10_0
+ llvm::MaybeAlign(
+#endif
+ CONTEXT_ARRAY_ALIGN
+#ifndef LLVM_OLDER_THAN_10_0
+ )
+#endif
+ );
- contextArrays[varName] = Alloca;
- return Alloca;
+ contextArrays[varName] = Alloca;
+ return Alloca;
}
/**
--
2.20.1

View File

@ -1,96 +0,0 @@
From 2e3cb43c158d815aac0fa69a7aba4e7caddefb06 Mon Sep 17 00:00:00 2001
From: KOLANICH <kolan_n@mail.ru>
Date: Tue, 3 Dec 2019 17:20:04 +0300
Subject: [PATCH 3/3] Further llvm 10 compatibility fixes
https://github.com/llvm/llvm-project/commit/1dfede3122eec83b885d788553e3620806d54650
---
lib/CL/pocl_llvm_utils.cc | 5 +++++
lib/CL/pocl_llvm_wg.cc | 36 +++++++++++++++++++++++-------------
2 files changed, 28 insertions(+), 13 deletions(-)
diff --git a/lib/CL/pocl_llvm_utils.cc b/lib/CL/pocl_llvm_utils.cc
index 1178bfef..34cf5ac2 100644
--- a/lib/CL/pocl_llvm_utils.cc
+++ b/lib/CL/pocl_llvm_utils.cc
@@ -56,6 +56,11 @@ IGNORE_COMPILER_WARNING("-Wunused-parameter")
#include <llvm/IR/LegacyPassManager.h>
#define PassManager legacy::PassManager
+#ifndef LLVM_OLDER_THAN_10_0
+ #include <llvm/InitializePasses.h>
+ #include <llvm/Support/CommandLine.h>
+#endif
+
using namespace llvm;
#include <string>
diff --git a/lib/CL/pocl_llvm_wg.cc b/lib/CL/pocl_llvm_wg.cc
index deacba5b..6b9061e6 100644
--- a/lib/CL/pocl_llvm_wg.cc
+++ b/lib/CL/pocl_llvm_wg.cc
@@ -64,6 +64,17 @@ IGNORE_COMPILER_WARNING("-Wunused-parameter")
#include "linker.h"
+// Enable to get the LLVM pass execution timing report dumped to console after
+// each work-group IR function generation. Requires LLVM > 7.
+// #define DUMP_LLVM_PASS_TIMINGS
+
+#ifndef LLVM_OLDER_THAN_10_0
+#include <llvm/IR/PassTimingInfo.h>
+#define CODEGEN_FILE_TYPE_NS llvm
+#else
+#define CODEGEN_FILE_TYPE_NS TargetMachine
+#endif
+
using namespace llvm;
/**
@@ -580,13 +591,11 @@ int pocl_llvm_codegen(cl_device_id Device, void *Modp, char **Output,
llvm::raw_svector_ostream SOS(Data);
bool cannotEmitFile;
-#ifdef LLVM_OLDER_THAN_7_0
cannotEmitFile = Target->addPassesToEmitFile(PMObj, SOS,
- TargetMachine::CGFT_ObjectFile);
-#else
- cannotEmitFile = Target->addPassesToEmitFile(PMObj, SOS, nullptr,
- TargetMachine::CGFT_ObjectFile);
+#ifndef LLVM_OLDER_THAN_7_0
+ nullptr,
#endif
+ CODEGEN_FILE_TYPE_NS::CGFT_ObjectFile);
LLVMGeneratesObjectFiles = !cannotEmitFile;
@@ -610,17 +619,18 @@ int pocl_llvm_codegen(cl_device_id Device, void *Modp, char **Output,
// The LLVM target does not implement support for emitting object file directly.
// Have to emit the text first and then call the assembler from the command line
// to produce the binary.
-#ifdef LLVM_OLDER_THAN_7_0
+
+
if (Target->addPassesToEmitFile(PMAsm, SOS,
- TargetMachine::CGFT_AssemblyFile)) {
- POCL_ABORT("The target supports neither obj nor asm emission!");
- }
-#else
- if (Target->addPassesToEmitFile(PMAsm, SOS, nullptr,
- TargetMachine::CGFT_AssemblyFile)) {
+#ifndef LLVM_OLDER_THAN_7_0
+ nullptr,
+#endif
+ CODEGEN_FILE_TYPE_NS::CGFT_AssemblyFile)) {
POCL_ABORT("The target supports neither obj nor asm emission!");
}
-#endif
+
+
+
// This produces the assembly text:
PMAsm.run(*Input);
--
2.20.1

View File

@ -1,12 +1,11 @@
%global sover 2
%global with_tests 1
#%%global gitrev a0b083a1b47a7389f896036087b4e712b4b14193
Summary: Portable Computing Language - an OpenCL implementation
Name: pocl
%global ver 1.4
%global ver 1.5
Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(string.lower(ver))}
Release: 2%{?dist}
Release: 1%{?dist}
# The whole code is under MIT
# except include/utlist.h which is under BSD (and unbundled) and
@ -14,14 +13,9 @@ Release: 2%{?dist}
License: MIT and BSD and (GPLv3+ or LGPLv3+)
URL: http://pocl.sourceforge.net
Source0: https://github.com/pocl/pocl/archive/v1.4.tar.gz
Source0: https://github.com/pocl/pocl/archive/v%{version}/%{name}-%{version}.tar.gz
Patch0: 0001-Fix-build-failure.patch
# https://fedoraproject.org/wiki/Changes/Stop-Shipping-Individual-Component-Libraries-In-clang-lib-Package
Patch1: 0001-Link-against-libclang-cpp.so.patch
Patch2: 0001-CMake-Initial-LLVM-10.0-support.patch
Patch3: 0002-LLVM-10-support.patch
Patch4: 0003-Further-llvm-10-compatibility-fixes.patch
# ppc64le builds fine, but: 97% tests passed, 4 tests failed out of 120
# ppc64 builds fine, but: 87% tests passed, 16 tests failed out of 120
@ -139,6 +133,9 @@ popd
%{_libdir}/pkgconfig/%{name}.pc
%changelog
* Fri Apr 03 2020 Pete Walter <pwalter@fedoraproject.org> - 1.5-1
- Update to 1.5
* Wed Mar 25 2020 sguelton@redhat.com - 1.4-2
- rebuilt for llvm 10.0.0.rc6

View File

@ -1 +1 @@
SHA512 (v1.4.tar.gz) = ef4911638c76d988c120b69a991e54773a6b8bde49433c2e0f1703c374fa65a4fa64ebcaec94569863458032c17d8cb9879dc501b7e3a43b2c24524bce1b6098
SHA512 (pocl-1.5.tar.gz) = a9c2879b6f0c0d9a78035ba8ed7531b8fa795074864ee5bab265d7dafedac9637025f994719f00f8d9e25bf5068bd9b074d95b964e5d2c0eddb8d8837e6e5da3