1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-16 03:24:07 +00:00

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
This commit is contained in:
Jan Beich 2018-08-20 23:37:50 +00:00
parent f8a2e5cc0a
commit ff6025f14f
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=477690
2 changed files with 125 additions and 11 deletions

View File

@ -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);

View File

@ -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"