Re: WIP: expression evaluation improvements
Soumyadeep Chakraborty <sochakraborty@pivotal.io>
From: Soumyadeep Chakraborty <sochakraborty@pivotal.io>
To: Andres Freund <andres@anarazel.de>
Cc: Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2020-02-10T01:28:02Z
Lists: pgsql-hackers
Hi Andres, > I've comitted a (somewhat evolved) version of this patch. I think it > really improves the code! Awesome! Thanks for taking it forward! > I do wonder about adding a variadic wrapper like the one introduced here > more widely, seems like it could simplify a number of places. If we then > redirected all function calls through a common wrapper, for LLVMBuildCall, > that also validated parameter count (and perhaps types), I think it'd be > easier to develop... +1. I was wondering whether such validations should be Asserts instead of ERRORs. Regards, Soumyadeep Chakraborty Senior Software Engineer Pivotal Greenplum Palo Alto On Thu, Feb 6, 2020 at 10:35 PM Andres Freund <andres@anarazel.de> wrote: > Hi, > > On 2019-10-28 23:58:11 -0700, Soumyadeep Chakraborty wrote: > > > Sorry for not replying to that earlier. I'm not quite sure it's > > > actually worthwhile doing so - did you try to measure any memory / cpu > > > savings? > > > > No problem, thanks for the reply! Unfortunately, I did not do anything > > significant in terms of mem/cpu measurements. However, I have noticed > > non-trivial differences between optimized and unoptimized .bc files > > that were dumped from time to time. > > Could you expand on what you mean here? Are you saying that you got > significantly better optimization results by doing function optimization > early on? That'd be surprising imo? > > 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