pgsql: Move EEOP_*_SYSVAR evaluation out of line.

Started by Andres Freundover 7 years ago3 messagescomitters
Jump to latest
#1Andres Freund
andres@anarazel.de

Move EEOP_*_SYSVAR evaluation out of line.

This mainly de-duplicates code. As evaluating a system variable isn't
the hottest path and the current inline implementation ends up calling
out to an external function anyway, this is OK from a performance POV.

The main motivation for de-duplicating is the upcoming slot
abstraction work, after which there's not guaranteed to be a HeapTuple
backing the slot.

Author: Andres Freund, Amit Khandekar
Discussion: /messages/by-id/20181105210039.hh4vvi4vwoq5ba2q@alap3.anarazel.de

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/b84a6dafbf2bb921baee53c0c1aba7719ee38817

Modified Files
--------------
src/backend/executor/execExprInterp.c | 58 ++++++++++++-----------------------
src/backend/jit/llvm/llvmjit.c | 4 +--
src/backend/jit/llvm/llvmjit_expr.c | 38 +++++------------------
src/backend/jit/llvm/llvmjit_types.c | 2 +-
src/include/executor/execExpr.h | 2 ++
src/include/jit/llvmjit.h | 2 +-
6 files changed, 33 insertions(+), 73 deletions(-)

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#1)
Re: pgsql: Move EEOP_*_SYSVAR evaluation out of line.

Andres Freund <andres@anarazel.de> writes:

Move EEOP_*_SYSVAR evaluation out of line.

Seems like many of your JIT-enabled animals don't like this.

regards, tom lane

#3Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#2)
Re: pgsql: Move EEOP_*_SYSVAR evaluation out of line.

Hi,

On 2018-11-07 16:23:13 -0500, Tom Lane wrote:

Andres Freund <andres@anarazel.de> writes:

Move EEOP_*_SYSVAR evaluation out of line.

Seems like many of your JIT-enabled animals don't like this.

Thanks. Yea, it's the animals that have the (pretty expensive) LLVM
assertions enabled. I've pushed the trivial oversight fix. Sorry for not
attributing this message/thread - I only saw it afterwards.

Greetings,

Andres Freund