Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Please login to access the resource
SUSE:SLE-15-SP5:GA
beignet
0008-Add-preliminary-LLVM-7-support.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0008-Add-preliminary-LLVM-7-support.patch of Package beignet
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: [PATCH 08/10] 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 5457f248..f882589d 100644 --- a/CMake/FindLLVM.cmake +++ b/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 274c99c7..41592349 100644 --- a/backend/src/backend/gen_program.cpp +++ b/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 c37c5951..b36f7b4a 100644 --- a/backend/src/backend/program.cpp +++ b/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 8515dc13..4aec44ee 100644 --- a/backend/src/llvm/ExpandLargeIntegers.cpp +++ b/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 ef56e4c2..4c3e20e4 100644 --- a/backend/src/llvm/llvm_bitcode_link.cpp +++ b/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 184553af..ffccf025 100644 --- a/backend/src/llvm/llvm_includes.hpp +++ b/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" -- 2.20.1.windows.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor