Re: JIT compiling with LLVM v9.1

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>
Subject: Re: JIT compiling with LLVM v9.1
Date: 2018-02-02 09:48:16
Message-ID: 46007795.oF0HmTnAYR@pierred-pdoc
Views: Raw Message | Whole Thread | Download mbox
Thread:
Lists: pgsql-hackers

On Monday, January 29, 2018 10:53:50 AM CET Andres Freund wrote:
> Hi,
>
> On 2018-01-23 23:20:38 -0800, Andres Freund wrote:
> > == Code ==
> >
> > As the patchset is large (500kb) and I'm still quickly evolving it, I do
> > not yet want to attach it. The git tree is at
> >
> > https://git.postgresql.org/git/users/andresfreund/postgres.git
> >
> > in the jit branch
> >
> > https://git.postgresql.org/gitweb/?p=users/andresfreund/postgres.git;a=s
> > hortlog;h=refs/heads/jit
> I've just pushed an updated and rebased version of the tree:
> - Split the large "jit infrastructure" commits into a number of smaller
> commits
> - Split the C++ file
> - Dropped some of the performance stuff done to heaptuple.c - that was
> mostly to make performance comparisons a bit more interesting, but
> doesn't seem important enough to deal with.
> - Added a commit renaming datetime.h symbols so they don't conflict with
> LLVM variables anymore, removing ugly #undef PM/#define PM dance
> around includes. Will post separately.
> - Reduced the number of pointer constants in the generated LLVM IR, by
> doing more getelementptr accesses (stem from before the time types
> were automatically synced)
> - Increased number of comments a bit
>
> There's a jit-before-rebase-2018-01-29 tag, for the state of the tree
> before the rebase.
>
> Regards,
>
> Andres

Hi

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.

LLVM 3.9 support isn't going to be hard, but I prefer splitting. I also hope
this will help more people test this wonderful toy… :)

Regards

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 849 bytes

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Langote 2018-02-02 10:03:21 Re: [HACKERS] path toward faster partition pruning
Previous Message Michael Banck 2018-02-02 09:44:01 Re: [PoC PATCH] Parallel dump to /dev/null