From: Marco Costalba Date: Sun, 30 Aug 2009 16:17:44 +0000 (+0100) Subject: Skip TT_MOVES phase when possible X-Git-Url: http://winboard.nl/cgi-bin?a=commitdiff_plain;h=1130c8d8153b2132c4352324421f342e9c50b08e;p=fairystockfish.git Skip TT_MOVES phase when possible If we don't have tt moves to search skip the useless loop associated with TT_MOVES phase. Another 1% speed boost that brings this series to a +6.2% against original revision 595a90df No functional change. Signed-off-by: Marco Costalba --- diff --git a/src/movepick.cpp b/src/movepick.cpp index 7120ba0..5c0f4f5 100644 --- a/src/movepick.cpp +++ b/src/movepick.cpp @@ -61,10 +61,12 @@ namespace { MovePicker::MovePicker(const Position& p, Move ttm, Depth d, const History& h, SearchStack* ss) : pos(p), H(h) { + int searchTT = ttm; ttMoves[0].move = ttm; if (ss) { ttMoves[1].move = (ss->mateKiller == ttm)? MOVE_NONE : ss->mateKiller; + searchTT |= ttMoves[1].move; killers[0].move = ss->killers[0]; killers[1].move = ss->killers[1]; } else @@ -81,11 +83,11 @@ MovePicker::MovePicker(const Position& p, Move ttm, Depth d, if (p.is_check()) phasePtr = EvasionsPhaseTable; else if (d > Depth(0)) - phasePtr = MainSearchPhaseTable; + phasePtr = MainSearchPhaseTable + !searchTT; else if (d == Depth(0)) - phasePtr = QsearchWithChecksPhaseTable; + phasePtr = QsearchWithChecksPhaseTable + !searchTT; else - phasePtr = QsearchWithoutChecksPhaseTable; + phasePtr = QsearchWithoutChecksPhaseTable + !searchTT; phasePtr--; go_next_phase();