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 ;)
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel