From e10a1ae9a88406199665a3b010d44d5026d45ca8 Mon Sep 17 00:00:00 2001 From: Pierre Date: Fri, 2 Feb 2018 11:29:45 +0100 Subject: [PATCH 7/8] Fix building with LLVM 3.9 --- src/backend/jit/llvm/llvmjit_inline.cpp | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/backend/jit/llvm/llvmjit_inline.cpp b/src/backend/jit/llvm/llvmjit_inline.cpp index 4fa0e5ab64..8cfac20565 100644 --- a/src/backend/jit/llvm/llvmjit_inline.cpp +++ b/src/backend/jit/llvm/llvmjit_inline.cpp @@ -37,7 +37,12 @@ extern "C" #include #include #include +#if LLVM_VERSION_MAJOR > 3 #include +#else +#include "llvm/Bitcode/ReaderWriter.h" +#include "llvm/Support/Error.h" +#endif #include #include #include @@ -100,7 +105,12 @@ llvm_inline(LLVMModuleRef M) llvm_execute_inline_plan(mod, globalsToInline.get()); } -#if LLVM_VERSION_MAJOR < 5 +#if LLVM_VERSION_MAJOR < 4 +bool operator!(const llvm::ValueInfo &vi) { + return !( (vi.Kind == llvm::ValueInfo::VI_GUID && vi.TheValue.Id) + || (vi.Kind == llvm::ValueInfo::VI_Value && vi.TheValue.V)); +} +#elif LLVM_VERSION_MAJOR < 5 bool operator!(const llvm::ValueInfo &vi) { return !( (vi.Kind == llvm::ValueInfo::VI_GUID && vi.TheValue.Id) || (vi.Kind == llvm::ValueInfo::VI_Value && vi.TheValue.GV)); @@ -188,12 +198,15 @@ llvm_build_inline_plan(llvm::Module *mod) funcName.data(), modPath.data()); +// XXX Missing in LLVM < 4.0 ? +#if LLVM_VERSION_MAJOR > 3 if (gvs->notEligibleToImport()) { elog(DEBUG1, "uneligible to import %s due to summary", funcName.data()); continue; } +#endif if ((int) fs->instCount() > threshold) { @@ -339,8 +352,10 @@ llvm_execute_inline_plan(llvm::Module *mod, ImportMapTy *globalsToInline) #if LLVM_VERSION_MAJOR > 4 #define IRMOVE_PARAMS , /*IsPerformingImport=*/false -#else +#elif LLVM_VERSION_MAJOR > 3 #define IRMOVE_PARAMS , /*LinkModuleInlineAsm=*/false, /*IsPerformingImport=*/false +#else +#define IRMOVE_PARAMS #endif if (Mover.move(std::move(importMod), GlobalsToImport.getArrayRef(), [](llvm::GlobalValue &, llvm::IRMover::ValueAdder) {} @@ -648,7 +663,11 @@ llvm_load_index(void) if (e) elog(ERROR, "could not load summary at %s", subpath); #else +#if LLVM_VERSION_MAJOR > 3 std::unique_ptr subindex = std::move(llvm::getModuleSummaryIndex(ref).get()); +#else + std::unique_ptr subindex = std::move(llvm::getModuleSummaryIndex(ref, [](const llvm::DiagnosticInfo &) {}).get()); +#endif if (!subindex) elog(ERROR, "could not load summary at %s", subpath); else -- 2.16.1