diff options
author | jbeich <jbeich@FreeBSD.org> | 2018-08-21 07:37:50 +0800 |
---|---|---|
committer | jbeich <jbeich@FreeBSD.org> | 2018-08-21 07:37:50 +0800 |
commit | e0505d7a5571945b3ea084eb0aab9b4280ba2b80 (patch) | |
tree | 1f8cb17089218ef2c9cd9b2fc811e8387833e3a5 /lang | |
parent | 21d31fe56e6ca4bb2ad62b2e3c422fd210c6ea22 (diff) | |
download | freebsd-ports-gnome-e0505d7a5571945b3ea084eb0aab9b4280ba2b80.tar.gz freebsd-ports-gnome-e0505d7a5571945b3ea084eb0aab9b4280ba2b80.tar.zst freebsd-ports-gnome-e0505d7a5571945b3ea084eb0aab9b4280ba2b80.zip |
lang/beignet: unbreak with llvm70
backend/src/backend/program.cpp:797:34: error: reference to type 'const llvm::Module' could not bind to an lvalue of type 'llvm::Module *'
llvm::WriteBitcodeToFile(*out_module, ostream);
^~~~~~~~~~~
/usr/local/llvm70/include/llvm/Bitcode/BitcodeWriter.h:129:41: note: passing argument to parameter 'M' here
void WriteBitcodeToFile(const Module &M, raw_ostream &Out,
^
backend/src/llvm/llvm_bitcode_link.cpp:343:36: error: no matching function for call to 'CloneModule'
llvm::Module * linked_module = llvm::CloneModule((llvm::Module*)mod).release();
^~~~~~~~~~~~~~~~~
/usr/local/llvm70/include/llvm/Transforms/Utils/Cloning.h:52:25: note: candidate function not viable: no known conversion from 'llvm::Module *' to 'const llvm::Module' for 1st argument; dereference the argument with *
std::unique_ptr<Module> CloneModule(const Module &M);
^
/usr/local/llvm70/include/llvm/Transforms/Utils/Cloning.h:53:25: note: candidate function not viable: requires 2 arguments, but 1 was provided
std::unique_ptr<Module> CloneModule(const Module &M, ValueToValueMapTy &VMap);
^
/usr/local/llvm70/include/llvm/Transforms/Utils/Cloning.h:60:1: note: candidate function not viable: requires 3 arguments, but 1 was provided
CloneModule(const Module &M, ValueToValueMapTy &VMap,
^
backend/src/llvm/ExpandLargeIntegers.cpp:230:5: error: use of undeclared identifier 'DEBUG'
DEBUG(dbgs() << "\tRecording as forward PHI\n");
^
backend/src/llvm/ExpandLargeIntegers.cpp:237:5: error: use of undeclared identifier 'DEBUG'
DEBUG(dbgs() << "\tTo: " << *To.Lo << "\n");
^
backend/src/llvm/ExpandLargeIntegers.cpp:238:5: error: use of undeclared identifier 'DEBUG'
DEBUG(dbgs() << "\tAnd: " << *To.Hi << "\n");
^
backend/src/llvm/ExpandLargeIntegers.cpp:247:5: error: use of undeclared identifier 'DEBUG'
DEBUG(dbgs() << "\tTo: " << *To << "\n");
^
backend/src/llvm/ExpandLargeIntegers.cpp:256:11: error: expected expression
DEBUG(if (!ForwardPHIs.empty()) dbgs() << "Patching forward PHIs:\n");
^
backend/src/llvm/ExpandLargeIntegers.cpp:261:7: error: use of undeclared identifier 'DEBUG'
DEBUG(dbgs() << "\t" << *F.Lo << "\n\t" << *F.Hi << "\n");
^
backend/src/llvm/ExpandLargeIntegers.cpp:389:3: error: use of undeclared identifier 'DEBUG'
DEBUG(dbgs() << "Expanding Large Integer: " << *Inst << "\n");
^
backend/src/llvm/llvm_to_gen.cpp:142:13: error: use of undeclared identifier 'createInstructionCombiningPass'; did you mean 'createFunctionInliningPass'?
MPM.add(createInstructionCombiningPass());// Clean up after IPCP & DAE
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
backend/src/llvm/llvm_to_gen.cpp:164:13: error: use of undeclared identifier 'createInstructionCombiningPass'; did you mean 'createFunctionInliningPass'?
MPM.add(createInstructionCombiningPass()); // Combine silly seq's
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
backend/src/llvm/llvm_to_gen.cpp:172:13: error: use of undeclared identifier 'createInstructionCombiningPass'; did you mean 'createFunctionInliningPass'?
MPM.add(createInstructionCombiningPass());
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
backend/src/llvm/llvm_to_gen.cpp:209:13: error: use of undeclared identifier 'createInstructionCombiningPass'; did you mean 'createFunctionInliningPass'?
MPM.add(createInstructionCombiningPass());
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
backend/src/llvm/llvm_to_gen.cpp:215:13: error: use of undeclared identifier 'createInstructionCombiningPass'; did you mean 'createFunctionInliningPass'?
MPM.add(createInstructionCombiningPass()); // Clean up after everything.
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
backend/src/llvm/llvm_to_gen.cpp:366:16: error: use of undeclared identifier 'createPromoteMemoryToRegisterPass'
passes.add(createPromoteMemoryToRegisterPass());
^
backend/src/llvm/llvm_to_gen.cpp:373:16: error: use of undeclared identifier 'createInstructionCombiningPass'; did you mean 'createFunctionInliningPass'?
passes.add(createInstructionCombiningPass()); // legalize will generate some silly instructions
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
backend/src/llvm/llvm_to_gen.cpp:380:16: error: use of undeclared identifier 'createLowerSwitchPass'; did you mean 'createLoopUnswitchPass'?
passes.add(createLowerSwitchPass()); // simplify cfg will generate switch-case instruction
^~~~~~~~~~~~~~~~~~~~~
backend/src/backend/gen_program.cpp:452:32: error: reference to type 'const llvm::Module' could not bind to an rvalue of type 'llvm::Module *'
llvm::WriteBitcodeToFile((llvm::Module*)prog->module, OS);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/llvm70/include/llvm/Bitcode/BitcodeWriter.h:129:41: note: passing argument to parameter 'M' here
void WriteBitcodeToFile(const Module &M, raw_ostream &Out,
^
backend/src/backend/gen_program.cpp:543:29: error: no matching function for call to 'CloneModule'
llvm::Module* clone = llvm::CloneModule(src).release();
^~~~~~~~~~~~~~~~~
/usr/local/llvm70/include/llvm/Transforms/Utils/Cloning.h:52:25: note: candidate function not viable: no known conversion from 'llvm::Module *' to 'const llvm::Module' for 1st argument; dereference the argument with *
std::unique_ptr<Module> CloneModule(const Module &M);
^
/usr/local/llvm70/include/llvm/Transforms/Utils/Cloning.h:53:25: note: candidate function not viable: requires 2 arguments, but 1 was provided
std::unique_ptr<Module> CloneModule(const Module &M, ValueToValueMapTy &VMap);
^
/usr/local/llvm70/include/llvm/Transforms/Utils/Cloning.h:60:1: note: candidate function not viable: requires 3 arguments, but 1 was provided
CloneModule(const Module &M, ValueToValueMapTy &VMap,
^
backend/src/backend/gen_program.cpp:452:32: error: reference to type 'const llvm::Module' could not bind to an rvalue of type 'llvm::Module *'
llvm::WriteBitcodeToFile((llvm::Module*)prog->module, OS);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/llvm70/include/llvm/Bitcode/BitcodeWriter.h:129:41: note: passing argument to parameter 'M' here
void WriteBitcodeToFile(const Module &M, raw_ostream &Out,
^
Obtained from: upstream (via Debian)
Approved by: portmgr blanket
Diffstat (limited to 'lang')
-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" |