From 689e71dd33146b461e1e5e5b3c6a508ed93fbf47 Mon Sep 17 00:00:00 2001 From: Rasmus Thomsen Date: Wed, 19 Sep 2018 23:10:43 +0200 Subject: [PATCH] beignet: rebuild against libLLVM-7 [ci skip] --- ...419a0008e38ef2d9d255d9e9c74e9fba084b.patch | 134 ++++++++++++++++++ srcpkgs/beignet/template | 2 +- 2 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/beignet/patches/e1b2419a0008e38ef2d9d255d9e9c74e9fba084b.patch diff --git a/srcpkgs/beignet/patches/e1b2419a0008e38ef2d9d255d9e9c74e9fba084b.patch b/srcpkgs/beignet/patches/e1b2419a0008e38ef2d9d255d9e9c74e9fba084b.patch new file mode 100644 index 00000000000..36cdef7208c --- /dev/null +++ b/srcpkgs/beignet/patches/e1b2419a0008e38ef2d9d255d9e9c74e9fba084b.patch @@ -0,0 +1,134 @@ +From e1b2419a0008e38ef2d9d255d9e9c74e9fba084b Mon Sep 17 00:00:00 2001 +From: "Rebecca N. Palmer" +Date: Sat, 21 Jul 2018 20:05:54 +0100 +Subject: Add preliminary LLVM 7 support + +This is preliminary because LLVM 7 has not been released yet: +it was tested with the snapshot from Debian experimental (svn336894). + +1.Change linking order, as clangCodeGen now links to clangFrontend +2.Pass references not pointers to WriteBitcodeToFile and CloneModule +3.Add the headers that LoopSimplifyID, LCSSAID and +some create*Pass have moved to +4.Define our DEBUG whether or not we just undefined LLVM's +(theirs is now LLVM_DEBUG, but we never actually use it) + +Signed-off-by: Rebecca N. Palmer +Reviewed-by: Yang Rong +--- + CMake/FindLLVM.cmake | 2 +- + backend/src/backend/gen_program.cpp | 8 ++++++++ + backend/src/backend/program.cpp | 4 ++++ + backend/src/llvm/ExpandLargeIntegers.cpp | 2 +- + backend/src/llvm/llvm_bitcode_link.cpp | 4 ++++ + backend/src/llvm/llvm_includes.hpp | 4 ++++ + 6 files changed, 22 insertions(+), 2 deletions(-) + +diff --git a/CMake/FindLLVM.cmake b/CMake/FindLLVM.cmake +index 5457f24..f882589 100644 +--- CMake/FindLLVM.cmake ++++ CMake/FindLLVM.cmake +@@ -113,10 +113,10 @@ macro(add_one_lib name) + endmacro() + + #Assume clang lib path same as llvm lib path ++add_one_lib("clangCodeGen") + add_one_lib("clangFrontend") + add_one_lib("clangSerialization") + add_one_lib("clangDriver") +-add_one_lib("clangCodeGen") + add_one_lib("clangSema") + add_one_lib("clangStaticAnalyzerFrontend") + add_one_lib("clangStaticAnalyzerCheckers") +diff --git a/backend/src/backend/gen_program.cpp b/backend/src/backend/gen_program.cpp +index 274c99c..4159234 100644 +--- backend/src/backend/gen_program.cpp ++++ backend/src/backend/gen_program.cpp +@@ -454,7 +454,11 @@ namespace gbe { + #ifdef GBE_COMPILER_AVAILABLE + std::string str; + llvm::raw_string_ostream OS(str); ++#if LLVM_VERSION_MAJOR >= 7 ++ llvm::WriteBitcodeToFile(*((llvm::Module*)prog->module), OS); ++#else + llvm::WriteBitcodeToFile((llvm::Module*)prog->module, OS); ++#endif + std::string& bin_str = OS.str(); + int llsz = bin_str.size(); + *binary = (char *)malloc(sizeof(char) * (llsz+1) ); +@@ -545,7 +549,11 @@ namespace gbe { + &modRef); + src = llvm::unwrap(modRef); + } ++#if LLVM_VERSION_MAJOR >= 7 ++ llvm::Module* clone = llvm::CloneModule(*src).release(); ++#else + llvm::Module* clone = llvm::CloneModule(src).release(); ++#endif + if (LLVMLinkModules2(wrap(dst), wrap(clone))) { + #elif LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 37 + if (LLVMLinkModules(wrap(dst), wrap(src), LLVMLinkerPreserveSource_Removed, &errMsg)) { +diff --git a/backend/src/backend/program.cpp b/backend/src/backend/program.cpp +index c37c595..b36f7b4 100644 +--- backend/src/backend/program.cpp ++++ backend/src/backend/program.cpp +@@ -794,7 +794,11 @@ namespace gbe { + llvm::raw_fd_ostream ostream (dumpSPIRBinaryName.c_str(), + err, llvm::sys::fs::F_None); + if (!err) ++#if LLVM_VERSION_MAJOR<7 + llvm::WriteBitcodeToFile(*out_module, ostream); ++#else ++ llvm::WriteBitcodeToFile(**out_module, ostream); ++#endif + } + #endif + return true; +diff --git a/backend/src/llvm/ExpandLargeIntegers.cpp b/backend/src/llvm/ExpandLargeIntegers.cpp +index 8515dc1..4aec44e 100644 +--- backend/src/llvm/ExpandLargeIntegers.cpp ++++ backend/src/llvm/ExpandLargeIntegers.cpp +@@ -99,8 +99,8 @@ using namespace llvm; + + #ifdef DEBUG + #undef DEBUG +- #define DEBUG(...) + #endif ++#define DEBUG(...) + // Break instructions up into no larger than 64-bit chunks. + static const unsigned kChunkBits = 64; + static const unsigned kChunkBytes = kChunkBits / CHAR_BIT; +diff --git a/backend/src/llvm/llvm_bitcode_link.cpp b/backend/src/llvm/llvm_bitcode_link.cpp +index ef56e4c..4c3e20e 100644 +--- backend/src/llvm/llvm_bitcode_link.cpp ++++ backend/src/llvm/llvm_bitcode_link.cpp +@@ -340,7 +340,11 @@ namespace gbe + /* We use beignet's bitcode as dst because it will have a lot of + lazy functions which will not be loaded. */ + #if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 39 ++#if LLVM_VERSION_MAJOR >= 7 ++ llvm::Module * linked_module = llvm::CloneModule(*(llvm::Module*)mod).release(); ++#else + llvm::Module * linked_module = llvm::CloneModule((llvm::Module*)mod).release(); ++#endif + if(LLVMLinkModules2(wrap(clonedLib), wrap(linked_module))) { + #else + char* errorMsg; +diff --git a/backend/src/llvm/llvm_includes.hpp b/backend/src/llvm/llvm_includes.hpp +index 184553a..ffccf02 100644 +--- backend/src/llvm/llvm_includes.hpp ++++ backend/src/llvm/llvm_includes.hpp +@@ -89,6 +89,10 @@ + #include "llvm/CodeGen/IntrinsicLowering.h" + + #include "llvm/Transforms/Scalar.h" ++#if LLVM_VERSION_MAJOR >= 7 ++#include "llvm/Transforms/Utils.h" ++#include "llvm/Transforms/InstCombine/InstCombine.h" ++#endif + #include "llvm/MC/MCAsmInfo.h" + #include "llvm/MC/MCContext.h" + #include "llvm/MC/MCInstrInfo.h" +-- +cgit v1.1 + diff --git a/srcpkgs/beignet/template b/srcpkgs/beignet/template index 9ecaf875507..658417dafbb 100644 --- a/srcpkgs/beignet/template +++ b/srcpkgs/beignet/template @@ -1,7 +1,7 @@ # Template file for 'beignet' pkgname=beignet version=1.3.2 -revision=3 +revision=4 wrksrc="Beignet-${version}-Source" only_for_archs="i686 i686-musl x86_64 x86_64-musl" build_style=cmake