Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: or even better...

Author: Chrilly Donninger

Date: 07:36:19 12/13/05

Go up one level in this thread


On December 12, 2005 at 15:31:07, Gerd Isenberg wrote:

>of course also saving the bestscore assignment in that case:
>
>if (val > bestscore)
>{
>  if( val >= beta )
>    return val; // Actually goto return-sequence.
>  bestscore = val;
>  if(val > alpha)
>    alpha = val;
>}
>
>or what about improving branch-prediction in some way:
>
>if( val >= beta )
>   return val; // Actually goto return-sequence.
>if (val > bestscore)
>{ // most likely not taken
>  bestscore = val;
>  if(val > alpha)
>    alpha = val;
>}


The optimizing compilers are shuffling the statements around. Sometimes they
implement some very clever tricks to avoid a jumpt at all. I have not seen this
from gcc output, put Visual-C and especially the Intel compiler do amazing
tricks to avoid jumps.
As a C-programmer one has no real control. I think the only way is to run the
Code through VTune and look on the reprots.
As a rule of thumb, the condition is usually reversed by the compiler.

Chrilly



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.