[fpc-devel] Bit manipulation as optimization in FPC
Daniël Mantione
daniel.mantione at freepascal.org
Wed Sep 6 21:57:47 CEST 2006
Op Wed, 6 Sep 2006, schreef ik:
> Hello,
>
> I wonder if FPC optimize a code such as:
>
> if a < b then
> c := d
> else
> c := b;
>
> as :
>
> r := b + ((d - b) and -(a < b));
>
> If so, do you check the type of CPU (because as I understand, some CPU
> will not execute as fast as other CPU's.
>
>
> If not, then why, and how would you optimize such code ?
The construction above would be fastest with conditional moves; in the
above construction the optimal code generation would be:
mov c,d
cmp a,b
movge c,b
This would be much faster than any code generated for the construction you
propose.
Free Pascal won't generate the optimal code, but it can already use
conditional moves and I would expect that the compiler would use it in
this situation.
Daniël
More information about the fpc-devel
mailing list