Re: WIP: expression evaluation improvements
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Andreas Karlsson <andreas@proxel.se>
Cc: pgsql-hackers@postgresql.org
Date: 2019-10-24T22:53:59Z
Lists: pgsql-hackers
Hi, On 2019-10-25 00:43:37 +0200, Andreas Karlsson wrote: > On 10/23/19 6:38 PM, Andres Freund wrote: > > In the attached *prototype* patch series there's a lot of incremental > > improvements (and some cleanups) (in time, not importance order): > > You may already know this but your patch set seems to require clang 9. I didn't, so thanks! > I get the below compilation error which is probably cause by > https://github.com/llvm/llvm-project/commit/90868bb0584f first being > committed for clang 9 (I run "clang version 7.0.1-8 > (tags/RELEASE_701/final)"). > > In file included from gistutil.c:24: > ../../../../src/include/utils/float.h:103:7: error: invalid output > constraint '=@ccae' in asm > : "=@ccae"(ret), [clobber_reg]"=&x"(clobber_reg) > ^ > 1 error generated. I'll probably just drop this patch for now, it's not directly related. I kind of wanted it on the list, so I have I place I can find it if I forget :). I think what really needs to happen instead is to improve the code generated for __builtin_isinf[_sign]() by gcc/clang. They should proce the constants like I did, instead of loading from the constant pool every single time. That adds a fair bit of latency... Greetings, Andres Freund
Commits
-
Add special case fast-paths for strict functions
- d35d32d7112b 18.0 landed
-
Replace EEOP_DONE with special steps for return/no return
- 8dd7c7cd0a26 18.0 landed
-
jit: Reference expression step functions via llvmjit_types.
- b059d2f45685 13.0 landed
-
jit: Remove redundancies in expression evaluation code generation.
- e6f86f8dd983 13.0 landed
-
expression eval: Don't redundantly keep track of AggState.
- 1fdb7f9789c4 13.0 landed
-
jit: Reference functions by name in IOCOERCE steps.
- 8c2769405ff1 13.0 landed
-
expression eval, jit: Minor code cleanups.
- 1ec7679f1b67 13.0 landed