[Lazarus] Extending TRect breaks Lazarus

Sven Barth pascaldragon at googlemail.com
Tue Nov 10 14:37:17 CET 2015

Am 10.11.2015 12:27 schrieb "J├╝rgen Hestermann" <juergen.hestermann at gmx.de>:
> Am 2015-11-10 um 11:32 schrieb Sven Barth:
>> The user doesn't need to know the detail that the value is kept in a
temporary register, because that statement by itself is utterly useless for
the user, as on load/store architectures like ARM you /always/ have values
in registers if they are worked with and the compiler will happily spill
around the contents if necessary.
> Does that mean, that local variables and with statements are treated
completely identically?
> Are both held in registers with the same mechanism and will there never
be an (speed) adavantage of one of them?
> If there is only the chance that it may speed up the code (even when only
on certain platforms) then I would like to know it.

It always depends on the specific code (its complexity) and the specific
compiler settings (optimizations) and maybe also the target architecture
(because of register pressure and such). There is nothing general I can say
/except/ that the with expression will be evaluated only once. Thus
depending on the circumstances a local variable and the usage of with might
behave the same. In simple cases the with /might/ be faster because it
won't result in the expression result being stored on the stack, but that's
by no means a given.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20151110/518d1f54/attachment-0003.html>

More information about the Lazarus mailing list