beignet: rebuild against libLLVM-7
[ci skip]
This commit is contained in:
parent
4a8be3348d
commit
689e71dd33
2 changed files with 135 additions and 1 deletions
|
@ -0,0 +1,134 @@
|
|||
From e1b2419a0008e38ef2d9d255d9e9c74e9fba084b Mon Sep 17 00:00:00 2001
|
||||
From: "Rebecca N. Palmer" <rebecca_palmer@zoho.com>
|
||||
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 <rebecca_palmer@zoho.com>
|
||||
Reviewed-by: Yang Rong <rong.r.yang@intel.com>
|
||||
---
|
||||
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
|
||||
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue