Skip to content

Commit

Permalink
Get correct excluded moves for split nodes
Browse files Browse the repository at this point in the history
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
  • Loading branch information
hongzhicheng authored and mcostalba committed Nov 18, 2013
1 parent c376ffc commit 691ed42
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/search.cpp
Expand Up @@ -499,6 +499,7 @@ namespace {
// Step 1. Initialize node
Thread* thisThread = pos.this_thread();
inCheck = pos.checkers();
excludedMove = ss->excludedMove;

if (SpNode)
{
Expand All @@ -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);
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 691ed42

Please sign in to comment.