On 07.10.26 10:54, David Rowley wrote:
> On Wed, 7 Oct 2026 at 19:31, Peter Eisentraut <peter@eisentraut.org> wrote:
>>
>> On 15.03.26 23:50, David Rowley wrote:
>>> Optimize tuple deformation
>>
>> This commit c456e391138 changed in slot_deform_heap_tuple() the type of
>> attnum from int to size_t, which seems unusual and doesn't fit with the
>> surrounding code. Could you check whether that was intentional?
>
> It was done to work around a problem with gcc where it was refusing to
> index the CompactAttribute array by adding 8 to the previous address
> to get the address of the next element. Instead, it was doing LEA on
> each loop, which was slower due to shift and add rather than just add.
> The best I could figure out is that gcc didn't want to optimise to use
> LEA due to concerns about the integer wrapping around, which, if it
> did, would be a different address than doing 2^31 adds on a 64-bit
> pointer.
Oh! :-/
How about a really big comment about that, and maybe change the type
from size_t to uint64 (or maybe uintptr_t, if it's supposed to vary on
32-bit platforms), so it looks more intentional and not like a mistake?