On Tue, Jun 17, 2014 at 10:08 AM, Tom Lane <t...@sss.pgh.pa.us> wrote:
> Robert Haas <robertmh...@gmail.com> writes:
>> On Mon, Jun 16, 2014 at 8:10 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:
>>> On a micro-optimization level, it might be worth passing the TID as
>>> ItemPointer not ItemPointerData (ie, pass a pointer until we get to
>>> the point of actually inserting the TID into the index tuple).
>>> I'm not sure that copying odd-size structs should be assumed to be
>>> efficient.
>> Yeah, true.  Checking existing precedent, it looks like we usually
>> pass ItemPointer rather than ItemPointerData, so it's probably a good
>> idea to do this that way too for reasons of style if nothing else.  I
>> kind of wonder whether it's really more efficient to pass an 8-byte
>> pointer to a 6-byte structure than to just pass the structure itself,
>> but it might be.
> The pointer will certainly be passed in a register, or whatever passes for
> registers on the particular machine architecture.  Weird-size structs,
> though, tend to have arcane and not-so-efficient rules for being passed
> by value.  It's not unlikely that what the compiler will do under the hood
> is pass a pointer anyhow, and then do a memcpy to make a local copy in
> the called function.

OK, committed with the suggested changes.

(Thanks to Abhijit for pinging me about this, and more generally for
his active and effective management of this CommitFest!)

Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:

Reply via email to