From: Hongzhi Cheng Date: Mon, 18 Nov 2013 15:41:19 +0000 (+0100) Subject: Get correct excluded moves for split nodes X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=691ed425bae1e0a24a12dc3c38534c07adf5221e;hp=c376ffce0f666d289a22639de29b5c409db6a9d2;ds=sidebyside Get correct excluded moves for split nodes Tested setting FakeSplit to true and running ./stockfish bench 128 2 There is a different signature with and without the patch so it affects functionality but only in SMP case. bench: 8331357 --- diff --git a/src/search.cpp b/src/search.cpp index f1ab80f2..5ae2cf69 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -499,6 +499,7 @@ namespace { // Step 1. Initialize node Thread* thisThread = pos.this_thread(); inCheck = pos.checkers(); + excludedMove = ss->excludedMove; if (SpNode) { @@ -507,7 +508,7 @@ namespace { threatMove = splitPoint->threatMove; bestValue = splitPoint->bestValue; tte = NULL; - ttMove = excludedMove = MOVE_NONE; + ttMove = MOVE_NONE; ttValue = VALUE_NONE; assert(splitPoint->bestValue > -VALUE_INFINITE && splitPoint->moveCount > 0); @@ -547,7 +548,6 @@ namespace { // Step 4. Transposition table lookup // We don't want the score of a partial search to overwrite a previous full search // TT value, so we use a different position key in case of an excluded move. - excludedMove = ss->excludedMove; posKey = excludedMove ? pos.exclusion_key() : pos.key(); tte = TT.probe(posKey); ttMove = RootNode ? RootMoves[PVIdx].pv[0] : tte ? tte->move() : MOVE_NONE;