diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2017-09-29 11:32:05 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2017-09-29 11:32:05 -0400 |
commit | 136ab7c5a5f54fecea7c28c8550c19123245acf0 (patch) | |
tree | 55c2b75a77723792f260f007be33b6e5ed8824ee /src/backend/utils/adt/arrayfuncs.c | |
parent | 5373bc2a0867048bb78f93aede54ac1309b5e227 (diff) | |
download | postgresql-136ab7c5a5f54fecea7c28c8550c19123245acf0.tar.gz postgresql-136ab7c5a5f54fecea7c28c8550c19123245acf0.zip |
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
Diffstat (limited to 'src/backend/utils/adt/arrayfuncs.c')
0 files changed, 0 insertions, 0 deletions