From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | JIT compiling with LLVM v12 |
Date: | 2018-03-13 23:40:32 |
Message-ID: | 20180313234032.mdvxcmdttqpe4m6h@alap3.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
I've pushed a revised and rebased version of my JIT patchset.
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=shortlog;h=refs/heads/jit
There's nothing hugely exciting, mostly lots of cleanups.
- added some basic EXPLAIN output, displaying JIT options and time spent
jitting (see todo below)
JIT:
Functions: 9
Generation Time: 4.604
Inlining: false
Inlining Time: 0.000
Optimization: false
Optimization Time: 0.585
Emission Time: 12.858
- Fixed bugs around alignment computations in tuple deforming. Wasn't
able to trigger any bad consequences, but it was clearly wrong.
- Worked a lot on making code more pgindent safe. There's still some
minor layout damage, but it's mostly ok now. For that I had to add a
bunch of helpers that make the code shorter
- Freshly emitted functions now have proper attributes indicating
architecture, floating point behaviour etc. That's what previously
prevented the inliner of doing its job without forcing its hand. That
yields a bit of a speedup.
- reduced size of code a bit by deduplicating code, in particular
don't "manually" create signatures for function declarations
anymore. Besides deduplicating, this also ensures code generation time
errors when function signatures change.
- fixed a number of FIXMEs etc
- added a lot of comments
- portability fixes (OSX, freebsd)
Todo:
- some build issues with old clang versions pointed out by Thomas Munro
- when to take jit_expressions into account (both exec and plan or just
latter)
- EXPLAIN for queries that are JITed should display units. Starting
thread about effort to not duplicate code for that
- more explanations of type & function signature syncing
- GUC docs (including postgresql.conf.sample)
Thanks everyone, particularly Peter in this update, for helping me
along!
Regards,
Andres
From | Date | Subject | |
---|---|---|---|
Next Message | Stephen Frost | 2018-03-13 23:49:11 | Re: PATCH: Configurable file mode mask |
Previous Message | Tom Lane | 2018-03-13 23:29:38 | Re: neqjoinsel versus "refresh materialized view concurrently" |