Author: Gerd Isenberg
Date: 06:55:08 01/09/04
Go up one level in this thread
On January 09, 2004 at 09:41:01, Robert Hyatt wrote: >On January 09, 2004 at 06:46:00, Tord Romstad wrote: > >>By reading this forum, I've understood that "if" statements are considered >>evil and that it is often a good idea to remove them if it is possible. Suppose >>that I have code which looks like this: >> >>if(x) y += 20; >> >>Would it then be advantageous to rewrite the code like this? >> >>y += (!(!x))*20; >> >>In my evaluation function, I have a lot of conditionals which could be avoided >>by >>using tricks similar to the one above, but before doing it I would like to make >>sure it is really a good idea. After all, the first form above is much more >>readable. >> >>Tord > >! produces branches. Because the C semantics say "if X != 0, !x=0, while >if X == 0, !x=1. That !=0 causes a branch and you can't avoid it. In >assembly you might avoid the branch with a CMOV instruction, but not >in the above. x86 has setCC-instruction which should be used here. eg.: SETE/SETZ mreg8 SETE/SETZ mem8
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.