[fpc-devel] Generated code of constant parameters of double type

Florian Klaempfl florian at freepascal.org
Sun Nov 16 20:26:50 CET 2008


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 slower.
> 
> For string types it will avoid incrementing and decrementing the ref 
> count. See the test i did at 
> http://lazarusroad.blogspot.com/2008/11/effect-of-using-constant-parameter-for.html 
> 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 ;)



More information about the fpc-devel mailing list