Author: Reinhard Scharnagl
Date: 05:53:58 11/24/03
Go up one level in this thread
Hi Gerd,
>I keep all code common and use short (inlined) functions with formal color
>parameter for that purpose. When those functions are called and "expanded" with
>constant actual color parameter, the compiler should be able to optimize
>different constant inline incarnations of those functions in such a way that
>variable expressions got constant and conditional code becomes unconditional.
>
>E.g. if such functions is called with constant color parameter
>
>inline int getNextPawnTarget(int color /*0,1*/, int fromSquare)
>{
> return fromSquare + 8 - color*16;
>}
>
>the generated code is either
> fromSquare + 8;
>or fromSquare - 8;
>
>inline BitBoard getPawnTargets(int color /*0,1*/, BitBoard from)
>{
> if ( color == WHITE )
> return from << 8;
> else
> return from >> 8;
>}
>
>Here constant color incarnation of the inlined skips the condition, code
>generation produces either at compile time
>
> return from << 8;
>or
> return from >> 8;
nice idea!
But it seems I have not made clear enough what my problem is. I have
explained in another answer above, that I try to _avoid_ _compiling_
the same *.C or *.CPP source code _twice_.
Thank you for answering.
Regards, Reinhard.
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.