Am 10.11.2015 12:27 schrieb "Jürgen Hestermann" <juergen.hesterm...@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. Regards, Sven
-- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus