Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: question about when to use local varaibles

Author: Robert Hyatt

Date: 20:20:59 09/05/03

Go up one level in this thread


On September 05, 2003 at 17:44:50, Dieter Buerssner wrote:

>On September 05, 2003 at 17:08:43, Robert Hyatt wrote:
>
>>On September 05, 2003 at 16:17:48, Uri Blass wrote:
>>
>>>I want to have some rule when it is a good idea to use local varaibles.
>>>
>>>I believe that it is clear that when instead of changing the hash key zob[hply]
>>>many times in my makemove it is better to start using local varaible and start
>>>my makemove with
>>>	__int64 zob=zobkey[hply];
>>>and finish it with when hply was already increased by 1 with
>>>zobkey[hply]=zob;
>>>
>>>My question is how many times using the same expression zobkey[hply]
>>>justify using local varaible
>>
>>I don't see any benefit to doing what you are doing.  IE
>>zobkey[hply+1]=zobkey[hply]; will make the copy.  The only thing you save
>>is the indexing operation needed to access zobkey[hply+1] as you modify it.
>>But a good compiler will probably be able to optimize that into a register
>>anyway if you make sure that you copy and update it as quickly as possible
>>before doing anything else...
>
>It is much more complicated. C Compilers in general can do better otpimizations
>with local vars, than with global vars. Say some function has also some pointer
>argument, that you modify (or some global pointer var is used). Often in that
>case, it cannot leave a global var in register. Unless it can prove, that the
>stuff your are modifying through the pointer will never alias the global var.
>Current compilers will not be able to do it. With a local variable, of which
>never the adress was taken, it is much easier.
>
>If you want Fortran, you know, where you'll find it :-)
>
>C99 has dealt with this problem somewhat (by the new restrict keyword).
>
>Regards,
>Dieter


I don't have that problem, ever.  First I tell the compiler that I don't do
aliasing like that so that it won't have to worry about it.  Then I don't
do it so that the compiler won't screw up after listening to me.

:)



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.