[fpc-devel] Generated code of constant parameters of double type
Luiz Americo Pereira Camara
pascalive at bol.com.br
Sun Nov 16 20:28:58 CET 2008
Florian Klaempfl escreveu:
> Luiz Americo Pereira Camara schrieb:
>> Florian Klaempfl escreveu:
>>> Luiz Americo Pereira Camara schrieb:
>>>> Florian Klaempfl escreveu:
>>>>> Luiz Americo Pereira Camara schrieb:
>>>>>> My point was that this could be a missing optimization
>>>>>> opportunity: pass by reference a 8 bytes parameter when the
>>>>>> pointer size is 4.
>>>>> Don't forget that this makes an extra memory access.
>>>> I will do my question in a simpler way:
>>>> Using constant parameters (add const keyword in front of an
>>>> argument) is beneficial for record types with size > pointer size
>>>> and for string types but not for integer and pointer types.
>>> No, this is not necessarily true. The extra indirect can be also
>> For string types it will avoid incrementing and decrementing the ref
>> count. See the test i did at
>> and the code diff at http://www.geocities.com/camara_luiz/coddiff.htm
>> For record (TPoint) the constant version generate less code. See the
>> attached diff.
> Please check also the code in the callee ;)
I already checked: is equal.
# Temps allocated between ebp+0 and ebp+0
#  begin
#  x.x := 1;
#  x.y := 2;
#  ByValue(X);
#  ByReference(X);
#  end.
More information about the fpc-devel