Skip an useless compare in space evaluation
authorMarco Costalba <mcostalba@gmail.com>
Tue, 5 Oct 2010 21:10:42 +0000 (22:10 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Tue, 5 Oct 2010 21:16:09 +0000 (22:16 +0100)
Spotted by Marek Kwiatkowski.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/evaluate.cpp

index 86cebecb7efb8ba736d8e818dcc6b31e09cf96dc..041ce86f8917aa910f33060d58808258b8f26ea1 100644 (file)
@@ -331,10 +331,8 @@ Value do_evaluate(const Position& pos, Value& margin) {
   bonus +=  evaluate_passed_pawns<WHITE>(pos, ei)
           - evaluate_passed_pawns<BLACK>(pos, ei);
 
-  Phase phase = mi->game_phase();
-
   // Evaluate space for both sides, only in middle-game.
-  if (phase > PHASE_ENDGAME && mi->space_weight() > 0)
+  if (mi->space_weight())
   {
       int s = evaluate_space<WHITE, HasPopCnt>(pos, ei) - evaluate_space<BLACK, HasPopCnt>(pos, ei);
       bonus += apply_weight(make_score(s * mi->space_weight(), 0), Weights[Space]);
@@ -343,6 +341,7 @@ Value do_evaluate(const Position& pos, Value& margin) {
   // Scale winning side if position is more drawish that what it appears
   ScaleFactor sf = eg_value(bonus) > VALUE_ZERO ? mi->scale_factor(pos, WHITE)
                                                 : mi->scale_factor(pos, BLACK);
+  Phase phase = mi->game_phase();
 
   // If we don't already have an unusual scale factor, check for opposite
   // colored bishop endgames, and use a lower scale for those.