Re: JIT compiling with LLVM v9.1 - Mailing list pgsql-hackers
From | Andreas Karlsson |
---|---|
Subject | Re: JIT compiling with LLVM v9.1 |
Date | |
Msg-id | 3ec92214-3e0d-14bc-005c-c9f4d3ff1f12@proxel.se Whole thread Raw |
In response to | Re: JIT compiling with LLVM v9.1 (Pierre Ducroquet <pierre.ducroquet@people-doc.com>) |
Responses |
Re: JIT compiling with LLVM v9.1
|
List | pgsql-hackers |
OK that fixed the issue, but you have a typo in your patch set. diff --git a/src/backend/lib/llvmjit_inline.cpp b/src/backend/lib/llvmjit_inline.cpp index a785261bea..51f38e10d2 100644 --- a/src/backend/lib/llvmjit_inline.cpp +++ b/src/backend/lib/llvmjit_inline.cpp @@ -37,7 +37,7 @@ extern "C" #include <llvm/ADT/StringSet.h> #include <llvm/ADT/StringMap.h> #include <llvm/Analysis/ModuleSummaryAnalysis.h> -#if LLVM_MAJOR_VERSION > 3 +#if LLVM_VERSION_MAJOR > 3 #include <llvm/Bitcode/BitcodeReader.h> #else #include "llvm/Bitcode/ReaderWriter.h" Also I get some warning. Not sure if they are from your patches or from Andres's. llvmjit_error.cpp:118:1: warning: unused function 'fatal_llvm_new_handler' [-Wunused-function] fatal_llvm_new_handler(void *user_data, ^ 1 warning generated. llvmjit_inline.cpp:114:6: warning: no previous prototype for function 'operator!' [-Wmissing-prototypes] bool operator!(const llvm::ValueInfo &vi) { ^ 1 warning generated. psqlscanslash.l: In function ‘psql_scan_slash_option’: psqlscanslash.l:550:8: warning: variable ‘lexresult’ set but not used [-Wunused-but-set-variable] int final_state; ^~~~~~~~~ Andreas On 02/05/2018 11:39 AM, Pierre Ducroquet wrote: > On Sunday, February 4, 2018 12:45:50 AM CET Andreas Karlsson wrote: >> On 02/02/2018 10:48 AM, Pierre Ducroquet wrote: >>> I have successfully built the JIT branch against LLVM 4.0.1 on Debian >>> testing. This is not enough for Debian stable (LLVM 3.9 is the latest >>> available there), but it's a first step. >>> I've split the patch in four files. The first three fix the build issues, >>> the last one fixes a runtime issue. >>> I think they are small enough to not be a burden for you in your >>> developments. But if you don't want to carry these ifdefs right now, I >>> maintain them in a branch on a personal git and rebase as frequently as I >>> can. >> >> I tested these patches and while the code built for me and passed the >> test suite on Debian testing I have a weird bug where the very first >> query fails to JIT while the rest work as they should. I think I need to >> dig into LLVM's codebase to see what it is, but can you reproduce this >> bug at your machine? >> >> Code to reproduce: >> >> SET jit_expressions = true; >> SET jit_above_cost = 0; >> SELECT 1; >> SELECT 1; >> >> Output: >> >> postgres=# SELECT 1; >> ERROR: failed to jit module >> postgres=# SELECT 1; >> ?column? >> ---------- >> 1 >> (1 row) >> >> Config: >> >> Version: You patches applied on top of >> 302b7a284d30fb0e00eb5f0163aa933d4d9bea10 >> OS: Debian testing >> llvm/clang: 4.0.1-8 >> >> Andreas > > > I have fixed the patches, I was wrong on 'guessing' the migration of the API > for one function. > I have rebuilt the whole patch set. It is still based on 302b7a284d and has > been tested with both LLVM 3.9 and 4.0 on Debian testing. > > Thanks for your feedback ! >
pgsql-hackers by date: