From: Marco Costalba Date: Sat, 7 Feb 2015 11:07:43 +0000 (+0100) Subject: Micro-optimize SEE X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=47a076810291cb7e9b9333e106f2aa9cd4c30c58 Micro-optimize SEE Results for 10 tests for each version (gcc 4.8.3 on mingw): Base Test Diff Mean 1502447 1507917 -5470 StDev 3119 1364 4153 p-value: 0,906 speedup: 0,004 Results for 10 tests for each version (MSVC 2013): Base Test Diff Mean 1400899 1403713 -2814 StDev 1273 2804 2700 p-value: 0,851 speedup: 0,002 No functional change. --- diff --git a/src/position.cpp b/src/position.cpp index cc320b4b..8d4b9f4f 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -1098,21 +1098,11 @@ Value Position::see(Move m) const { // Locate and remove the next least valuable attacker captured = min_attacker(byTypeBB, to, stmAttackers, occupied, attackers); - - // Stop before processing a king capture - if (captured == KING) - { - if (stmAttackers == attackers) - ++slIndex; - - break; - } - stm = ~stm; stmAttackers = attackers & pieces(stm); ++slIndex; - } while (stmAttackers); + } while (stmAttackers && (captured != KING || (--slIndex, false))); // Stop before a king capture // Having built the swap list, we negamax through it to find the best // achievable score from the point of view of the side to move.