pgsql: Marginal improvement for generated code in execExprInterp.c.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Marginal improvement for generated code in execExprInterp.c.
Date: 2017-09-29 15:32:10
Message-ID: E1dxxGs-00043d-9T@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Marginal improvement for generated code in execExprInterp.c.

Avoid the coding pattern "*op->resvalue = f();", as some compilers think
that requires them to evaluate "op->resvalue" before the function call.
Unless there are lots of free registers, this can lead to a useless
register spill and reload across the call.

I changed all the cases like this in ExecInterpExpr(), but didn't bother
in the out-of-line opcode eval subroutines, since those are presumably
not as performance-critical.

Discussion: https://postgr.es/m/2508.1506630094@sss.pgh.pa.us

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/136ab7c5a5f54fecea7c28c8550c19123245acf0

Modified Files
--------------
src/backend/executor/execExprInterp.c | 59 +++++++++++++++++++++++++----------
1 file changed, 42 insertions(+), 17 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Peter Eisentraut 2017-09-29 17:43:52 pgsql: psql: Update \d sequence display
Previous Message Peter Eisentraut 2017-09-29 15:11:40 pgsql: Add background worker type