diff options
author | Jan Beich <jbeich@FreeBSD.org> | 2018-08-20 23:37:50 +0000 |
---|---|---|
committer | Jan Beich <jbeich@FreeBSD.org> | 2018-08-20 23:37:50 +0000 |
commit | ff6025f14ff01efb659b571a0b780c642b311525 (patch) | |
tree | 1f8cb17089218ef2c9cd9b2fc811e8387833e3a5 /lang/beignet | |
parent | f8a2e5cc0a738019e6f5287786a95cee8be3fc1a (diff) |
Notes
Diffstat (limited to 'lang/beignet')
-rw-r--r-- | lang/beignet/files/patch-llvm6 | 24 | ||||
-rw-r--r-- | lang/beignet/files/patch-llvm7 | 112 |
2 files changed, 125 insertions, 11 deletions
diff --git a/lang/beignet/files/patch-llvm6 b/lang/beignet/files/patch-llvm6 index c0b9535cf0c5..1059fc5f27cd 100644 --- a/lang/beignet/files/patch-llvm6 +++ b/lang/beignet/files/patch-llvm6 @@ -1,12 +1,14 @@ -backend/src/llvm/llvm_unroll.cpp:209:22: error: no member named 'markAsRemoved' in 'llvm::LoopInfo' - loopInfo.markAsRemoved(parentL); - ~~~~~~~~ ^ -backend/src/llvm/llvm_to_gen.cpp:325:43: error: reference to type 'std::unique_ptr<DiagnosticHandler>' could not bind to an rvalue of type 'void (*)(const llvm::DiagnosticInfo &, void *)' - mod.getContext().setDiagnosticHandler(&gbeDiagnosticHandler,&dc); - ^~~~~~~~~~~~~~~~~~~~~ -/usr/local/llvm60/include/llvm/IR/LLVMContext.h:213:66: note: passing argument to parameter 'DH' here - void setDiagnosticHandler(std::unique_ptr<DiagnosticHandler> &&DH, - ^ +commit 6e60548adee0 +Author: Rebecca N. Palmer <rebecca_palmer@zoho.com> +Date: Sat Jul 21 20:04:00 2018 +0100 + + Add LLVM 6.0 support + + LLVMContext::setDiagnosticHandler and LoopInfo::markAsRemoved + have been renamed. + + Signed-off-by: Rebecca N. Palmer <rebecca_palmer@zoho.com> + Reviewed-by: Yang Rong <rong.r.yang@intel.com> --- backend/src/llvm/llvm_to_gen.cpp.orig 2017-10-24 06:04:48 UTC +++ backend/src/llvm/llvm_to_gen.cpp @@ -14,7 +16,7 @@ backend/src/llvm/llvm_to_gen.cpp:325:43: error: reference to type 'std::unique_p DataLayout DL(&mod); gbeDiagnosticContext dc; -+#if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 60 ++#if LLVM_VERSION_MAJOR >= 6 + mod.getContext().setDiagnosticHandlerCallBack(&gbeDiagnosticHandler,&dc); +#else mod.getContext().setDiagnosticHandler(&gbeDiagnosticHandler,&dc); @@ -29,7 +31,7 @@ backend/src/llvm/llvm_to_gen.cpp:325:43: error: reference to type 'std::unique_p //Don't change the unrollID if doesn't force unroll. //setUnrollID(parentL, false); -#if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 38 -+#if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 60 ++#if LLVM_VERSION_MAJOR >= 6 + loopInfo.erase(parentL); +#elif LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 38 loopInfo.markAsRemoved(parentL); diff --git a/lang/beignet/files/patch-llvm7 b/lang/beignet/files/patch-llvm7 new file mode 100644 index 000000000000..760527caaef8 --- /dev/null +++ b/lang/beignet/files/patch-llvm7 @@ -0,0 +1,112 @@ +commit e1b2419a0008 +Author: Rebecca N. Palmer <rebecca_palmer@zoho.com> +Date: Sat Jul 21 20:05:54 2018 +0100 + + 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.orig 2017-09-22 08:05:22 UTC ++++ 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") +--- backend/src/backend/gen_program.cpp.orig 2017-10-24 06:04:48 UTC ++++ backend/src/backend/gen_program.cpp +@@ -449,7 +449,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) ); +@@ -540,7 +544,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)) { +--- backend/src/backend/program.cpp.orig 2017-10-24 06:04:48 UTC ++++ 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; +--- backend/src/llvm/ExpandLargeIntegers.cpp.orig 2017-10-24 06:04:48 UTC ++++ 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; +--- backend/src/llvm/llvm_bitcode_link.cpp.orig 2017-10-24 06:04:48 UTC ++++ 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; +--- backend/src/llvm/llvm_includes.hpp.orig 2017-10-24 06:04:48 UTC ++++ 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" |