From 1130c8d8153b2132c4352324421f342e9c50b08e Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sun, 30 Aug 2009 17:17:44 +0100 Subject: [PATCH] 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 --- src/movepick.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/movepick.cpp b/src/movepick.cpp index 7120ba0c..5c0f4f5b 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(); -- 2.39.2