From: | Pierre Ducroquet <p(dot)psql(at)pinaraf(dot)info> |
---|---|
To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Cc: | Andres Freund <andres(at)anarazel(dot)de>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: JIT compiling with LLVM v10.0 |
Date: | 2018-02-07 19:35:12 |
Message-ID: | 3309415.tx5WB8eTnp@peanuts2 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wednesday, February 7, 2018 3:54:05 PM CET Andres Freund wrote:
> Hi,
>
> I've pushed v10.0. The big (and pretty painful to make) change is that
> now all the LLVM specific code lives in src/backend/jit/llvm, which is
> built as a shared library which is loaded on demand.
>
> The layout is now as follows:
>
> src/backend/jit/jit.c:
> Part of JITing always linked into the server. Supports loading the
> LLVM using JIT library.
>
> src/backend/jit/llvm/
> Infrastructure:
> llvmjit.c:
> General code generation and optimization infrastructure
> llvmjit_error.cpp, llvmjit_wrap.cpp:
> Error / backward compat wrappers
> llvmjit_inline.cpp:
> Cross module inlining support
> Code-Gen:
> llvmjit_expr.c
> Expression compilation
> llvmjit_deform.c
> Deform compilation
>
> I generally like how this shaped out. There's a good amount of followup
> cleanup needed, but I'd appreciate some early feedback.
Hi
I also find it more readable and it looks cleaner, insane guys could be able
to write their own JIT engines for PostgreSQL by patching a single file :)
Since it's now in its own .so file, does it still make as much sense using
mostly the LLVM C API ?
I'll really look in the jit code itself later, right now I've just rebased my
previous patches and did a quick check that everything worked for LLVM4 and
3.9.
I included a small addition to the gitignore file, I'm surprised you were not
bothered by the various .bc files generated.
Anyway, great work, and I look forward exploring the code :)
Pierre
Attachment | Content-Type | Size |
---|---|---|
0001-Add-support-for-LLVM4-in-llvmjit.c.patch | text/x-patch | 2.4 KB |
0002-Add-LLVM4-support-in-llvmjit_error.cpp.patch | text/x-patch | 1.4 KB |
0003-Add-LLVM4-support-in-llvmjit_inline.cpp.patch | text/x-patch | 3.1 KB |
0004-Don-t-emit-bitcode-depending-on-an-LLVM-5-function.patch | text/x-patch | 834 bytes |
0005-Fix-warning.patch | text/x-patch | 1.3 KB |
0006-Ignore-LLVM-.bc-files.patch | text/x-patch | 487 bytes |
0007-Fix-building-with-LLVM-3.9.patch | text/x-patch | 2.8 KB |
0008-Fix-segfault-with-LLVM-3.9.patch | text/x-patch | 1.1 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2018-02-07 20:39:33 | Re: postgres_fdw: perform UPDATE/DELETE .. RETURNING on a join directly |
Previous Message | Stephen Frost | 2018-02-07 18:42:54 | Re: [HACKERS] Proposal: generic WAL compression |