diff options
Diffstat (limited to 'backend')
-rw-r--r-- | backend/src/backend/gen_program.cpp | 8 | ||||
-rw-r--r-- | backend/src/backend/program.cpp | 4 | ||||
-rw-r--r-- | backend/src/llvm/ExpandLargeIntegers.cpp | 2 | ||||
-rw-r--r-- | backend/src/llvm/llvm_bitcode_link.cpp | 4 | ||||
-rw-r--r-- | backend/src/llvm/llvm_includes.hpp | 4 |
5 files changed, 21 insertions, 1 deletions
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" |